DEV Community

Why your Wix site feels slow: 4.9 MB of HTML before a single image, and which half you can actually fix

The question

A store owner posted that his Wix site took about six seconds before it responded to anything. He had already done the obvious: converted images to webp, shrunk them to size. It changed nothing.

His question was the honest version of a question a lot of people have: β€œOnce you have already made those changes, and the site is still slow - is there anything else we can do? Or just suffer?” Three days, no replies. And the replies he would eventually get were predictable: compress your images. Which, in his case, was both wrong and slightly insulting, because he'd done it.

The interesting thing is that this question is answerable - precisely, with a number - and almost nobody answers it, because doing so requires an experiment rather than an opinion.

First: the images really were fine

Before looking for a culprit I checked the thing he said he'd already fixed, because the worst outcome here is telling someone to keep digging in a hole that's finished. Of 108 media references on the home page, images were being requested at 147Γ—147, 160Γ—160 and 162Γ—162 pixels, q_80, in webp - exactly the size of the slots they sit in, with no headroom. There was not one oversized image on the page.

His image work was done and continuing it would have been a waste of his weekend. (One exception: the og:image was requested at 2500Γ—2500. That is a social-preview asset, not something a visitor waits on.)

So the images were a dead end, which meant the weight was somewhere people don't usually look.

The HTML document is 4.9 MB

Not the page. The document - before a single image, font, or external script.

Over the wire it arrives compressed at 1,230 KB. Decompressed, the thing the browser has to parse is 4,888 KB. I ran it cold three times, bypassing cache: 1,260,005 / 1,259,977 / 1,259,993 bytes. A spread of 28 bytes across three runs. That is not a measurement artefact; that number is real and stable, and you can build an argument on it.

What is inside those 4,888 KB:

part size share
inline <script> 1,579 KB 32.3%

| inline <style> - 88 separate blocks

Comments

No comments yet. Start the discussion.