Audit my site
Technical SEOIntermediateChecked against Google docs · Oct 2026

Crawl budget: what it is, who needs to care and how to stop wasting it

Crawl budget is the set of URLs Google can and wants to crawl on your site. Most sites never run short of it; large and fast-changing sites do, and usually because they expose too many URLs that are not worth crawling.

Author: Eugene Serbin, Head of SEO at Semalt Updated: 30 October 2026 Reading time: 20 min Visuals: 5

In short

Crawl budget is the set of URLs Google can and wants to crawl on one hostname. It comes from two things: the crawl capacity limit (how much your server can take) and crawl demand (how much Google wants your URLs). Only large or fast-changing sites usually need to manage it, and the fix is almost always the same: stop exposing low-value URLs and keep the server fast and healthy.

What crawl budget is

Google cannot fetch every URL that exists. In its own words, “The web is a nearly infinite space, exceeding Google's ability to explore every publicly accessible URL.” So it spends a limited amount of time and resources on each site. That allocation is what SEOs call crawl budget.

Three details change how you should think about it:

Diagram · Crawl capacity limit × crawl demand
How crawl capacity and crawl demand combine into crawl budget On the left, the crawl capacity limit, also called hostload: how much Google can crawl, driven by response times, server errors and 429 responses, and Google's own limits. On the right, crawl demand: how much Google wants to crawl, driven by perceived inventory, popularity, staleness and site-wide events such as moves. Together they give crawl budget: the URLs Google can and wants to crawl. If demand is low, Google crawls less even when capacity is available. CAN CRAWL Crawl capacity limit also called hostload • Stable, fast responses: limit goes up • Slowdowns, 5xx, 429: limit goes down • Shared by all Google crawlers WANTS TO CRAWL Crawl demand set per crawler • Perceived inventory (you control most) • Popularity and staleness • Site-wide events, e.g. a site move × CRAWL BUDGET URLs Google can and wants to crawl low demand = less crawling, even with spare capacity
Capacity sets the ceiling, demand decides how close Google gets to it; improving only one side often changes nothing.

What Google officially says

“A site's crawl budget is determined by two main elements: crawl capacity limit and crawl demand.”

Google — Optimize your crawl budget. Google sums the two up as “the set of URLs that Google can and wants to crawl.”

“Even if the crawl capacity limit isn't reached, if crawl demand is low, Google will crawl your site less.”

Google — Optimize your crawl budget

“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.”

Google — Optimize your crawl budget. For Google Search, Google says keeping your sitemap up to date and checking the Page Indexing report regularly is enough for such sites.

“Eliminate duplicate content to focus crawling on unique content rather than unique URLs.”

Google — Optimize your crawl budget

“Generally, any URL that Googlebot crawls will count towards a site's crawl budget.”

Google — Myths and facts about crawling. This includes alternate URLs such as AMP and hreflang versions, and embedded content such as CSS, JavaScript and XHR fetches.

Note that Google has moved its crawling documentation: the crawl budget guide now lives under developers.google.com/crawling/, and the old Search Central URLs redirect there.

Do you need to worry about crawl budget?

Usually not. Google's guide is “intended primarily” for three kinds of sites:

Google immediately qualifies the numbers: “These are not exact thresholds.” They are a rough way to classify your site, not a line you cross. Size alone also does not decide how often you are crawled: “If a site has important content that changes often, we crawl it often, regardless of the size.”

The Crawl Stats report help page puts the lower bound plainly: “If you have a site with fewer than a thousand pages, you should not need to use this report or worry about this level of crawling detail.”

Decision tree · Do you need to manage crawl budget?
Deciding whether crawl budget is your problem If new pages are crawled the same day they are published, you do not need to manage crawl budget. Otherwise, if the site has around a million or more unique pages that change weekly, or around ten thousand or more that change daily, crawl budget matters. If neither, but a large share of URLs is Discovered - currently not indexed, check crawl waste and server health. Otherwise keep the sitemap up to date and check the Page indexing report. YesYesYes NoNoNo Are new pages usually crawledthe same day they go live? ~1M+ pages changing weekly, or~10k+ pages changing daily? Many URLs “Discovered –currently not indexed”? No crawl budget problemkeep the sitemap current Manage crawl budgetinventory, server, Crawl Stats Check waste and server healthoften a quality issue, not crawling Sitemap + Page indexing reportfocus on content and links instead
The size figures are Google's rough estimates, not exact thresholds; use them to classify your site, not to calculate anything.

