Answered straight

Why Google will not index your page

The short answer

A page usually isn't indexed for one of four reasons: a noindex tag, a robots.txt block, a canonical pointing elsewhere, or Google crawled it and decided it wasn't worth storing. Check those in that order in Search Console's URL Inspection tool. The fourth is the most common and the only one no tag fixes.

Updated 26 July 2026 · Written by the Last Agency team · See what SEO actually costs

The short version

  • URL Inspection in Search Console is the only source of truth. A site: search is an approximation and it lies in both directions.
  • Work the checks in order. Skipping to "request indexing" before you've read the exclusion reason wastes a fortnight.
  • Blocking a page in robots.txt stops Google reading your noindex tag. The two together do the opposite of what people expect.
  • "Crawled – currently not indexed" is a verdict on the page, not a bug. Google looked and passed.
  • On a healthy site a new page is usually indexed within days. Two weeks with a clean URL Inspection is when it becomes a content problem.

Step zero: confirm the page is genuinely missing

Most "my page isn't indexed" panics are actually "my page is indexed and ranking on page four". Those are completely different problems with completely different fixes, and it's worth spending sixty seconds separating them.

Open Search Console, paste the full URL into the inspection bar at the top, and read what comes back. "URL is on Google" means it is indexed and your problem is ranking. Anything else gives you an exclusion reason, and that reason is the rest of this page.

Don't rely on site:yourdomain.com/page. The site: operator returns an approximation of the index, it drops pages that are genuinely there, and it occasionally shows pages that have since been removed. It's a smell test, not evidence.

The nine-step elimination, in order

Run these in sequence. Each one rules out a whole class of cause, and the order matters — checking rendering before you've checked robots.txt is how people lose an afternoon.

  1. Read the exclusion reason in URL Inspection. Google usually tells you outright. Steps 2 to 9 exist for when the reason is vague or you want to know why the reason is what it is.
  2. Check for a noindex tag. View source and search for noindex — both in a meta name=robots tag and in the X-Robots-Tag HTTP response header, which is invisible in the page source and catches people constantly.
  3. Check robots.txt. Fetch yourdomain.com/robots.txt and look for a Disallow matching the path. A blocked page can't be crawled, which means Google never reads anything on it.
  4. Check the canonical tag. If rel="canonical" points at a different URL, you have asked Google not to index this one. Compare "user-declared canonical" against "Google-selected canonical" in URL Inspection.
  5. Check the HTTP status and redirects. A 404, a soft 404, an intermittent 5xx during Google's crawl, or a redirect chain landing somewhere unexpected will all stop indexing dead.
  6. Check that the page is discoverable. Is it in your XML sitemap? Does anything on the site link to it? An orphan page with zero internal links is a page Google has little reason to crawl and less reason to keep.
  7. Check rendering. Use the "Test live URL" screenshot and rendered HTML in URL Inspection. If your content only appears after JavaScript runs, and a blocked script or a client-side route stops it running, Google indexes an empty shell.
  8. Check for duplication. If the content substantially matches another URL on your site or someone else's, Google consolidates rather than stores both. This shows as "Duplicate, Google chose different canonical than user".
  9. Accept the quality verdict. If steps 1 to 8 are clean and the page still isn't indexed, Google fetched it and decided the index is better off without it. There is no tag for this. See the last section.

What each Search Console status actually means

The strings in the Pages report are more precise than they look. Read them literally.

Search Console indexing statuses, translated.
StatusWhat Google is telling youWhat to do
Excluded by 'noindex' tagIt fetched the page and found a noindex instruction.Remove the tag or header, then request indexing.
Blocked by robots.txtIt never fetched the page at all.Unblock the path. Nothing else you change will be seen until you do.
Alternate page with proper canonical tagWorking as intended — this URL points at another one you chose.Nothing, unless the canonical is wrong.
Duplicate, Google chose different canonical than userIt read your canonical and overruled it.Find the conflicting signal. Usually internal links or the sitemap.
Discovered – currently not indexedIt knows the URL exists but hasn't crawled it yet.Improve internal links to it and check for crawl-budget strain from thin or parameter URLs.
Crawled – currently not indexedIt read the page and chose not to store it.A quality or duplication judgement. Rewrite or merge; requesting indexing again won't help.
Soft 404The page returned 200 but looks empty or error-like.Add real content or return a proper 404.

The three that bite hardest

In practice, three causes account for most indexing failures on real sites, and all three are self-inflicted by a setting somebody forgot.

A noindex tag your theme or plugin shipped

WordPress has a checkbox under Settings → Reading labelled "Discourage search engines from indexing this site". It's on by default in most staging setups, and it survives the move to production more often than anyone admits. Every SEO plugin also has per-post-type noindex toggles, and page builders sometimes add their own.

