WordPress connected to speed through page caching

How to Speed Up WordPress Without Paid Plugins

A slow website loses visitors before they read a single word. The good news: most of the speed a small WordPress site needs comes from the right settings and free tools, not from premium plugins. This is the process I followed on this site.

Measure before you change anything

Write down a few numbers first, so you can prove later that your changes helped.

  • Run your homepage and one inner page through PageSpeed Insights, on mobile and desktop.
  • Check the server response time (TTFB), which tells you how long your server takes to start answering.
curl -o /dev/null -s -w "%{time_starttransfer}\n" https://example.com/

1. Add page caching

Without a cache, WordPress builds every page from scratch with PHP and database queries on each visit. A page cache stores the finished HTML and serves it again.

WP Super Cache is free and reliable. In its Expert mode, cached pages are served directly by the web server, without loading WordPress at all. Exclude pages with forms, carts or personal content.

On this site, cached pages went from about 0.45 s to about 0.25 s of server response time in my tests.

2. Let browsers cache your static files

Images, fonts, CSS and JavaScript rarely change. If your server runs Apache, a few lines in .htaccess tell browsers to keep them:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>

WordPress adds a version number to CSS and JavaScript URLs, so visitors still get your updates.

3. Load scripts only where they are used

Many plugins load their files on every page. A contact form plugin, for example, only needs its scripts on the contact page. Contact Form 7 lets you switch them off everywhere else from your child theme’s functions.php:

add_filter( 'wpcf7_load_js', fn() => is_page( 'contact' ) );
add_filter( 'wpcf7_load_css', fn() => is_page( 'contact' ) );

The same idea applies to captchas, sliders and chat widgets.

4. Self-host your fonts

Loading fonts from Google Fonts means an extra connection to another domain. Download the font in WOFF2 format, upload it to your theme and declare it with font-display: swap. A variable font covers every weight in one file: the font on this site weighs 26 KB.

5. Keep the database and plugins lean

  • Limit post revisions with define( 'WP_POST_REVISIONS', 5 ); in wp-config.php.
  • Deactivate tools you only use occasionally, like migration or backup plugins, until you need them.
  • Avoid two plugins doing the same job. Overlapping optimization plugins can slow a site down instead of speeding it up.

6. Use one clean redirect

Visitors and search engines should reach your site in a single permanent (301) redirect, from http:// and from www, straight to your main address. Chains of temporary (302) redirects waste time on every first visit.

Common mistakes

  • Installing three optimization plugins at once and never measuring.
  • Caching pages that contain forms, carts or account areas.
  • Testing only on desktop, while most visitors arrive on a phone.
  • Forgetting to clear the cache after changing content.

When you finish, run the same tests again and compare. I made most of these changes with an AI agent connected through Novamira, reviewing every step.

If you want me to speed up your site, get in touch. You can also browse my portfolio or read more about me.

Scroll to Top