Signs that crawling really is the bottleneck on a large site: new or updated pages take days or weeks to be picked up, a growing share of URLs sits in “Discovered – currently not indexed”, the Crawl Stats report shows rising response times or server errors, or server logs show Googlebot spending most of its requests on parameter URLs instead of real pages. If none of these apply, look at content quality and internal linking first. The separate lesson on “Crawled” and “Discovered – currently not indexed” covers how to tell a crawling problem from a quality problem.

Crawl capacity limit (hostload)

“Google wants to crawl your site without overwhelming your servers.” To do that, its crawlers calculate a crawl capacity limit, which Google also calls hostload. It limits the total time your server spends holding connections open for Google, taking into account both the number of parallel connections and how long they last.

“Every site starts with the same default, conservative crawl capacity limit.” If there is demand to crawl more and the site stays healthy, Google raises it over time. The limit moves with two factors:

One detail is easy to miss: “While each crawler has a different crawl demand, the crawl capacity limit is shared across all crawlers.” Googlebot, AdsBot, the shopping crawler and the rest draw on the same capacity. A spike from one of them, for example AdsBot after you add many Dynamic Search Ad targets, leaves less for the others.

If URL Inspection shows Hostload exceeded, Google could not crawl a URL because of your server capacity. Google's advice for that case is to add more server resources if that makes sense for your business.

Crawl demand

Each crawler has its own demand. AdsBot generally wants more when a site runs dynamic ad targets, and Google Shopping wants more for products in your merchant feeds. For Googlebot, demand depends on a site's size, update frequency, page quality and relevance compared with other sites. Google names three factors you can influence:

Site-wide events also raise demand. A site move, for instance, makes Google recrawl content under the new URLs, which is why crawling usually jumps after a migration.

Demand is also why a fast server alone does not guarantee heavy crawling. A healthy site with static, weakly linked content may be crawled lightly simply because Google sees little reason to come back.

What wastes crawling

Wasted crawling means Google spends requests on URLs that will never be useful in search, while real pages wait. Google lists the usual sources: faceted navigation and session identifiers, duplicate content, soft 404 pages, hacked pages, infinite spaces and proxies, low quality and spam content, and shopping cart, infinite scrolling and action pages such as “sign up” or “buy now”.

Illustration · Where crawl requests go on a large shop (illustrative numbers)
Breakdown of 100 Googlebot requests on a large e-commerce site Illustrative split of 100 crawl requests: 38 go to useful canonical pages, 24 to facet and sort URLs, 8 to session and tracking IDs, 10 to infinite spaces such as calendars and internal search, 7 to duplicate host and slash variants, 7 to redirect hops and 6 to soft 404 pages. 100 Googlebot requests to example.com (illustrative) 38 useful24 facets 810 776 62 requests that bring nothing to search Useful pages Facets and sort orders Session and tracking IDs Infinite spaces Duplicate hosts and slashes Redirect hops Soft 404s /shoes/running/ (canonical, 200) /shoes/?color=red&size=9&sort=price /shoes/?sessionid=8f3a2c /calendar/2031/05/ /search?q=red http://www.example.com/shoes http → https → www → /shoes/ /shoes/old-model/ (200, empty)
The split is invented for illustration, but the pattern is typical: most waste comes from URLs the site generates itself.

Faceted navigation and parameters Biggest source

Filters and sort orders multiply: five colours, ten sizes and four sort orders already give hundreds of URLs per category. Google's reduce-crawl-rate page names “Faceted navigation or other sorting and filtering functionality” as one of the most common causes of crawl spikes. How to decide which filter pages deserve to be crawlable is covered in the separate lesson on pagination and faceted navigation.

Session IDs and tracking parameters Very common

Google says “session identifiers and other URL parameters that simply sort or filter the page don't provide new content.” Keep session state in cookies, keep tracking parameters out of internal links, and point every internal link at the clean URL.

