PHP workers are the server processes that run your site's PHP code to build pages that can't be served from cache.
A PHP worker is a process on the server that takes one request, runs your site's PHP code, talks to the database and sends back the finished page. Each worker handles one request at a time. If your hosting gives you room for four PHP workers, your site can build four uncached pages at the same moment.
Think of them as checkout tills in a shop. Cached pages are like customers who only need to walk in and look around. Uncached requests, such as adding an item to a basket, need a till. When every till is busy, the next customer waits in a queue.
How PHP workers work
- A visitor requests a page.
- If a full-page cache has a copy, the web server sends it straight back. No PHP worker is needed.
- If not, the request goes to a free PHP worker, which runs WordPress (or your app), queries MySQL and builds the HTML.
- The worker sends the page back and becomes free for the next request.
- If no worker is free, the request waits. If it waits too long, the visitor sees a slow page or a 503 or 504 error.
Different hosts measure this in different ways. On cPanel servers running CloudLinux, a related limit is entry processes, which caps how many PHP processes your account can run at once.
Why PHP workers matter for your website
Most visitors to a well-cached blog never touch a PHP worker. The pressure comes from requests that can't be cached:
- WooCommerce carts, checkouts and account pages
- Logged-in users on membership sites, forums and LMS platforms
- Searches and filtered product listings
- The WordPress admin and
admin-ajax.phpcalls - Cron jobs, API calls and webhooks
A shop can have plenty of CPU and memory in total and still slow down at checkout because all its workers are busy at once.
How many PHP workers do you need
It depends on how many uncached requests arrive at the same time and how long each one takes. A brochure site with good caching may manage with two. A busy shop or membership site often needs more. Making each request faster is just as useful as adding workers: a page that builds in 200 milliseconds frees its worker five times sooner than one that takes a second.
How to reduce PHP worker usage
- Use full-page caching for every page that's the same for all visitors.
- Add an object cache so uncached pages run fewer database queries.
- Remove slow or unused plugins, especially ones that run on every request.
- Replace WordPress's built-in cron with a real server cron job.
- Block bad bots that hammer uncached URLs, for example with a WAF.