SEO glossary
What is Index Coverage?
Learn what index coverage means—how much of your site Google has indexed versus excluded or unknown—and how to read Search Console coverage states and reason buckets.
Definition
Index coverage describes the extent to which a website's URLs are represented in a search engine's index, typically reported as indexed versus not-indexed populations with categorized exclusion reasons in tools like Google Search Console.
Index coverage: the indexed vs everything-else map
Index coverage is how SEO teams visualize what share of known URLs Google keeps in the index versus excludes, defers, or has not yet processed. The term comes from years of Search Console "coverage" reporting; today the same ideas live under Page indexing, but practitioners still say index coverage when they mean site-wide index health breakdowns.
Coverage is a population statistic—not a single URL verdict. It answers: of the URLs Google is aware of on our property, how many are indexed, and why are the rest not?
Coverage states at a glance
Modern Page indexing reports group URLs into familiar buckets:
| Coverage bucket | Plain meaning | Action type |
|---|---|---|
| Indexed | In the corpus; eligible for results | Monitor, protect |
| Not indexed | Known but not in indexed set | Diagnose by sub-reason |
| ↳ Excluded by noindex | Publisher blocked indexing | Verify intentional |
| ↳ Duplicate, Google chose different canonical | Consolidation | Fix canonical alignment |
| ↳ Duplicate without user-selected canonical | Ambiguous duplicates | Declare canonical |
| ↳ Crawled — currently not indexed | Quality or deferral | Content, links, uniqueness |
| ↳ Discovered — currently not indexed | Not crawled or queued | Discovery, crawl priority |
| ↳ Page with redirect | Redirect handling | Ensure target indexed |
| ↳ Soft 404 | Empty or unhelpful 200 | Fix template or 404 |
| ↳ Server error (5xx) | Fetch failures | Infrastructure |
| ↳ Blocked by robots.txt | Crawl prevented | robots policy |
| ↳ Not found (404) | Missing URL | Redirect or remove links |
Index coverage snapshot:
Indexed: 36,100 (72%)
Not indexed: 14,100 (28%)
├─ Excluded by noindex: 6,400 (intentional facets)
├─ Crawled not indexed: 3,200 ← quality program target
├─ Discovered not indexed: 2,100
└─ Other reasons: 2,400
Reading coverage charts, not just totals
Healthy monitoring tracks shape, not only indexed count:
- Indexed trend line — slow growth on publishing sites; stable on mature catalogs
- Not-indexed composition — which reason buckets grow?
- Spikes correlated with deploys — template regressions show as sudden noindex waves
- Sample URLs per bucket — validate that labels match reality
A rising indexed count with exploding "crawled — currently not indexed" is a quality crisis, not a win.
Coverage vs crawl stats vs performance
| Report | Measures | Blind spots |
|---|---|---|
| Index coverage | Index membership outcomes | No ranking data |
| Crawl stats | Fetch volume, response times | Not indexing decisions |
| Performance | Impressions, clicks, position | Only URLs with impressions |
Funnel alignment:
Crawled URLs (logs) 41,800
Indexed (coverage) 36,100
URLs with impressions 8,400
The gap between indexed and impressions is ranking and demand, not coverage failure.
Building a coverage reconciliation model
Enterprise teams reconcile three populations:
| Population | Source |
|---|---|
| Intended indexable inventory | SEO + product URL strategy |
| Crawled population | Logs, crawl tools |
| Coverage population | Search Console export |
Reconciliation example:
Strategic indexable: 38,000
GSC indexed: 36,100 (95% of target — good)
GSC not indexed: 14,100
Of which intentional: 8,500 (facets, noindex)
Of which fixable: 5,600 ← backlog
Never seen in GSC: 2,200 (discovery gap)
Coverage reports only include URLs Google knows about. Unknown orphans will not appear until discovered.
Coverage after migrations
Migrations produce characteristic coverage signatures:
| Phase | Coverage pattern |
|---|---|
| Pre-launch | Old URLs indexed; new URLs discovered-not-indexed |
| Launch week | Redirect bucket spikes; duplicate canonical noise |
| Stabilization | Indexed count shifts to new URL patterns |
| Failure mode | Indexed cliff + 404 bucket growth |
Track indexed URL samples daily during migrations—aggregate charts lag painful URL-level failures.
Improving coverage by reason bucket
Align playbooks to Google's categories:
Crawled — currently not indexed
- Strengthen unique body content on template
- Improve internal links from indexed hubs
- Consolidate near-duplicates
- Resolve soft 404 patterns
Discovered — currently not indexed
- Add sitemap entries and internal links
- Fix crawl budget waste on traps
- Request indexing for critical URLs after fixes
Duplicate without user-selected canonical
- Implement consistent
rel=canonical - Align redirects with canonical targets
- Remove conflicting signals in hreflang
Excluded by noindex
- Confirm intentional; remove accidental staging directives
Coverage sampling and API exports
Weekly exports power coverage dashboards:
columns: url, coverage_state, last_crawl, canonical, referring_urls
filter: coverage_state != 'Indexed' AND revenue_tier = 'A'
sort: revenue DESC
→ prioritized fix list for engineering
Automate alerts when indexed count drops >5% week-over-week on /product/ paths.
Coverage misconceptions
- Myth: "100% coverage is the goal." Reality: exclude junk by design; coverage should match strategy.
- Myth: "Coverage fixes rankings." Reality: coverage enables eligibility; ranking is separate.
- Myth: "Removing URLs from sitemap improves coverage %." Reality: math games; fix real exclusions.
- Myth: "Coverage updates in real time." Reality: GSC lag; confirm critical URLs with Inspection.
Coverage for executives and multi-property sites
Each Search Console property reports coverage independently—www vs bare domain, regional subfolders, or legacy HTTP properties can split the picture. Prefer domain-level verification where possible.
For stakeholders, translate buckets plainly: Indexed = pages Google can show; Excluded by noindex = pages you asked to hide; Crawled not indexed = quality backlog. Pair site-wide % with revenue-weighted coverage on tier-A URLs.
How Crawlox helps
Crawlox closes the gap between your URL inventory and what Search Console coverage can explain—surfacing indexability issues, orphan pages, and duplicate templates before they inflate "crawled — currently not indexed" buckets. Export Crawlox crawl data alongside GSC coverage exports to build reconciliation dashboards that show not just how much is indexed, but which fixable URLs are still missing from coverage.
Related terms
Frequently asked questions
Is index coverage the same as the old Google Index Coverage report?
Google rebranded and refined reporting under Page indexing in Search Console. Practitioners still say index coverage for the indexed vs not-indexed breakdown and reason buckets—same conceptual job, updated UI labels.
Why does my indexed count not match my sitemap URL count?
Sitemaps list URLs you submit for discovery. Coverage counts URLs Google knows about with indexing outcomes. Sitemaps may include non-indexable URLs; Google may index URLs not in sitemaps via links.
What is a healthy index coverage ratio?
Depends on site type. Compare indexed URLs to your strategic inventory—not every CMS row should be indexed. Sudden ratio shifts matter more than absolute percentages.
Can coverage be good while traffic is bad?
Yes. Coverage measures corpus membership, not rankings or demand. Full coverage of irrelevant pages still yields zero impressions.
How often does index coverage data update?
Search Console aggregates with delay—often days behind real-time crawl. Use URL Inspection for single-URL freshness; use coverage reports for trends.
References
Explore authoritative guidance and frameworks related to index coverage.
Explore every glossary definition
Return to the glossary to search by term, alias, starting letter, or category.