Updated October 2026. I first wrote this post in 2017. The approach hasn’t changed much, but Google’s tools and a few of its rules have, so I’ve updated those parts.
Keeping a clean index in search engines, especially Google, is key to surviving (and ideally benefiting from) Google’s core updates. It’s not the only factor, but it helps Google see your site as “high quality” (assuming the rest of your content isn’t duplicated from other sites, full of spelling and grammar issues, thin, outdated or ignored by visitors). Cleaning up index bloat is also often easier than the page-by-page work needed to improve other low-quality pages you want to keep indexed. That’s why it’s a good place to start when optimizing a site.

When I do content audits and technical SEO audits, I always look for index bloat (in Google, especially). Fixing it lays the foundation for the content improvements and new content that come next. Think of how a garden needs rich soil and occasional pruning for new growth to thrive. You need a healthy foundation before new and improved content can have its full impact (and weather the storm of algorithm updates).
What Is Index Bloat?
Index bloat is when a search engine has a lot more of your URLs indexed than are in your XML sitemap, assuming your sitemap is an accurate list of the quality, indexable pages on your site. In other words, your site has too many URLs indexed that shouldn’t be.
Common Types of Index Bloat
- Filter and facet URLs – These are most common on eCommerce sites. They reorganize or filter the products shown on a category page. In eCommerce SEO, most of these should stay out of search engine indexes, since they don’t add unique content. (The exception: some filters match real searches, like a color or brand filter, and can be worth indexing as their own optimized pages.)
- Tracking URLs – These add a parameter to a page URL for tracking purposes only (like
?utm_source=). A canonical tag pointing to the main URL is usually the best fix, since it still lets the URL be crawled while passing link equity to the main page. - Paginated URLs – These split a long list of products or posts into pages 2, 3 and so on. The first version of this post recommended rel=prev/next tags, but Google stopped using them in 2019. I’d suggest keeping paginated pages indexable with self-referencing canonicals, linking them with normal crawlable links, and leaving them out of your XML sitemap. Don’t noindex them, or Google may eventually stop following the links to the products and posts they list.
- Tag pages – WordPress tag pages list snippets of every post with the same tag. They rarely add unique value, so they should usually be set to “noindex.” If a tag page already gets good organic traffic, you can instead add unique content to it like you would a category page.
- Internal search results – These shouldn’t be crawled or indexed. Add a “noindex” tag first, then disallow them in robots.txt once they’ve dropped out of Google’s index.
Why Does Index Bloat Matter?
Bloat URLs are usually low-quality, auto-generated pages. They shouldn’t be indexed or listed in your XML sitemap (if they are, remove them), and they can drag down how Google sees your site’s overall quality. On large sites, they also eat up crawl time that Google could spend on your important pages.
The screenshot below shows organic traffic for a client’s site that got a nice bump when Google released a quality-related algorithm update. We had pruned a fair amount of low-quality bloat URLs beforehand.

