Opens in a new tab
Services/ Speed optimization

WordPress speed optimization, measured the way Google measures it

A PageSpeed score can swing 20 points between two tests of the same page. We fix what slows your real visitors down, then prove it with medians and Google’s own visitor data, without breaking your forms or tracking.

Send us your URL. We reply within 4 hours, during waking hours Mountain Time, with a free speed audit: five test runs, your Core Web Vitals from real visitors when Google has them, and a written list of fixes with a fixed price on each one.

5 out of 5 starsFive stars on every Upwork review · Recent builds score 92–99 on mobile
Get a free speed audit

Free. You see every price before any work starts. Reply within 4 hours, Mountain Time, or call 801‑244‑5868.

SciTech & IP Law Firm homepage, desktop
Real result · September 2026

SciTech & IP Law Firm, server response

Time to first byte1–2.7 s→0.25 s

Time to first byte, uncached render vs. the page cache we set up, September 2026. The site now scores 94 on mobile and 100 on desktop in Lighthouse.

Same page, before and after
Proof

Before and after, from three real jobs

Site and fix Before After
The Painting Company, total blocking time (mobile) 730 ms 30 ms
The Painting Company, first paint (mobile) 3.3 s 1.8–2.4 s
EVONOMY Energy, product-page layout shift (mobile CLS) 0.62–0.74 0.006–0.02
SciTech, server response time 1–2.7 s about 0.25 s

Blocking time and first paint: PageSpeed Insights, mobile, October 9–11, 2026. Layout shift: Lighthouse, mobile, October 5, 2026. Server response: time to first byte from the page cache, September 23, 2026.

“Steven did a great job with our website speed optimization. He was professional, responsive, and easy to work with.” Shawn S., on Upwork

Every review on our Upwork profile is five stars. The Work page shows the sites behind them.

What we fix

What does a WordPress speed optimization service fix?

A WordPress speed optimization service finds what makes your pages slow for real visitors and fixes it at the source: a hero image that’s too big or found too late, CSS and fonts that block the first paint, tracking tags that load before the page, images that make the layout jump, or a server with no page cache. A good one tests before and after with the same tool, reports the median of several runs, and checks Google’s real-visitor Core Web Vitals, because a single PageSpeed test can swing 20 points.

Each cause below hurts one of Google’s Core Web Vitals, so Core Web Vitals optimization starts with finding which one is failing on your pages.

What slows the page What visitors notice What it hurts
A hero image that’s too big, or found late The main picture shows up last LCP
CSS and fonts that block the first paint A blank screen for too long LCP
Tracking, chat and map scripts that load before the page Taps and clicks feel stuck INP
Images, galleries and embeds without set sizes Text jumps while they load CLS
No page cache, or a slow host Every page starts late Server response, then LCP

Plugins like WP Rocket or LiteSpeed Cache handle part of this list. A speed service covers the part a plugin can’t see: which image is the largest one on a phone, which script runs first, and what your host does before WordPress even starts.

Lab vs. real visitors

Why does my PageSpeed score change every time I test?

Your PageSpeed score changes because each test is one simulated visit on a slowed-down phone, and small timing differences change the result. On The Painting Company’s homepage, five tests on October 11, 2026 scored 75, 97, 95, 73 and 76. Nothing on the site changed between them.

