WordPress speed and Core Web Vitals
How to find out why a WordPress site is slow and what to fix first. Measure, start with the server and the page cache, then images, then everything the browser has to load.
- By
- WP Ministry
- Published
Speed work pays off in a particular order, and most wasted effort comes from starting at the wrong end.
Start here. How to speed up a slow WordPress site is the whole job in the order that pays off. If the report in front of you talks about LCP, INP and CLS, read Core Web Vitals first.
One metric is failing. Each has a page of its own: Largest Contentful Paint, when the main thing on the page arrives late; Interaction to Next Paint, when the page is slow to answer a tap; and Cumulative Layout Shift, when the page jumps as it loads.
The server answers slowly. Nothing in the browser can make up for that. See server response time, then choose a page cache.
The page is heavy. Images are usually most of it: optimize them and load them late. Then deal with scripts and styles that hold up the first paint: render-blocking resources and minifying.
Visitors are far from the server. That is what a CDN is for.
The dashboard is slow, or pages that cannot be cached are. Start with why the WordPress dashboard is slow. If your host says admin-ajax.php is using the CPU, find out what is calling it. Look at the database last.
If you are getting quotes, what speed optimization costs says what the job should include and what nobody can honestly promise.
If you would rather hand it over, speed optimization is a fixed-price job with measurements before and after on the pages you name.
Guides
- admin-ajax.php high CPU usage in WordPress: how to find what is calling itadmin-ajax.php is the address WordPress, plugins and themes use for background requests. High CPU from it means something calls it too often, or one kind of call is slow. Find the action behind the requests, fix whatever sends it, and do not block the file.
- AI bots slowing down your website: how to confirm it on WordPress and what to do, mildest firstCount the requests in the server's access log by user agent. If AI crawlers lead, ask them in robots.txt to stay out of the addresses that cost the most, answer named crawlers with 429 while the server is overloaded, and block one outright only if it keeps coming.
- How to clean up and optimize a WordPress database, and what it does for speedCleaning a WordPress database makes it smaller and its backups quicker. Do not count on it for faster pages. The database work that can affect speed is trimming autoloaded options and adding a persistent object cache. Back up first, because a delete cannot be undone.
- How to enable gzip and Brotli compression in WordPressText compression is switched on at the web server or at a CDN in front of it. Check first, with curl or the browser's network panel, because it may already be on. If it is not, turn it on at the host, in a caching plugin, in .htaccess on Apache, or in nginx's configuration.
- How to fix Cumulative Layout Shift (CLS) in WordPress: find what moves and reserve its spaceCLS adds up how far visible content jumps without the visitor causing it. On WordPress the cause is nearly always an image, embed or ad with no space reserved, a web font swapping in, a notice added at the top, or an animation. Find what moves, then reserve its space.
- How to fix Interaction to Next Paint (INP) on a WordPress siteINP is how long a page takes to show a response to a tap, a click or a key press, reported close to the worst one of a visit. A page that loads fast fails it when JavaScript keeps the browser busy. Find the slow interaction, then remove, delay or split the script behind it.
- How to fix Largest Contentful Paint (LCP) in WordPress: find the slow part, then fix itLCP is the time until the largest image or block of text in the first screen is drawn. It is slow because the server answered late, the browser found the image late, the image downloaded slowly, or drawing was held up. Find which part it is, then fix that one.
- How to fix render-blocking CSS and JavaScript in WordPressA render-blocking file is a stylesheet or script the browser must fetch and process before it draws the page. Find the files in the audit, defer the scripts that can wait, stop loading what a page does not use, and check the page after every change.
- How to lazy load images and videos in WordPressWordPress already lazy-loads images and iframes with the browser's own loading attribute, so images need no plugin for it. The work is checking that it runs, keeping the main image at the top of the page out of it, and handling background images and video.
- How to minify CSS and JavaScript in WordPress, and when it is worth doingMinifying strips comments and spacing from CSS and JavaScript files so they download smaller. Switch it on in an optimization plugin, one setting at a time, on a staging copy. WordPress already ships its own files minified, so measure what is left to gain first.
- How to optimize WordPress images without losing qualityUpload each image at the size it is shown and in the format that suits it. WordPress then makes several sizes, lets the browser pick one and lazy-loads the rest. Add one plugin to compress and convert, back up before running it over old uploads, and check a real page.
- How to reduce server response time (TTFB) in WordPressTime to First Byte is the wait before a page's answer starts to arrive. Time it in phases, with and without the cache, to see whether the connection or WordPress is slow. Then fix that part, starting with a page cache, an object cache and the PHP version.
- How to set up a CDN for WordPressA CDN keeps copies of your site's static files on servers near your visitors. Put one in front of the whole site through DNS, as Cloudflare works, or serve only static files from a second hostname with a plugin. Then check HTTPS, the response headers and the checkout.
- How to speed up a slow WordPress site, in the order that pays offMeasure the pages that matter first. Then work down the list in order. Check the PHP version and the hosting, add a page cache, fix the images, cut plugins, look at the theme, add a CDN, and tidy the database last. Change one thing at a time and measure again.
- How to speed up a WooCommerce storeA store is harder to make fast than a blog because the cart, checkout and account pages are built fresh for every customer. Cache every page that can be cached, keep those three out, and make the rest cheap to build with suitable hosting, an object cache and a tidy database.
- Slow WordPress admin: how to find the cause and fix itThe dashboard is never served from a page cache, so every screen waits on PHP and the database. Time one slow screen, read it in Query Monitor, then check outside requests, database queries, the object cache, PHP, Heartbeat, WP-Cron and the host, in that order.
- Why the WooCommerce dashboard is slow, and how to find the causeThe WooCommerce dashboard is built by the server on every click, with no page cache to help. Measure one slow screen with Query Monitor, then check order storage, the Scheduled Actions queue, the options table, Analytics, the object cache, plugins and the server, in that order.
- WordPress caching plugins compared: what each one does and how to chooseA page cache saves each finished page and serves that copy, so WordPress does not rebuild it for every visitor. Check whether your host already runs one before you add a plugin. Five caching plugins compared on how they cache, what is free and what each one needs.
- WordPress Core Web Vitals: what LCP, INP and CLS measure and how to improve themCore Web Vitals are three figures from real visits. LCP is how soon the main content appears, INP is how fast the page reacts, and CLS is how much it shifts. Find the one that fails in field data, then fix its usual cause, such as a slow server, a late image, missing dimensions or heavy scripts.
- WordPress image optimization plugins compared: what each one does and how to chooseAn image optimization plugin compresses images, converts them to WebP or AVIF and decides how they are served. Seven compared on where the work is done, what happens to your originals, what the free version stops at and what is left if you remove the plugin.