If you think your site has this problem, request a free consultation.
How to Identify Index Bloat
Use these methods together to get the full picture.
Compare Indexed Pages to Your Sitemap in Search Console
In Google Search Console, the Page Indexing report (Indexing > Pages) shows how many of your pages are indexed. Compare that number to the number of URLs in your XML sitemap. You can also filter the report to “All submitted pages” to see how many sitemap URLs are indexed.
On one client site, nearly 500 more URLs were indexed than were listed in its sitemap.
That’s about 40% index bloat, which is high. If you only have a small percentage of extra URLs indexed (say 1-10%), it’s less likely to cause problems during a core update, although it’s still worth fixing. Indexing of those extra URLs may also decrease over time as Google refines its index, as long as you have the right signals in place (canonical tags, “noindex” tags or redirects).
Check the “Why Pages Aren’t Indexed” Section
The same report lists URLs Google found but didn’t index, grouped by reason. Big counts under “Duplicate without user-selected canonical,” “Crawled – currently not indexed” or “Alternate page with proper canonical tag” often point to the same URL patterns that cause bloat. Click into each reason to see example URLs.
Crawl the Site Yourself
Crawling your site with a tool like Screaming Frog or Lumar (formerly DeepCrawl) helps you find URLs that could be indexed. The goal is to list every indexable URL and compare it to your XML sitemap.
Screaming Frog’s “Crawl Analysis” feature can flag indexable URLs missing from your sitemap for you. If you want to do it by hand, here’s how I do it:
- Crawl the site (excluding external sites).
- Export the Internal HTML report and upload it to Google Sheets.
- Filter out any URLs that aren’t indexable.
- Crawl your XML sitemap in list mode (without following redirects), export the Internal HTML report and add it to a new tab in the same sheet.
- Note #1: Delete any rows for non-indexable URLs.
- Note #2: Review the remaining URLs for obvious low-quality page types that should be removed from the sitemap (tag any you find).
- Use XLOOKUP or VLOOKUP formulas in the main crawl tab to see which URLs are in the sitemap tab.
- Note: Doing the reverse (formulas in the sitemap tab) helps you find orphaned URLs your crawl didn’t discover.
- Filter to show only URLs missing from the sitemap. Review them and check whether they’re indexed with the URL Inspection tool or a quick site: search.
Google Searches
Search operators can give you a rough sense of how many URLs of a certain type are indexed. The counts aren’t exact, but they’re useful for spotting patterns.
- The “site:” operator – A search for site:kernmedia.com shows a sample of your indexed pages.
- The “inurl:” operator – To see indexed pages in a folder or with a URL pattern, try a search like site:kernmedia.com inurl:/services/.
For WordPress sites, it’s common to find tag pages indexed. When I first wrote this post in 2017, TechCrunch had roughly 86,000 /tag/ pages indexed in Google. They weren’t in its XML sitemap, weren’t set to “noindex” and weren’t blocked in robots.txt. That’s an enormous amount of index bloat (although I suspected they drove a fair amount of traffic).
On a free 30-minute call, we’ll talk through your site and goals.
How to Fix Index Bloat
Once you’ve found your bloat URLs, don’t rush to remove them all at once. If they’re driving organic traffic or conversions, removing them abruptly can cause a real drop in traffic and revenue. You may need to create better pages that target the keywords those URLs currently rank for.
Review Organic Traffic and Conversions First
Before pruning anything, check the organic traffic and conversions to those URLs in Google Analytics 4 and the clicks in Search Console. Here’s an example from a client whose WordPress tag pages drove a notable amount of organic traffic. We decided the tag pages weren’t the best pages to rank, so we replaced the ones driving the most traffic with blog posts and gave up the long-tail traffic from the rest, which was minimal. The site didn’t lose much organic traffic in the short term (compare the red boxes), and it set a foundation for future growth. Note: I didn’t work with this client from May to December 2016, so the growth would have come sooner without that break.
(Planned) Organic Traffic Decline to Tag Pages

All Organic Traffic

Decide on Partial Removals (If Needed)
The example above shows that bloat URLs can drive traffic, so you need to know what you’re removing. Those tag pages were ranking for low-competition keywords, and I suspect Google ranked them because nothing better existed. In a similar situation, you can improve these pages, prune them (remove them from the index), partially prune them (only the ones with little traffic) or replace them (fully or partially) with better pages.
Review the queries driving traffic to those pages in the Search Console Performance report and use them in the new or existing pages that will replace the bloat URLs. That helps Google still see the relevance and keep (or improve) the ranking.
Sometimes the problem is much too big for this “scalpel” approach, and you need a “hatchet” approach. Just do your homework first to make sure there are good replacement pages that can rank in place of the ones you’re removing.
Below is a graph from an eCommerce client I worked with at Inflow that drove over 2 million sessions and over $3 million in revenue over 18 months from bloat URLs. Specifically, they were parameter URLs. Fourteen different parameter types drove fairly steady organic traffic and revenue the whole time, so removing them from the index had to be done very carefully.
Organic Search Traffic

Organic Search Revenue

Removing those parameter URLs too quickly could have caused a big drop in traffic and revenue. In cases like this, I’d suggest confirming there are better pages that can rank in their place, then removing the parameter types that drive the least traffic and revenue first as a test. In this case, that meant removing them from the XML sitemap and canonicalizing them to their main URLs.
Choose the Best Way to Remove Them
- Meta robots tags – A “noindex” tag in the <head> keeps a page out of the index. Use it for internal search results, tag pages and other page types you don’t want indexed. Keep in mind that Google may eventually treat links on long-term noindexed pages as nofollow, so don’t noindex pages that are the main path to your important content. Reserve “noindex, nofollow” for things like staging sites and sponsored pages.
- Robots.txt disallow rules – These stop crawling, not indexing. URLs that are already indexed can stay indexed after you block them, because Google can no longer see a noindex tag. It’s usually best to add disallow rules after the pages have dropped out of the index, to keep them from being crawled again and save crawl time. (More in my robots.txt guide.)
- Canonical tags – Point tracking URLs and other duplicate URL types (like filter and facet URLs) to the main URL. It’s a strong hint to Google, not a command, so make sure your internal links and sitemap point to the canonical version too.
- Delete and redirect – If a page has little value and little traffic, delete it and 301 redirect it to the most relevant page.
Set a Timeline and Test Where Needed
If any bloat URLs drive real traffic or conversions, measure the impact carefully as described above. Look for other pages on your site that should be ranking in their place, and check whether their content and internal links are strong enough for Google to choose them instead.
If you’re worried about the impact, put together a series of small tests and a timeline for rolling out changes and measuring results. Sometimes you have to take a risk, but you can also wait for signs that those bloat URLs are already declining before you act. Every situation is different, and it’s usually a judgment call.
If I can help with an index bloat problem, please contact me.