Part of that swing is a known Chrome bug. In automated tests, Chrome can hold back the first paint of a page (Lighthouse issue #17148). When it does, the score can drop 20 points or more even though the page itself hasn’t changed.

Google ranks pages on real-visitor data, not on one lab test. It collects Core Web Vitals from Chrome users over the last 28 days and rates a page good when its main content shows within 2.5 seconds, it responds to a tap within 200 milliseconds, and its layout shift stays at 0.1 or less (Google’s Core Web Vitals guide).

So this is how we report speed:

  • The median of five mobile tests, before and after
  • Every run listed, not just the best one
  • Google’s real-visitor Core Web Vitals, when your site has enough traffic to have them
  • Blocking time and layout shift, which hold steady when the score doesn’t
Case studies

Three WordPress speed jobs, start to finish

The Painting Company: an Elementor site with its tracking loaded twice

The Painting Company’s homepage, an Elementor site on Flywheel hosting, had 730 ms of blocking time on a phone. The Meta pixel loaded twice, Google Tag Manager loaded with the page, and about 40 stylesheets raced the first paint.

We removed the duplicate pixel, preloaded the hero image and the font, and made the stylesheets wait for the first frame. Tracking now waits for the visitor’s first tap, except for people who arrive from an ad or reach a thank-you page. Their tracking loads at once, so ad conversions still count.

Blocking time 730 ms to 30 ms. First paint 3.3 s to 1.8–2.4 s. Layout shift 0 on every run. PageSpeed Insights, mobile, October 2026.

The Painting Company homepage, desktop

EVONOMY Energy: a WooCommerce gallery that ballooned for a frame

On EVONOMY Energy’s WooCommerce product pages, the whole layout jumped as each page loaded. Mobile layout shift measured 0.62 to 0.74, more than six times Google’s limit of 0.1.

The cause was the product gallery. For a frame or two, before WooCommerce set the image widths, the gallery grew to 4,000 to 8,000 pixels. One CSS rule now holds the gallery square until the images are sized.

Mobile layout shift 0.62–0.74 to 0.006–0.02. Lighthouse, mobile, October 5, 2026.

EVONOMY Energy store homepage, desktop

SciTech: a page cache that was installed but switched off

SciTech’s patent and trademark site runs on Bricks at GoDaddy. Its cache plugin was installed, but the page cache was off, so every visit built the page from scratch: 1 to 2.7 seconds before the first byte arrived.

Turning the cache on and warming it brought that to about 0.25 seconds. We also tested four common fixes and skipped them, because the numbers said they wouldn’t help: deferring the Bricks script (already in the footer), critical CSS (the CSS was already inline), more font preloads (they’d compete with the hero image) and AVIF images (the hero was already a 17 KB WebP).

Server response 1–2.7 s to about 0.25 s, from the page cache, September 23, 2026.

SciTech & IP Law Firm homepage, desktop
No score tricks

Why we don’t chase a 100/100 PageSpeed score

A perfect PageSpeed score is easy to fake and costly to keep. The usual trick holds every script until the visitor taps or scrolls. The test sees a bare page and scores it high, while your chat widget waits and your ad conversions go uncounted unless someone adds the exceptions.

We delay scripts too, with those exceptions, and we check that conversions still fire afterward. We keep only the changes that hold up across five runs. On The Painting Company’s site, a cache plugin’s “turbo render” mode pushed mobile layout shift to 0.82, so we switched it off the same day.

Process

How a WordPress speed job runs

  1. 01

    Free speed audit

    Five mobile tests, desktop tests, Google’s real-visitor data when it exists, and the full request waterfall. You keep every number.

  2. 02

    A fixed price per fix

    Each problem in plain English, ranked by what it costs you, with a fixed price beside it. You choose what gets done.

  3. 03

    Fixes on a copy first

    When your host offers a staging copy, the changes are tested there before they go live.

  4. 04

    The same test after

    Same tool, same settings, five runs again. If a number didn’t move, we tell you why.

  5. 05

    Real-visitor data catches up

    Google’s visitor data covers the last 28 days, so it trails the fix by about four weeks. We show you where to watch it in Search Console.

Pricing

What does WordPress speed optimization cost?

The cost of WordPress speed optimization depends on what is slowing your site, so we price each speed fix, not the hour. The free audit lists every problem with a fixed price beside it, and you approve only the items you want.

Four things move the price most: the builder and theme, how many plugins and third-party scripts load on each page, the host, and whether a fix needs code changes or a rebuild. When the host is the bottleneck, the audit says so and shows the numbers. Speed is one of our WordPress services, and the same free audit covers repairs, builds and email.

Builders

WordPress speed optimization for Elementor, Bricks and WooCommerce

Most of our speed work is on sites someone else built, and each builder slows down in its own way.

  • Elementor: deep page structure, and CSS and JavaScript for widgets the page doesn’t use
  • Bricks: lean by default, so the wins are images, fonts and third-party scripts
  • WooCommerce: product galleries, cart fragments, and checkout pages that must stay uncached
  • Any theme: tracking tags, chat widgets and map embeds that load before anyone needs them

The Work page lists the sites we’ve built and fixed, with their test scores.

Questions

Before you ask

Will speed work change how my site looks?

No. The design stays the same. If a fix would change anything you can see, like a font or an image crop, we show you first.

Do you just install a caching plugin?

No. A page cache is one item on the list, and sometimes it’s the one that matters most. On SciTech, turning on a cache that was already installed cut server response from 1–2.7 seconds to about 0.25.

Do I have to switch hosts?

Usually not. We’ve sped up sites on Flywheel, GoDaddy and IONOS. If your host is the bottleneck, the audit says so and shows the numbers.

How long does a speed job take?

It depends on what the audit finds. Each fix on the list has its own fixed price, and we agree on the timing before any work starts.

Will a faster site rank higher on Google?

We don’t promise rankings. Core Web Vitals are one of many signals Google uses. A faster page does keep more people from giving up before it loads, and that counts whether you rank first or fifth.

Why does my score still bounce around after the fix?

Every lab test is one simulated visit, and a Chrome bug can hold back the first paint in automated tests. That’s why we report the median of five runs, plus blocking time and layout shift, which stay steady when the score doesn’t.

Can you speed up a WooCommerce store without breaking checkout?

Yes. Cart, checkout and account pages stay out of the page cache, and we test checkout after each change. On EVONOMY Energy’s store, one CSS rule fixed the product-page layout shift without touching checkout.

Next step

Send us your URL.

We’ll run five tests, read your real-visitor data and put a fixed price on each speed fix. The audit is free, and we reply within 4 hours during waking hours, Mountain Time.

Book an audit