Search Console’s index coverage report is the most valuable free diagnostic available for a website, and the most consistently misread. The labels are terse, several mean something different from what they appear to say, and the interface offers the same Validate Fix button regardless of whether you are looking at a genuine fault or at the system behaving exactly as intended.
The result is a very common failure pattern: someone sees a large excluded count, panics, and spends weeks resubmitting URLs that were correctly excluded, while the one reason that genuinely indicates a problem sits untouched.
Here is what each reason actually means, and what to do about it.
First: excluded is not a synonym for broken
A healthy site of any size has a substantial excluded count. Redirects are excluded. Canonicalised duplicates are excluded. Pages you deliberately noindex are excluded. All of that is the system working.
Before diagnosing anything, split the report into three groups:
| Group | Reasons | Action |
|---|---|---|
| Working as intended | Redirects, alternate with canonical, excluded by noindex tag | Verify the intent was yours, then ignore |
| Technical fault | Server error, redirect error, blocked by robots.txt, soft 404, noindex you did not set | Fix immediately |
| Quality judgement | Crawled – currently not indexed, Discovered – currently not indexed, Duplicate without canonical | Do not resubmit. Read on. |
That third group is where almost all the wasted effort goes, so we will spend most of our time there.
Group 1 — Working as intended
Page with redirect
The URL 301s elsewhere. It is excluded because the destination is indexed instead. Correct behaviour.
Only investigate if: the URL is in your sitemap (remove it), or the redirect chains through multiple hops (collapse it), or it was not supposed to redirect at all.
Alternate page with proper canonical tag
You told the search engine this duplicate consolidates to another URL, and it agreed. This is canonicalisation succeeding.
Only investigate if: the canonical target is wrong, which you can spot by checking whether the URL Inspection tool’s “Google-selected canonical” matches what you intended.
Excluded by ‘noindex’ tag
The page carries a noindex directive and was honoured.
Only investigate if: you did not intend it. Which brings us to the single most important check in this entire article.
Group 2 — Genuine technical faults
Server error (5xx)
The server returned an error when Googlebot requested the page.
Diagnose: Pull server logs filtered by Googlebot user agent for the affected URLs. Separate genuine application errors from rate limiting, WAF blocks and CDN origin timeouts — the remedies are entirely different.
Common cause: bot mitigation blocking Googlebot by user-agent string. Verify legitimate crawlers by reverse DNS rather than by user agent, and allow them explicitly.
Blocked by robots.txt
The URL is disallowed. If you also want it indexed, this is a contradiction.
Remember: robots.txt controls crawling, not indexing. A blocked URL can still appear in results as a bare URL with no snippet, because the search engine knows it exists from links but cannot fetch it to see the noindex you thought was handling it.
Soft 404
The URL returns HTTP 200 but the content looks like an error or empty page.
Common causes: an out-of-stock product page rendering an empty template, an internal search results page with zero results, or a 404 template that mistakenly returns 200.
Fix: return a real 404 or 410 for genuinely missing content. For out-of-stock products with lasting search demand, keep the page 200 with substantive content — specifications, alternatives, restock information — rather than an empty shell.
Redirect error
A redirect loop, an excessive chain, or a redirect to a URL that errors. Trace the full chain and collapse it to one hop.
Group 3 — The quality judgements
These two reasons cause the most confusion because they sound technical and are not. Resubmitting these URLs achieves nothing, and the Validate Fix button will simply re-confirm the same decision.
Discovered – currently not indexed
Google knows the URL exists. It has not crawled it yet, or has deprioritised crawling it.
This means: we found this, and based on what we know about your site, we are not convinced it is worth the crawl budget right now.
What it actually indicates, in rough order of likelihood:
- Insufficient internal linking. The page is deep, orphaned, or linked only from low-value pages. Your own site is signalling that it is unimportant.
- Crawl budget exhaustion. The crawler is spending its allocation on faceted URL permutations and never reaching new content.
- Site-level quality signals. A large volume of thin pages has lowered the priority assigned to new URLs from this domain.
Remedy: link the page from a relevant hub with descriptive anchor text, reduce click depth, and clean up combinatorial crawl waste. Do not resubmit — you are not being throttled by a queue, you are being deprioritised by a judgement.
Crawled – currently not indexed
Google crawled the page, evaluated the content, and chose not to index it.
This is the hardest one to accept because there is no technical fault to point at. The page is reachable, indexable, and correctly configured. It was simply assessed and declined.
What it actually indicates:
- The content is substantially similar to something already indexed, from you or elsewhere
- The content is thin relative to what the query set demands
- The page is templated with minimal unique substance — the classic case being location pages differing only by place name
- The site as a whole has trained the crawler to expect low value
Remedy, in order of effectiveness:
- Consolidate. If five thin pages cover one topic, merge them into one strong page and 301 the rest. This is usually the right answer and usually resisted, because deleting pages feels like going backwards.
- Add genuinely unique information. Original data, real pricing, actual photographs, specific constraints. Not more words — more information.
- Improve internal linking to demonstrate the page matters to you.
- Wait for a crawl cycle. Index decisions are re-evaluated when the page is recrawled, which follows your own change, not your submission.
Duplicate, Google chose different canonical than user
You declared a canonical. Google disagreed and picked another URL.
This is genuinely useful information: your other signals contradict your declared canonical. The version Google chose probably has stronger internal links, more inbound links, or better content.
Remedy: decide which URL you actually want to be canonical, then align every signal behind it — internal links, sitemap inclusion, the canonical tag itself, and content strength. A canonical tag is a hint, and it loses to a preponderance of contrary evidence.
A triage sequence that works
- Export everything. Use the API rather than the interface export if you have more than 1,000 URLs per reason.
- Cross-reference against your sitemap. Any excluded URL in the sitemap is a contradiction. Start there.
- Cross-reference against impressions. Excluded URLs that previously earned impressions are your highest-value recoveries.
- Fix group 2 entirely. These are unambiguous faults with unambiguous remedies.
- For group 3, stop and think. Ask honestly whether each page deserves to be indexed. Often the answer is no, and consolidation is a better outcome than indexation.
- Re-inspect in four weeks. Index decisions follow crawl cycles. Checking daily tells you nothing and encourages bad decisions.
The one-sentence version
Excluded is not broken; sort the report into faults, intentional exclusions and quality judgements before touching anything — and never resubmit a URL that was crawled and declined, because the page has to change before the answer will.