Skip to content

field note

Index bloat: how to find it, and what Google actually says about it

Indexing

Shahid AliSeptember 9, 2026all posts

Index bloat: how to find it, and what Google actually says about it

Index bloat is one of those SEO terms that survives on repetition. The advice attached to it has barely changed since about 2016, and two of its three central claims are now contradicted by Google’s own documentation. So it is worth separating the real problem, which exists, from the folklore wrapped around it, which mostly does not.

The real problem is crawl waste. The folklore is that the number of indexed pages is itself a ranking liability.

Does having too many pages indexed hurt your rankings?

There is no documented mechanism for it, and Google has said the opposite. In an SEO office hours session, John Mueller addressed this directly: Google’s systems do not artificially limit the number of pages indexed per site, and what matters is whether the pages you provide for indexing are useful, independent of how many pages the site has.

Nothing newer contradicts that. Yet the top-ranking articles on this query still tell you that a high indexed count is “detrimental to search engine rankings”, with no source, because the claim has been copied from post to post since a guide published in August 2016 that is still ranking today. That guide tells you to open the Index Status report, which Google retired in 2019.

So the count is not the problem. Here is what is.

What is index bloat, then?

Google’s crawl budget documentation never uses the phrase, but it describes the thing precisely, under the heading of perceived inventory:

“Without guidance from you, Google tries to crawl all or most of the URLs that it knows about on your site. If many of these URLs are duplicates, or you don’t want them crawled for some other reason (removed, unimportant, and so on), this wastes a lot of Google crawling time on your site. This is the factor that you can positively control the most.”

That is the whole case, in Google’s words, and it is about crawling rather than ranking. A pile of near-identical parameter URLs costs you fetches that your real pages wanted.

Worth reading the audience note on that document too, because it saves most sites a lot of work. Google aims it at sites of a million or more unique pages changing weekly, or ten thousand or more changing daily, and adds that “the numbers given here are a rough estimate”. For everything smaller it says: “For Google Search specifically, keeping your sitemap up to date and checking the Page Indexing report regularly is adequate.” I wrote about what each Search Console status costs in fetches separately. This post is the other half of the job, which is finding out which URLs you have.

Why is the site: operator not a reliable page count?

Because Google says it is a sample. The Page indexing report documentation offers site: only as a way to “See a sample of pages from your site that Google knows about”, and recommends it for sites of fewer than 500 pages that “should probably not use this report” at all.

Every index bloat guide opens by telling you to run a site: search and treat the number as an inventory. That number moves for reasons unrelated to your index, which is why I keep a separate piece on how accurate the site: operator really is. Building a remediation plan on it is building on an estimate that Google declines to stand behind.

The Pages report is better but it is also not a list. Same documentation:

“the list of example URLs in the report is limited to 1,000 items, and isn’t guaranteed to show all URLs in a given status, even when less than 1,000 items”

And:

“This report isn’t used to investigate the index status of specific pages. To find the index status of a specific page, use the URL Inspection tool.”

Google is telling you outright that the report sizes the problem and the inspection tool names it. Almost nobody does the second step, which is why the bloat URLs are never actually listed anywhere in the articles about listing them.

How do I find index bloat in Search Console?

Three joins, and the third is the one that produces names rather than numbers.

  1. Your sitemap. The list of URLs you are claiming are worth indexing.
  2. The Pages report, exported per status. What Google says about the population, up to its cap.
  3. Bulk URL inspection over the difference. Per-URL truth. This is where a URL stops being a statistic and becomes a decision. It is also the reason the bulk inspection tool exists on this site, because doing a few thousand of these one at a time is not work anybody finishes.

Then classify by URL pattern rather than by page, because bloat arrives in families, not individuals. On a product catalog this classification step is most of the job, and I walked through a full store-sized run of it in Google is not indexing all my products. The families that turn up in nearly every audit: query parameters, /page/2/ and beyond, /tag/ archives, internal search results at /?s=, /feed/ endpoints, session identifiers, and a staging or development subdomain that was never blocked.