Infinite spaces Common

A calendar with “next month” links that never end, internal search result pages, or relative links that keep adding folders can produce an unlimited number of URLs. Google's advice for infinite spaces and proxies is to block them from crawling with robots.txt.

Duplicate content Common

http and https, www and non-www, trailing slash variants, printer versions and the same product in several categories all ask Google to fetch the same content more than once. Redirect host and protocol variants, and use canonical URLs everywhere else. The lessons on duplicate URLs and canonical tags go deeper.

Soft 404s Common

A page that says “not found” or shows nothing but returns 200 is a soft 404, and Google says “soft 404 pages will continue to be crawled, and waste your budget.” A real 404 or 410 is different. Google states that “Pages that serve 4xx HTTP status codes (except 429) don't waste crawl budget.” The status codes lesson explains how to find and fix soft 404s.

Redirect chains Common

“Avoid long redirect chains, which have a negative effect on crawling.” Every hop is a separate request; the Crawl Stats report even counts each step of a chain individually. Redirect old URLs straight to the final address and update internal links so they do not hit redirects at all.

Hacked pages and spam Occasional

Injected spam pages can add thousands of URLs that Google keeps trying to crawl. Check the Security Issues report in Search Console and remove them so they return 404 or 410.

Heavy pages and resources Occasional

Rendering is part of crawling: “Time spent rendering the page counts as much as time spent requesting the page.” Large or slow scripts, and the same file loaded from many different URLs, cost requests on every page.

What actually helps

Everything that works falls into two groups: show Google fewer useless URLs, and make each request cheaper for your server.

  1. Consolidate duplicates. Redirect URL variants nobody needs, and use canonical URLs in links, sitemaps and rel="canonical" for variants that must stay.
  2. Block URLs you never want crawled with robots.txt. Sort orders, internal search, session URLs, infinite calendars. Google: “Blocking URLs with robots.txt prevents Google from crawling them, and significantly decreases the chance the URLs will be processed by other Google systems”. Syntax and pitfalls are in the robots.txt lesson.
  3. Return 404 or 410 for removed pages. “Google won't forget a URL that it knows about, but a 404 status code is a strong signal not to crawl that URL again.” Blocked URLs, by contrast, stay in the crawl queue much longer and are recrawled once the block is removed.
  4. Fix soft 404s. Find them in the Page indexing report and return a real 404, 410 or a 301 to a true replacement.
  5. Keep sitemaps clean. List only canonical, indexable URLs that return 200, and include every page you want crawled. “If your site includes updated content, we recommend including the <lastmod> tag.” Google adds that it “uses the <lastmod> value if it's consistently and verifiably (for example by comparing to the last modification of the page) accurate.” The XML sitemaps lesson covers formats and limits.
  6. Link to what matters. Internal links are how Google finds and prioritises URLs. Google notes that “pages linked directly to the home page may be seen as more important, and therefore crawled more often.” Link to final 200 URLs, not to redirects or parameter versions, and make sure important pages are not orphans.
  7. Make the server fast. “If you can serve us more pages in a limited time, we will be able to crawl more of them.” Google also adds that speed for users matters more than speed for crawl coverage.
  8. Support HTTP caching (304). “If a page hasn't changed since Google last crawled it, returning a 304 code tells Google to reuse the cached version, saving your server bandwidth and resources.” See the example below.
  9. Reuse resource URLs. Reference a shared image or script “from the same URL in each page, so that Google can cache and reuse the same resource without needing to request the same resource multiple times.”
Code · A conditional request answered with 304

First crawl · full response

GET /shoes/running/ HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
ETag: "a7f3c9"
Last-Modified: Mon, 26 Oct 2026 09:12:00 GMT
… full HTML body …
  • Server sends a validator: ETag, Last-Modified or both
  • Google stores the page and the validator

Recrawl · nothing changed

GET /shoes/running/ HTTP/1.1
Host: example.com
If-None-Match: "a7f3c9"

HTTP/1.1 304 Not Modified
(no body)
  • No HTML is generated or sent
  • Google reuses the version it already has