The nastier version is X-Robots-Tag: noindex in the HTTP response header, usually left behind by a server config or a CDN rule for a staging domain. It doesn't appear in view-source. Check it in your browser's network tab or with curl -I.

A robots.txt block that hides everything else

This one is counter-intuitive enough to deserve its own warning. Disallow in robots.txt does not mean "don't index". It means "don't fetch". A disallowed URL can still appear in results with no description if enough pages link to it, because Google knows the URL exists without ever having read it.

The consequence people miss: if a page is disallowed, Google never reads its noindex tag either. Combining the two to be extra sure produces the opposite of what you wanted. Pick one — noindex to remove a page, robots.txt to save crawl budget on URLs you don't care about.

A canonical pointing somewhere else

Parameter URLs, paginated archives, print views, and duplicated templates all commonly carry a canonical to a "main" version. That's correct behaviour, right up until a template bug points every page in a section at the section index — or, memorably, at the homepage.

If a whole content type has vanished from the index at once, check the canonical before anything else. It's a one-line template fix and it explains an entire missing directory. There's a fuller treatment in what a canonical tag does.

Requesting indexing, and how long to actually wait

URL Inspection has a "Request Indexing" button. It puts your URL in a priority crawl queue. It does not override any of the causes above, it has a daily quota, and hammering it does nothing except use the quota up.

Use it once after you've fixed something. Then leave it alone.

The durable version is boring: get the URL into your XML sitemap, link to it from pages that already get crawled often, and ship it alongside other content so the section looks alive. Internal links are the strongest indexing lever you fully control — a page linked from your homepage gets crawled on a different schedule to one linked from nowhere.

  • Established site, regular publishing: hours to a few days is normal for a new page.
  • New or rarely updated site: a week or two is normal, and not a sign of anything wrong.
  • Large site with thin or parameter URLs: longer, because Google is spending its crawl allowance on pages you'd rather it skipped. Fix that before you fix the individual page.
  • Two weeks with a clean URL Inspection and no exclusion reason: stop looking for a technical cause. It's the next section.

When nothing is broken and Google still says no

This is the ending most articles avoid, and it's the most common one. "Crawled – currently not indexed" means Google fetched your page, evaluated it, and decided its index is better off without it. That is a judgement about the page, not a fault in your setup.

Google doesn't index everything it finds, and hasn't for years. Storage and serving cost money, and a page that duplicates something already indexed — including something already on your own site — adds nothing. Thin pages, near-identical location or service permutations, tag archives, auto-generated variants and pages that restate a topic already covered elsewhere on the site all fail here routinely.

The fix is editorial, not technical. Either make the page substantially better than what's already indexed for its topic, or merge it into the page that does the job properly and redirect it. If you have forty pages in this state, you don't have forty problems — you have one content strategy that produced forty near-duplicates, and pruning is the faster route back. That's the same machinery behind keyword cannibalisation.

One honest note on scale: if you publish twenty pages a month and six get indexed, adding more volume makes it worse, not better. Google is telling you the marginal page isn't wanted. Believe it.

Related questions.

How long should it take Google to index a new page?

On an established site that publishes regularly, hours to a few days. On a new or rarely updated site, one to two weeks is normal. If URL Inspection shows no exclusion reason and it's still missing after two weeks, treat it as a content judgement rather than a technical fault.

What does 'Crawled – currently not indexed' mean?

Google fetched the page, evaluated it, and chose not to store it. Nothing is technically broken. It usually means the page duplicates something already indexed, or is too thin to earn the space. Rewriting or merging it works; requesting indexing repeatedly does not.

What's the difference between 'Discovered' and 'Crawled – currently not indexed'?

Discovered means Google knows the URL exists but hasn't fetched it — usually a crawl-priority issue, fixed with internal links and by cleaning up low-value URLs. Crawled means it did fetch it and declined to index. The first is a plumbing problem, the second is a content problem.

Does requesting indexing in Search Console actually work?

It moves your URL into a priority crawl queue, which helps after you've fixed a real cause. It cannot override a noindex tag, a robots.txt block or a quality judgement. There's a daily quota, and submitting the same URL repeatedly achieves nothing.

Can a page be blocked in robots.txt and still show in Google?

Yes, and this surprises people. Robots.txt blocks fetching, not indexing. If enough pages link to a blocked URL, Google can list it with no title or description. To keep a page out of the index properly, allow crawling and use a noindex tag.

Why did a page that was indexed for months suddenly disappear?

Check for a recent deploy first — template changes that add a noindex or flip a canonical are the usual culprit. After that, check the status code and whether a near-duplicate was published. Google also drops pages it has stopped considering worth storing, which shows as a change of status rather than an error.

Last slot's open

Make this the last growth call you book.

Grab the free strategy call and walk away with a 90-day growth plan — hired or not. Or just text us. Either way, you'll know exactly how we'd win.

Guaranteed or it's free · No lock-in · Free strategy call