To get Google to index your site, verify it in Google Search Console, submit an XML sitemap, make sure nothing blocks Googlebot (robots.txt, noindex, login walls, server errors), and link every page you care about from other pages on the site. Then request indexing for your most important URLs and watch the Page indexing report. Google decides what gets indexed, so your job is to remove every reason for it to say no.
That is the short version. The rest of this guide walks through each step in the order I would do them on a new or under-indexed site, with the exact places to click and the mistakes that cost people weeks.
How indexing actually works
Three separate things have to happen before a page can show up in search:
- Discovery. Google learns the URL exists, from a link, a sitemap or a manual submission.
- Crawling. Googlebot fetches the URL, and for JavaScript pages, renders it.
- Indexing. Google analyses the content, picks a canonical URL among duplicates and decides whether the page is worth storing.
A failure at each stage looks different in Search Console. "URL is unknown to Google" is a discovery problem. "Discovered - currently not indexed" means Google knows the URL but has not crawled it. "Crawled - currently not indexed" means Google fetched it and chose not to keep it. Knowing which stage you are stuck at tells you what to fix. For a fuller picture of the pipeline, see how Google Search works.
One thing to accept early: Google's documentation says plainly that it does not guarantee it will crawl, index or serve any page, even one that follows every guideline. Nobody can force indexing. You can only make a page easy to find, cheap to crawl and clearly worth keeping.
Step 1: Check where you stand
Before changing anything, find out what Google already has.
- Search
site:yourdomain.comin Google. If you see results, the site is at least partly indexed. If you see nothing at all on a site older than a few weeks, suspect a blocker. - The
site:operator is a rough check. Google says it does not necessarily return every indexed URL, so never use the result count as a measurement. - For a precise answer on one URL, use the URL Inspection tool in Search Console (covered below). For many URLs, see how to check if a page is indexed.
Step 2: Verify the site in Search Console
Search Console is the only place where Google tells you what it thinks of your URLs, so this is not optional.
- Go to search.google.com/search-console and click Add property.
- Pick Domain if you can edit DNS. It covers every subdomain and both
httpandhttps. You verify it with a DNS TXT record. - Pick URL prefix if you cannot touch DNS. You can verify with an HTML file, a meta tag, Google Analytics or Google Tag Manager. It only covers URLs under that exact prefix, so
https://www.example.com/does not includehttps://example.com/.
Data starts to appear within a few days. If you are new to the interface, the Search Console beginner's guide covers the reports you will use most.
Step 3: Remove the blockers
Most "Google won't index my site" cases I look at are one of five technical blockers. Check all five before doing anything else, because no amount of sitemap submitting or link building will beat a noindex tag.
| Blocker | How to check | What it looks like |
|---|---|---|
| robots.txt disallow | Open /robots.txt, or test a URL in the robots.txt tester |
Disallow: / under User-agent: * |
| noindex meta tag | View source, search for noindex |
<meta name="robots" content="noindex"> |
| noindex HTTP header | Inspect response headers | X-Robots-Tag: noindex |
| Wrong status code | Check with a status checker | 4xx, 5xx, or a redirect you did not intend |
| Canonical pointing elsewhere | View source, find rel="canonical" |
Canonical URL differs from the page URL |
The indexability checker tests all five for a URL in one pass, which is quicker than doing it by hand.
Common ways these blockers get in:
- WordPress: Settings > Reading > "Discourage search engines from indexing this site" left ticked after launch. It adds a
noindexto every page. - Staging config shipped to production: a
Disallow: /robots.txt or anX-Robots-Tag: noindexheader set at the server or CDN level, copied over during deployment. - Password or IP protection left on, so Googlebot gets a 401 or 403.
- Canonical tags hard-coded to the homepage or to the staging domain in a theme template.
- Firewall or bot protection challenging Googlebot. If the URL Inspection live test shows a fetch failure while the page loads fine in your browser, look at your WAF rules.
A subtle one: do not block a page in robots.txt and also add noindex to it. Google cannot read the noindex on a page it is not allowed to fetch. The differences are covered in noindex vs robots.txt vs canonical.
Step 4: Create and submit an XML sitemap
A sitemap is a list of the URLs you want indexed. It does not force indexing, but it is the most reliable way to make sure Google has discovered every page, and it gives you a "submitted" baseline in the Page indexing report.
Rules that matter:
- Only list canonical, indexable URLs that return 200. No redirects, no
noindexpages, no parameter duplicates. - Maximum 50,000 URLs and 50 MB uncompressed per file. Larger sites need a sitemap index.
- Use absolute URLs with the same protocol and host as the live site.
- Include
<lastmod>only if it is accurate. Google uses it when it proves trustworthy and ignores<priority>and<changefreq>.
A minimal valid file:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/</loc>
<lastmod>2026-08-18</lastmod>
</url>
<url>
<loc>https://www.example.com/pricing</loc>
<lastmod>2026-08-02</lastmod>
</url>
</urlset>
Most CMSs generate one for you (/sitemap.xml, /sitemap_index.xml or /wp-sitemap.xml). Run it through the sitemap validator before submitting, then:
- In Search Console open Indexing > Sitemaps.
- Enter the sitemap URL under Add a new sitemap and click Submit.
- Also add a
Sitemap: https://www.example.com/sitemap.xmlline to robots.txt so other search engines find it.
The status should change to "Success" within a day or so. "Couldn't fetch" right after submitting is often temporary. If it persists, open the sitemap URL in a browser and check that it returns 200 with XML content and is not blocked by robots.txt. More detail is in the XML sitemap guide.
Step 5: Fix internal linking
This is the step people skip, and it is the one that most often separates sites that get fully indexed from sites stuck at 40 percent.
Google finds and prioritises pages mainly through links. A URL that exists only in the sitemap, with no internal links pointing at it, is an orphan page. Google may crawl it eventually, but it has no signal that the page matters, and these are the URLs that pile up under "Discovered - currently not indexed".
Practical targets:
- Every page you want indexed is reachable by following plain
<a href>links from the homepage, ideally in three clicks or fewer. - Category or hub pages link to every item in the category, with pagination that uses real links (not buttons that load content with JavaScript only).
- New articles get linked from at least two or three older, already indexed pages, not just from the blog index where they will scroll off the first page in a month.
- Links are in the HTML Google renders.
<a href="/page">works.<span onclick="go('/page')">does not.
You can list the links Google can see on any page with the page link extractor. The strategy side is covered in internal linking for indexing.
Step 6: Request indexing for priority pages
For a handful of important URLs, ask directly:
- Paste the full URL into the inspection bar at the top of Search Console.
- Wait for the result. If it says "URL is not on Google", click Test live URL first to confirm Google can fetch it and sees no
noindex. - Click Request indexing.
This adds the URL to a priority crawl queue. It does not guarantee indexing, there is a daily quota per property, and Google says that requesting the same URL repeatedly will not get it crawled faster. Use it for your homepage, key landing pages and freshly published or updated content. For everything else, rely on the sitemap and internal links. The limits are explained in Request indexing limits in Search Console.
Step 7: Make the pages worth indexing
If the technical side is clean and pages still sit in "Crawled - currently not indexed", the issue is usually the page itself. Google has crawled it, looked at it and declined.
Patterns that get declined a lot:
- Pages with a few lines of text and a lot of template (thin category pages, empty tag archives, location pages that differ only by city name).
- Content that is substantially the same as other pages on your site or on other sites (manufacturer descriptions, syndicated posts).
- Auto-generated pages produced at scale with no unique value per page.
- Pages whose main content only appears after a user action, so the rendered HTML Google sees is nearly empty.
The fix is not a trick. Merge thin pages into stronger ones, add information that is not available elsewhere, noindex or remove pages that have no search purpose, and make sure the main content is present in the rendered HTML. See thin content and indexing for how to audit this at scale.
Step 8: Earn a few external links
A brand new domain with zero links pointing to it gives Google very little reason to spend crawl resources on it. You do not need a campaign. A handful of real links is enough to get discovery going:
- Your social profiles and business listings (Google Business Profile, LinkedIn, relevant directories in your industry).
- Partners, suppliers, clients or associations that already have a reason to mention you.
- One or two pieces of content that others would reference.
Do not buy link packages to "speed up indexing". At best they do nothing. At worst they fall under Google's link spam policies.
Step 9: Faster signals, used honestly
There are two APIs people ask about.
IndexNow lets you push changed URLs to Bing, Yandex, Naver, Seznam and other participating engines instantly. Google does not take part in IndexNow. It is still worth using, because Bing's index feeds several other search products. You can send URLs with the IndexNow submitter.
The Google Indexing API lets you notify Google that a URL was added, updated or removed. Google's documentation restricts it to pages with JobPosting structured data or BroadcastEvent embedded in a VideoObject. The default quota is 200 publish requests per day per Google Cloud project. Many site owners use it for other content types and often see faster crawling, but that use is not supported, Google applies spam detection to submissions, and a notification is a crawl request, not an indexing guarantee. Read the Google Indexing API guide before deciding.
TurboIndex automates this whole loop, free for one site: it reads your Search Console sitemaps, checks real index status with the URL Inspection API, submits URLs that are not indexed yet and sends IndexNow pings. It still cannot make Google index a page that Google does not want, so steps 3 to 7 come first.
Step 10: Monitor the Page indexing report
Open Indexing > Pages once a week for the first two months.
- The green "Indexed" line should climb as Google works through your sitemap.
- Scroll to "Why pages aren't indexed". Each row is a reason with a count. Click one to see up to 1,000 example URLs.
- Use the sitemap filter at the top ("All submitted pages") to hide junk URLs and look only at the pages you asked Google to index.
- After fixing a problem, click Validate fix on that reason. Google says validation typically takes up to about two weeks and sometimes much longer.
Not every row is a problem. "Page with redirect", "Alternate page with proper canonical tag" and "Excluded by 'noindex' tag" are often exactly what you intended. The Page indexing report explained goes through every status.
What not to do
- Do not hit Request indexing on the same URL every day. It does not help and burns your quota.
- Do not submit the sitemap over and over. Google re-reads it on its own schedule. Resubmitting does not trigger a full recrawl.
- Do not change URLs while waiting. Every change resets the process and adds redirects.
- Do not pay for "guaranteed indexing" or link blasts. Nobody outside Google controls the index.
- Do not publish hundreds of near-identical pages at once on a new domain. It is the fastest route to a large "Crawled - currently not indexed" bucket.
- Do not block CSS and JavaScript in robots.txt. Google needs them to render the page.
A launch checklist
- Search Console property verified (Domain property if possible)
- robots.txt does not disallow important paths
- No
noindexin meta tags orX-Robots-Tagheaders on pages you want indexed - Key pages return 200, with a self-referencing canonical
- XML sitemap contains only canonical 200 URLs, is submitted and shows "Success"
- Every sitemap URL has at least one internal link from an indexed page
- Homepage and top landing pages submitted with Request indexing
- A few real external links point to the domain
- IndexNow set up for Bing and others
- Weekly check of Indexing > Pages for the first two months
How long it takes
Google's own guidance is that crawling can take from a few days to a few weeks. On an established site with good internal links, a new page is often picked up within days. On a new domain, the first pages can take a couple of weeks, and full coverage of a large site can take months because Google limits how fast it crawls a host it does not know yet. The factors are covered in how long Google takes to index.
If several weeks pass and specific pages are still missing, move on to the diagnostic flow in why is my page not indexed. It maps each Search Console status to its likely cause and fix.
Frequently asked questions
- How do I submit my website to Google?
- Verify the site in Google Search Console, then submit your XML sitemap under Indexing > Sitemaps. For single pages, paste the URL into the URL Inspection bar and click Request indexing. There is no separate submission form any more, and the old sitemap ping endpoint was shut down in 2023.
- Can I pay Google to index my site faster?
- No. Google does not sell indexing or faster crawling, and Google Ads spend has no effect on organic crawling or indexing. Any service that claims guaranteed Google indexing is overstating what it can do, because the final decision is always made by Google's systems.
- Does Google index every page of a site?
- No. Google states that it does not guarantee to crawl or index every page, even when a page follows all of its guidelines. On most sites some share of URLs stays out of the index, usually duplicates, thin pages, parameter URLs and pages with very few internal links.
- Do I need a sitemap to get indexed?
- Not strictly. Google can find pages through links alone. A sitemap helps most on new sites with few external links, large sites, and sites where some pages are poorly linked. It costs almost nothing to add, so there is rarely a good reason to skip it.
- How long should I wait before worrying that my site is not indexed?
- Google says crawling can take anywhere from a few days to a few weeks. If a new site has a verified Search Console property, a submitted sitemap and no technical blockers, give it two to four weeks before you assume something is wrong. Check for blockers on day one though, not week four.