Is your HTML under Googlebot's 2 MB limit?
Enter a URL and see its size as transferred and uncompressed, against the 2MB Googlebot crawls. If it is over, see what sits past the cut and which inline scripts, styles and data: URIs make the HTML big.
Check how fast the whole page loads
looot's website speed test runs Lighthouse on a page and reports performance, accessibility, best practices and SEO scores, with LCP, CLS and TBT. Use it for the page with its images, scripts and fonts. This tool measures the HTML file only.
See the Content-Encoding header
Our HTTP header checker lists every response header a URL sends, hop by hop, including Content-Encoding, Content-Type and Content-Length.
Enter a URL
Any public page, PDF or text file on http or https, on port 80 or 443.
We download it like a crawler
One GET per hop with Accept-Encoding: gzip, deflate, br, redirects followed by hand, up to 5. Every hop is checked again, so a redirect to a private address is refused.
We count the bytes twice
Once as they arrive (transferred) and once after decompression (what Google's limit counts). Reading stops at 16 MB.
You see the verdict
The uncompressed size against 2 MB (64 MB for a PDF), what sits past the cut when it is over, and the biggest inline blocks in the HTML.
Googlebot stops reading a file at 2MB and only sends the part it downloaded for indexing. Sections, links and structured data that come later in the HTML are not seen. Compression does not help, because the limit counts uncompressed bytes. The page looks fine in a browser, so the only way to know is to measure the HTML.
Rules this tool uses
- Google's Googlebot page: "When crawling for Google Search, Googlebot crawls the first 2MB of a supported file type, and the first 64MB of a PDF file." A PDF is checked against 64 MB, every other file against 2 MB.
- The same page: "The file size limit is applied on the uncompressed data." The verdict uses the size after decompression. The transferred size is shown too, but gzip or br does not make a page fit.
- Also from that page: "Once the cutoff limit is reached, Googlebot stops the fetch and only sends the already downloaded part of the file for indexing consideration." That is why the tool shows what sits after byte 2,097,152.
- Google says "each resource referenced in the HTML (such as CSS and JavaScript) is fetched separately", each with its own limit. So only the HTML document is measured. Inline scripts, styles, SVG and data: URIs are part of that document, so they count.
- Google's crawler overview: "By default, Google's crawlers and fetchers only crawl the first 15MB of a file, and any content beyond this limit is ignored." It adds that "a Google crawler like Googlebot may have a smaller size limit (for example, 2MB)". Files over 15 MB are flagged too.
- Google does not define MB. We count 1 MB as 1,048,576 bytes, so the limit is 2,097,152 bytes, and we show bytes everywhere. A file over 2,000,000 bytes but not over 2,097,152 is marked borderline.
- The file type comes from the Content-Type header, as Google says: "The file type is determined by the Content-Type HTTP header returned when Google crawls the file". Google adds: "Other Google crawlers, for example Googlebot Video and Googlebot Image, may have different limits." Images and video are not measured.
- Byte positions inside the HTML (the cut, where each block starts) are counted as UTF-8. Headings, links and text past the cut are counted in the HTML as sent. JavaScript is not run.
- No score and no ranking claim. Google describes a crawl limit, so the tool only says what falls past it and is not seen.
- Limits: 16 MB read, compressed or not, 4 MB of HTML analysed, 6 seconds for each request to answer, 20 seconds per check including the download, 5 redirects. Private and local addresses are refused, and each redirect is checked again. The API at /api/v1/page-size-checker allows 30 checks per 60 seconds per IP address. The spec is at /openapi.json.
Sources
Read on 2026-11-12.
- Google Search Central, Googlebot (last updated 2026-02-03)https://developers.google.com/search/docs/crawling-indexing/googlebot
- Google Crawling Infrastructure, Overview of Google crawlers and fetchers (last updated 2026-06-12)https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers
- Google Search Central, File types indexable by Google (last updated 2026-02-03)https://developers.google.com/search/docs/crawling-indexing/indexable-file-types
Worked example: our homepage and a long Wikipedia list
We ran it on 2026-11-12. https://www.ayrank.com/ is 709,321 bytes uncompressed (0.68 MB, 33.8% of the limit) and 150,208 bytes on the wire with br, so it is under. Its biggest inline block is the Next.js RSC payload: 56 self.__next_f scripts, 513,136 bytes, 72.3% of the HTML. The Wikipedia page List of Falcon 9 and Falcon Heavy launches is 3,188,710 bytes uncompressed but only 323,481 bytes with gzip, so it is over the limit by 1,091,558 bytes. Past the cut sit 1,812 links and 74,326 characters of text, and no heading starts there. Its inline blocks are small (the biggest is 5.6 KB of CSS), so the size comes from the markup and text.
Frequently Asked Questions
What is Googlebot's page size limit?
When crawling for Google Search, Googlebot crawls the first 2MB of an HTML page or other supported file type, and the first 64MB of a PDF. Content after that point is not crawled. Google's default for its other crawlers and fetchers is 15MB.
Does the 2 MB limit count the compressed or the uncompressed size?
The uncompressed size. Google's Googlebot page says "The file size limit is applied on the uncompressed data." A page that is 300 KB with gzip or br on the wire can still be over 2 MB once decompressed.
Do images, CSS and JavaScript files count toward the 2 MB?
Not as separate files. Google says each resource referenced in the HTML is fetched separately, with its own limit. They count when they are inline: a script or style block, an inline SVG, or a base64 data: URI inside the HTML is part of the document.
What makes HTML larger than 2 MB?
Look at the biggest inline blocks list. Common ones are framework data such as __NEXT_DATA__ or the Next.js RSC payload, inline CSS and JavaScript, inline SVG, and images or fonts embedded as base64 data: URIs. Moving them into separate files takes them out of the HTML.
How is this different from a website speed test?
A speed test loads the whole page with every image, script and font and times it. This tool measures one file, the HTML document or a PDF, against Googlebot's crawl limit. A fast page can still have HTML over 2 MB, and a slow page can be well under it.
Want us to fix this for you?
Want page weight, rendering and crawl limits checked across every template on your site? AY Rank's technical SEO work covers it.