What is crawl budget?
Crawl budget is the number of pages Googlebot will fetch from your site within a given period. Think of it as a finite resource: Google allocates a certain number of crawl requests per day based on your server’s capacity and how valuable it judges your content to be. When that budget runs out, some of your pages will not be crawled that day.
For most sites — blogs, portfolios, small business sites with a few hundred URLs — crawl budget is not something you ever need to worry about. Google will easily crawl all your pages in one pass. But for large sites with tens of thousands or millions of URLs, budget becomes a genuine constraint on how quickly new and updated content gets discovered and indexed.
There are two factors that determine your crawl budget:
Crawl rate limit is how fast Googlebot can send requests to your server without causing performance problems. If your server starts responding slowly or returning errors, Googlebot backs off. If it responds quickly and consistently, Google gradually increases the rate. You can lower the rate limit manually in Google Search Console if crawls are affecting your server performance, but you cannot raise it above what Google determines is safe.
Crawl demand is how much Google wants to revisit your pages based on perceived value — PageRank and link signals — and freshness signals. Pages that change frequently and attract links get crawled more often. Thin, rarely-linked pages get crawled infrequently.
Optimization is about two things: reducing waste (pages that consume budget without contributing value) and boosting demand (signals that tell Google your important pages deserve more crawl).
How to identify crawl budget waste
Before optimizing, you need to know where budget is being spent. Open Google Search Console and navigate to Settings → Crawl Stats. This report shows the total crawl requests per day, which URLs were crawled most recently, and the response code breakdown.
Look for patterns:
- Are low-value pages (filters, pagination, empty search results) being crawled more than your core product or content pages?
- Are important pages showing a “Last Crawled” date weeks or months ago while thin pages were crawled yesterday?
- Are there large volumes of 404 or redirect responses consuming crawl requests?
You can also look at the Pages report in Search Console and filter by “Discovered — currently not indexed.” A large backlog here often signals budget pressure.
Common sources of crawl waste on large sites:
Faceted navigation — e-commerce sites with filter combinations like /shoes?color=red&size=10&sort=price-asc can generate millions of unique URLs, most with near-duplicate content. Each one is a potential crawl request.
Pagination — deep pagination (page 50, page 100 of a blog archive) provides little unique value and consumes budget that could go to new content.
Thin or auto-generated pages — location pages with no real content, tag archive pages with one post, profile pages with minimal content.
Session IDs and tracking parameters — URLs like /product?sessionid=abc123 create duplicate pages for each user session. If these are not consolidated, crawlers see thousands of near-identical pages.
Soft 404 pages — pages that return a 200 response code but show “no results found” or empty content.
Using robots.txt to protect crawl budget
The fastest lever for eliminating crawl waste is blocking low-value URL patterns in robots.txt. You can use the robots.txt Generator to build these rules without memorising the syntax.
Common patterns to disallow:
User-agent: *
Disallow: /search
Disallow: /filter/
Disallow: /tag/
Disallow: /page/
Disallow: /account/
Disallow: /cart/
Disallow: /checkout/
A few things to keep in mind:
- Only disallow pages you genuinely do not want indexed. Disallow prevents crawling, not indexing — a disallowed URL with inbound links can still appear in search results as a stub.
- Do not disallow URLs where you want noindex to be processed. Googlebot must crawl a page to read its noindex tag.
- Test your rules in Google Search Console’s robots.txt tester before deploying.
For a full explanation of how robots.txt interacts with noindex, see the robots.txt guide.
noindex for thin content you cannot delete
Some pages need to exist for users (empty category pages during site launch, thin product pages for discontinued items, user profile stubs) but should not consume indexing resources. For these, the right tool is not robots.txt but a noindex directive.
Add <meta name="robots" content="noindex, follow"> to the <head> of the page. The follow instruction tells crawlers to follow links on the page even though they will not index it — useful for thin category pages that link to valuable product pages.
Critical rule: never add noindex to a page and also disallow it in robots.txt. If Googlebot is blocked from crawling, it cannot read the noindex tag, and the page may persist in the index until the next successful crawl.
Canonical tags for duplicate content
Duplicate and near-duplicate pages are a major source of crawl waste. When the same content is reachable at multiple URLs — with and without trailing slash, with and without tracking parameters, on both www and non-www — crawlers see multiple pages to evaluate for essentially the same content.
A rel=canonical tag on each duplicate points to the preferred version:
<link rel="canonical" href="https://example.com/product/red-sneakers/" />
Crawlers see the canonical, understand which URL is authoritative, and consolidate their crawl and index signals onto that URL. Over time, less time is spent re-crawling duplicates.
For e-commerce, apply canonicals to:
- Products reachable through multiple category paths
- Products with URL parameters for size/color variants that show the same content
- Both www and non-www versions
- HTTP and HTTPS versions (though a 301 redirect is preferable here)
XML sitemaps as a positive crawl signal
A sitemap does not increase your crawl rate limit, but it acts as a positive signal: it tells Googlebot exactly which pages you want crawled and considers important. An accurate sitemap with correct lastmod timestamps helps Google prioritise fresh content.
Keep your sitemap clean:
- Include only canonical URLs (not the duplicate variants)
- Remove URLs that return 404, 301, or noindex
- Keep lastmod accurate — incorrect or overstated lastmod dates erode Google’s trust in the signal
- Split large sitemaps (over 50,000 URLs) into smaller indexed sitemaps
- Submit your sitemap URL in Google Search Console and reference it in robots.txt
Reference your sitemap in robots.txt so all crawlers can find it:
Sitemap: https://example.com/sitemap.xml
You can generate a properly formatted robots.txt with this sitemap directive using the robots.txt Generator.
Internal link structure and crawl prioritisation
Googlebot follows links to discover content. Pages with more internal links pointing to them are crawled more frequently because Google’s algorithms interpret link equity as a signal of importance. This means your internal link structure directly influences how budget is distributed across your site.
Practical implications:
Link to new content from established pages. When you publish a new article or product page, link to it from an already-indexed, frequently-crawled page — your homepage, a popular blog post, a top-level category page. This accelerates discovery.
Fix broken internal links. Every 404 response a crawler receives wastes a crawl request and damages PageRank flow. Audit your internal links regularly and fix or remove broken ones.
Reduce link depth. Pages buried five or six clicks from the homepage receive far less crawl attention than pages two or three clicks away. Flatten your URL hierarchy where possible. Faceted navigation pages are often deeply buried — adding them to a sitemap while also blocking them in robots.txt is often the right balance.
Use breadcrumbs. Breadcrumb navigation creates additional internal link paths from every product or article back to category and homepage level, boosting those pages’ crawl frequency.
Monitoring after optimization
Crawl budget changes take weeks to show up in data. After implementing robots.txt rules, noindex tags, or canonical changes:
- Wait four to six weeks before drawing conclusions.
- Monitor the Crawl Stats report in Search Console for overall crawl volume and response codes.
- Watch the Pages report — you should see a reduction in “Discovered — currently not indexed” for the pages you have blocked.
- Check that important pages have not accidentally been blocked by your changes.
Crawl budget optimization is not a one-time project. As your site grows, new URL patterns emerge and old assumptions change. Treat it as a periodic audit — quarterly for large sites, annually for smaller ones — and use the robots.txt Generator to update your rules as your site evolves.