Laravel
← Back to all checks

Performance

Page weight & caching

Weighs your page and everything it loads, and checks compression and caching. Heavy pages are slow on mobile networks and cost your visitors data.

How it works

Once a day, we download your page and every script, stylesheet and image it references (up to 50 files), and add up their size. We also check how each file is served:

  • Compression: text files over 1 KB (HTML, CSS, JavaScript) should be compressed with gzip or Brotli.
  • Caching: static files should be cacheable, and files behind a CDN should be served from the CDN cache rather than from your server every time.
  • Heavy files: any single file over 500 KB, more than 500 KB of JavaScript in total, and JPEG, PNG or GIF images over 100 KB, which a modern format such as WebP or AVIF would shrink.
  • Render-blocking scripts: scripts in <head> without async or defer, which stop the page from appearing until they have loaded.
  • Requests: pages that need more than 80 requests.
  • Growth: a page that grew by 25% (and at least 100 KB) since the previous run.

The total page weight is charted over time.

Settings

Setting Default What it does
Budget KB 3000 Fail when the page weighs more than this.

Statuses

Status Meaning
OK The page is within budget and no problems were found.
Warning One of the problems above, or we could not connect.
Failed The page weighs more than your budget.

By default you are notified of failures only.

Fixing common problems

  • Large images: resize images to the size they are displayed at, convert them to WebP or AVIF, and lazy-load images below the fold with loading="lazy".
  • No compression: enable gzip or Brotli in the web server or CDN for HTML, CSS, JavaScript, JSON and SVG.
  • Render-blocking scripts: add defer to scripts in <head>, or move them to the end of <body>.
  • Too much JavaScript: remove unused libraries and split the bundle so each page only loads what it needs.