Indexing at Scale
Getting large or programmatic URL sets — thousands to millions of pages — reliably crawled and indexed. Crawl budget as the binding constraint, sitemap segmentation as a monitoring tool, log files as ground truth, and the quality gate that decides whether templated pages get kept.
1 evidence signal on this page
- Related live toolGoogle Index Checker
Indexing at scale is getting thousands-to-millions of URLs reliably crawled and indexed, instead of fixing indexing one page at a time. The pipeline is discovery → crawl → index, and the crux is that crawled is not the same as indexed. 'Discovered - currently not indexed' is mostly a crawl-capacity/priority problem; 'Crawled - currently not indexed' is mostly a quality/duplication verdict — and they need different fixes. Crawl budget is the binding constraint but it's necessary-not-sufficient: a page still has to earn its place. Segment your sitemaps by section/template/status and submit them via a sitemap index so you can filter the Page Indexing report per segment and see which URL pattern is failing. Use log files as ground truth for the crawl side. The failure mode that separates scale from small sites: one thin template can drag down crawl demand and indexing willingness for the whole domain — Google's stated primary lever is quality. Don't chase a benchmark indexing rate; chase the trend after you fix something.
TL;DR — IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. at scale is about getting a huge number of pages into Google — think thousands to millions, usually made from a template (product pages, location pages, listings). On a small site, getting indexed mostly just happens. At scale it doesn’t, and the reason is almost always one of two things: Google never got around to crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. the page, or it crawled it and decided the page wasn’t worth keeping.
What “indexing at scale” means
When you have a few hundred pages, indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. is barely a topic. You publish, Google finds the pages through your links and sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., crawls them, and indexes them. Done.
When you have a few hundred thousand pages — all generated from the same template with different data plugged in — that easy path breaks. You’ll publish a big new section, watch Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results., and see the indexed count creep up to a fraction of what you published and then just… stop. That gap is the whole problem this article is about.
The one distinction that explains everything
There are two different words that people mush together, and keeping them apart solves half your confusion:
- Crawled means GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. came and downloaded the page.
- Indexed means Google processed it into the index, making it eligible to show in search. Evidence for this claim Google Search uses crawling, indexing, and serving stages, and not every page makes it through each stage. Scope: Google's public Search processing model. Confidence: high · Verified: Google: How Search works
A page can be crawled and never indexed. On a small site that’s a curiosity. At scale it’s the main event — and Google’s reports even tell you which of the two is happening:
- “Discovered — currently not indexed” means Google knows the URL exists (from your sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. or a link) but hasn’t crawled it yet. Google says this often happens when crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. was expected to overload the site, but the status alone does not prove one root cause. Evidence for this claim Google defines Discovered - currently not indexed as found but not yet crawled, often because crawling was expected to overload the site. Scope: Page Indexing report status; the label alone does not prove every contributing cause. Confidence: high · Verified: Google: Page indexing report
- “Crawled — currently not indexed” means Google did fetch the page and chose not to keep it. That’s usually a quality problem — the page didn’t earn its spot.
Those two need completely different fixes. The first is “help Google crawl more of my site.” The second is “give Google a reason to keep what it finds.” Reaching for the wrong fix is the most common mistake at scale.
The three things that actually move the needle
- Crawl budgetThe number of URLs an engine will crawl in a timeframe.. On a big site, Google won’t crawl everything constantly — it rations. Waste (duplicate URLs, endless filter combinations, session IDs) burns that ration on junk instead of your real pages. Cleaning up waste is how you free crawling for the pages that matter. (This is a big topic on its own — see crawl budgetThe number of URLs an engine will crawl in a timeframe..)
- Sitemaps you can actually read. Instead of one giant sitemap, split it by section (products, categories, locations) so you can check each one separately in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance.. When indexing stalls, this tells you which section is failing instead of one useless overall number.
- Quality at the template level. If a whole batch of your templated pages is thin or near-identical, Google can decide the template isn’t worth indexing — and it can even lower how much of your whole site it bothers with. This is the part people underestimate the most.
The thing most people get wrong
Getting a page crawled more often does not make it rank, and re-submitting a page over and over does not force Google to keep it. If Google crawled your programmatic pagesProgrammatic SEO (pSEO) is the practice of generating many pages from a single template plus a data source to target large sets of similar queries. It's powerful when each page genuinely answers its query with unique data, and spam when it just stamps a thin template across a shallow dataset. and left them out, the fix is almost never technical — it’s the content. Google has said, repeatedly and plainly, that quality is the biggest driver of what gets indexed. Pinging, re-submitting, and hammering the URL Inspection “Request indexing” button won’t fix a thin-template problem.
Want the operational version — how crawl budget actually works at scale, how to segment sitemaps as a diagnostic, reading log files, and how one bad template can sink a whole domain? Switch to the Advanced tab.
TL;DR — IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. at scale is getting thousands-to-millions of URLs reliably through discovery → crawl → index, instead of troubleshooting one page at a time. Crawl budgetThe number of URLs an engine will crawl in a timeframe. is the binding constraint but it’s necessary-not-sufficient — being crawled doesn’t guarantee being kept. Split “Discovered — currently not indexed” (capacity/priority) from “Crawled — currently not indexed” (quality/duplication); they have different fixes. Segment sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. by section/template/status and submit via a sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file. so you can filter the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. per segment and see which pattern is failing. Log filesLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. are the ground truth GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’s sampled numbers can’t give you. The failure mode that defines scale: one thin/near-duplicateThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. template can depress crawl demandCrawl demand is the 'want' side of crawl budget — how much a search engine wants to crawl a site or URL, driven by popularity, staleness, and perceived inventory (plus temporary spikes from site moves). It's distinct from crawl rate/capacity, the 'can' side. and indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. willingness for the whole domain — Google’s stated primary lever is quality. Don’t chase a benchmark indexing rate; chase the trend of a segment after you fix its cause.
Why “at scale” is a different problem
Ordinary indexing troubleshooting is a page-level investigation: one URL isn’t indexed, you figure out why, you fix it. That approach doesn’t survive contact with a programmatic site. When you’ve generated 500,000 templated URLs from a database, a “not indexed” result isn’t 500,000 separate problems — it’s usually one problem (the template) repeated 500,000 times. The unit of work shifts from the URL to the URL pattern.
That shift changes everything downstream. You stop asking “why isn’t this page indexed” and start asking “which of my templates is failing, and is it a crawl problem or a quality problem.” The rest of this article is a way to answer that at scale.
The literal phrase “indexing at scaleIndexing at scale is the set of practices — sitemap segmentation, crawl-budget management, log-file and Page Indexing monitoring, and quality gating — used to get large or programmatic URL sets (thousands to millions of pages) reliably crawled and indexed, instead of managing indexing page by page.” isn’t owned by any single SEO explainer — most of the top results for it are database/search-engineering content. But the practitioner need is real and validated: there are monitoring products (like Indexing Insight) built specifically for the 100k-to-1M+ page segment, tracking why URLs fail to index. This piece is the operational synthesis those tools assume you already understand.
Crawled vs. indexed — the distinction everything depends on
Google is explicit that search runs in stages and “not all pages make it through each stage.” Evidence for this claim Google Search uses crawling, indexing, and serving stages, and not every page makes it through each stage. Scope: Google's public Search processing model. Confidence: high · Verified: Google: How Search works Simplified, the pipeline is:
Discovered → Crawled → Indexed.
- Discovered — Google knows the URL exists (from a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. or a link) but hasn’t fetched it yet.
- Crawled — GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. fetched the URL and got a response.
- Indexed — Google decided to add (some version of) that content to its index, making it eligible to appear in results.
The two failure states that matter most at scale map directly onto this pipeline, and they are the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason.’s two most-argued-about buckets:
- “Discovered — currently not indexed” — the URL never made it past discovery to a crawl. Evidence for this claim Google defines Discovered - currently not indexed as found but not yet crawled, often because crawling was expected to overload the site. Scope: Page Indexing report status; the label alone does not prove every contributing cause. Confidence: high · Verified: Google: Page indexing report This can reflect a crawl-capacity / priority issue: server strain, low perceived value, thin internal linkingLinks between pages on the same site. into the section, or crawl waste elsewhere starving the section. The fix lives on the crawl side — internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemap inclusion, server performance, and removing waste.
- “Crawled — currently not indexed” — the URL was fetched and not kept. This is predominantly a quality / duplication verdict. Gary Illyes has laid out the causes bluntly (see the Quotes tab): duplicate elimination against a version already in the index with better signals, general site quality, and site errors that serve the same page to many URLs. The fix lives on the content side — improve or consolidate; a stronger tag or another re-submit won’t move it.
Conflating these two is the single most expensive mistake at scale. Do a content-quality pass when the real problem is thin internal linking and you burn a sprint; ping IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. repeatedly when the real problem is a duplicate template and you accomplish nothing. The Page Indexing report exists to tell you which bucket you’re in — reading it correctly is the whole skill, and it’s covered in depth in the Page Indexing (Index Coverage) report deep dive.
Crawl budget is the binding constraint — but it’s not sufficient
You can’t index a page you never crawl, so crawl budgetThe number of URLs an engine will crawl in a timeframe. is the floor. Google defines it as “the set of URLs that Google can and wants to crawl” — crawl capacity (what your server can take) times crawl demand (how much Google wants to, driven by popularity and staleness). I’ve written the full mechanics up in Ahrefs’ crawl-budget guide, and the on-site crawl budget article covers capacity vs. demand in beginner-friendly terms — I’ll assume that background and go straight to the at-scale implications.
Two things to keep straight from the start:
It’s not a ranking lever. As I put it in that Ahrefs guide: “The rate of crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. isn’t going to impact your rankings.” Crawl-budget work gets pages indexed, it doesn’t move positions. Don’t sell it internally as a ranking hack — you’ll be wrong and you’ll lose credibility.
Most sites genuinely don’t need to think about it. Google scopes its own large-site crawl-budget guide to “Large sites (1 million+ unique pages) with content that changes moderately often (once a week)” and “Medium or larger sites (10,000+ unique pages) with very rapidly changing content (daily).” And it says outright: “If your site doesn’t have a large number of pages that change rapidly, or if your pages seem to be crawled the same day that they are published, you don’t need to read this guide.” Treat those numbers as Google’s rough “who should care” markers, not hard thresholds — don’t publish “1 million pages” as a cutoff.
What wastes crawl budget on programmatic sites
The at-scale waste is almost always self-inflicted URL multiplication: faceted
navigation generating every filter combination, tracking and sort parameters,
session IDs, HTTP/HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' and www/non-www variants, and infinite spaces (calendars,
relative-link explosions — see spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content.). Roughly 60% of the web is duplicate
content, much of it these boring technical variants, and every duplicate URL is a
fetch Google spent on a copy instead of a page you actually want indexed.
Consolidate duplicates (canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.), block genuinely low-value spaces in
robots.txt, return real 404/410 for gone pages, and keep redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency.
short. On a big site, freeing crawl budget is mostly about removing waste, not
asking Google to crawl more.
Sitemap segmentation as a monitoring strategy, not just a size fix
Google’s documentation frames splitting sitemaps as a size-limit thing: “If you have a sitemap that exceeds the size limits, you’ll need to split up your large sitemap into multiple sitemaps such that each new sitemap is below the size limit.” Each sitemap caps at 50,000 URLs, and “the referenced sitemaps must be hosted on the same site as your sitemap index file” and “must be in the same directory as the sitemap index file, or lower in the site hierarchy.”
That’s true, but the far more valuable use of segmentation is diagnosis. Here’s the synthesis Google doesn’t spell out in one place: the Page Indexing report has a sitemap filter — you can view all known pages, all submitted pages, unsubmitted pages only, or a specific submitted sitemap. Combine those two features and one aggregate “X% indexed” number becomes a per-segment breakdown.
Concretely: instead of one sitemap.xml, ship a sitemap index that references
sitemap-products.xml, sitemap-categories.xml, sitemap-locations.xml,
sitemap-blog.xml, and so on — and submit each. Now you can filter the Page
Indexing report to each sitemap independently and see indexed-vs-not-indexed per
section. Instead of “68% of the site is indexed” (useless — which 32% is missing?)
you get “products are 91% indexed, locations are 12% indexed” — and now you know
exactly which template to investigate.
You can slice sitemaps three useful ways, and each reveals something different:
- By section / template (
products,categories,locations) — isolates which URL pattern is failing. The most common and most useful cut. - By date / cohort (
sitemap-products-2026-07.xml) — shows how fast a newly published batch gets picked up over time, separate from your established inventory. - By status (a
sitemap-priority.xmlof only your most important URLs) — a validation trick straight from Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. Help: submit a sitemap of only the pages you care most about and filter the report to it to check a fix faster, without waiting on the whole site.
One caveat worth stating: a URL is treated as submitted by a sitemap even if Google also found it another way, so these segments overlap discovery from links — the filter is about attribution to a sitemap, not exclusivity.
Log files: the ground truth GSC can’t give you
The Page Indexing report is sampled and aggregated — its numbers are rounded and it doesn’t show you every request. Your raw server logs do. For a site big enough to need this article, log-file analysis is usually the only way to see what GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. and BingbotBingbot is Microsoft Bing's primary web crawler — the bot that discovers, fetches, and renders pages to build the Bing index. That index also powers Yahoo, DuckDuckGo, Ecosia, and Microsoft Copilot, so Bingbot's reach is far wider than Bing's own search-market share. actually fetched: which URL patterns are eating crawl budget, which important sections bots rarely reach, and where an infinite parameter space is quietly absorbing thousands of fetches that never appear as a tidy line in GSC. If the Page Indexing report tells you what Google decided, logs tell you what Google did — and at scale you need both. (Full treatment in the log file analysis deep dive.)
The quality gate — why “just get it crawled” isn’t enough
This is the part that most differentiates scale from ordinary indexing work, and it’s the reason crawl-budget engineering alone doesn’t fix stalled indexing.
Google’s stated primary lever isn’t technical — it’s quality. Gary Illyes, on Google’s Search Off the Record podcast: “The most important is quality. It’s always quality. And I think externally, people don’t necessarily want to believe it, but the quality, that’s the biggest driver for most of the indexing and crawling decisions that we make.” That single line undercuts the whole “indexing problems are robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.-and-sitemap problems” mindset.
At scale this compounds in a way it can’t on a small site. Google doesn’t evaluate each low-value programmatic page in a vacuum. A large cluster of thin or near-duplicate templated pages can depress Google’s overall quality perception of the site and reduce its willingness to crawl and index broadly — not just for the offending URLs, but for the whole domain. So one bad template is not a local problem; it’s a tax on everything. This is exactly the pattern the thin contentThin content is web content that provides little or no value to users. Google's spam policies name it 'thin content with little or no added value' — and it's about value per page, not word count. and scaled content abuseScaled content abuse is Google's spam policy (introduced March 2024) for generating many low-value pages primarily to manipulate search rankings rather than help users — and it applies no matter how the content is created: AI, automation, or human writers. articles cover: the trigger for trouble isn’t volume — large, genuinely useful programmatic sites are fine — it’s low value at volume. Programmatic SEOProgrammatic SEO (pSEO) is the practice of generating many pages from a single template plus a data source to target large sets of similar queries. It's powerful when each page genuinely answers its query with unique data, and spam when it just stamps a thin template across a shallow dataset. isn’t penalized for being programmatic; it gets suppressed when the marginal page has nothing to offer.
The spring-2026 wave of mass-deindexingDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. reports fits this frame. Google’s John Mueller, responding on Bluesky, characterized the movement of pages into not-indexed status as unremarkable rather than a special event (Search Engine Journal coverage). Whether or not that reassured anyone, it’s consistent with the throughline: Google frames indexing tightening through a quality lens, and “not indexed” at scale is more often a verdict than a bug.
These three sources update on different schedules. A mismatch creates a review queue; it does not prove Google's current index state without URL Inspection.
Compare the URL sets with my free Indexation Reconciler Free
- Load the intended sitemap URLs, a current crawl export, and a same-scope GSC export.
- Prioritize URLs where current indexability conflicts with sitemap or exported indexed state.
- Verify representative mismatches in URL Inspection, fix the source signal, and rerun on the same cadence.
URL A is in the sitemap, currently indexable, and indexed in the GSC export, so the action is monitor. URL B is in the sitemap and indexed in the export but currently noindex, so the action is to review the new blocking directive and whether the export is stale.
A practical workflow for indexing at scale
Put the pieces in operational order. The whole point is to work at the template level, not the URL level:
- Segment sitemaps by section/template (and add date-cohort and priority-subset sitemaps), submitted via a sitemap index.
- Monitor each segment in the Page Indexing report — track indexed share per sitemap, not one site-wide number.
- Triage by cause. For a failing segment, split the not-indexed URLs: a wall of “Discovered — currently not indexed” points at crawl capacity/priority; a wall of “Crawled — currently not indexed” points at quality/duplication.
- Fix the matching side. Capacity problem → internal links into the section, sitemap inclusion, server performance, and remove crawl waste elsewhere. Quality problem → improve or consolidate the template, or deliberately keep the truly low-value variants out (noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed./canonical/robots) so they stop dragging the set down.
- Confirm with logs. Verify bots are actually reaching the section and not spending the budget on parameter junk.
- Watch the trend, not a number. After a fix, the question is whether that segment’s indexed share is climbing — not whether it hit some universal target (there isn’t one).
Don’t invent an indexing-rate benchmark
There is no “you should be X% indexed” number, and repeating third-party figures as if they were Google-sanctioned targets is a trap. Every site’s ratio depends on the uniqueness, value, and demand of its pages. The actionable signal is the trend of a specific segment after you change something — full stop. If someone hands you a target percentage, ask where it came from; it’s almost certainly someone else’s illustrative number, not a rate Google promises.
IndexNow and push-based indexing — a supplement, not a strategy
Push notification has its place. IndexNow (backed by Bing/Microsoft, and adopted by Yandex, Naver, and others — Google does not use it for general pages) lets you tell engines about changes instead of waiting for a re-crawl. Bing’s framing: “Whether you’re adding, updating, or deleting content, IndexNow notifies multiple search engines of your content changes as soon as they happen.”
But be clear about what it does and doesn’t solve. IndexNow accelerates the freshness half of the problem — getting new/changed/deleted URLs seen faster. It does nothing for the crawl-budget and quality-gating half, which is Google’s larger share of the problem for most readers here. And it carries a daily per-domain URL quota (commonly cited around 10,000), which is far too small to bulk-notify a multi-million-URL catalog — so it can’t replace sitemap-based discovery at true scale. Batch and queue submissions rather than firing everything at once on a bulk republish. Treat IndexNow as an “also do this,” not a plan. (See the on-site IndexNow and Google Indexing APIThe Google Indexing API lets site owners notify Google directly when a URL is added, updated, or removed. Google officially supports it only for pages with JobPosting or BroadcastEvent (livestream) structured data — not for general content. coverage for what each is actually for.)
Common myths about indexing at scale
- “Getting more pages crawled will improve rankings.” No. Crawling is a prerequisite for indexing, indexing for ranking — but crawling more ≠ ranking higher. “The rate of crawling isn’t going to impact your rankings.”
- “If a page isn’t indexed, it’s a technical bug.” At scale, usually not. “Crawled — currently not indexed” is most often a quality/duplication verdict, and re-submitting or pinging it won’t help.
- “Crawl budget matters for every site.” No — it’s a large / rapidly-changing site concern, per Google’s own scoping. Most sites never need to manage it.
- “More indexed pages = better SEO.” No — this is the index bloatAn SEO term for when a search engine has indexed a lot of low-value, thin, or duplicate URLs that don't serve search demand. It's a quality and crawl-efficiency problem, not a penalty. myth in reverse. The goal is more valuable pages indexed, which sometimes means deliberately keeping low-value variants out.
- “Submitting a sitemap forces indexing.” No. A sitemap is a discovery and priority hint; Google still evaluates each URL independently.
- “Programmatic SEO is inherently penalized.” No. Volume isn’t the trigger; low value at volume with manipulative intent is (see scaled content abuse).
- “A high ‘Discovered — not indexed’ count always means a quality problem.” No — that bucket skews toward crawl priority/capacity; the quality signal is “Crawled — not indexed.” Fixing the wrong one wastes the sprint.
Where this sits
Indexing at scale is the operational counterpart to a few neighbors: crawl budget is the mechanism underneath it, the Page Indexing report and log file analysis are how you see it, and thin content / scaled content abuse are what happens if you get the quality gate wrong. It’s also the mirror image of index bloat — that’s “too many low-value pages got in,” this is “not enough valuable pages are getting in,” and the fixes overlap because both are really about concentrating index inclusion on pages that earn it. For the broader discipline of building templated pages that deserve to rank, see the Programmatic SEOProgrammatic SEO (pSEO) is the practice of generating many pages from a single template plus a data source to target large sets of similar queries. It's powerful when each page genuinely answers its query with unique data, and spam when it just stamps a thin template across a shallow dataset. pillar; for the org side of doing this on a giant site, see Enterprise SEOEnterprise SEO is the practice of doing SEO at scale — for large, complex sites (often tens of thousands to millions of pages) across multiple teams, CMSs, and stakeholders. It uses the same ranking factors as any site; what changes is the scale, the technical debt, and the organizational coordination..
AI summary
A condensed take on the Advanced version:
- IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. at scale = getting thousands-to-millions of URLs reliably through discovery → crawl → index, at the template level rather than one page at a time. On a programmatic site, “not indexed” is usually one problem (a template) repeated, not thousands of separate problems.
- Crawled ≠ indexed. “Discovered — currently not indexed” is a crawl capacity/priority problem (fix: internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. inclusion, server speed, remove crawl waste). “Crawled — currently not indexed” is a quality/duplication verdict (fix: improve or consolidate content). Reaching for the wrong fix is the costliest mistake.
- Crawl budgetThe number of URLs an engine will crawl in a timeframe. is the binding constraint but necessary-not-sufficient. Google: “the set of URLs that Google can and wants to crawl.” It’s not a ranking lever — “the rate of crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. isn’t going to impact your rankings.” Most sites don’t need to manage it; Google scopes it to ~1M+ pages (weekly changes) or ~10k+ (daily). Free budget by removing waste (duplicates, parameters, faceted nav, spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content.).
- Segment sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. as a monitoring tool, not just a size fix. Split by section/template/date/status, submit via a sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file., then filter the Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. report per sitemap to see which pattern is failing — turning one useless aggregate into a per-segment breakdown.
- Log filesLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. are ground truth the sampled Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. can’t give you — what bots actually crawled and where budget leaks.
- Quality is Google’s stated primary lever. Illyes: “The most important is quality. It’s always quality… the biggest driver for most of the indexing and crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. decisions.” At scale, one thin/near-duplicate template can depress crawl demand and indexing willingness for the whole domain — the thin contentThin content is web content that provides little or no value to users. Google's spam policies name it 'thin content with little or no added value' — and it's about value per page, not word count. / scaled content abuseScaled content abuse is Google's spam policy (introduced March 2024) for generating many low-value pages primarily to manipulate search rankings rather than help users — and it applies no matter how the content is created: AI, automation, or human writers. failure mode.
- Don’t chase a benchmark indexing rate; chase the trend of a segment after you fix its cause.
- IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. is a freshness supplement, not a scale strategy — daily per-domain quota (~10k) can’t bulk-notify huge catalogs, and Google doesn’t use it for general pages.
Official documentation
Primary-source documentation that bears on getting large URL sets indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..
- Optimize your crawl budget (Google Search Central; formerly titled “Large site owner’s guide to managing crawl budgetThe number of URLs an engine will crawl in a timeframe.”) — the one official page written for scale: crawl capacity + demand, who should care, and the URL-hygiene levers that protect your budget.
- Manage your sitemaps with sitemap index files — splitting large sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., the 50,000-URL cap, and the same-site / same-directory hosting rules for a sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file..
- Page indexing report (Search Console Help) — the not-indexed reason taxonomy and the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. filter that makes per-segment monitoring possible.
- In-Depth Guide to How Google Search Works — the crawl → index → serve pipeline and “not all pages make it through each stage.”
- Spam policies for Google Web Search — the scaled-content-abuse policy that defines the quality-at-volume line for programmatic pagesProgrammatic SEO (pSEO) is the practice of generating many pages from a single template plus a data source to target large sets of similar queries. It's powerful when each page genuinely answers its query with unique data, and spam when it just stamps a thin template across a shallow dataset..
Bing / Microsoft
- IndexNow / indexnow.org — the push protocol for signaling new/changed/deleted URLs; a freshness supplement to sitemaps, not a bulk-discovery replacement.
- Keeping Content Discoverable with Sitemaps in AI-Powered Search (Bing WebmasterMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. Blog, July 2025) — Bing’s position on sitemaps + IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. at scale.
Quotes from the source
On-the-record statements from Google and Bing. Each link is a deep link that jumps to the quoted passage on the source page where the anchor is supported.
Google — quality is the primary driver of indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.
- “The most important is quality. It’s always quality. And I think externally, people don’t necessarily want to believe it, but the quality, that’s the biggest driver for most of the indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. decisions that we make.” — Gary Illyes, Google, Search Off the Record (via Search Engine Journal). Read the coverage
Google — crawl budgetThe number of URLs an engine will crawl in a timeframe., and who needs it
- “Google defines a site’s crawl budgetThe number of URLs an engine will crawl in a timeframe. as the set of URLs that Google can and wants to crawl.” Jump to quote
- “If your site doesn’t have a large number of pages that change rapidly, or if your pages seem to be crawled the same day that they are published, you don’t need to read this guide.” Jump to quote
Google — splitting sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. at scale
- “If you have a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. that exceeds the size limits, you’ll need to split up your large sitemap into multiple sitemaps such that each new sitemap is below the size limit.” Jump to quote
- “The referenced sitemaps must be hosted on the same site as your sitemap index fileA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file..” Jump to quote
- “Sitemaps that are referenced in the sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file. file must be in the same directory as the sitemap index file, or lower in the site hierarchy.” Jump to quote
Bing / Microsoft — IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it.
- “Whether you’re adding, updating, or deleting content, IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. notifies multiple search engines of your content changes as soon as they happen.” — Microsoft Bing. Read on bing.com/indexnow
Patrick Stox — crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. is not a ranking lever
- “The rate of crawling isn’t going to impact your rankings.” — me, in my Ahrefs crawl-budget guide. Read the guide
Which path should I take?
A section isn’t getting indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Work the branches — the goal is to land on capacity vs. quality before you spend any effort, because the fixes don’t overlap.
Start: is the section even in a submitted sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. you can filter?
- No → Segment it first. Ship a
sitemap-<section>.xml(via your sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. index) and submit it. You can’t diagnose per-segment until you can filter the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. to it. Come back in a couple of weeks with data. - Yes → Filter the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. to that sitemap and look at the dominant not-indexed reason. ↓
What’s the dominant reason for the failing segment?
-
Mostly “Discovered — currently not indexed” → Capacity / priority problem. Google knows the URLs but isn’t crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. them.
- Are you wasting crawl budgetThe number of URLs an engine will crawl in a timeframe. elsewhere (parameters, facets, spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content., duplicates)? → Remove the waste first — that’s usually the highest-leverage fix. Confirm in log filesLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened..
- Is the section thinly linked internally? → Add internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. into it from strong pages; make sure it’s not buried deep.
- Is the server slow / throwing 5xx under crawl? → Fix server performance; a strained server makes Google back off.
-
Mostly “Crawled — currently not indexed” → Quality / duplication verdict. Google fetched the pages and chose not to keep them.
- Are the pages near-duplicates of each other or of a better existing version? → Consolidate (canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.) or differentiate the template.
- Is the template thin — little unique value per page? → Raise the value per page, or don’t publish the variants that can’t clear the bar (noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed./keep them out) so they stop dragging the set down.
- Is a bug serving the same page to many URLs? → Fix the bug — this alone can inflate the bucket.
-
Mostly “Duplicate” / “Alternate page with proper canonical” → Working as intended in most cases. These are canonicalized dupes, not a failure. Don’t chase them to 100%.
After any fix: watch that segment’s indexed share trend over the following weeks — not a target percentage, and not the site-wide number.
Separate question — “I just want it indexed faster.”
- New/changed URLs and you’re on Bing? → IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. helps with freshness.
- Multi-million-URL bulk push? → IndexNow’s daily quota won’t cover it; lean on segmented sitemaps and strong internal linkingLinks between pages on the same site.. There is no shortcut that bypasses the quality gate.
The mental models
1. Discovered → Crawled → IndexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. is a funnel, and each stage is a filter. Before changing anything, locate which stage a section is stuck at. “Discovered — not indexed” = stuck before the crawl (capacity). “Crawled — not indexed” = stuck after the crawl (quality). Same words, opposite fixes.
2. Crawl budgetThe number of URLs an engine will crawl in a timeframe. is necessary, not sufficient. You can’t index what you don’t crawl, so budget is the floor — but clearing the floor doesn’t get you indexed. Split your effort: half is “get Google to fetch the section” (capacity), half is “give Google a reason to keep it” (quality). Most teams over-invest in the first half.
3. The unit of work is the template, not the URL. At scale, one problem repeats across a whole pattern. Don’t debug 500,000 pages; find the one template that’s failing and fix it once. Segmented sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. exist to turn an aggregate number into a per-template diagnosis.
4. Segment to see. Aggregate hides. “68% indexed” is useless. “Products 91%, locations 12%” is a work order. Split sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. by section, then date, then priority-subset, and read the Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. report per segment. You can’t fix a pattern you can’t isolate.
5. Quality is a site-level signal, not a page-level one. Google doesn’t judge a thin template in a vacuum — a big enough cluster of low-value pages can lower crawl demandCrawl demand is the 'want' side of crawl budget — how much a search engine wants to crawl a site or URL, driven by popularity, staleness, and perceived inventory (plus temporary spikes from site moves). It's distinct from crawl rate/capacity, the 'can' side. and indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. willingness for the whole domain. That’s why “just noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. the junk” is sometimes the pro-indexing move: keeping bad pages out protects the good ones.
6. Trend, not target. There is no universal indexing rate to hit. The only honest KPI is whether a segment’s indexed share is climbing after you addressed its specific cause.
Indexing-at-scale checklist
A pass for a large or programmatic site where indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. counts are lagging published counts:
- Confirm you’re actually at scale. Near Google’s rough markers (~1M+ pages, or ~10k+ rapidly changing)? If not, crawl budgetThe number of URLs an engine will crawl in a timeframe. probably isn’t your problem — look at ordinary page-level indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. issues first.
- Segment sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. by section/template, submitted via a sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file. (each sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. ≤ 50,000 URLs; referenced sitemaps on the same site and in the same directory or lower).
- Add a date-cohort sitemap for newly published batches and a priority-subset sitemap of your most important URLs (for fast fix validation).
- Read the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. per sitemap — track indexed share by segment, not one site-wide number.
- For each failing segment, split the not-indexed reasons: “Discovered — not indexed” (capacity) vs. “Crawled — not indexed” (quality).
- Capacity fixes: internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. into the section, server performance, and remove crawl waste (parameters, faceted nav, spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content., duplicate variants).
- Quality fixes: improve/consolidate the template; deliberately keep truly low-value variants out (noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed./canonical/robots) so they stop dragging the set down.
- Pull server logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. to confirm bots reach the section and aren’t burning budget on junk URLs.
- Don’t chase a benchmark % — watch each segment’s indexed-share trend after a fix.
- IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. (Bing/others) wired up for new/changed/deleted URLs — as a freshness supplement, batched, not as your bulk-discovery strategy.
- Sanity-check for index bloatAn SEO term for when a search engine has indexed a lot of low-value, thin, or duplicate URLs that don't serve search demand. It's a quality and crawl-efficiency problem, not a penalty. too — you want fewer low-value pages indexed and more high-value ones; the fixes overlap.
Indexing-at-scale cheat sheet
The two failure states (memorize these)
| GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. status | It means | Root cause | Fix on the… |
|---|---|---|---|
| Discovered — currently not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. | Google knows the URL, hasn’t crawled it | Crawl capacityThe number of URLs an engine will crawl in a timeframe. / priority | crawl side — internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., server speed, remove waste, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. inclusion |
| Crawled — currently not indexed | Google fetched it, didn’t keep it | Quality / duplication | content side — improve/consolidate, or keep low-value variants out |
| Duplicate / Alternate w/ canonical | Consolidated to another URL | Usually working as intended | Verify the chosen canonical; don’t chase to 100% |
SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. segmentation cuts, and what each reveals
| Split by… | Example | Reveals |
|---|---|---|
| Section / template | sitemap-locations.xml | Which pattern is failing |
| Date / cohort | sitemap-products-2026-07.xml | How fast a new batch gets picked up |
| Priority subset | sitemap-priority.xml | Fast fix-validation on pages that matter |
Scale limits & facts
- Sitemap cap: 50,000 URLs each; sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file. references up to 50,000 sitemaps; referenced sitemaps on the same site, same directory or lower.
- Google’s “large site” markers: ~1M+ pages (weekly changes) or ~10k+ (daily) — rough guidance, not a hard cutoff.
- Crawl budgetThe number of URLs an engine will crawl in a timeframe. = capacity × demand; it is not a ranking lever.
- IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it.: Bing/Yandex/others, not Google; ~10k URLs/day per domain (commonly cited) — a freshness supplement, not bulk discovery.
- IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. benchmark: there isn’t one — track the trend, not a target %.
Do / don’t
- Do: segment → monitor → triage by cause → fix at the template level → watch trend.
- Don’t: re-submit/ping a thin page repeatedly, treat “Crawled — not indexed” as a technical bug, or read one aggregate indexed % as if it told you anything.
Indexing mistakes that multiply at scale
Treating every excluded URL as the same problem. “Discovered — currently not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.” points mainly to crawl capacityThe number of URLs an engine will crawl in a timeframe. or priority; “Crawled — currently not indexed” points mainly to quality or duplication. Applying one fix to both wastes time. Split the statuses first, then work on the crawl side or content side accordingly.
Repeatedly submitting a thin page. Another request cannot make a low-value template earn index inclusion. Improve or consolidate the template, or keep the weak variants out of the index instead of resubmitting them.
Reading one site-wide indexed percentage. An aggregate can hide a healthy product section and a failing location template. Segment sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. by section or template and compare each segment’s own trend.
Putting every URL in one giant sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.. A monolithic sitemap may aid discovery, but it removes the diagnostic cut you need in the Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason.. Use a sitemap indexA sitemap index is a sitemap of sitemaps — a single file that lists your other sitemap files instead of listing URLs directly. It's how large sites stay under the 50,000-URL / 50MB-per-sitemap limit while submitting just one file. with meaningful segments, plus date cohorts or a priority subset when useful.
Optimizing crawl budgetThe number of URLs an engine will crawl in a timeframe. before proving it is constrained. Most smaller sites have an ordinary page-quality or technical issue, not a large-site crawl-capacity problem. Check the failure status and logs before treating crawl budget as the cause.
Chasing a universal indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.-rate benchmark. There is no honest percentage that every site should hit. Establish a baseline per template and judge whether the segment moves after its specific cause is addressed.
Using IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. as the indexing strategy. It can notify participating engines about new, changed, or deleted URLs, but it does not replace useful pages, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemaps, or crawlable architecture. Use it as a freshness supplement.
Prompts for indexing-at-scale diagnosis
Separate capacity problems from quality problems
Paste a GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. export with URL, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. segment, and Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. reason. If available, add last GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. hit and status code from server logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened.. Expect a segment-level triage, not a page-by-page rewrite list.
Classify this large-site indexing export using this framework:
- “Discovered — currently not indexed” is primarily a crawl-capacity or priority lead.
- “Crawled — currently not indexed” is primarily a quality or duplication lead.
- Duplicate/alternate canonical states require checking whether consolidation is intended.
Group the rows by sitemap segment and template. For each group, report the dominant
status, evidence from the supplied data, the most likely side of the problem (discovery,
crawl, rendering, quality, duplication, or intended exclusion), and the next concrete
check. Use log evidence when provided. Do not claim a URL is indexed from on-page signals
alone, and do not invent a target indexing percentage.
[PASTE GSC EXPORT AND OPTIONAL LOG DATA]Turn a failed segment into a template-level action plan
Paste one segment’s status totals, representative HTML or crawl fields, internal-link depth, and log summary. Expect a prioritized diagnosis with stop conditions.
Diagnose why this sitemap segment is under-indexed. Work at the template level rather
than prescribing isolated URL submissions.
Return:
1. What the supplied evidence proves versus what remains unknown.
2. Whether the first investigation should focus on crawl capacity/priority or on
quality/duplication, with the evidence for that choice.
3. Up to five checks in order: sitemap eligibility, internal-link reachability, server
response/rendering, bot crawl allocation, and page-level distinct value.
4. The template-level fix suggested by each possible result.
5. A small priority subset or date cohort to monitor after the fix, using its own
pre-change trend as the baseline.
Do not recommend bulk resubmission as a substitute for fixing the cause. Do not treat
IndexNow as a Google indexing mechanism.
[PASTE SEGMENT DATA] Patrick's relevant free tools
- SEO Incident Simulator — Practice thirty deterministic technical SEO incident investigations — indexability, crawl controls, redirects, sitemaps, markup, caching, DNS, bot verification, rendering, hreflang, and faceted navigation — with clearly labeled fixture evidence and Find → Fix → Verify handoffs.
- Log File Analyzer — Drop a server access log and see crawl budget by bot and section, status-code waste, an AI-vs-search breakdown, and a spoofer report that names impostors faking a crawler user-agent. Parses nginx, Apache, IIS/W3C, and JSON logs entirely in your browser — nothing is uploaded.
Tools for isolating indexing failures
Start with the on-site tools
- Google Index Checker — checks observable blockers
such as status, redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.,
noindex, and canonical signals, then routes you to GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. for Google’s actual indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. decision. Use it on a representative sample, not as proof of an entire segment’s status. - XML Sitemap Validator — finds structural errors and warnings in a pasted, uploaded, or fetched sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.. Use it before interpreting a weak segment so malformed XML or ineligible URL entries do not contaminate the diagnosis.
- XML Sitemap Generator — creates a capped, robots-respecting sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. from a same-site crawl while separating noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed., off-canonical, failed, and uncertain URLs. It is useful for building a clean priority subset, not for replacing the site’s intentional segmented sitemap system.
Use search-engine and server evidence for the actual diagnosis
- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. — filter by submitted sitemap to compare template or section segments and split their not-indexed reasons.
- Google Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. URL Inspection — inspect representative URLs when you need Google’s reported crawl, canonical, and index state rather than an external proxy.
- Crawl StatsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root). and server access logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. — show whether GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. reaches the segment, how often, and whether crawl is being spent on parameters, faceted paths, or other waste.
- A full-site crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. — verifies status codes, canonicals, robots directives, render-visible content, link depth, and orphan candidates before you blame crawl budgetThe number of URLs an engine will crawl in a timeframe..
- Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. and IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. — monitor Bing’s view and send freshness notifications for changed URL sets; they supplement, rather than replace, discovery and quality work.
Resources worth your time
My related writing
- When Should You Worry About Crawl Budget? — my Ahrefs guide to the mechanism underneath this whole topic: crawl demandCrawl demand is the 'want' side of crawl budget — how much a search engine wants to crawl a site or URL, driven by popularity, staleness, and perceived inventory (plus temporary spikes from site moves). It's distinct from crawl rate/capacity, the 'can' side. × crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor., what wastes it, who actually needs to care, and why “the rate of crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. isn’t going to impact your rankings.”
- The Beginner’s Guide to Technical SEO — where crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. fit in the bigger picture.
- Meet the New Web Crawlers: AI Bots Are Closing in on Search Engine Bots — who’s actually fetching your pages now, from my Cloudflare Radar analysis.
My speaking
- How Search Works (SlideShare) — my walkthrough of crawling, renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and ranking, including the point that indexing draws on multiple inputs (sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., feeds, pings, the Indexing APIThe Google Indexing API lets site owners notify Google directly when a URL is added, updated, or removed. Google officially supports it only for pages with JobPosting or BroadcastEvent (livestream) structured data — not for general content.), not just crawling. (My standing disclaimer applies: “This is my understanding of systems… not going to be 100% complete or accurate.”)
Official
- Google — Optimize your crawl budget (formerly “Large site owner’s guide to managing crawl budgetThe number of URLs an engine will crawl in a timeframe.”) and Manage your sitemaps with sitemap index files.
- Google — Page indexing report (Search Console Help) — the not-indexed reason taxonomy and the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. filter.
- Bing — IndexNow — the push protocol for new/changed/deleted URLs.
From around the industry
- How to improve enterprise-level crawling and indexing efficiency (Search Engine Land, Olya Ianovskaia, 2023) — enterprise case studies on deduplication, content cleanup, and blocking infinite parameter spaces.
- Understanding and resolving ‘Discovered – currently not indexed’ (Search Engine Land, Dan Taylor, 2025) — a focused treatment of the capacity-side failure state.
- Programmatic SEO: Scale content, rankings & traffic fast (Search Engine Land) — the broader programmatic-SEO context, including why low-value variants should be kept out of the index.
- Indexation Triage for Enterprise Retail eCommerce (Go Fish Digital) — framing index inclusion as revenue governance: concentrating crawl and index on high-value templates.
- What Is Index Bloat? (Ahrefs) — the inverse problem (too many low-value pages getting in), whose fixes overlap with getting the right pages in.
- Google Confirms: Quality Is Foremost Factor In Search Indexing (Search Engine Journal) — the Illyes “it’s always quality” statement in context.
- Deindexing Reports Keep Coming, Google Sees Nothing Unusual (Search Engine Journal, June 2026) — the spring-2026 mass-deindexingDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. reports and Google’s quality-lens response.
Stats worth citing
- Google’s own “large site” markers. Google scopes crawl-budget concern to roughly 1M+ pages changing weekly, or 10k+ pages changing daily — framed as rough guidance for who should care, not a hard threshold. Source
- SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. scale limits. Each sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. caps at 50,000 URLs; a sitemap indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. can reference up to 50,000 sitemaps, all on the same site. Source
- ~60% of the web is duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. — much of it boring technical variants (HTTP/HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', www, trailing slashesA trailing slash is the forward slash (/) at the end of a URL — example.com/page/ versus example.com/page. Except at the bare root domain, the two versions are different URLs to search engines, so you pick one format and enforce it., parameters) that quietly drain crawl budgetThe number of URLs an engine will crawl in a timeframe. on large/faceted sites. From my Ahrefs crawl-budget guide. Source
- Quality is the biggest driver of indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed./crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. decisions, per Gary Illyes — not a technical checklist item. The single most load-bearing framing for indexing at scaleIndexing at scale is the set of practices — sitemap segmentation, crawl-budget management, log-file and Page Indexing monitoring, and quality gating — used to get large or programmatic URL sets (thousands to millions of pages) reliably crawled and indexed, instead of managing indexing page by page.. Coverage
Test yourself: Indexing at Scale
Five questions on getting large and programmatic URL sets indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Pick an answer for each, then check.
Indexing at Scale
Indexing at scale is the set of practices — sitemap segmentation, crawl-budget management, log-file and Page Indexing monitoring, and quality gating — used to get large or programmatic URL sets (thousands to millions of pages) reliably crawled and indexed, instead of managing indexing page by page.
Related: Crawl Budget, Indexing, Index Bloat
Indexing at Scale
IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. at scale is the practice of getting a large or programmatic set of URLs — typically thousands to millions of pages, often generated from templates or databases (ecommerce catalogs, listings, location pages, user-generated content) — crawled and added to a search engine’s index reliably, rather than relying on the ad hoc discovery that works fine for a site with a few hundred pages.
It sits at the intersection of three things: crawl budgetThe number of URLs an engine will crawl in a timeframe. (can and will the botA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. fetch the URL), index selection (will the engine bother keeping it), and content quality at volume (is the marginal page worth adding). The discipline is less about any single fix and more about building systems — segmented sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., monitoring by section, and quality gates — that make indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. problems visible and fixable at the URL-template level instead of one page at a time.
The central distinction is that crawled is not the same as indexed: a URL can be fetched and still not kept. At scale, a “not indexed” result stops being a one-off investigation and becomes a signal about a whole URL template — which is why the fixes are different from ordinary small-site indexing troubleshooting.
Related: Crawl Budget, Indexing, Index Bloat
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Revision history
Compare the published article with an archived editorial snapshot. Added and removed words are shown only after you open a comparison.
Updated Jul 19, 2026.
Editorial summary and recorded change details.Summary
Verified every cited source against the live page; updated the Google crawl-budget doc's citation title to match its current heading.
Change details
-
Relabeled the two on-site citations of Google's crawl-budget guide from its retired title ("Large site owner's guide to managing crawl budget") to its current title, "Optimize your crawl budget," noting the rename inline; the URL itself was already correct.