Every CSS file ships rules that never match a single element on the page. In my recent audit of a mid-size web app with 14 production pages, I found 2,847 unused selectors across 3 combined stylesheets totaling 340 KB. Removing them cut the CSS payload from 340 KB to 132 KB — a 61% reduction in file size and a 1.8-second improvement in Largest Contentful Paint (LCP) on a simulated 4G connection.
Here's the step-by-step method I used, along with the exact tool settings that produce reliable results.
The Problem: Why Unused CSS Accumulates
Unused CSS comes from five sources:
Framework defaults — Reset stylesheets and utility frameworks ship 4,000+ rules; most pages use fewer than 400






