Your site loads slowly, and you have already been told to “optimise your images”. Fine. But some of the biggest speed gains sit in the server configuration your host set up for maximum compatibility. Hosts keep a cautious default: a setting that works for every site they run beats a setting that is fast for most sites and puzzling for the rest. The catch is that cautious means several high-impact switches are simply switched off on your plan, and nobody has turned around to tell you.
These five fixes are copy and paste. Three of them live in a single file you can edit from your hosting panel. Keep it gentle: do one fix, test, then move to the next.
First, where to paste
If your host runs Apache or LiteSpeed, the settings file is .htaccess, sitting in the same folder as your wp-config.php (usually public_html). Open your hosting panel’s file manager, make a copy of the file first by downloading it, then paste each block above the line that says # BEGIN WordPress. Save, reload your site in a normal browser tab, and if anything breaks, re-upload your copy. You are always one file download away from a clean rollback.
If a setting refuses to work, your host may be running nginx, which does not read .htaccess. Email them the snippet and ask them to enable it. This is a routine request that takes support teams minutes.
1. Turn on compression
Compression shrinks every page and stylesheet before the server sends it, usually cutting text transfer by 60 to 80 percent. It is the single most obvious off-by-default switch.
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
AddOutputFilterByType DEFLATE application/javascript application/json
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>Verify it: open your browser’s DevTools, switch to the Network tab, reload the page, click the main document row, and look at the response headers. Content-Encoding: gzip or br means it is on.
2. Tell browsers how long to keep your assets
Every repeat visit re-downloads your logo, your stylesheet and your product photos unless you tell browsers to keep copies. Cache lifetimes fix that with one block:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 6 months"
ExpiresByType image/png "access plus 6 months"
ExpiresByType image/webp "access plus 6 months"
ExpiresByType image/svg+xml "access plus 6 months"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType font/woff2 "access plus 6 months"
</IfModule>Verify it: reload your site, open DevTools → Network, and check that image rows now show a Cache-Control header with a long max-age. Second visits get visibly faster.
3. Lazy-load the images below the fold
When a browser hits an image tag, it fetches the image, even one resting at the bottom of the page where nobody has scrolled yet. Native lazy loading hands that decision back to the browser.
<img src="product-photo.jpg" width="1200" height="800" loading="lazy" alt="Handmade ceramic mug">Modern WordPress adds loading="lazy" to most content images automatically, but images hard-coded into your theme or landing page builder often miss out. Two details matter here. Add width and height so the browser reserves the right amount of space while the image loads, which stops the page jumping around as it fills in. And never lazy-load your main hero image, because that is the one thing visitors arrive wanting to see.
4. Preload your main font
Fonts are slow because of the order of discovery: browser loads the page, reads the stylesheet, discovers the font, then starts fetching it. Preloading moves that discovery to the front of the queue. Paste this inside your <head>, with your actual font file and family:
<link rel="preload" href="/wp-content/themes/your-theme/fonts/main-font.woff2" as="font" type="font/woff2" crossorigin>Look up your theme’s folder name to fill in the path correctly. If you use two custom fonts, preload the headings font and let the body font take the scenic route. If your page builders offer a “preload fonts” options panel, the same instruction hides there under a friendlier name.
5. Introduce your third-party scripts before they arrive
Your analytics, your chat bubble, your payment fields all live on other companies’ servers. Browsers must look up each of those addresses before downloading anything, which adds quiet pauses in the load. dns-prefetch performs the lookup in advance:
<link rel="dns-prefetch" href="https://example-analytics.com">
<link rel="dns-prefetch" href="https://example-payments.com">Replace those placeholder domains with the real hosts of tools you have deliberately installed. You can find them in one minute: DevTools → Network tab, sort by the “Domain” column, and note anything that is not your own. While you have that list open, ask a harder question about anything at the bottom of it. Every third-party script you remove without a second thought is a fix more permanent than any prefetch.
Test once, not every minute
Before your first change, run your homepage through a free checker such as PageSpeed Insights and note the score and the load time. Then apply one fix at a time, testing after each, so you can see which of the five actually moved the needle for your site. Half of these will matter more on some setups than others, and knowing which ones pay off on yours is the real prize.
Want more like this? Join MOKU Club for free. Weekly resources, early access to new guides, and occasional templates you can actually use. Join below.



