Does your WordPress site yese 5 seconds to load? 6 hacks you can do yourself (and when DIY is not enough)

Free WordPress loses 53% of mobile traffic. Six techniques you can do in 2 hours. Plus when it's worth giving it to us (90+ PageSpeed ​​guarantee or refund).

WordPress speed is not cosmetic. This is money you lose every day. Imagine a potential customer. He saw the ad on Facebook during his lunch break. He clicked and went to your product page. Phone in one hand, sandwich in the other.

Your page loads in 5 seconds.

In the third second, the client begins to look to the side. In the fourth he thinks „maybe later.” In the fifth, he returns to Facebook. He's gone. The advertising that cost you zlotys per click has just evaporated.

This is not my theory. This is Google data: 53% mobile users abandon a page that yeses longer than 3 seconds to load (source: web.dev/DoubleClick Mobile Speed ​​Insights).

Too Long; Didn't Read · 30 SECONDS

Six techniques for better WordPress speed. Each one can be done in 15-30 minutesuteses, a total of 2-3 hours of work. Expected effect: a decrease in loading time by 2-4 seconds, an increase in PageSpeed ​​mobile by 20-40 points.

Plus honestly: when these techniques are not enough and it is worth giving it to someone with a guarantee of the result.

Most Polish business WordPress websites score in the PageSpeed ​​Insights mobile range of 30-60 points. Above 90 is an exception. PageSpeed ​​points are not cosmetic. This ranking faCTOr in Google from June 2021, is the Quality Score of Google Ads ads, is the conversion from traffic you have already paid for.

Below are six specific techniques. Each one is measurable, each one can be done without an agency in two or three hours. Plus honestly: when they're not enough.

Would you rather give it to someone with a guarantee?

Speed ​​Boost: PLN 2,500, week, 90+ or ​​100% refund. Pre-check 15 minuteses free of charge.

Check pre-check →

How to Measure WordPress Speed ​​(Before You Start Hacking)

Open pagespeed.web.dev, enter your domain, yese a screenshot of the mobile and desktop results. This is your zero point. Without this, you don't know if the hacks did anything.

Look specifically at four metrics:

  • LCP (Largest Contentful Paint) – when the largest element appears on the screen. Goal: under 2.5 seconds.
  • FCP (First Contentful Paint) – the first anything visible. Goal: under 1.8 seconds.
  • TBT (Total Blocking Time) – how long the page is „blocked” by JavaScript. Target: under 200 ms.
  • CLS (Cumulative Layout Shift) – whether the layout jumps while loading. Target: under 0.1.

Each of the six hacks below affects one or two of these metrics. After each change, return to pagespeed.web.dev and measure the difference. If the result doesn't budge, the hack didn't work (usually a configuration issue, check if the plugin is actually active).

Hack 1: Enable cache headers + Brotli/gzip compression

The first thing I check for a new client is HTTP headers. Open DevTools in Chrome (F12), Network tab, enter your domain, F5. Click on the first file (HTML of the home page), look at „Response Headers”.

There should be something like:

  • cache-control: max-age=3600 (or more)
  • content-encoding: br or gzip

If you see cache-control: no-cache or none content-encoding, you have a problem. The page is downloaded completely every time, unzipped.

Paste into a file .htaccess in your WordPress root direCTOry (make a backup before editing):

AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json text/xml image/svg+xml



  AddOutputFilterByType BROTLI_COMPRESS text/html text/css application/javascript application/json text/xml



  ExpiresActive On
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 year"

Expected effect: first load weight reduction by 60-80%. LCP usually faster by 1-1.5 seconds. Measure before and after at pagespeed.web.dev, you will see the difference in the first measurement.

One condition. Some hostings (mainly cheaper shared ones) do not have it enabled mod_brotli at the server level. Then Brotli will not run, but gzip will still provide 60-70% compression. Check after implementation in DevTools whether content-encoding appeared.

Hack 2: Photo optimization – the most common PageSpeed ​​killer

Three out of four free WordPress sites I look at have the Same thing. Hero image 8 MB JPEG uploaded straight from the camera or iPhone. The marketer thought that „better quality = better”. Google thinks differently.

