Back to Blog
Guides

Crawl Budget and Index Gaps at Tens of Thousands of Products

Navigation

  • Search OS
  • EC in general

Crawl Budget and Index Gaps at Tens of Thousands of Products

Category
Guides
Reading Time
7 min read
Topic
Japan EC platform guides for search and AI search

On a marketplace with more than tens of thousands of products, the crawler's processing limit becomes the direct cause of index gaps. Slow indexing of new products starts here. Sitemap splitting and lastmod, blocking low-value URLs, prioritizing through internal links, and observation in bot logs: this article explains how to run these four as a set.

Source
searchos.io/en/blog
Copyright
© 2026 Search OS

On a marketplace with tens of thousands of products, new products are slow to be indexed. Search Console shows "Discovered - currently not indexed" in the tens of thousands. Shops with catalogs this size ask about managing crawl budget.

A crawler has a limit on how many URLs it can process in a given period. At this scale, that limit becomes the direct cause of index gaps. Factors you could ignore up to a few thousand products start to decide the outcome past tens of thousands.

The answer is to run four tasks as a set. A sitemap is the list of page URLs handed to search engines. Sitemap splitting and lastmod accuracy, blocking low-value URLs, conveying priority through internal links, and observation in bot logs. Any one of them alone doesn't work. This article explains how to run the cycle.

Conclusion: Run the four as a set

Task

Purpose

Limit when done alone

Sitemap splitting and lastmod

Tell the crawler exactly what changed and when

With many low-value URLs, the crawler may favor discovered links over the sitemap

Blocking low-value URLs

Stop filter, sort, and duplicate URLs from consuming budget

Even when blocked, discovery continues if internal links point to them

Internal link priority

Concentrate links on important pages and flatten deep hierarchies

If the sitemap and lastmod are inaccurate, update detection lags

Bot log observation

See which URLs are actually being fetched

Observation alone doesn't improve anything; use it to verify the three above

4 fixes for index gaps work as a set

Navigation

  • Search OS
  • Guide 01

4 fixes for index gaps work as a set

Cut URLs bots need not see; make the ones they should clear

Fix StrategyOutcome
Split sitemaps with lastmodFewer index gaps
Block low-value URLsFewer index gaps
Internal link priorityFewer index gaps
Watch bot logsFewer index gaps

Each alone has limits. Use logs to verify the first 3

© 2026 Search OS

Key idea: Crawl budget is the time and number of requests a crawler spends on a site. It's determined by the site's size and response speed, and by how many URLs the crawler finds. The shortest route to fewer index gaps is to reduce the URLs that don't need to be seen and make clear the URLs that should be. Start by counting how many URLs don't need to be seen.

The path to an index gap

Here is the typical path to index gaps on a marketplace with tens of thousands of products, in order.

  1. Filters, sorting, and pagination generate URLs numbering dozens of times the product count.

  2. The crawler discovers and fetches them (canonical and noindex are read only after fetching).

  3. Most of the budget goes to fetching low-value URLs.

  4. Discovery of new and updated products lags, and "Discovered - currently not indexed" grows.

  5. URLs of discontinued products remain as-is and consume still more budget as errors or thin pages.

Look at the "Crawled - currently not indexed" URLs in Search Console. Check the "Discovered - currently not indexed" URLs by type too. That shows where on this path things are stuck. If they are mostly filter URLs, blocking comes first.

Sitemap operations: splitting and lastmod

Item

Recommendation

Reason

Split unit

Separate by product, category, and content; fifty thousand URLs or fewer per file

Index status can be tracked by type

Index file

Bundle with a sitemap index

One submission target

lastmod

Update only when the content actually changed

Updating every URL daily makes lastmod untrusted

Discontinued products

Remove from the sitemap; return 404 or 410

Fewer fetches of URLs that no longer exist

What to include

Only indexable URLs whose canonical points to themselves

Listing duplicate URLs wastes budget

lastmod accuracy matters most. If lastmod updates every time a product's stock count changes, the crawler reads it as always updated and stops using it as an update signal. Design it to update only when price, description, or specifications change. Check what triggers your lastmod updates.

Limits per sitemap file

Limits per sitemap file

Beyond the limit, split the file and bundle it with a sitemap index

MetricLimit (1 file)Beyond Limit
URL count50,000 URLsSplit + index
File size50MBSplit + index

Source: Google Search Central "Build and submit a sitemap" (50,000 URLs and 50MB uncompressed per file)

© 2026 Search OS

Blocking low-value URLs: handling by type

URL type

Example

Handling

Sorting

?sort=price

Disallow crawling in robots.txt, or point canonical to the parent

Filters (no search demand)

?color=red&size=M

Disallow in robots.txt

Filters (with search demand)

Combinations people search for, such as "men's waterproof jacket"

Promote to a proper category page with a description and make it indexable

Pagination

?page=2

Keep indexable; canonical points to each page itself

Session and tracking

?utm=, ?sid=

Disallow in robots.txt

Discontinued products

Old URLs

404/410. Redirect if there's a successor product

Handling low-value URLs by type

Breadcrumbs

  • Search OS
  • Guide 02

Handling low-value URLs by type

Promote only filters with search demand

numbertype_exampleaction
1Sort ?sort=priceBlock in robots.txt, or canonical to parent
2Filter (no demand) ?color=redBlock in robots.txt
3Filter (with demand)Promote to a real category with copy, then index
4Pagination ?page=2Keep indexable; each page is its own canonical
5Session / tracking ?utm=Block in robots.txt
6Discontinued products404/410; redirect if a successor exists

© 2026 Search OS

robots.txt is the file that tells crawlers where they may go. URLs disallowed there never have their canonical or noindex read. If you want to remove URLs that are already indexed, order matters. First remove them from the index with noindex, then block them in robots.txt once they're gone. Check first whether the URLs you want to block are already indexed.

Convey priority with internal links

Crawlers favor pages that gather many links and pages close to the top page. At tens of thousands of products, check these three points.

  • See whether main products and main categories are within 3 clicks of the top page.

  • See whether category pagination has grown too deep (if one category runs to hundreds of pages, split it into subcategories).

  • Check that links from product pages to related products and the parent category are output consistently by the template.

Verify the effect in bot logs

The effect of the three tasks above can only be verified in bot logs. At minimum, look at the following weekly.

Metric

Change to look for

Share of fetched URLs that are low-value

Decreasing

Share of fetched URLs that are product pages

Increasing

Days from a new product's publication to its first fetch

Getting shorter

Number of 4xx and 5xx responses

Decreasing

Fetch targets of bots other than Googlebot (GPTBot, PerplexityBot, and so on)

Reaching product pages

The last item bears directly on product recommendations in AI search. It's not unusual for AI-side bots to use up their budget on low-value URLs and never reach product pages. Check in the logs whether GPTBot is reaching product pages.

At tens of thousands of products, manual operation doesn't last

The work above isn't done once and finished. Products are added and discontinued every day. Filter conditions multiply and templates change. Sitemap accuracy, the validity of blocking rules, the state of internal links, and bot fetch patterns all need continual review.

Search OS takes on this continual part as an operation. It doesn't change the existing marketplace's structure. It provides sitemaps, canonical, metadata, and structured data for search engines and AI crawlers as a separate layer. Which URLs Googlebot, GPTBot, and PerplexityBot fetch, and how much: it observes this continuously in bot logs. It compiles the URL groups causing index gaps and the places to fix first. The goal is to keep crawlers reaching the pages that should be seen, even at millions of pages. Whether you can keep reviewing without relying on people is what separates the outcomes.

Frequently asked questions

Can I apply to have crawl budget increased?

No. You respond by raising the site's response speed and reducing wasted URLs. The idea is to increase the number of important URLs processed within the same budget.

Will putting noindex on every filter URL solve it?

noindex removes them from the index, but fetching continues. Reducing budget use requires blocking in robots.txt. Combinations with search demand, though, should be promoted to proper pages.

Are AI search bots affected by crawl budget too?

Yes. GPTBot and others decide how much to fetch based on the site's structure and response speed. On a site with many low-value URLs, they may stop fetching before reaching product pages.

Related reading

References

The site becomes easier to read

The content becomes clearer

The brand gets discovered in more customer questions

See how Search OS works, starting with the product deck.