WordPress Hosting Resource Calculator

July 28, 2026

HomeServerBlog WordPress capacity planner

WordPress Hosting Resource Calculator

Estimate CPU cores, RAM, PHP-FPM worker capacity, and database query load from monthly visits, peak concurrency, cache hit rate, plugins, media size, PHP worker memory, and WordPress cron activity.

1WordPress hosting presets
2Traffic, PHP, database, and content inputs
Human sessions per month before bot filtering.
Percent of a normal day that may arrive during the busiest hour.
Configured PHP-FPM children or equivalent app workers.
Typical resident memory for one loaded WordPress request.
Queries on uncached dynamic HTML pages.
Full-page hits served before PHP and MySQL run.
Active plugins, including SEO, forms, cache, shop, and security.
Uploaded media library and generated image variants.
WP-Cron events, scheduled actions, imports, emails, and cleanup tasks.
WordPress resource model ready.
Recommended CPU cores
0
vCPU or physical cores
Includes PHP, database, cron, and cache-miss headroom.
Recommended RAM GB
0 GB
server memory target
Allows OS cache, PHP workers, object cache, and DB buffers.
PHP worker capacity
0/min
uncached dynamic requests
Capacity from entered workers and modeled service time.
DB query load
0 QPS
peak query pressure
Page cache misses plus cron and plugin overhead.

Calculation breakdown

Hosting capacity verdict

Waiting for inputs

The meter tracks configured PHP worker pressure against the recommended worker target.

3Hosting spec grid
1 core
Small cached blog baseline with light cron
2 cores
Good VPS floor for WooCommerce or logged-in traffic
4 GB
Practical RAM floor for Redis, MariaDB, and PHP-FPM
8 GB
Comfortable for memberships, LMS, and active admin work
Redis
Object cache lowers repeated options and meta queries
NVMe
Best fit for database writes, cache churn, and media variants
PHP-FPM
Worker count should match RAM and cache-miss demand
Cron
Real cron is steadier than visitor-triggered WP-Cron spikes
4WordPress workload profile table
WorkloadCache behaviorPHP pressureHosting note
Static blog or docs90% to 98% page cache hitsLow except admin and searchCPU can be small if cache warmup is reliable.
WooCommerce cart and checkoutProduct pages cache, cart routes bypassMedium to high during campaignsKeep more PHP workers and DB buffer headroom.
Membership or LMSLogged-in pages often bypass cacheHigh during lessons and dashboardsObject cache and tuned queries matter more than CDN alone.
News burst or viral postExcellent if page cache is primedSpiky on misses and comment/admin trafficUse cache preloading and enough worker burst room.
Image-heavy portfolioHTML cache helps, media still stresses diskMedium while thumbnails generateUse offloaded media or strong local NVMe for variants.
5Cache hit planning table
Page cache hit rateDynamic shareTypical causeResource effect
95% to 99%Very smallMostly anonymous pages and static assetsPHP workers sit idle most of the time.
85% to 95%SmallNormal blog with search, admin, forms, and commentsBalanced VPS sizing usually works well.
65% to 85%NoticeableShop, logged-in users, personalization, query stringsCPU, PHP workers, and database QPS climb quickly.
40% to 65%LargeMembership, LMS, or bypassed checkout pathsSize like an application server, not a static site.
Under 40%Most pages dynamicPrivate dashboards, poor cache rules, admin-heavy usageDB tuning and horizontal PHP pools become important.
6Hosting spec reference table
ResourceCalculator driverWatch metricPractical limit
CPU coresUncached RPS, plugin cost, DB QPS, cron workLoad average, steal time, PHP waitBursts feel slow before average CPU reaches 100%.
RAM GBPHP workers, worker memory, DB buffer, object cacheSwap, OOM kills, cache hit ratioDo not spend all RAM on PHP children.
PHP workersCache misses times modeled PHP service timeListen queue, max children reachedToo many workers can starve MariaDB and OS cache.
Database loadDB queries per page and dynamic request rateSlow queries, buffer pool hits, QPSQuery shape can matter more than raw QPS.
Storage IOMedia GB, thumbnails, backups, transientsIO wait, disk queue, write latencyNVMe helps cache churn and media processing.
7Preset comparison table
PresetModeled patternMain bottleneckFirst tuning step
Small Blog VPSMostly cached editorial trafficRAM if too many PHP workers are configuredKeep page cache warm and workers modest.
WooCommerce StarterMixed cacheable browsing and dynamic checkoutPHP workers and DB writesExclude only cart paths, not all product pages.
Membership SiteLogged-in page views and account screensDynamic PHP and object cache missesAdd Redis and profile dashboard queries.
News Burst DayHigh anonymous spike with warm cacheMiss bursts and cron overlapPreload top URLs and defer background work.
LMS Course PortalLesson progress and quizzesQueries per page and admin-ajaxSeparate long actions from front-end requests.
Multisite NetworkMany small sites sharing one stackPlugin overhead and object cache key volumeStandardize plugins and watch global tables.
8WordPress hosting tips
Size PHP workers from cache misses, not total visits. A page cache that serves 90% of anonymous traffic can make a moderate VPS feel large, while one bypass rule can multiply PHP demand.
Keep cron and admin work out of peak traffic. Scheduled actions, imports, backups, and image regeneration create hidden database and PHP load, so run heavy jobs from real cron during quiet windows.

