Skip to content

Browser caching and compression for faster pages

Two web-performance basics do a lot of work: compression (send less over the wire) and browser caching (don’t re-download what hasn’t changed). Together they make first loads lighter and repeat visits near-instant.

Compression (gzip / brotli)

Text assets — HTML, CSS, JS, SVG, JSON — compress dramatically (often 70–80% smaller) before being sent. Modern servers do this on the fly; gzip is standard and brotli is even better for static files.

Check whether your responses are compressed:

Terminal window
curl -I -H "Accept-Encoding: gzip" https://yourdomain.com/style.css
# look for: content-encoding: gzip

Compress text, not already-compressed binaries (JPEG/PNG/WebP, videos, zips) — re-compressing those wastes CPU for no gain.

Browser caching (cache headers)

Static assets that rarely change — images, fonts, compiled CSS/JS — should tell the browser to keep a local copy so repeat visits don’t re-download them. That’s the Cache-Control header, e.g. a long max-age for versioned assets.

The trick that makes long caching safe: fingerprint filenames (app.9f2a.js). When content changes, the filename changes, so the browser fetches the new one — no stale-cache problems. Most build tools (Vite, webpack, etc.) do this automatically.

How to apply it

  • Static sites / SPAs — your build tool fingerprints assets; set long cache lifetimes for the hashed files. See static sites.
  • PHP / WordPress — caching plugins and framework config set these headers; a CDN can add them too.
  • Apps — set cache headers in your framework for static responses.

Don’t over-cache HTML

Cache assets aggressively, but keep HTML short-lived (or no-cache) so content updates appear right away — otherwise visitors see stale pages.

The bigger picture


Running OrbixPanel? nginx serves your assets with compression; pair it with a CDN for the rest. OrbixPanel.com → — the free, self-hosted, AI-powered hosting control panel.