Most agencies focus on storage, bandwidth, and CPU when choosing hosting. Very few look at PHP workers. That’s a mistake.
PHP workers control how many uncached requests your client’s site can handle at the same time.
When you run out, requests queue up. Pages slow down. Checkouts lag. Admin dashboards freeze. This is often the real reason behind “random” performance issues.
For brochure sites, this may not show immediately.
But for WooCommerce, membership platforms, LMS sites, or high-traffic blogs, PHP workers directly affect speed, user experience, and revenue.
More traffic without enough workers doesn’t scale — it stalls.
In this guide, I’ll break down what PHP workers are, how they work in practical terms, how many you actually need, and how to plan hosting properly as an agency.
Need help deciding? Explore our WordPress hosting for agencies comparison.
What Are PHP Workers?
PHP workers are the processes on a server that execute PHP code to generate a page when a request cannot be served from cache; in simple terms, they are the “hands” doing the real-time work behind your WordPress site.
Every time a visitor triggers something dynamic—loading an uncached page, submitting a form, logging in, adding a product to cart—a PHP worker picks up that request, runs the necessary PHP scripts, queries the database, assembles the HTML, and returns the final response to the browser.
If all workers are busy, new requests must wait in a queue, which is where slowdowns begin.
A cached request is different because the server delivers a pre-generated version of the page without running PHP at all, meaning no worker is needed, and the response is almost instant.
An uncached request, however, requires active processing, database interaction, and server resources, which directly consumes a PHP worker until the task is complete.
This distinction is critical for agencies because brochure-style sites with strong caching rarely stress PHP workers, while dynamic sites—such as WooCommerce stores handling carts and checkouts, membership platforms validating logged-in users, or LMS systems tracking progress—cannot fully rely on cache and therefore depend heavily on available workers to function smoothly under concurrent traffic.
In practical terms, the more real-time interactions a site has, the more simultaneous PHP execution it requires, and that makes PHP workers not just a hosting detail but a core performance constraint you need to plan around when scaling client projects.
How PHP Workers Actually Work
When someone visits a WordPress site, the server first checks whether the requested page can be served from cache.
If it can, the pre-built HTML file is delivered immediately. No PHP worker is used.
If the page cannot be served from cache—because the user is logged in, adding to cart, viewing a personalized page, or the cache has expired—the request is handed to a PHP worker.
That worker executes WordPress core files. It loads active plugins and themes. It performs database queries. It processes business logic.
Then it generates the final HTML response and sends it back to the browser.
Cached requests are lightweight and fast because they bypass PHP execution entirely. Uncached requests are different.
They consume one worker for the full duration of processing. That may be a fraction of a second on a well-optimized site.
On a heavy or poorly optimized site, it may take several seconds.
Each PHP worker can handle only one request at a time.
That detail matters. If your hosting plan allows four workers and five uncached requests arrive at the same time, the fifth request must wait.
It enters a queue until one worker becomes available. During traffic spikes, campaigns, or checkout surges, this queue grows.
Visitors then experience delays even though the server is technically still online.
Bottlenecks form when concurrent uncached requests exceed available workers. They also form when each request takes too long to process.
Slow database queries, inefficient plugins, external API calls, and heavy WooCommerce operations all extend processing time.
This means performance issues are often a mix of limited worker capacity and inefficient execution—not just traffic volume.
As an agency founder, think of PHP workers as concurrency limits. They define how many real-time tasks a site can handle at once.
Once you understand that constraint, performance problems stop feeling random and start becoming predictable.
Why PHP Workers Matter for Agencies
PHP workers directly affect how your clients experience their websites. They also affect how customers experience them.
When workers are available, pages load consistently. Dashboards respond quickly. Checkout flows feel smooth.
When workers are saturated, pages stall. Actions lag. Users feel friction even if the site is technically online.
That friction impacts conversions. Speed influences buying decisions, especially on WooCommerce stores where cart updates, payment steps, and account actions are dynamic and uncached.
If checkout takes a few extra seconds, hesitation increases. If it times out during peak traffic, abandoned carts rise. Revenue drops. The client rarely connects that loss to “PHP workers.” They simply see lower sales.
There are SEO implications as well. Search engines measure real-world performance signals such as page speed and responsiveness.
If uncached requests are slow because workers are maxed out, Time to First Byte increases. Crawl efficiency can drop. Rankings may gradually decline.
From a support perspective, low PHP workers often show up as vague complaints. “The site feels slow.” “The admin is freezing.” “We get errors during promotions.” “Traffic spikes crash the site.”
In many cases, the root cause is not traffic alone. It is insufficient concurrency capacity.
As an agency founder, this becomes a reputation issue. Clients do not blame server architecture.
They blame your agency. Planning PHP worker capacity is not just a technical decision. It is a revenue and trust protection strategy.
How Many PHP Workers Do You Really Need?
Brochure Websites
These are mostly static. Pages are cached. Users are not logging in or triggering complex actions.
In most cases, 1–2 PHP workers are enough. Even small hosting plans can handle this comfortably because the majority of requests never touch PHP once cached properly.
If a brochure site feels slow, the issue is usually poor optimization, not worker limits.
High-Traffic Blogs
Blogs benefit heavily from caching. However, traffic spikes from social media or newsletters can create bursts of uncached requests.
Admin activity, scheduled posts, and search queries also consume workers.
A blog with steady traffic should typically have 2–4 PHP workers. If traffic regularly spikes into the thousands of concurrent visitors, 4–6 workers provide safer headroom.
The key variable is how many visitors are hitting uncached content at the same time.
WooCommerce Stores
This is where worker planning becomes critical.
Cart, checkout, account pages, and payment processing are dynamic. They cannot be fully cached. Every active shopper consumes a worker during those actions.
For small stores with light traffic, 4–6 PHP workers may be enough. For growing stores running campaigns or paid ads, 6–10+ workers is often more realistic.
If you expect simultaneous buyers during launches or promotions, you must plan for concurrency, not average traffic.
Membership / LMS Sites
These are consistently dynamic because users are logged in. Dashboards, course progress, quizzes, and gated content all require PHP execution.
Even with moderate traffic, these sites need more workers than blogs. A practical starting point is 6–8 PHP workers, with scaling based on active users during peak times.
If 50 students log in at once to take a quiz, that is 50 potential dynamic interactions. The question becomes: how many of those actions overlap?
Traffic vs Concurrency Explained
Traffic is how many visitors you get over a period of time. Concurrency is how many are interacting at the same moment.
A site with 10,000 visitors per day may never exceed three simultaneous uncached requests. That site does not need many workers.
Another site with 1,000 visitors per day could have 40 people checking out at once during a product launch. That site needs significantly more workers.
PHP workers are about simultaneous demand, not daily totals.
Simple Rule of Thumb
Think in terms of peak simultaneous uncached actions:
- Mostly static site → 1–2 workers
- Content-heavy blog → 2–4 workers
- Active WooCommerce store → 4–10+ workers
- Membership/LMS platform → 6–12+ workers
When in doubt, measure real concurrency during peak periods. Then add headroom.
As an agency, your goal is not to match average traffic. It is to prevent queuing during revenue-critical moments.
Signs You Don’t Have Enough PHP Workers
You rarely get a warning that says, “You need more PHP workers.” Instead, the symptoms show up in performance issues.
The key is knowing how to interpret them correctly.
Slow Admin Dashboard
If the WordPress admin feels sluggish while traffic is active, that’s often a concurrency issue.
The admin area is fully dynamic. Nothing there is cached. Every click—editing a page, updating a product, loading analytics—requires a PHP worker.
If all workers are busy handling frontend requests, your admin actions enter the queue.
That delay feels like server slowness. In reality, the workers are simply occupied. This is common on WooCommerce sites during peak shopping hours.
When the dashboard is fast during quiet periods but slow during traffic spikes, that’s a strong indicator of worker saturation.
Checkout Delays
Checkout is one of the most worker-intensive processes on a site.
It involves cart validation, stock checks, shipping calculations, tax logic, and payment gateway communication. All dynamic. None of it cached.
If customers report spinning loaders, slow transitions between checkout steps, or random timeouts, you may be hitting worker limits.
Each active shopper consumes a worker during processing. If five workers are available and six customers check out at the same time, one waits.
Even a short queue at checkout can increase abandonment rates. This is not theoretical. It directly impacts revenue.
502 / 504 Errors
These errors often appear during traffic spikes. A 502 or 504 typically means the server could not get a response in time.
That can happen when requests are queued too long because all workers are busy.
It doesn’t always mean the server is underpowered. It may simply mean that concurrency exceeded your worker limit.
When the queue grows and response times exceed timeout thresholds, errors surface.
If these errors appear during promotions, launches, or email campaigns, examine worker capacity first.
CPU Spikes
High CPU usage can be related to heavy PHP execution. When all workers are active and processing complex requests, CPU usage rises.
However, here’s the distinction: high CPU alone doesn’t automatically mean you need more workers. It could indicate inefficient code, slow queries, or poorly optimized plugins.
But if CPU spikes coincide with slow response times and queued requests, worker saturation is likely part of the problem.
You need to look at concurrency and processing time together.
High Time to First Byte (TTFB)
TTFB measures how long it takes for the server to start responding.
When workers are available, TTFB remains stable. When requests sit in a queue waiting for a free worker, TTFB increases.
This is one of the clearest technical indicators of worker constraints. The page may eventually load, but the delay before it begins rendering grows under load.
If TTFB rises significantly during peak activity but looks normal during quiet periods, you are likely hitting your concurrency ceiling.
PHP Workers vs CPU & RAM
This is where many agencies misdiagnose performance problems. You see slow pages or errors, you check CPU and RAM, and you assume the server needs more power.
Sometimes that’s true. Often, it isn’t.
Let’s separate the concepts clearly.
Common Confusion Explained
CPU, RAM, and PHP workers are related, but they are not the same thing. CPU is processing power. RAM is available memory. PHP workers are execution slots.
Think of it this way: CPU and RAM define how strong the engine is. PHP workers define how many tasks the engine can run at the same time.
You can have available CPU and RAM, but if your worker limit is reached, new requests still wait. That’s why a server can look “healthy” in metrics yet still feel slow under load.
When agencies only monitor CPU usage, they miss the concurrency bottleneck.
Why More RAM Doesn’t Always Fix Slow Sites
Adding RAM increases memory capacity. It does not automatically increase the number of PHP workers.
If your hosting plan limits you to four workers, you still only have four concurrent execution slots, even if the server has unused RAM.
In that case, requests continue to queue. The slowdown remains.
More RAM helps when memory exhaustion is the problem. It does not help when concurrency is the constraint.
Many upgrades fail because they add resources without increasing worker limits.
Before recommending a bigger plan, confirm whether the bottleneck is memory, CPU saturation, or worker concurrency.
How Hosting Plans Structure PHP Worker Limits
Most hosting providers tie PHP workers to plan tiers. Entry-level plans may include 1–2 workers. Mid-tier plans may offer 4–6. Higher tiers provide more.
Some hosts do not advertise worker limits clearly. They may list CPU cores and RAM instead. However, internally, they still cap the number of concurrent PHP processes per account.
Managed WordPress hosting platforms often structure pricing around worker limits because they understand concurrency is the real scaling factor for dynamic sites.
As an agency, you need to ask directly: “How many PHP workers are included?” If the answer is unclear, that’s a red flag.
The Relationship Between Workers and Server Resources
PHP workers consume CPU and RAM while active. The more workers you allocate, the more server resources are required to support them. This is why worker limits exist in the first place.
If you dramatically increase the number of workers without sufficient CPU or memory, performance can degrade because each worker gets fewer resources. Balance matters.
The goal is alignment. Enough workers to handle peak concurrency. Enough CPU and RAM to support those workers efficiently. Not one without the other.
When you understand this relationship, scaling becomes intentional. You stop guessing. You start matching infrastructure to actual usage patterns.
How to Check PHP Worker Usage
Hosting Dashboards
Start with your hosting control panel. Many managed WordPress hosts display PHP worker limits and active usage in real time.
You may see metrics such as “concurrent PHP processes” or “max PHP workers reached.”
Look for patterns. Are workers hitting 100% during traffic spikes? Do limits get reached during campaigns or peak shopping hours? If usage regularly maxes out, that is a clear capacity issue.
If the dashboard does not show worker data, that does not mean limits do not exist. It simply means visibility is limited.
Server Monitoring Tools
If you manage VPS or cloud servers, use monitoring tools that track PHP-FPM processes, CPU load, and request concurrency.
Tools like server resource monitors, performance dashboards, or infrastructure monitoring platforms can show how many PHP processes are active at a given time.
You are looking for sustained saturation. Short spikes are normal. Continuous maxed-out PHP processes indicate queuing.
Correlate this with traffic analytics. If active users increase and response times rise at the same moment PHP processes are fully utilized, the relationship is clear.
Logs and Performance Tools
Access logs and error logs provide deeper insight. Repeated 502 or 504 errors during peak periods are strong signals of worker exhaustion.
Slow request logs can show how long PHP scripts take to execute.
Application performance monitoring tools can also reveal request duration, database query times, and bottlenecks inside WordPress itself.
If execution times are long, fewer workers will handle less traffic effectively.
You need to evaluate both quantity and efficiency. How many workers are active? And how long does each request hold a worker?
When to Ask Your Host for Data
If visibility is unclear, ask directly. Request information about your current PHP worker limit. Ask whether your account has hit that limit during recent traffic spikes. Ask for timestamps.
A reliable host should be able to confirm concurrency limits and provide usage patterns.
If they cannot explain how workers are allocated or whether limits were reached, that is a transparency issue.
As an agency founder, your objective is clarity. Once you can see when and how workers are being used, scaling decisions become data-driven instead of reactive.
Optimizing Before Upgrading
Improve Caching
Caching is your first line of defense against worker saturation. The more requests served from cache, the fewer PHP workers are needed.
Ensure full-page caching is configured correctly. Verify that static content is cached aggressively.
Review cache exclusions carefully. Many sites accidentally bypass cache for pages that could safely be cached.
Object caching can also reduce repeated database queries. When implemented properly, it shortens request duration.
Shorter execution time means each worker becomes available faster.
The goal is simple: reduce uncached requests and reduce processing time.
Reduce Heavy Plugins
Every active plugin adds execution overhead. Some run database queries on every request. Others load large scripts or call external APIs.
Audit the plugin stack. Remove unused plugins. Replace heavy tools with lighter alternatives where possible.
Pay close attention to page builders, analytics scripts, and poorly coded add-ons.
Even small inefficiencies multiply under concurrency. If each request takes one extra second because of inefficient code, worker queues grow quickly during peak traffic.
Optimize WooCommerce
WooCommerce is resource-intensive by nature. That does not mean it cannot be optimized.
Review cart fragments. Limit unnecessary AJAX calls. Disable features not being used.
Ensure payment gateways are configured efficiently. Reduce third-party integrations that slow checkout flow.
Optimize product queries and reduce database strain. Large catalogs often need indexing improvements or query refinement.
The objective is to shorten checkout processing time. Faster checkout frees workers sooner.
Use a CDN
A Content Delivery Network offloads static assets such as images, scripts, and stylesheets. This reduces server load and speeds up global delivery.
While a CDN does not replace PHP workers, it reduces overall server pressure. That indirectly improves performance under load.
When combined with strong caching, a CDN helps ensure only truly dynamic requests reach the origin server.
Database Optimization
Slow database queries extend PHP execution time. That keeps workers occupied longer than necessary.
Clean up post revisions. Remove expired transients. Optimize database tables. Evaluate slow queries using monitoring tools.
Large WooCommerce stores may require indexing improvements or query tuning.
If each request completes faster, concurrency pressure drops. You do not always need more workers. Sometimes you need faster execution.
When Upgrading Is Actually Necessary
After optimization, review peak concurrency again. If workers are still hitting limits during normal growth or planned campaigns, upgrading becomes justified.
Upgrade when you have sustained worker saturation, not just isolated spikes. Upgrade when revenue events consistently push concurrency beyond capacity.
Upgrade when performance remains constrained despite efficient code and caching.
As an agency founder, your decision should be data-driven. Optimize first. Measure again. Then scale infrastructure when demand genuinely exceeds capacity.
PHP Workers on Different Hosting Types
Shared Hosting
On shared hosting, resources are distributed across many accounts on the same server. PHP worker limits are usually low. Often 1–2 concurrent processes per account.
You rarely get transparency. Worker limits may not even be mentioned. Instead, you’ll see vague terms like “fair usage.”
This setup works for low-traffic brochure sites. It is risky for dynamic sites. If another account on the server consumes excessive resources, your performance can degrade even if your own traffic is stable.
Shared hosting is cost-effective. It is not built for concurrency-heavy workloads.
Reseller Hosting
Reseller hosting operates similarly to shared hosting, but you manage multiple client accounts under one umbrella. Each account still has its own limits.
The key issue is distribution. If you place multiple dynamic sites on a reseller plan with limited worker capacity per account, bottlenecks can appear across several clients.
Reseller plans are useful for managing small, low-traffic sites. For WooCommerce or membership platforms, they often lack sufficient concurrency headroom.
Before scaling, confirm per-account PHP process limits. Not just overall server specs.
Managed WordPress Hosting
Managed WordPress providers typically structure plans around PHP workers more intentionally. They understand WordPress concurrency patterns.
Worker limits are often clearly defined by tier. Entry plans may offer 2–4 workers. Higher tiers may include 6, 8, or more.
The advantage here is optimization. These environments are tuned for WordPress. Caching, object caching, and performance configurations are often pre-configured.
However, limits still exist. If your client runs a high-traffic WooCommerce store, you must choose a plan aligned with peak concurrency, not average traffic.
VPS & Cloud Hosting
With VPS or cloud infrastructure, you have more control. You can configure PHP-FPM settings and adjust worker counts.
But flexibility does not mean unlimited capacity. Increasing workers requires sufficient CPU and RAM to support them. Otherwise, performance degrades.
This environment is powerful for agencies managing high-demand sites. It allows custom tuning. It also requires technical oversight.
You are responsible for balancing worker count with available server resources.
Why “Unlimited” Hosting Isn’t Truly Unlimited
No hosting environment has unlimited concurrency. Even if marketing claims unlimited bandwidth or storage, PHP execution always has limits.
There is always a cap on concurrent processes. There are always CPU and memory constraints. When those thresholds are reached, requests queue or fail.
“Unlimited” typically refers to usage under reasonable conditions. It does not mean infinite simultaneous dynamic requests.
How Agencies Should Price Hosting with PHP Workers in Mind
If you price hosting without considering PHP workers, you are guessing, and guessing usually compresses margins.
When a client’s site outgrows its worker capacity, you absorb the support burden: slow site tickets, emergency upgrades, campaign-day firefighting.
If your pricing does not account for concurrency demands, you either eat the infrastructure upgrade cost or have difficult pricing conversations later.
Underpricing also encourages you to place dynamic, revenue-generating sites on entry-level plans that were never designed for them, which increases risk and erodes profitability over time.
A better approach is to align hosting tiers with actual usage patterns: brochure sites on low-concurrency plans, content sites on moderate tiers, and WooCommerce or membership platforms on plans built for higher simultaneous activity.
Price based on peak behavior, not average traffic, because infrastructure must handle revenue moments, not quiet days.
Upselling should be data-driven; if monitoring shows sustained worker saturation during promotions or growth phases, present the numbers and explain that upgrading protects speed, conversions, and stability.
This shifts the conversation from “higher cost” to “risk management and revenue protection.” When explaining PHP workers to non-technical clients, avoid jargon.
Frame them as simultaneous processing slots that allow multiple customers to interact with the site at the same time.
Keep it simple: more active users at once requires more processing capacity.
When clients understand that worker limits affect checkout speed and user experience, pricing becomes logical rather than abstract.
As an agency founder, your goal is to package hosting in a way that reflects real performance demands, protects your margins, and scales cleanly as your clients grow.
Common Myths About PHP Workers
Misunderstanding PHP workers leads to poor infrastructure decisions. Let’s address the most common assumptions I see agencies make.
“More traffic always means more workers”
Traffic volume alone does not determine worker requirements. What matters is how many users are triggering uncached, dynamic actions at the same time.
A site can receive 20,000 visitors per day and still operate smoothly on a small number of workers if most pages are cached and user interaction is minimal.
On the other hand, a site with 2,000 daily visitors can overwhelm limited workers during a live launch or checkout surge.
Workers are about concurrency, not daily totals. Peak simultaneous activity is the metric that matters.
“Caching solves everything”
Caching dramatically reduces server load. It does not eliminate dynamic processing.
Cart pages, checkouts, user dashboards, membership content, search results, and form submissions all require PHP execution.
These cannot be fully cached without breaking functionality.
Strong caching reduces the number of requests that hit PHP. It does not remove the need for adequate worker capacity. Dynamic sites will always rely on available execution slots.
“CPU is more important than workers”
CPU determines how fast requests can be processed. Workers determine how many requests can be processed at the same time.
You can have available CPU capacity and still experience queuing if worker limits are reached.
Conversely, increasingthe number of workers without sufficient CPU can degrade performance because each process gets fewer resources.
It is not a matter of choosing one over the other. Concurrency and processing power must be balanced.
“Workers only matter for big sites”
Worker limits become visible faster on high-traffic sites, but they affect small sites too.
A small WooCommerce store running a promotion can exceed worker limits quickly if several users check out at once.
A membership site with 30 active students taking a quiz simultaneously can hit concurrency ceilings even with modest traffic.
Workers matter wherever dynamic interaction exists. Site size does not eliminate concurrency risk.
Final Thoughts
PHP workers control how many real-time actions your client’s site can handle at once.
When they are limited, requests queue. When they are planned properly, performance stays consistent.
Most slowdowns blamed on “bad hosting” are actually concurrency issues.
If you monitor worker usage, align plans with peak demand, and optimize before upgrading, you remove the guesswork.
Performance is not random. It becomes predictable when you understand how PHP workers shape capacity.
As an agency founder, that clarity protects your clients, your reputation, and your margins.
For full details, read our agency hosting provider breakdown guide.
FAQs
What is a good number of PHP workers for WordPress?
For simple brochure sites, 1–2 workers are often enough. Blogs typically need 2–4.
WooCommerce or membership sites usually require 4–10+, depending on peak concurrent activity.
Can I increase PHP workers myself?
On shared or managed hosting, usually, no, you must upgrade your plan.
On VPS or cloud servers, you can adjust worker settings, but only if CPU and RAM can support it.
Do PHP workers affect SEO?
Yes, indirectly. If worker limits cause slow response times or high Time to First Byte during traffic spikes, search performance and crawl efficiency can suffer.
Why is my site slow even with low traffic?
Low traffic does not mean low concurrency. A few simultaneous dynamic actions can exhaust limited workers.
Slow plugins or database queries can also hold workers longer than necessary.
Are PHP workers important for WooCommerce?
Absolutely. Cart, checkout, and account pages are dynamic and uncached.
Each active shopper consumes a worker, so insufficient capacity can directly impact sales.
