A slow site loses visitors before they even see your offer. On a phone, people rarely wait more than a few seconds, and Google takes speed into account through Core Web Vitals. The good news: WordPress can be very fast. My own site, ytwebco.com, scores 99 on mobile PageSpeed and 100 on desktop, and a WooCommerce food delivery store with 300+ products scores 93 and 98.
99 / 100
PageSpeed, mobile · ytwebco.com (desktop: 100)
93 / 100
PageSpeed, mobile · WooCommerce store, 300+ products (desktop: 98)
Below are the 10 steps I go through on every project, from the simplest to the ones that need a developer.
1. Measure it properly first
Open PageSpeed Insights and check the mobile version: it is always worse than desktop, and it is the one Google relies on. Look beyond the overall score at the three Core Web Vitals:
- LCP — how fast the main element of the first screen appears. Good: under 2.5 s.
- INP — how fast the site responds to a click. Good: under 200 ms.
- CLS — whether the page “jumps” while loading. Good: under 0.1.
Measure 2–3 key pages: the home page, a service or category page, and a product page. Write the numbers down: without them you won’t see what actually helped.
2. Check hosting and the PHP version
If the server responds slowly (TTFB in the report), no plugin will save you. The minimum worth having: a current PHP 8.x, HTTP/2 or HTTP/3, gzip or brotli compression. The cheapest shared hosting is often the bottleneck for stores; they are better off on a dedicated server or a cloud plan.
3. Turn on caching
A page cache serves ready-made HTML instead of WordPress building the page again for every visitor. For stores and sites with customer accounts, add an object cache (Redis, for example) so the database isn’t hit with the same queries over and over.
4. Sort out your images
This is the most common reason for a slow first screen:
- convert photos to WebP or AVIF;
- upload images at the size they’re shown, not 4,000 pixels for a 600-pixel block;
- lazy-load everything below the first screen;
- but do not lazy-load the main image of the first screen: it needs priority.
On one site I audited, the home page loaded around 9 MB of images in old formats while scrolling. An optimization plugin was installed, but nobody had turned conversion on.
5. Load fonts the right way
Google Fonts add extra requests to third-party servers. It’s better to host the fonts on your own site as woff2, keep only the weights and scripts you need (Cyrillic and Latin), add font-display: swap and preload the main font. That way text appears right away and doesn’t “jump” when the font finishes loading.
6. Remove unneeded plugins
Every plugin can add its own styles and scripts to every page, even where it isn’t needed. A typical example is a contact form whose scripts load on every page while the form only lives on the contact page. Go through your plugin list: delete what you don’t need, and limit the ones you keep to the pages where they actually work.
7. Optimize CSS and JavaScript
- Defer secondary scripts (
defer) so they don’t block rendering. - Remove unused CSS.
- Split out the critical styles of the first screen so it renders right away.
- Check whether your site needs jQuery on the front end. Often only one small feature pulls it in.
8. Think about your theme and page builder
Heavy themes and page builders add a lot of code your site doesn’t need. They can be sped up too, but only so far. On my site the theme is written from scratch, without a page builder: each block loads only its own styles and scripts. That’s where the 99 on mobile comes from. If your site already runs on a builder, start with steps 4–7 and 9: they give the biggest effect without a rebuild.
9. Keep third-party scripts in check
Analytics, ad pixels, live chats and social widgets often weigh more than the site itself. Load them through Google Tag Manager, only after cookie consent, and load heavy widgets (chats, maps, video) after the first interaction or when the visitor scrolls to them.
10. Clean up the database and queries
Over time the database collects post revisions, temporary plugin data and settings that load on every page. In WooCommerce, also check cart AJAX requests and background admin requests: on high-traffic sites they are often what loads the server. Only clean the database after a backup.
When to call a developer
You can often do steps 1–6 yourself. Critical CSS, deferring scripts, database and server work are riskier: one mistake and the cart or the enquiry form breaks. If mobile PageSpeed is still below 80 after the basic steps, or the site slows down exactly at peak hours, the cause usually runs deeper than plugins.
I start with an audit of your key pages: I show what exactly slows the site down and what will have the biggest effect, and give a fixed price for the fixes. I work on a copy of the site, and when the work is done you get a PageSpeed report from before and after. More on site speed and technical SEO.
Questions
Can you speed up WordPress with just a plugin?
A caching and optimization plugin gives a visible result, but rarely takes mobile PageSpeed to 90+. It won’t fix heavy first-screen images, slow hosting, extra scripts from other plugins or a heavy theme. What works best is a combination: the right cache plus removing the reasons the site is slow.
Why is the mobile score always lower than desktop?
PageSpeed tests the mobile version on a weaker phone with slow 4G. So everything that goes unnoticed on a computer (heavy images, scripts, fonts) hits the mobile result hard. That’s why optimization is best judged by the mobile number.
Do you guarantee a PageSpeed score of 100?
No, and nobody can honestly guarantee a specific score: the result depends on hosting, third-party scripts and even the moment of measurement. My sites usually score 90+ on mobile. For your site I name a realistic target after the audit, before any work starts.
How much does speeding up a WordPress site cost?
From $20/hour. The total depends on the state of the site: theme, plugins, hosting and how much custom code there is. After a short audit you get a fixed price for the fixes, calculated from that rate, plus a list of work, so you know the full cost before anything starts. Details on the speed optimization page.