Performance Auditor — flags page resources whose size is at or above a warning limit (500 KB by default) or a fail limit (1000 KB by default), both set per monitored URL.
Performance
Oversized assets delay rendering and inflate data transfer, especially on mobile.
Configurable
Both size limits are per-URL preferences, so a media-heavy site can raise them without changing the auditor.
img, script, link[rel=stylesheet], video and iframe elements, and reports each one whose size is at or above the warning limit: as a warning while it stays below the fail limit, and as a failure once it reaches the fail limit.
How it works
- Threshold check — before loading anything, the auditor checks that
sizeLimitBytesWarningis lower thansizeLimitBytesFail. When it is not, the audit fails with a single check that names both values, and nothing is measured. - Page loading — opens the URL with Playwright (Basic auth is honoured) and waits for the
loadevent. 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 anERROR. - Resource discovery — reads the
src/hrefofimg,script,link[rel=stylesheet],videoandiframeelements. Relative and protocol-relative URLs are resolved against the final page URL;data:,blob:and other non-HTTP URLs are skipped. - Size lookup — sends an HTTP
HEADrequest per resource and readsContent-Length. When the answer has noContent-Length(chunked or streamed responses) or theHEADfails, aGETdownloads the body, up tosizeLimitBytesFail, 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 asINFORMATION. - Comparison — every resource whose size is at or above
sizeLimitBytesFailproduces oneFAILcheck; every resource at or abovesizeLimitBytesWarningand belowsizeLimitBytesFailproduces oneWARNINGcheck. Each check carries the resource URL, its size and both limits indata(sizeInBytes,sizeIsLowerBound,sizeLimitBytesWarning,sizeLimitBytesFail).
Preferences
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 it audits
Every row maps to onecheckRule* method and one CheckCode, in the order the auditor runs them.
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
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
loadevent (for example by scripts or CSSurl()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.