When a page does not appear in Google, the temptation is to guess: maybe it needs more links, maybe the content is too thin, maybe Google is just slow. Guessing wastes weeks. A missing page almost always has one dominant cause, and most causes leave a clear trace in Search Console or in the page itself.
This guide is a decision flow. First you confirm that the page really is not indexed. Then you check the possible causes in a fixed order, starting with hard blockers that make indexing impossible and ending with soft causes where Google simply chose not to index the page yet. Stop at the first check that fails, fix it, and only then move on.
Step 0: Confirm the page really is not indexed
Many people start with a site: search such as site:example.com/my-page. It is a quick hint, but it is not a reliable test. The site: operator is not designed to return a complete list of indexed URLs, results can vary between searches, and a page can be indexed under a different canonical URL (for example with or without a trailing slash, or the www version) so your exact URL does not show up even though the content is in the index. The index check guide compares how reliable each method is in which situation.
The authoritative answer for a site you own comes from the URL Inspection tool in Search Console. Paste the full URL into the bar at the top and read the verdict:
- URL is on Google: the page is indexed. If you cannot find it in search, you have a ranking problem, not an indexing problem.
- URL is not on Google: open the "Page indexing" section of the result. It shows the reason, whether the page was found in a sitemap, the referring page, the last crawl date, the user-declared canonical and the Google-selected canonical.
- URL is unknown to Google: Google has never seen the URL. Jump straight to the discovery step below.
Then click "Test live URL". The indexed version shows what Google saw last time; the live test shows what Googlebot gets right now. If the two disagree, you may already have fixed the problem and are only waiting for a recrawl. For many URLs at once, the Pages report under Indexing groups every known URL by reason, which is faster than inspecting one by one.
No Search Console access?
For pages on sites you do not control, such as pages that link to you, you cannot use URL Inspection. A bulk index checker that reports indexed or not indexed per URL is the practical alternative.
Search Console status: what it means and what to fix first
Most diagnoses start with the reason Search Console gives you. Use this table to translate the label into a first action. The full list is documented in the Page indexing report help.
| Search Console status | What it means | First fix |
|---|---|---|
| Excluded by 'noindex' tag | The page, or its HTTP header, tells Google not to index it. | Remove the noindex meta tag or X-Robots-Tag header if the page should rank. |
| Blocked by robots.txt | Googlebot is not allowed to crawl the URL. | Remove or narrow the Disallow rule that matches the URL. |
| Server error (5xx) | Your server failed when Googlebot requested the page. | Check server logs, hosting limits, firewalls and bot protection. |
| Not found (404) | The URL returns 404. | Restore the page, or redirect it if it moved; otherwise leave it. |
| Page with redirect | The URL redirects elsewhere; the target is what gets indexed. | Link and list the final URL, not the redirecting one. Details in the page with redirect guide. |
| Soft 404 | The page returns 200 but looks empty or like an error page. | Add real content, or return a proper 404/410. |
| Duplicate without user-selected canonical | Google sees it as a duplicate and you did not declare a canonical. | Add a rel=canonical and consolidate near-identical pages. |
| Duplicate, Google chose different canonical than user | Google ignored your canonical and picked another URL. | Make signals consistent: canonical, internal links, sitemap, redirects. Details in the canonical conflict guide. |
| Alternate page with proper canonical tag | The page points its canonical to another URL. Usually correct. | Nothing, unless this page should be indexed itself. |
| Discovered – currently not indexed | Google knows the URL but has not crawled it yet. | Strengthen internal links and check server capacity. See the dedicated guide. |
| Crawled – currently not indexed | Crawled, but Google decided not to index it for now. | Improve uniqueness and value. See the dedicated guide. |
The troubleshooting sequence, from hard blockers to soft causes
If the report does not give a clear reason, or you want to be sure nothing else is wrong, check these in order. The first four are binary: if one fails, nothing else matters until you fix it.
- 01
1. Look for noindex
View the page source and search for noindex in the robots meta tag, then check the response headers for X-Robots-Tag: noindex. Common culprits are a CMS setting like "discourage search engines" left on after launch, an SEO plugin rule for a whole post type, or a staging configuration copied to production. Google documents both methods in Block search indexing with noindex.
- 02
2. Check robots.txt
Open /robots.txt and find any Disallow rule that matches the URL path. Remember that robots.txt controls crawling, not indexing. A blocked URL can still appear in results without its content if other pages link to it, and Google cannot see a noindex tag on a page it is not allowed to crawl. If you want a page out of the index, allow crawling and use noindex; if you want it in, remove the block.
- 03
3. Verify the status code and redirects
The page must return 200 to Googlebot. Use the live test in URL Inspection rather than your browser, because bot protection, geo-blocking, login walls or a CDN can treat Googlebot differently. Redirect chains, loops, or a redirect to an unrelated page all stop the original URL from being indexed. Intermittent 5xx errors and timeouts also make Google slow down crawling across the site.
- 04
4. Check the canonical
Compare the user-declared canonical with the Google-selected canonical in URL Inspection. A template that points every page to the homepage, a canonical to the http or staging version, or a paginated page canonicalised to page 1 will keep your URL out. Remember that rel=canonical is a strong hint, not a directive; if Google picks a different URL, align your internal links, sitemap and redirects with the version you want. Google explains the signals in Consolidate duplicate URLs.
- 05
5. Rule out soft 404
Pages that return 200 but have almost no main content, say "no results" or "out of stock" with nothing else, or render empty because content loads only after a failed script are often classified as soft 404. Check the screenshot and rendered HTML in the live test to see what Googlebot actually received.
- 06
6. Make sure Google can discover it
If the URL is unknown to Google, it needs a path in. Add it to your XML sitemap (see how to submit a sitemap) and, more importantly, link to it from relevant pages that are already indexed using normal <a href> links. Orphan pages with no internal links are hard to discover and look unimportant.
- 07
7. Assess quality and duplication
If the page was crawled but not indexed, Google has judged it not worth adding for now. Ask honestly whether it adds something that other pages on your site and on the web do not: thin category pages, auto-generated variations and near-duplicate articles are common examples. Merge, improve or remove rather than resubmitting.
- 08
8. Accept that it may simply be new
A page published yesterday may not be crawled yet, especially on a young site with few links. If all of the checks above pass, give it time, keep linking to it, and recheck in a week or two instead of requesting indexing every day.
When and how to request indexing
Once you have fixed a real problem, use "Request indexing" in URL Inspection to ask Google to recrawl the page. This is useful after removing a noindex or fixing a canonical, because otherwise Google might not revisit the URL for a while. Keep in mind that there is a daily quota, that the request puts the URL in a crawl queue rather than in the index, and that requesting the same URL repeatedly does not speed anything up.
For a batch of fixed URLs, a sitemap with accurate <lastmod> dates is the scalable route. Some external services also send crawl requests for many URLs at once; WeRankLab's URL indexing tool, for example, says it pre-checks each URL for noindex, a canonical pointing elsewhere, a robots.txt block or a redirect before sending it. Any such tool can help a page get crawled, but whether it is indexed is still Google's decision.
Do not request indexing before fixing
Requesting indexing for a page that still carries noindex, still redirects or still fails the quality bar just gets it crawled and rejected again. Diagnose first, then request.
Diagnosis checklist
- URL Inspection says "URL is not on Google" (not just a failed site: search)
- No noindex in the robots meta tag or the X-Robots-Tag header
- No robots.txt Disallow rule matches the URL
- Live test returns 200, with no redirect chain or loop
- Canonical points to the URL itself (or to the version you want indexed)
- Rendered screenshot shows the real main content, not an empty or error-like page
- URL is in the XML sitemap and linked from at least one indexed page
- Content is substantially different from other pages on the site
- You requested indexing once after fixing, then waited
After the fix: verify, then wait
Use "Validate fix" in the Pages report for the affected reason so Search Console tracks the URLs for you. Validation can take days or weeks, and it only confirms that the specific issue is gone; the page still has to pass Google's normal indexing decision. Meanwhile, keep an eye on index status for the whole group of URLs rather than refreshing one page.
Common questions
- How long should I wait before worrying?
- There is no fixed number. A new page on an established, well-linked site is often crawled within days; on a new site it can take considerably longer. If the URL is still unknown to Google after a couple of weeks, focus on discovery: links and the sitemap.
- The page was indexed and then disappeared. Why?
- Check the same sequence. A recent template change that added noindex or a wrong canonical is common. If nothing technical changed, Google may have re-evaluated the page and moved it to "Crawled – currently not indexed".
- Will more backlinks get my page indexed?
- Links help Google discover a page and judge its importance, but only if the linking pages are themselves crawled. They do not override noindex, robots.txt or canonical problems. See getting backlinks indexed.
- Can I use the Indexing API for normal pages?
- Officially no. Google supports it only for pages with JobPosting or BroadcastEvent structured data. For everything else, rely on sitemaps, internal links and URL Inspection.