Back to Website Growth Insights
Website Strategy

Custom-coded vs WordPress: a real-world speed comparison

Speed comparisons between platforms are usually theoretical, because the two pages are never doing the same job. This one is different. A local service business moved from a site we built to a WordPress rebuild by another provider, so the business, the services and the market all stayed the same. The new provider wrote their own content and built their own page structure, and we've accounted for that below.

7 min read
Share

Most speed comparisons are worth very little. Someone builds a demo page in one platform, builds a different page in another, and declares a winner. The content differs, the images differ, the hosting differs, and the result tells you almost nothing about what would happen to your business.

Occasionally you get a cleaner test. A local service business we had built for moved to a different provider, who rebuilt the site in WordPress. Same business, same services, same customers, same part of the world. We measured both with Google PageSpeed Insights on the same day, and the gap was wider than we expected.

The measurements

What the two sites scored

Both figures come from Google PageSpeed Insights on mobile, run on the same day in September 2026. We've kept the business and the other provider anonymous, because the point here is the platform difference and not a particular company. Anyone can reproduce this kind of test on any two public URLs in about a minute.

The custom-coded site is built in Astro and served as static files. The replacement is a WordPress build. Neither result is a laboratory trick and neither site was tuned for the test.

Time before the main content appears

Largest Contentful Paint, mobile · lower is better

8.4sWORDPRESS4.4sCUSTOM-CODED48% faster

Time the browser spends blocked

Total blocking time, mobile · lower is better

330msWORDPRESS0msCUSTOM-CODED0 ms
MeasureWordPress rebuildCustom-coded build
Performance score5883
Largest Contentful Paint8.4s4.4s
Total blocking time330 ms0 ms
Speed Index4.9s3.5s
Cumulative layout shift0.0020
Total page weight1,194 KiB1,390 KiB

Google PageSpeed Insights, mobile, both URLs measured on 6 September 2026. Business and other provider kept anonymous. Note the last row: the WordPress build ships less and is still the slower of the two, which is the point of this article. Updated 24 September 2026: the original version called this a like-for-like test and said the content stayed the same. That was too strong, and the request breakdown further down was added at the same time because it's the part that shows why the comparison still holds.

The surprise

The slower site was the lighter one

Read that last measurement again. The WordPress site ships around 200 KiB less than the custom-coded one, and it still takes nearly twice as long to show a visitor the main content.

This matters because it demolishes the most common explanation people are given for a slow site. If you've ever been told your site is slow because the images are too big, this is the counter-example. The lighter site lost, and it lost badly.

Weight isn't the same thing as speed. What you ship matters less than what the browser has to do before it can paint anything.

The cause

Where the time goes

The clearest signal in the numbers is total blocking time: zero against 330 milliseconds. Blocking time measures how long the browser spends stuck running JavaScript instead of responding to the person using the page.

A static site has almost nothing to run. The HTML arrives already built, so the browser paints it. A typical WordPress page arrives as a template that has to be assembled by a theme, a page builder and a stack of plugins, each contributing scripts and stylesheets that have to be fetched, parsed and executed before the layout settles.

None of that's a criticism of anyone's build quality. It's what the platform does. You're paying a tax for flexibility you may never use.

We went back on 24 September 2026 and looked at what each homepage downloads. Both pages carry eight images. After that they diverge completely.

  • The custom-coded page makes 11 requests in total: one stylesheet, one font file, eight images, and no JavaScript at all.
  • The WordPress page makes 79. Twenty-four scripts totalling 510 KiB, of which 164 KiB is never used. Thirty-five separate stylesheets. Seven font files.
The composition

The lighter page is carrying more machinery

So the lighter page is lighter because it carries less content, not because it's leaner. It ships around 218 KiB of images and about 960 KiB of machinery. The custom-coded page ships about 1,317 KiB of images and 57 KiB of everything else.

That second figure isn't a boast. 1,317 KiB across eight images is more than our page should be carrying, and the image pipeline is the first thing we'd fix on it.

What this test doesn't control: the two sites don't carry identical copy or the same page structure, and they're not on the same hosting. The rebuild has twenty-one pages to our twenty-nine, arranged differently. What it does control is the thing being tested. The same business, the same services, the same market, both homepages doing the same job, both measured on the same day.

The cost

What four extra seconds does to a local business

An 8.4 second Largest Contentful Paint means somebody tapping your listing on a phone, on mobile data, waits more than eight seconds before the page is meaningfully there. Most people don't. They go back and tap the next result, which is your competitor.

It compounds in three directions. Core Web Vitals feed into how Google ranks you, so a slow site works against the visibility you paid for. Slow pages convert worse, so the traffic you do get is worth less. And increasingly, AI search tools have to fetch and read your pages to recommend you at all, which a site that takes eight seconds to render makes harder than it needs to be.

The honest part

Our own result wasn't perfect either

The custom-coded site scored 83, not 100. Its Largest Contentful Paint was 4.4 seconds, which we would want lower. Publishing a comparison and pretending our side was flawless would be the sort of marketing we spend our time arguing against.

The gap is what matters. 83 against 58, and paint time roughly halved, on the same business selling the same services to the same market. That's the platform difference, measured rather than asserted.

The nuance

This isn't an argument against WordPress

WordPress runs a huge share of the web for good reasons. If you need a large editorial team publishing daily, a complex membership system, or a specific plugin that solves a real problem, it's often the right answer. We do performance work on WordPress sites for other agencies, and a well-built one can be quick.

The argument is narrower. For a local service business with a handful of pages, whose website exists to explain the service clearly and make it easy to get in touch, WordPress asks you to carry a lot of machinery you'll never use. That machinery is what shows up in the blocking time.

If your site is already on WordPress and slow, the fix usually isn't a rebuild. It's finding what's blocking the render and dealing with it.

What to do

How to run this test on your own site

Open PageSpeed Insights, paste your homepage URL, and read the mobile tab rather than desktop, because that's where your customers are. Then do the same for two competitors you would hate to lose a job to.

Three numbers tell you most of the story, and you don't need to be technical to read them.

  • Largest Contentful Paint: how long before the main content appears. Under 2.5 seconds is good, over 4 seconds is a problem.
  • Total blocking time: how long the browser is frozen running scripts. Anything over 200 milliseconds is worth asking about.
  • Performance score: a rough summary. Useful for comparison, less useful on its own.
Questions

Questions local business owners usually ask next

Next step

Want to know what your site actually scores?

We'll run the same test on your website and two competitors, then tell you plainly whether speed is your problem or whether something else is costing you the enquiries.