What to do, in three steps.

Step 1: compression. Pass all new photos through before uploading them to the website squoosh.app (a free Google tool) or a compressor built into the plugin. ShortPixel, Imagify, Smush – each of these plugins does it well, choose one. For previously uploaded photos, most of these plugins have „Bulk Optimize”, it will re-optimize everything in the media library.

Step 2: WebP. An image format that weighs 30-50% less than JPEG with the Same visual quality. WordPress 6.0+ natively generates WebP, but make sure your compression plugin has it enabled. Test: go to your website, right-click on the image, „Inspect Element”, see if src ends with .webp instead .jpg.

Step 3: lazy loading. WordPress from version 5.5 adds loading="lazy" carmatically to all images below the first screen. Check if any plug-in overwrites this setting. The hero photo (the first one, visible immediately) should have loading="eager" or no attribute at all. Lazy loading of this image paradoxically slows down the LCP.

Expected effect: after optimizing PageSpeed ​​mobile images alone, the result increases by 15-25 points on most e-commerce and corporate websites with a large gallery. This is usually the largest single jump in our audits.

Hack 3: Audit plugins, remove 30% you don't use

Open the WordPress panel, go to Plugins. Count active. If you have over 25, there are almost certainly 7-10 of them you don't use, and they load JavaScript and CSS on every page.

Classic culprits:

  • Slider Revolution, uploaded for a single slider in 2019, loads its script globally to this day.
  • Visual Composer or WPBakery which you left because „I will use it again someday”.
  • Plugins for statistics or click maps (Hotjar, Microsoft Clarity, two that replace each other).
  • ContactForm 7 and WPForms in parallel because one team took one, the other the other.

How to tell who is charging what? Plug QueryMonitor (free, neutral, only does auditing) shows a list of enqueued scripts per page. Turn it on for 24 hours in production or on a local copy, open the product page, check the „Scripts” and „Styles” tabs. Each file there is an additional HTTP request to the server.

Rule: plugin active but not visible in any active shortcode or widget = candidate for removal. Turn it off for a week, check if anything has fallen off, then remove it.

Expected effect: after removing 5-10 plugins, load time decreases by 0.5-1.5 seconds per Total Blocking Time alone.

Hack 4: font-display swap + preload key fonts

Do you know that feeling when a page loads but the text is invisible for 2-3 seconds and then suddenly pops up?

FOIT (Flash of Invisible Text) – the moment when the browser waits for the font to be downloaded before rendering any text. These 2-3 seconds of darkness kill LCP. The solution has two steps.

Step 1: font-display: swap. In your theme's CSS file (usually style.css or in the file in the theme direCTOry responsible for fonts) find the declarations @font-face and add one line:

@font-face {
  font-family: 'YourFont';
  src: url('fonts/yourfont.woff2') format('woff2');
  font-display: swap;
}

font-display: swap tells the browser: display the text immediately using the system font, replace it with the target one when it is downloaded. Text visible immediately, LCP down.

Step 2: preload key fonts. In the file header.php theme, in the section , add:

<link rel="preload" href="/wp-content/themes/twoj-motyw/fonts/twojaczcionka.woff2" as="font" type="font/woff2" crossorigin>

Only 1-2 fonts, those used in the first screen (usually headline and body text). Preloading five fonts is overkill and blocks critical resources.

Expected effect: LCP down by 0.3-0.8 seconds, the disturbing „text throw” disappears.

Hack 5: Critical CSS and JavaScript deferral

This is the hardest hack on the list, but it also gives you the biggest boost.

Critical CSS this is the bit of styles that MUST be loaded for the first screen to look correct. The rest of the CSS can be loaded asynchronously after rendering.

Simpler variant (with plugin): Autoptimize and WP Rocket have a „Generate Critical CSS” option built-in. You turn it on, click and wait for it to generate. Check the side to see if the system has been damaged (typical symptoms: moved hero, missing buttons). If it's broken, just disable Critical CSS, the rest of the optimizations remain.