One decision per class, and the reason it is right Not one blanket fix. The reason column is what the industry advice leaves out.

WHAT THE URLS ARE DO THIS WHY

Duplicates and facets canonical consolidation, the doc’s first recommendation

Genuinely gone 410 an unambiguous removal signal

Never want it fetched robots.txt noindex still costs the fetch, per Google

Thin but real improve or leave the count is not the problem

Users need it, search does not noindex the only case where noindex is the right tool

Numbers Google publishes, and what they are for 1,000: example URLs the Pages report will show per status. 500: page count below which Google says skip the report. 10,000 daily-changing pages, or 1,000,000 weekly-changing pages: who the crawl budget guide is written for.

Decisions and thresholds from Google's crawl budget guide and the Page indexing report documentation.

Should I noindex low-value pages to save crawl budget?

No. This is the industry’s default fix and Google’s crawl budget guide lists it under best practices as a thing not to do:

“Don’t use noindex, as Google will still request, but then drop the page when it sees a noindex meta tag or header in the HTTP response, wasting crawling time.”

The sentence just before it gives the alternative:

“Blocking URLs with robots.txt prevents Google from crawling them, and significantly decreases the chance the URLs will be processed by other Google systems.”

Read those two together and the logic is clean. If your goal is to stop the fetch, only robots.txt stops the fetch. Noindex pays for the fetch and then discards the result, which is the worst of both.

The catch, and it is a real one: robots.txt does not remove anything already in the index, and a blocked URL can stay listed. That is the whole indexed though blocked by robots.txt trap, and it is why the order matters. Let a noindex be crawled and processed first if the URL needs to come out, then block the pattern once it is gone.

Which Pages report statuses actually mean bloat?

Not all of them, and reading the wrong ones is how people generate work for themselves.

Discovered, currently not indexed is the real symptom. Google knows about the URLs and has not thought them worth fetching. On a site with a bloat problem, this bucket is where the generated URLs pile up. If the pile came from a deliberate page-generation project, the WordPress programmatic SEO gates cover how to roll one out without creating this report in the first place.

Duplicate without user-selected canonical means Google found the near-identical family and picked for you.

Soft 404 often means thin generated pages, or a blanket redirect somewhere.

Alternate page with proper canonical tag is benign. It means the canonical is working. Leave it alone.

On WordPress, one predictable source of that duplicate family is worth checking early: author archive pages, which duplicate the blog index on any single author site. They take five minutes to settle and they exist on every install whether anyone asked for them or not.

Crawled, currently not indexed is the ambiguous one, and it is worth knowing how it differs from the discovered status before acting, because one is a crawl priority question measured in weeks and the other is a quality judgement measured in months.

How long until Google drops the pages?

I have seen deindexing timelines quoted with a confidence nobody has earned: one to two weeks for a high authority site, four to eight for a low authority one. There is no source for those numbers. Google publishes no removal timeline for pages dropped through a canonical, a 410 or a noindex, beyond the temporary removals tool, which is temporary and does not clean anything up.

What you can measure is the bucket. Export the Discovered, currently not indexed count weekly and watch it shrink after the classification work lands. That is a slow, unglamorous line on a chart, and it is more honest than a promised timeline. If it does not move at all over a month, the classification was wrong, and that is worth knowing too.

Sources

  • Crawl budget management for large sites, Google Search Central. The perceived inventory paragraph, the do-not-use-noindex best practice, the robots.txt line and the site size thresholds.
  • Page indexing report, Search Console Help. The site: sample wording, the 500 page guidance, the 1,000 example cap and the direction to use URL Inspection for specific pages.
  • John Mueller, Google SEO office hours, June 2023, on Google not limiting the number of pages indexed per site and the page count being independent of quality. Recorded session.