· updated 2026-10-07
There are dozens of WordPress speed plugins, but most of the gain comes from three server-level things.
nginx: static files and page cache
Images, CSS and JS should be served by nginx without involving PHP. For dynamic pages fastcgi_cache helps: finished HTML is served from disk and PHP never runs. The critical part is defining the exceptions correctly — admin, cart, checkout and logged-in users.
PHP-FPM: how many workers
A common mistake is setting as many workers as possible. Each one uses memory; when memory runs out the server starts swapping and everything gets slower than queuing would have been. The calculation is simple: available memory divided by average worker size, minus a reserve for the database and the system.
Redis: object cache
Redis keeps database query results in memory. It helps most exactly where page caching cannot work: admin, shopping cart, logged-in users. In shops this is often the most noticeable improvement.
Order matters
Fix the database and PHP version first, then Redis, then page caching. The reverse order produces good benchmark numbers and the same problems everywhere the cache does not apply.
This configuration is standard on our managed servers: webhostas.com.