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:
- A “site” is a hostname. Google says “Google's crawling infrastructure defines a site as a unique hostname.”
www.example.com,shop.example.comandblog.example.comeach have their own crawl budget. Moving a section to a subdomain does not borrow budget from the main host, and an overloaded subdomain does not slow the others. - Crawled is not indexed. “For Google Search, not every page that is crawled will necessarily be indexed.” After a page is fetched, it is still evaluated, grouped with duplicates and judged for the index. More crawling does not guarantee more indexed pages.
- Crawling is not a ranking factor. Google is direct about this: “Improving your crawl rate won't necessarily lead to better positions in Google Search results.” Crawling is a precondition for appearing in search, nothing more.
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:
- “Large sites (1 million+ unique pages) with content that changes moderately often (once a week)”
- “Medium or larger sites (10,000+ unique pages) with very rapidly changing content (daily)”
- “Sites with a large portion of their total URLs classified by Search Console as Discovered - currently not indexed”
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.”
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:
- Crawl health. If response times, including latency and Time to First Byte, stay stable or improve, the limit goes up. If the site slows down, or answers with server errors (5xx) or rate-limiting signals such as 429, “the limit goes down and Google crawls less.”
- Google's own limits. Google's resources are finite and are shared across the whole web.
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:
- 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 those are duplicates or pages you do not care about, crawling time is wasted on them. Google calls this “the factor that you can positively control the most.”
- Popularity. “URLs that are more popular on the Internet tend to be crawled more often to keep them fresher in our systems.”
- Staleness. “Our systems want to recrawl documents frequently enough to pick up any changes.”
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”.
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.
- Consolidate duplicates. Redirect URL variants nobody needs, and use canonical URLs in links, sitemaps and
rel="canonical"for variants that must stay. - 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.
- 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.
- Fix soft 404s. Find them in the Page indexing report and return a real 404, 410 or a 301 to a true replacement.
- 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.
- 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.
- 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.
- 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.
- 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.”
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-Modifiedor 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
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.
- ✕crawl-delay in robots.txt“The non-standard "crawl-delay" robots.txt rule is not processed by Google's crawlers.” Other search engines may read it; Google ignores it.
- ✕noindex to save crawlingGoogle says “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.” Once pages leave the index, noindex can free a little budget indirectly in the long run, but it is a tool for the index, not for crawling.
- ✕Pinging sitemapsGoogle deprecated the sitemaps ping endpoint in 2023, and requests to it now return 404. Submit sitemaps in Search Console or list them in robots.txt instead.
- ✕Rotating robots.txt or sitemapsBlocking sections for a while to “move” budget elsewhere does not work. Google “won't shift this newly available crawl budget to other pages unless Google is already hitting your site's crawl capacity limit.” Google also says “Don't rotate sitemaps or use other temporary hiding mechanisms to reallocate budget.”
- ✕Fake freshnessChanging dates or
lastmodwithout real changes adds nothing. Google sees “no additional value in making pages artificially appear to be fresh by making trivial changes and updating the page date.” - ✕Compressing sitemapsGoogle states that compressed sitemaps do not increase crawl budget: they still have to be fetched.
- ✕nofollow on internal linksA nofollowed URL “can still be crawled if another page on your site, or any page on the web, doesn't label the link as nofollow.” Fix the URLs instead of hiding links to them.
- ✕<priority> and <changefreq>“Google ignores <priority> and <changefreq> values.”
- ✕Asking Google for more“You cannot request an increase in crawl rate”. The only levers are more server capacity and content Google wants to crawl.
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 rateWhen 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.
- 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.
- 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.
- 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.
- 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”.
- 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.
- 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.
Common mistakes
- ✕Optimising crawl budget on a small siteOn small sites, slow indexing is almost always about quality, links or technical errors, not budget.
- ✕Using noindex to “save” crawlingnoindex pages are still requested. Use robots.txt for URLs that should never be crawled.
- ✕Blocking URLs you want removed from the indexA blocked page cannot show its noindex. Let Google crawl it until it drops out, or return 404/410.
- ✕Blocking CSS and JavaScript to save requestsGoogle needs them to render pages; blocking them can break how pages are understood.
- ✕Leaving soft 404s on discontinued productsEmpty pages with status 200 keep being crawled.
- ✕Internal links to redirects and parametersEvery menu link to an old URL costs an extra hop on every crawl.
- ✕Sitemaps full of non-canonical URLsRedirects, 404s and noindex pages in the sitemap tell Google to crawl what you do not want.
- ✕Serving 503 for daysShort emergencies only; longer than 1–2 days risks pages dropping from the index.
- ✕Relying on crawl-delay or sitemap pingsGoogle ignores the first and retired the second.
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
- Google — Optimize your crawl budget
- Google — Reduce the Google crawl rate
- Google Search Console Help — Crawl Stats report
- Google — Myths and facts about crawling
- Google Search Central — Troubleshoot Google Search crawling errors
- Google — Overview of Google crawlers and fetchers (HTTP caching)
- Google Search Central — Build and submit a sitemap
- Google Search Central Blog — Sitemaps ping endpoint is going away
Quotes checked against the official pages on 30 October 2026.