A 304 costs your server almost nothing, so unchanged pages stop competing with new ones for your capacity.

Google supports both validator pairs: ETag with If-None-Match, and Last-Modified with If-Modified-Since. If both are present, Google's crawlers use the ETag. Two caveats: “Google's crawlers don't send the headers with all crawl attempts”, and a Last-Modified date must use the standard HTTP date format. Most CDNs and web servers can handle conditional requests for static files out of the box. For dynamic pages, your CMS or application has to generate the validators and compare them.

What does not help

Many popular crawl budget “tricks” do nothing for Google, and some backfire.

Reducing the crawl rate in an emergency

Sometimes the problem is the opposite: Google crawls so hard that your server struggles or your hosting bill spikes. Before you throttle anything, find the cause. Google lists the most common ones as faceted navigation or other filtering, “A calendar with a lot of URLs for specific dates”, and Dynamic Search Ad targets. Check your server logs and the Crawl Stats report (Googlebot type) to see which crawler and which URL patterns are responsible. A spike right after you unblock or add a large section of the site is expected.

If you need relief now, Google's documented method is to serve errors for a short time:

“To urgently reduce the crawl rate for a short period of time (for example, a couple of hours, or 1-2 days), return a 500, 503, or 429 HTTP response status code instead of 200 to the crawl requests.”

Google — Reduce the Google crawl rate

When Google sees many of these codes, it slows down across the whole hostname, including URLs that still return content, and it speeds up again automatically once the errors drop. With 503 or 429 you can add a Retry-After header, either as a delay in seconds or as an exact date and time:

HTTP/1.1 503 Service Unavailable
Retry-After: 120

HTTP/1.1 429 Too Many Requests
Retry-After: Fri, 30 Oct 2026 18:00:00 GMT

Keep it short. Google warns: “We don't recommend that you do this for a long period of time (meaning, longer than 1-2 days)”. If Googlebot sees these codes on the same URL for several days, the URL may be dropped from the index. Slower crawling also means new pages are found later, price and stock changes appear later, and removed pages stay in the index longer. For Google Ads, campaigns may be paused and ads may stop serving.

Two alternatives exist. You can block the overloading crawler in robots.txt, but the Crawl Stats help notes this “can take up to a day to take effect” and should not stay in place for long. If serving errors is not possible on your infrastructure, you can file a special request with Google to report an unusually high crawl rate, stating the rate that suits your site; Google says evaluating it may take several days. If your setup can detect load dynamically, Google suggests returning 503 or 429 only when you are nearing your serving limit, and for no more than two or three days.

Reading the Crawl Stats report

“The Crawl Stats report shows you statistics about Google's crawling history on your website.” Open it in Search Console under Settings → Crawl stats. It works only for root-level properties: a Domain property, or a URL-prefix property at the root such as https://example.com. Google describes it as a report for advanced users.

