Checking Pages Against Crawler Payload Limits: the Googlebot 2MB Limit
99Visibility Research · Updated October 21, 2026 · 8 min read
Short answer
Googlebot fetches up to 2MB of HTML for any individual URL, excluding PDFs, which get 64MB. Anything past 2MB is not fetched, rendered or indexed. Google's other crawlers default to 15MB when they don't specify a limit. Google says most of the web never comes close. Measure the raw HTML size of your largest templates, and act only on pages that actually exceed the threshold.
Key takeaways
- Googlebot reads the first 2MB of a URL's HTML and ignores the rest, while PDFs get 64MB and Google's other crawlers default to 15MB.
- The limit is counted per URL, and images, CSS and JavaScript files have their own separate counters.
- Google says the vast majority of the web will never hit this limit, so treat it as a rare hard failure, not a routine optimization.
- Measure raw HTML bytes with a single request, check your biggest templates, and flag only pages over the threshold.
- Shrinking a page that is already under the limit changes nothing, and fixing an oversized page restores eligibility, not citations.
What the 2MB limit is, and what it is not
In a March 2026 Search Central post, Google's Gary Illyes stated that Googlebot currently fetches up to 2MB for any individual URL, excluding PDFs. For PDF files the limit is 64MB. Bytes after the 2MB threshold are, in Google's words, entirely ignored: they aren't fetched, they aren't rendered, and they aren't indexed.
Three details matter for anyone running a check:
- It is per URL. The HTML document has its own counter. Images, stylesheets and script files are sub-resources with separate counters, so a heavy image does not eat into your HTML budget.
- The 15MB figure is a default. The same post says any other crawler that doesn't specify a limit defaults to 15MB. That statement covers Google's crawlers. It is not a published limit for GPTBot, ClaudeBot or PerplexityBot, and none of those operators document one in the evidence we hold.
- It rarely bites. Google's own framing is that for the vast majority of the web, a 2MB HTML payload is massive and you will never hit this limit.
So this is a check you run to rule something out. For the full definition, see the crawl payload limit glossary entry.
Why an oversized page matters for AI answers
AI visibility has four stages: what the model already knows (parametric), whether a crawler can fetch and store the page (access), whether the page is pulled in for a query (retrieval), and what the model uses and cites (generation). The payload limit is an access problem. You control it completely.
On Google, the link to AI features is direct. Google's AI features documentation says a page must be indexed and eligible to be shown with a snippet to appear as a supporting link in AI Overviews or AI Mode. Text past the 2MB cutoff is never indexed, so it cannot be eligible. If your pricing table or product specs sit after a huge inline data block, they may simply not exist as far as Google is concerned.
For non-Google AI crawlers, the bigger issue is usually rendering, not size. Vercel's crawler study found ChatGPT and Claude crawlers fetch JavaScript files but don't execute them, so they only see what is in the raw HTML. That is why size and rendering checks belong together. Pair this page with the raw HTML vs rendered DOM check.
What fixing a size problem does not do: it doesn't make a page more likely to be retrieved or cited. It removes a block. Nobody outside the engines controls what happens after that.
How to measure raw HTML size
You need the size of the HTML document as the server sends it, before any JavaScript runs. Follow these steps.
- List your heaviest templates. Long category or listing pages, documentation hubs, pages with big inline data, and any page built by a page builder that inlines styles. Check one URL per template, not every URL.
- Fetch the raw HTML with one request. curl doesn't execute JavaScript and, by default, doesn't ask for compression, so it reports the uncompressed body size:
curl -s -L -o page.html -w "body: %{size_download} bytes\nheaders: %{size_header} bytes\n" https://example.com/your-page
- Record the body and header bytes together. Google's evidence on this limit doesn't state whether it is measured before or after compression. Using the uncompressed figure gives you the larger number, so your check errs on the safe side.
- Compare against the thresholds. 2MB for Googlebot on HTML. 64MB for PDFs. 15MB for Google crawlers that specify no limit.
- If a page is over, find where the bytes are. Open page.html and search for long inline script blocks, embedded JSON state, base64-encoded images, and inline SVG. These are the usual culprits.
- Find where your key facts sit. If the page is over the limit, check whether your prices, definitions and product names appear before or after the 2MB mark. Content past the mark is what you lose.
If you'd rather not use a terminal, the free page size crawler limit check runs the same measurement for a single URL.
What good and bad results look like
Most results will be boring. That is the good outcome.
| Result | What it means | What to do |
|---|---|---|
| Well under 2MB | Normal. Googlebot reads the whole document | Nothing. Move on to rendering and access checks |
| Approaching 2MB | No content is lost yet, but a template change could push it over | Note it and re-check after the next release |
| Over 2MB | Everything after the cutoff is ignored by Googlebot | Fix it, starting with whatever sits above your key content |
| PDF under 64MB | Within Googlebot's PDF limit | Nothing size-related to do |
| Fetch returns 403 or a challenge page | You measured an error page, not your content | Fix access first. Size is irrelevant until the crawler can reach the page |
That last row catches people out. A firewall or CDN can block a crawler that robots.txt allows, and the HTML you measure will be tiny because it is a block page. Confirm reachability with the free AI crawler checker before trusting any size number.
Do not report "page is 1.2MB" as a problem. Google's own statement is that most pages never come near the limit. Flag only pages that exceed it.
Payload limit checklist
Run through this list for each template you check.
- I measured the raw HTML, not the rendered DOM or the total page weight with images.
- I recorded body bytes and header bytes from a single request.
- The response was a 200 with real page content, not a redirect loop, challenge page or 403.
- HTML pages are under 2MB, or I have flagged the ones that aren't.
- PDFs I care about are under 64MB.
- For any oversized page, I know which inline block is causing it.
- For any oversized page, I know whether key facts fall before or after the 2MB mark.
- I checked that the content that matters is in the raw HTML at all, not only after JavaScript runs.
- I did not flag pages under the limit as a size problem.
- I noted the date of the check, so I can compare after the next release.
Fixing a page that is over the limit
The fix is almost always about inline weight, not about writing less.
Move inline payloads out of the HTML
- Base64 images: serve them as normal image files. Sub-resources have their own counters.
- Large inline scripts and styles: move them into external files.
- Embedded data blobs: frameworks sometimes inline the full data set a page uses for hydration. Trim it to what the page needs, or load the rest separately.
- Endless listings: split very long lists across paginated URLs, each well under the limit.
Put the important facts early
If you can't shrink a page quickly, at least make sure the content that matters appears before any large block. That way the first 2MB contains your facts, not your scripts.
Don't trade one problem for another
Moving content behind client-side JavaScript to cut HTML size can hide it from AI crawlers that don't execute JavaScript. Keep load-bearing text in the server-rendered HTML. The free JavaScript rendering check confirms nothing disappeared after the change.
After the fix, re-run the measurement and confirm the page returns 200 with the facts present.
How often to repeat the check
Page size only changes when your templates or data change, so tie the check to those events rather than a calendar alone.
- After any redesign, framework upgrade or new page builder. These are the changes most likely to add inline weight.
- When a listing or catalog page grows. A page that lists every product can cross the line as the catalog expands.
- Quarterly spot check. Re-measure one URL per heavy template.
- When Google updates its crawling documentation. The limits above are as stated in Google's March 2026 post and current as of October 2026. Google describes them as what Googlebot "currently" fetches, so check the source again if you see reports of a change.
If every template has been comfortably under the limit for several checks, you can drop to a check only after major releases. Spend the saved time on access and rendering, where problems are far more common.
Frequently asked questions
Do images, CSS and JavaScript count toward the 2MB limit?
Not toward the HTML document's limit. Google says the counter is per URL, and sub-resources such as images, stylesheets and script files have separate counters. A page with heavy images can still have a small HTML document. What counts against the HTML is anything inlined into it: base64 images, inline scripts, inline styles and embedded data. That is why moving inline weight into external files is the usual fix.
Do ChatGPT, Claude or Perplexity have their own page size limit?
None of them publishes one in the evidence we hold. The 15MB default comes from Google and covers Google crawlers that don't specify a limit. It is not a ceiling for non-Google AI retrieval. For those crawlers, the more common problem is that they don't execute JavaScript, so content that only appears after rendering is invisible. Check rendering before worrying about size.
What about large PDFs?
Googlebot's limit for PDF files is 64MB, far higher than the 2MB HTML limit. Most PDFs fall well under it. If a key document is larger, the same rule applies: bytes past the threshold are ignored. For whether AI engines read PDFs at all, see [can AI search engines read PDFs](/questions/can-ai-read-pdfs).
Will making my page smaller help it get cited in AI answers?
Not if it is already under the limit. Size is an access check: it decides whether Googlebot can index all of your content, which is a precondition for appearing in AI Overviews and AI Mode. It doesn't influence which pages get retrieved or cited. Fixing an oversized page restores eligibility for the lost content. Nobody can promise what the engines do after that.
How do I know whether Google read my whole page?
Measure the raw HTML size. If it is under 2MB, Googlebot fetched all of it. If it is over, the portion past 2MB was ignored. For a fuller explanation of what each engine reads, see [does AI read my whole page](/questions/does-ai-read-whole-page) and [is my page too large for Google](/questions/page-too-large-for-google).
Sources
This page is AI-assisted. It was written from a verified evidence base and checked against our editorial policy. Engine behaviour changes often; facts are as of October 21, 2026.