📦

Large Resource

Performance Auditor

Detects oversized resources affecting page performance

GeneralPerformanceSEOResilience
100 credits
Per check
~30 seconds
Average runtime
Active
Status

Run this auditor

3 of 3 free audits left today

See what Large Resource finds on your site. No sign-up needed.

How it works

  1. Threshold check — before loading anything, the auditor checks that sizeLimitBytesWarning is lower than sizeLimitBytesFail. When it is not, the audit fails with a single check that names both values, and nothing is measured.

  2. Page loading — opens the URL with Playwright (Basic auth is honoured) and waits for the load event. A page that answers HTTP 403, HTTP 429 or a Cloudflare challenge is reported as blocked; any other HTTP error, or a browser error, ends the audit with an ERROR.

  3. Resource discovery — reads the src / href of img, script, link[rel=stylesheet], video and iframe elements. Relative and protocol-relative URLs are resolved against the final page URL; data:, blob: and other non-HTTP URLs are skipped.

  4. Size lookup — sends an HTTP HEAD request per resource and reads Content-Length. When the answer has no Content-Length (chunked or streamed responses) or the HEAD fails, a GET downloads the body, up to sizeLimitBytesFail, and counts its bytes; a download that reaches the limit is reported as "at least" that size. Resources are measured eight at a time, each request limited to 5 seconds. A resource that neither request can size is reported as INFORMATION.

  5. Comparison — every resource whose size is at or above sizeLimitBytesFail produces one FAIL check; every resource at or above sizeLimitBytesWarning and below sizeLimitBytesFail produces one WARNING check. Each check carries the resource URL, its size and both limits in data (sizeInBytes, sizeIsLowerBound, sizeLimitBytesWarning, sizeLimitBytesFail).

Preferences

KeyTypeDefaultDescription
sizeLimitBytesFailinteger (bytes)1024000 (1000 KB)Resources at or above this size fail the audit. Set it per monitored URL on the Configuration tab; plain integer bytes only (for example 1048576 for 1 MB).
sizeLimitBytesWarninginteger (bytes)512000 (500 KB)Resources at or above this size, and below sizeLimitBytesFail, produce a warning. Must be lower than sizeLimitBytesFail.
evaluateExternalResourcesbooleantrueWhen false, resources served from a host other than the audited site or one of its subdomains (www. ignored) are not measured. Each one left out is listed as an INFORMATION check, 37A-LargeResourceAuditor-101. Set it per monitored URL on the Configuration tab.

An invalid value (missing, zero, negative, fractional) makes the auditor fall back to that preference's default and log a warning. A warning limit equal to or above the fail limit is not an invalid value: it makes the audit fail until the thresholds are fixed.

What this auditor validates

Every row maps to one checkRule* method and one CheckCode, in the order the auditor runs them.

CheckCodeStatusWhen it firesRecommendationWhy it matters
37A-LargeResourceAuditor-401FAILsizeLimitBytesWarning is equal to or above sizeLimitBytesFail. Message: sizeLimitBytesWarning ({warning}) must be lower than sizeLimitBytesFail ({fail}).On the auditor's Configuration tab, set sizeLimitBytesWarning below {fail}, or raise sizeLimitBytesFail above {warning}.Until the warning threshold is lower than the fail threshold this audit cannot measure the page, so oversized files that slow it down go unreported.
37A-LargeResourceAuditor-500ERRORThe page could not be loaded in the browser (browser error, timeout, or an HTTP error status other than a block). Message: Could not load {url} in the browser: {error}.Make sure {url} loads in a browser (it answered: {error}), then run the audit again.—
37A-LargeResourceAuditor-100INFORMATIONNeither HEAD (Content-Length) nor GET could size a resource. Message: Could not measure the size of {resource}: {problem}.Make sure {resource} answers a HEAD or GET request within 5 seconds; until then its size is not compared with the {warning} warning threshold.—
37A-LargeResourceAuditor-400FAILA resource is at or above sizeLimitBytesFail. Message: Resource {resource} is {size}, at or above the {fail} fail threshold.Compress, resize or lazy-load {resource} ({size}) to bring it below {fail}, or raise sizeLimitBytesFail if the size is intentional.Oversized files delay rendering and waste mobile data, so visitors wait longer and more of them leave before the page loads.
37A-LargeResourceAuditor-300WARNINGA resource is at or above sizeLimitBytesWarning and below sizeLimitBytesFail. Message: Resource {resource} is {size}, at or above the {warning} warning threshold and below the {fail} fail threshold.Compress or lazy-load {resource} ({size}) before it grows past {fail}.Large files add load time on every visit, and visitors on slow mobile connections feel it most.
37A-LargeResourceAuditor-200SUCCESSAll rules passed. Message: All {n} measured resources are below {warning}; the largest is {resource} at {size}.——
37A-LargeResourceAuditor-590ERRORThe audited page answered HTTP 403, HTTP 429 or a Cloudflare challenge, so 37AuditsBot was blocked before it could read the page.Allow 37AuditsBot in your firewall or bot protection: allowlist its user agent, or verify its Web Bot Auth signature. See https://www.37audits.com/bot.While 37AuditsBot is blocked this audit cannot look at the site, so problems on it go unreported.
37A-LargeResourceAuditor-101INFORMATIONevaluateExternalResources is false: one check per resource that was not measured, served from a host other than the audited site or one of its subdomains. The check's resource is that URL; data carries host, siteHost and evaluateExternalResources: false. Message: Not evaluated: the resource {resource} is served from {host}, outside {siteHost}, and Evaluate external resources is off. Never changes the result's status.Turn on Evaluate external resources for this monitored URL to assess third-party resources too.—

Sizes are shown in MB with two decimals (1.20 MB); a size measured by a download that stopped at the fail limit reads at least 0.98 MB.

Output Documentation

StatusDescriptionTest logic
INFORMATIONA resource could not be measuredNeither HEAD nor GET gave its size. Never changes the overall status.
SUCCESSNo resource reaches the warning limitEvery measured resource is below sizeLimitBytesWarning.
WARNINGOne or more resources are large, none too largeAt least one size is greater than or equal to sizeLimitBytesWarning, and none reaches sizeLimitBytesFail; the summary message counts them.
FAILOne or more resources are too large, or the thresholds are inconsistentAt least one size is greater than or equal to sizeLimitBytesFail (the summary counts the failures and, when present, the warnings), or sizeLimitBytesWarning is not lower than sizeLimitBytesFail.
ERRORThe audit could not runThe page could not be loaded (…-500) or the site blocked 37AuditsBot (…-590).

Risks and Considerations

Large assets hurt Core Web Vitals

  • Oversized hero images and videos are the most common cause of a slow Largest Contentful Paint.

  • Big JavaScript bundles block the main thread and delay interactivity on low-end devices.

What this auditor does not check

  • Resources loaded dynamically after the load event (for example by scripts or CSS url() references) are not discovered.

  • A resource behind a slow server (more than 5 seconds per request) is reported as unmeasured rather than compared with the limits.

  • The limits apply to every resource type alike; they do not distinguish a 1 MB video from a 1 MB script.

This documentation is built and hosted on Mintlify, a developer documentation platform.

Source: docs.37audits.com

Ready to start auditing?

Add this auditor to your monitoring setup and start identifying issues on your websites today.

© 2026 37 Audits. All rights reserved. Audit your websites with confidence.

Supported by

Made with ❤️ in Floripa