Free Tool

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.

Free. No sign-up. One download of the HTML, with gzip, deflate and br accepted like Google's crawlers. Images, CSS and scripts linked from the page are not downloaded.

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.

Open the website speed test

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.

Open the HTTP header checker
1

Enter a URL

Any public page, PDF or text file on http or https, on port 80 or 443.

2

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.

3

We count the bytes twice

Once as they arrive (transferred) and once after decompression (what Google's limit counts). Reading stops at ⁦16 MB⁩.

4

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

  1. 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⁩.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. No score and no ranking claim. Google describes a crawl limit, so the tool only says what falls past it and is not seen.
  10. 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.

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.