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.
- 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.
- Check for a noindex tag. View source and search for
noindex— both in ameta name=robotstag and in theX-Robots-TagHTTP response header, which is invisible in the page source and catches people constantly. - Check robots.txt. Fetch
yourdomain.com/robots.txtand look for aDisallowmatching the path. A blocked page can't be crawled, which means Google never reads anything on it. - 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. - 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.
- 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.
- 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.
- 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".
- 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.
| Status | What Google is telling you | What to do |
|---|---|---|
| Excluded by 'noindex' tag | It fetched the page and found a noindex instruction. | Remove the tag or header, then request indexing. |
| Blocked by robots.txt | It never fetched the page at all. | Unblock the path. Nothing else you change will be seen until you do. |
| Alternate page with proper canonical tag | Working as intended — this URL points at another one you chose. | Nothing, unless the canonical is wrong. |
| Duplicate, Google chose different canonical than user | It read your canonical and overruled it. | Find the conflicting signal. Usually internal links or the sitemap. |
| Discovered – currently not indexed | It 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 indexed | It read the page and chose not to store it. | A quality or duplication judgement. Rewrite or merge; requesting indexing again won't help. |
| Soft 404 | The 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.