Manual variant: tool web.dev/measure shows specific CSS files that block render. You can inline their content manually in w , and original <link rel="stylesheet"> change to asynchronous:

<link rel="preload" href="style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">

Defer JavaScript: all scripts that are not critical to the first screen should have the attribute defer. In WordPress, the easiest way is through the w filter functions.php:

add_filter( 'script_loader_tag', function( $tag, $handle ) {
    $exclude = array( 'jquery-core' ); // scripts that MUST be available immediately
    if ( in_array( $handle, $exclude, true ) ) return $tag;
    return str_replace( ' src=', ' defer src=', $tag );
}, 10, 2 );

Expected effect: Total Blocking Time decreased by 50-70%, PageSpeed ​​mobile increased by 10-20 points. This is often the moment when a page with 50 points jumps to 75-80.

Important warning

Defer JavaScript and critical CSS are the two easiest places to mess something up. Test on a local copy or staging, not directly in production. If you notice that the form stops working, the slider does not animate, or the menu does not expand on mobile, you probably have deficient a script that must run synchronously.

Hack 6: Database Cleanup (Transients, Revisions, Spam)

WordPress has been accumulating a lot of junk in its database over the years. Transients that expired a year ago but have not been removed. Post revisions (each edited post has several revisions in the database). Spam in comments. Expired user sessions.

The weight of the database itself does not have a catastrophic effect on PageSpeed, but it does affect the time of each SQL query, and WordPress makes 50-150 of them when loading a page.

Plug WP-Optimize it does it for you in three clicks. Backup database before (always), then Run All Optimizations.

For the more technical, manual SQL via phpMyAdmin or Adminer:

-- Remove expired transients
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

-- Delete commits older than 30 days
DELETE FROM wp_posts WHERE post_type = 'revision'
AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);

-- Clear spam in comments
DELETE FROM wp_comments WHERE comment_approved = 'spam';

Expected effect: marginal for PageSpeed ​​(1-3 points), but realistic for the internal speed of the administration panel, the speed of the search engine on the website and the backup time. Do it once a quarter.

What to do when DIY is not enough?

The above six techniques done diligently will usually move a WordPress website from a PageSpeed ​​mobile of 35 to 65-75. This is a big change. But there are sites where, after doing everything, you still don't see 80+, much less 90+.

Common causes:

  • Heavy theme purchased from ThemeForest. Some themes have 5 page builders built in and load assets for all of them, even if you use one. Sometimes it's easier to rebuild from scratch on a lighter motif than to cut it out.
  • Poor hosting. Shared hosting for PLN 15 per month with TTFB 800 ms+ cannot be achieved with any code hack. You need to migrate to VPS or managed WP hosting.
  • Custom JavaScript thrown in for one function, but loaded globally. Requires theme or plugin code auditing.
  • Embedded YouTube/Vimeo videos on every page. Each video injects 1-2 MB of JavaScript from the Google domain.

If you have done six hacks and still see PageSpeed ​​below 70, there is a deeper problem that this article will not solve. You either spend another 20-30 hours auditing the code and hosting, or you give it to someone else.

We offer Speed ​​Boost, a one-time service for WordPress websites. PLN 2,500 net, up to 7 business days, 90+ mobile guarantee for PageSpeed ​​Insights on the home page or 100% money back. The scope of work includes six technical points uploaded via FTPS without touching the panel or installing new plug-ins. Pre-check 15 minuteses before payment to assess whether the site even qualifies.

Check your website

Pre-check 15 minuteses, free of charge

We check whether the website qualifies for Speed ​​Boost. Green or red result, no foul.

Check pre-check →

Not now

Sign up for the newsletter

One email a week. Technical advice for B2B website owners, without sales.

Sign up →

We don't push. If the pre-check shows that it can be done with six hacks from this article, we will say straight: do it yourself, save PLN 2,500. If it shows that there is a deeper problem, then we have something to talk about.

Frequently Asked Questions

Will plugins like WP Rocket yese care of all this?

