Less is more
Every active plugin adds code that runs on every page. Aim for the smallest set that does the job. If a feature is used once a month, a plugin is probably not the right answer.
The tools measure. These tips help you decide. They are also displayed in the WP Footprint plugin while your scans run.
Every active plugin adds code that runs on every page. Aim for the smallest set that does the job. If a feature is used once a month, a plugin is probably not the right answer.
A well-coded plugin from a trusted author is worth ten lightweight-but-sloppy ones. Check ratings, last-update date, active install count, and how responsive support is.
A deactivated plugin still lives on the server: files are there, database options too. If you no longer use it, fully delete it — less dead code, smaller attack surface.
Two SEO plugins, two cache plugins, two security plugins — pick one. Overlapping features waste memory and create silent conflicts.
List your active plugins, spot the ones you haven't opened in 90 days. Many were installed for a test and forgotten. This simple cleanup usually shaves 5–10% of unnecessary weight.
A heavy multi-purpose theme often outweighs ten plugins. A simple, modern theme will do most of the work for you — better speed, better peace of mind.
Elementor, Divi, WPBakery often add 200–500 KB of CSS and JS on every page, even ones you didn't build with them. If your theme supports native blocks, that path is almost always faster.
The native block editor now does 90% of what a page builder does, without the overhead. Use patterns and reusable blocks before installing a layout plugin.
Page caching is by far the biggest win for your visitors. Most hosts offer one by default — turn it on. And do not stack several at once.
On a dynamic site — WooCommerce, members area, multilingual — object cache cuts SQL queries by an order of magnitude. If your host offers it, enable it. If not, ask for it.
Cloudflare, BunnyCDN, or Fastly serve your images, CSS, and JS from a point close to each visitor. It's the only effective way to speed up a site for an international audience, and Cloudflare's free tier is already enough.
Optimizing blind is the best way to break something or invest where it doesn't matter. Run a scan, find the culprit, then act. Re-measure after.
Recent versions are often faster and safer. A plugin abandoned two years ago is rarely the right pick. Enable automatic minor updates without hesitation.
On most sites, images represent the overwhelming majority of total weight. Modern format (WebP, AVIF), proper dimensions, lazy loading: three levers, huge impact.
Plugins store temporary results in wp_options without always cleaning them up. Over time that table can grow to several MB and slow every page load. A cleanup every six months (WP-CLI or a dedicated plugin) is plenty.
By default WordPress keeps every revision — it's common to find 50 versions of a single page. Add `define('WP_POST_REVISIONS', 5);` to wp-config.php to keep only the last five.
Spam and trashed comments stay in the database until you empty them. On a site that's been open for a few years, that can mean tens of thousands of rows. Empty it all: Comments → Spam → Empty.
Tables get fragmented over time as data is written and deleted. An `OPTIMIZE TABLE` run (via phpMyAdmin, WP-CLI, or a plugin) defragments, frees space, and speeds up reads. Once per quarter is plenty.
XML-RPC is an old protocol, mostly used by Jetpack and the WordPress mobile app. Unused, it becomes a prime target for brute-force attacks that eat CPU. Turn it off via a filter or your security plugin.
With no limit, /wp-login.php is hammered around the clock by bots. A plugin like Limit Login Attempts, or the built-in feature of your security plugin, locks the IP after a few failures and frees your server.
PHP 8.2 or 8.3 is notably faster than 7.4 — often a 30–50% gain on response time at zero cost. Check your version under Tools → Site Health and ask your host to upgrade if needed.
A script loaded without `defer` or `async` blocks page rendering. For anything that isn't part of the first paint (analytics, chat, video), defer it: big LCP gain and better perceived speed.
Each family and each weight costs a request and several hundred KB. A single family with two weights (regular + bold) is enough for most sites. Self-host the files instead of pulling from Google.
A YouTube embed loads about 1 MB of JavaScript before the visitor even clicks. Add `loading="lazy"` to iframes, or use a lightweight facade that loads the video only on click — huge win on pages with embeds.
WordPress loads wp-emoji-release.min.js on every page to render old emoji on browsers that no longer exist. Almost every site can drop it with no visible loss — one filter in functions.php is enough.
No cache plugin will save a bottom-tier host. A good WordPress host (optimized shared or managed) rarely costs more than a bad one — and changes everything.
Physical latency between server and visitor matters. Mostly European audience? Datacenter in Europe. A Singapore server for Parisian visitors burns 200 ms on every request.
The WP Footprint plugin applies these principles: it measures, it scores, it suggests fixes.
Install WP Footprint