Traffic isn’t everything: Don’t make an estimate of how much traffic you get and then guess which plan fits. That’s always either overkill, or else it mean you’re going to run out of resources in middle of busy periods. In truth, WordPress isn’t a simple static brochure site. It’s a dynamic application with multiple moving part behind the scenes. These include processing PHP scripts, running database queries, and managing various cache layers. To understand what a website actualy does “under the hood” every time someone visits a page, you need to dig deeper than surface level of traffic numbers.

Enter the numbers into the calculator above and it’ll do the math for you. It takes some abstract measurements, concurrent visitors, cache hit rates… And turns them into concrete hardware requirements, but knowing what those inputs mean make it easier to believe in results.

Why You Need More Than Just Traffic Numbers

Begin by entering your monthly visits, but don’t stop there; immediately add your peak concurrency. Twenty-thousand monthly visits arriving in a viral burst are much more resource-intensive different than twenty-thousand visits spread out evenly over time. Servers can’t bank their CPU cycles for later. They has to deal with demand when it arrives, so your maximum server capacity is typically determined by its busiest hour of the month.

The single biggest way available to you for controlling resources is the cache hit rate. If the server serves a cached page, it just spits out some static HTML, cheap & fast: no database, no PHP. But when the cache miss, the server has to wake up. This happens if something is fresh or if user is logged in. The server then spins up a PHP worker, connects to MySQL, runs a bunch of queries and assembles page from scratch. That’s where the CPU cores and RAM come into play.

The good news is, if you’ve got a lot of anonymous reader and your cache rate is good, you can get away with little hardware. The page has a reference table that spells all this out, showing how a news site with equal traffic could require less PHP power than an equally trafficked membership site due to the former having great caching.

The other wrinkle is that plugins all hook into the WordPress core, meaning they all adds their own set of database queries to each individual page load. Twenty apparently light-weight SEO tools or security scanners can realy start multiplying your number of database queries. The calculator takes account of this as well, it factors in the number of plugin you have when calculating how long it will take each request to finish. Each dynamic page loads slower with each additional plugin, which means each PHP worker sits in a server slot for an extra-long time. Fewer slots mean less total throughput. In order to serve the same level of traffic, you may require more workers, workers that eat up memory.

Most home lab hosts run into trouble when it comes to memory sizing. The temptation is to dedicate as much as possible of any available RAM to running as many PHP-FPM workers as will fit to be as fast as possible, but that’s a trick; your operating system also require free RAM to cache files from its filesystem and keep buffer pools for databases. Starve the kernel or MariaDB, and now you are waiting on disk input/output rather than CPU. Even though there’s a pile of processing power under the hood, your server feel sluggish. Don’t go too far in one direction or the other. Leave some headroom so your object caches (e.g., Redis) can load the data you use most often into memory. This avoids querying it from the database again at all.

Don’t forget about background processes, too. Scheduled backups, email queues, and even WordPress cron jobs all run behind the scenes. In the default WP-Cron system, these jobs is triggered by each page view. They can cause database load and CPU spikes at random points throughout the day. If you’re using the default WP-Cron system, migrating those processes to an actual server-side cron schedule will keep things running smoothly. That way, your daily traffic spike doesn’t happen right when a heavy import job runs.

You should of planned for this. The goal is not just to survive a traffic spike but to maintain a consistent experience. Your model represent your exact combination of dynamic vs. Cached content. Instead of guessing, you plan. You build a machine sized to serve exactly the kind of work you do. The site begins to feel responsive again when you match your hardware to reality instead of your fears of possible future growth.

You no longer fight the server. Now you can get down to business. Writing content for the humans present to read it is what realy matters.

WordPress Hosting Resource Calculator

Related posts

Leave a Comment