A web performance audit checklist

David Gilbertson
Sep 5 · 14 min read
Thanks Vlad Kutepov for taking this photo for me and putting it on Unsplash

The benchmark device

Instrumentation

Work out the user split

Turn on compression

Crank up the compression, to 11

zlib.gzipSync(fs.readFileSync('./my-file.js')).length
zlib.brotliCompressSync(fs.readFileSync('./my-file.js')).length

Never wait for the network again

Lots and lots of files

Unused code

Never-used code

"@turf/along": "^6.0.1",
"@turf/area": "^6.0.1",
"@turf/bbox": "^6.0.1",
"@turf/bbox-polygon": "^6.0.1",
"@turf/bearing": "^6.0.1",
"@turf/boolean-contains": "^6.0.1",
"@turf/boolean-crosses": "^6.0.1",
"@turf/buffer": "^5.1.5",
"@turf/center": "^6.0.1",
"@turf/centroid": "^6.0.2",
"@turf/clean-coords": "^6.0.1",
"@turf/clone": "^6.0.2",
"@turf/distance": "^6.0.1",
"@turf/explode": "^5.1.5",
"@turf/helpers": "^6.1.4",
"@turf/invariant": "^6.1.2",
"@turf/length": "^6.0.2",
"@turf/line-intersect": "^6.0.2",
"@turf/line-offset": "^5.1.5",
"@turf/line-slice": "^5.1.5",
"@turf/line-slice-along": "^5.1.5",
"@turf/meta": "^6.0.2",
"@turf/midpoint": "^5.1.5",
"@turf/nearest-point-on-line": "^6.0.2",
"@turf/point-to-line-distance": "^6.0.0",
"@turf/points-within-polygon": "^5.1.5",
"@turf/polygon-to-line": "^6.0.3",
"@turf/shortest-path": "^5.1.5",
"@turf/simplify": "^5.1.5",
"@turf/transform-scale": "^5.1.5",
"@turf/truncate": "^6.0.1",

Too-big code

Not-used-by-all-users code

Not-used-right-now code


Use a Content Delivery Network

The little things

User interactions

Backend performance

That’s all!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade