Key takeaways

  • Most unindexed pages have a noindex, a canonical pointing elsewhere, an error status or a robots.txt block.
  • The seogeoaeo.ai Indexing & Canonical Checker names which of those signals blocks a public URL, for 8 credits a run.
  • Crawled - currently not indexed is Google's own decision, so it needs better content and links rather than a tag change.

Why is Google not indexing my pages? The answer is usually one of a short list: a noindex rule, a canonical that points elsewhere, an error status, a robots.txt block, or Google choosing not to keep the page. The first four you can find in under a minute with the seogeoaeo.ai indexability checker; the last one only Search Console can tell you about.

Here are the causes in the order worth checking, with the fix for each.

A noindex you forgot about

Staging sites, CMS plugins and page templates add noindex more often than anyone admits. It can sit in a meta robots tag in the HTML or in an X-Robots-Tag HTTP header, where nobody looks. Google's documentation says that when it finds noindex, it drops the page from results.

Fix: remove the directive from the template or the server config, then ask Google to recrawl.

A canonical pointing somewhere else

If page A says its canonical is page B, you have asked Google to index B instead. This happens with copied templates, tracking parameters and trailing-slash mixups. Google treats the canonical as a strong hint rather than an order, so it may also pick a different URL than you set.

Fix: make the canonical point at the page itself, and make sure the target returns a 200 and is indexable.

An error or redirect status

A 404, a 5xx or a redirect means Google never sees an indexable page at that URL.

Fix: return a 200 for pages that should rank, and link to the final URL instead of a redirect.

A robots.txt block

robots.txt stops crawling, not indexing. That has an odd side effect: Google cannot read a noindex on a page it is not allowed to fetch, so a blocked URL can still show up in results when other sites link to it.

Fix: if you want the page indexed, remove the Disallow rule. If you want it gone, allow crawling and add noindex.

Google crawled it and passed

Search Console's Page indexing report has a status called "Crawled - currently not indexed". Google's description is short: it crawled the page, did not index it, and may or may not index it later. "Discovered - currently not indexed" means Google found the URL but has not crawled it yet.

Fix: there is no tag to flip. Improve the page, link to it from pages that are indexed, and include it in your sitemap.

Find which one it is

Cause Where to see it
noindex, canonical, status, robots.txt seogeoaeo.ai Indexing & Canonical Checker
Google crawled but chose not to index Search Console Page indexing report
Google's current index status for a URL Search Console URL Inspection

The seogeoaeo.ai checker takes any public URL, reads the status, robots.txt rules for Google and Bing, meta robots, X-Robots-Tag, canonical and snippet controls, and names the signal that blocks the page with the tag or header to change. It costs 8 credits a run. It does not confirm what is in Google's index and it does not render JavaScript, so a page that only builds its content in the browser needs a separate test.

If you own the site and only need one URL looked at, Search Console's URL Inspection may be all you need: it shows Google's stored view and offers a live test. The seogeoaeo.ai check is quicker when you want the reason in plain terms or are checking a page you cannot open in Search Console.

A note on requesting indexing

Once the fix is live, you can request indexing in URL Inspection. Google says this does not guarantee the page gets indexed, and that a sitemap is better when many URLs changed.

Frequently asked questions

Does blocking a page in robots.txt keep it out of Google?

Not reliably. robots.txt stops crawling, and Google cannot see a noindex on a page it may not fetch, so the URL can still appear when other pages link to it.

Will requesting indexing fix it?

Only if nothing blocks the page. Google says a request does not guarantee indexing, and you cannot request it when the live test shows the page is not indexable.

Sources

  1. Indexing & Canonical Checkerseogeoaeo.ai
  2. Block search indexing with noindexGoogle Search Central
  3. Page indexing reportGoogle Search Console Help
  4. URL Inspection toolGoogle Search Console Help