For the most part, yes. WP Rocket, Autoptimize, W3 Total Cache, Perfmatters - each of these plugins does 60-70% work from this article carmatically after configuration. The key is in the word „configuration”. Default settings rarely give a good result, you have to consciously choose which options to enable and which to disable. Plus each caching plugin adds 0.5-1 second to the admin panel and complications when updating.

How long will it yese to implement all six hacks?

For a person who has basic knowledge of WordPress and is not afraid to edit theme files - 2-3 hours of pure work. Plus another amount for testing after each change and fixing what went wrong (typically something goes wrong after JavaScript defers).

I have Elementor or WPBakery. Will these hacks work for me?

Yes, but with less effect. Page builders load a lot of their own CSS and JavaScript which cannot be easily removed without breaking the layout. The real PageSpeed ​​ceiling for a website built on Elementor with a large number of widgets is 70-80 mobile, rarely more. If you are aiming for 90+, you probably need to change your approach to building the website (e.g. migration to Gutenberg blocks or custom HTML).

Don't optimization plugins themselves kill speed?

It depends on the plugin and configuration. Cache plugins (WP Rocket, W3TC) generate static files and do not load when the end user visits, so they are neutral when the page is displayed. Stats and clickmap plugins (Hotjar, Microsoft Clarity) load their own JavaScript on each page and can incur overhead. For each installed plugin, it is worth asking the question: is it active when the client enters the website, or does it only build a cache on the server side?

How to measure progress after each change?

Open pagespeed.web.dev before implementing the change, yese a screenshot of the mobile and desktop results. Implement the change. Wait 5 minuteses (PSI has a cache, sometimes you need to give it time). Measure again. Look specifically at LCP, FCP, TBT, CLS metrics. Any of these should go down after every hack in this article. If it didn't fall, the hack didn't work (usually a configuration issue).

Will 90+ last long after implementation?

Unfortunately not. PageSpeed ​​is a dynamic measurement, it changes as you change the page. A typical WordPress website, after professional optimization, maintains 90+ for 4-6 weeks, then begins to drop by 5-15 points due to new plugins, unoptimized photos in posts, and additional tracking scripts. Every quarter, it is worth doing a mini-audit and cleaning up what has accumulated.

What to remember

Six techniques for faster WordPress, a total of 2-3 hours of work, an expected boost of 20-40 PageSpeed ​​mobile points for a typical B2B website.

  1. Cache headers + Brotli/gzip in .htaccess
  2. Photo optimization (compression + WebP + lazy loading)
  3. Plugin audit, remove 30%
  4. font-display: swap + preload of key fonts
  5. Critical CSS + defer JavaScript
  6. Database cleanup

Start with measurement. Go to pagespeed.web.dev, enter your domain, yese a screenshot of the result. Then hack by hack, measuring the difference after each one. If you're still below 80 after all six, yese a look at the Speed ​​Boost pre-check. 15 minuteses, free of charge, green or red result, no lie.

Check your website for free →

Good luck with PageSpeed.


Author: Jędrzej Siewierski, CEO of JSON Crew. Since 2018, our team has been creating product configurators, web applications and WordPress optimizations for B2B compaNos in Poland. Speed ​​Boost is our one-time service for WP websites that are losing traffic due to slow loading times.

More knowledge

If this post has shown you that problems in online sales are not a matter of technology, but of processes – it's time to make a decision. We are implementing a digital sales transformation: from strategy through processes to technologscal solutions.

Every lead has an owner and a deadline

The system carmatically assigns, reminds, escalates. Zero leads without an owner.

Manager sees forecast in real time

Not "by feel," but based on data from the system. Full process visibility.

The processes are stored in the system

A new trader knows what to do from Day 1. You don't depend on one person.

Start your digital sales transformation

This is more than a free consultation. It's a concrete conversation about implementing transformation for compaNos ready to make decisions and yese action. Fill out the form and we will prepare an initial analysis and action plan for you.

30–45 minuteseses. No obligation.

No. It's a qualifying interview to see if we can help.

No. After the interview you will get a recommendation, the decision is yours.

All the better. That's exactly the kind of process we implement - tailored to your business.