Annotated mock · Crawl Stats report (illustrative numbers)
Annotated mock of the Search Console Crawl Stats report Mock report for example.com over 90 days with illustrative numbers. 1: totals of 412,380 requests, 9.8 GB downloaded, 410 ms average response time. 2: host status with robots.txt fetching and DNS resolution fine and a server connectivity issue in the last week. 3: by response, OK 200 is 71 percent, 304 is 8, 301 is 9, 404 is 6, server errors 3, other 3. 4: by file type, HTML 58, JavaScript 14, image 12, CSS 6, JSON 5, other 5. 5: by purpose, refresh 81 and discovery 19. 6: by Googlebot type, smartphone 68, page resource load 22, desktop 4, image 3, AdsBot 2, other 1. Crawl stats · example.com · last 90 days illustrative numbers Total crawl requestsTotal download sizeAverage response time 412,3809.8 GB410 ms Host status robots.txt fetching DNS resolution Server connectivity: issue in the last week By responseBy file typeBy purposeBy Googlebot type OK (200)Moved (301)Not modified (304)Not found (404)Server error (5xx)Other HTMLJavaScriptImageCSSJSONOther file type RefreshDiscovery SmartphonePage resource loadDesktopImageAdsBotOther agent type 71%9%8%6%3%3% 58%14%12%6%5%5% 81%19% 68%22%4%3%2%1% Discovery = first crawlRefresh = recrawl 1 2 3 4 5 6
A healthy pattern: mostly 200 and 304, low server errors, HTML leading the file types; the numbered areas are explained below.
  1. Totals and the chart. Total crawl requests, total download size and average response time over the period. Google says the crawl rate “should be relatively stable over the time span of a week or two”. A sudden drop often follows a broad new robots.txt rule, slower responses or more server errors. A spike often follows unblocking or adding a large section, or new Dynamic Search Ad targets. Watch average response time: when it climbs, the capacity limit tends to fall.
  2. Host status. Covers three categories: robots.txt fetching, DNS resolution and server connectivity. The status tells you whether Google saw no significant availability issues in the past 90 days, an issue more than a week ago, or an issue within the last week. Each category has a chart with a dotted threshold line; for example, DNS failing for more than 5% of requests on a given day counts as an issue. A robots.txt file that returns 429 or 5xx is treated as unavailable and can make Google slow or stop crawling; a 404 for robots.txt is fine.
  3. By response. “In normal circumstances, the vast majority of responses should be 200 responses.” 301, 302, 304 and meta refreshes are listed as good responses, and 404s are often correct. Fix server errors (5xx), unauthorised responses (401/407), timeouts, DNS errors and redirect errors. Percentages are per request, not per URL.
  4. By file type. Shows what Google is fetching. If images or JSON dominate, ask whether those requests are needed, for example many small images that should be blocked, or resources hosted on a slower server. Redirects are counted under “Other file type”.
  5. By purpose. Discovery means “The URL requested was never crawled by Google before.” Refresh is “A recrawl of a known page.” After you publish a lot of new content or submit a sitemap, you should see a bump in discovery crawls.
  6. By Googlebot type. Smartphone, desktop, image, video, page resource load, AdsBot, StoreBot and others. When crawling spikes, this is where you see which crawler caused it. Google notes that AdsBot crawls URLs about every two weeks.

Keep the data quirks in mind. “All URLs shown and counted are the actual URLs requested by Google”, not canonical URLs, and each hop in a redirect chain counts as a separate request. Requests between subdomains are visible from the parent domain property, data covers both http and https, and example URLs are only a sample. Google also notes that some requests may not be counted, so small differences from your server logs are expected. If the report shows far more requests than your logs, robots.txt may have been unavailable: Google counts crawls it would have made but did not.

The report shows patterns, not every URL. To see exactly which URL patterns eat requests, combine it with server logs filtered to verified Googlebot requests, and group them by folder and parameter.

Find the URLs that waste your crawling

OurSEO Tools crawls up to 1,000 pages and records the status code, canonical, indexability and load time of every URL, so you can spot redirects, broken pages and duplicates that eat crawl requests.

69-point checklistTechnical crawlContent analysis

Common mistakes

FAQ

Is crawl budget a ranking factor?

No. Google says that while crawling is necessary for a page to be in search results, “it's not a ranking signal.” It decides whether and how quickly pages can appear in search, not where they rank.

How many pages does a site need before crawl budget matters?

Google gives rough figures: around a million unique pages that change weekly, or around ten thousand that change daily, or a large share of URLs stuck in “Discovered – currently not indexed”. It stresses these are not exact thresholds.

Does blocking URLs in robots.txt give more budget to my other pages?

Only if Google is already hitting your crawl capacity limit. Otherwise demand, not capacity, is the constraint, and the freed requests are not moved elsewhere. Blocking is still useful to keep Google away from URLs it should never crawl.

Do 404 pages waste crawl budget?

No. Google says pages returning 4xx codes, except 429, do not waste crawl budget. Soft 404s, which return 200, do.

Can I ask Google to crawl my site faster?

No. You cannot request a higher crawl rate. You can only make the server faster and more reliable, reduce useless URLs, and publish content worth crawling. To get a single page recrawled, use URL Inspection; for many pages, keep the sitemap and lastmod accurate.

Do subdomains share one crawl budget?

No. Google treats each hostname as a separate site with its own crawl budget, so shop.example.com and www.example.com are budgeted separately.

Sources

Quotes checked against the official pages on 30 October 2026.