Performance15 rules onwhat could slow your pages down.
The server, what a page waits for, how much it weighs and what shifts its layout.
Server
- A text response could benefit from compressionA text response over 1 KiB lacks Content-Encoding and a gzip trial shows a positive size saving.In the report: Text response served uncompressed
- Pages are slow to send their first byteQualified first-byte measurements on an origin exceed 800 milliseconds at the 75th percentile, with a later measurement confirming the same group of pages.In the report: Slow server response (TTFB) for HTML documents
- Static files are cached briefly or not at allA versioned static file has a short cache lifetime, or another static file has no cache policy or a zero lifetime.In the report: Static assets without long-lived caching
Loading
- A head script may block renderingA fetched external classic script in the document head lacks async and defer and may block rendering.In the report: Synchronous external script declared in the document head
- A likely main image is lazy-loadedThe first image near the top of a page’s main content is lazy-loaded, through
loading="lazy"or a script, which can delay it if it is the image people see first.In the report: A likely main image is lazy-loaded - A likely main image is not discoverable from the HTMLThe first statically qualified large image in the main region is a CSS background whose address has no confirmed match in an ordinary HTML image or an initial-head image preload.In the report: Likely LCP image not discoverable from HTML
- A web font face has no font-display descriptorAn
@font-facerule in a stylesheet that audited pages load declares nofont-displaydescriptor, so the browser's default policy decides how text waits for the font.In the report: @font-face without font-display - An initial stylesheet declares an import dependencyA confirmed initial screen stylesheet contains a valid applicable import dependency, which may be worth simplifying.In the report: @import chain inside blocking CSS
- Initial stylesheet transfers exceed the recorded budgetThe measured encoded bytes of confirmed initial screen stylesheets exceed the budget recorded for the audit.In the report: Large render-blocking stylesheet payload
Page weight
- A large legacy-format image has no confirmed modern alternativeAn image embedded in the original HTML was received as JPEG, PNG or GIF above the recorded per-image transfer budget, with no confirmed modern alternative for that embedding and a legacy-format response to a request that accepted AVIF and WebP.In the report: Large image in legacy format
- A page has too many or deeply nested HTML elementsThe page's element count, nesting depth or number of children passes the set thresholds.In the report: Excessive DOM size
- Pages reference scripts from many other sitesThe page's script references come from more outside origins than the set threshold.In the report: Declared third-party script origins exceed the configured threshold
Layout and responsiveness
- A page contains an unload-handler patternCaptured script text or a body event attribute matches an unload-handler pattern; an actual
unloadlistener may prevent back/forward caching.In the report: Unload/beforeunload handler pattern in first-party script - CSS declares animations of layout propertiesA stylesheet that audited pages load declares a transition or keyframe animation of layout properties such as
width,topormargininstead oftransformoropacity.In the report: CSS animation of layout properties - Media may load without reserved spaceAn image, video, iframe or embed has no height reserved by the HTML and supported CSS we could read, so review its loading in the browser without treating this check as a measurement of layout shift.In the report: Media element without reserved space