performance.html-weightThe HTML is heavy
Why it matters
Everything else waits for the HTML. It is the first thing fetched and it can't be rendered until enough of it has arrived, so a heavy document delays the text, the images and the scripts alike — and on a phone on a slow connection that is the difference between a page appearing and a visitor leaving.
Past about 500 KB of decoded HTML the cause is nearly always one of three things: the whole catalogue rendered into a page that shows twelve of it, a page builder emitting a <style> block for every element, or data inlined as JSON for a script to use later. None of them is visible in the design, and all of them are paid for on every visit.
500 KB is our rule of thumb, not a standard. There is no limit that makes a page wrong, and a long article with a lot of words is meant to be big. Google's own crawler reads far more than this. Treat it as a prompt to look, which is why it is a notice.
How to fix it
Look at what is actually in the file (View source, not the inspector: the inspector shows the page after scripts have run). Usually one of:
- a listing rendering every row and hiding most of them — paginate, or render what is shown; - inline <style> repeated per element — move it to a stylesheet, which is then cached for every other page; - a large inlined JSON blob — fetch it when it is needed instead.
Compression (performance.compression) shrinks what crosses the wire but not what the browser then has to parse, so it helps and doesn't cure this.