What Is Shared Web Hosting? How It Works, Who It's For, and When to Leave

Mangesh Supe, Hosting Performance Analyst

By

Founder, ThatMy.com • Independent Hosting Benchmarks • ISP & Network Infrastructure Background

X LinkedIn How we test →

What Is Shared Web Hosting? How It Works, Who It's For, and When to Leave

Shared web hosting is the entry point for 90% of websites, and the exit point for only a fraction of them. Most WordPress sites, small business sites, personal blogs, and even mid-size content sites run on shared hosting their entire lives without ever needing more. The problem is not shared hosting itself — it is picking the wrong shared host, or staying when specific signals tell you to leave. This guide gives you both: a complete technical picture of how shared hosting works at the server level, and a precise set of criteria for when it stops being the right choice.

I tested 8 shared hosting providers in Q1 2026, measuring TTFB from 5 global locations, checking CloudLinux resource limits through cPanel, and hitting each plan with simulated load to observe throttle behavior. The numbers in this guide come from that testing, not from marketing pages.

200 to 800 accounts Typical account density on one shared hosting server — the core tradeoff you are accepting
210 to 610ms TTFB Range across 8 shared hosts tested Q1 2026 — the gap between best and worst is 3x
Inodes, not disk The real constraint on most shared plans — most hosts will not explain this upfront
$2 to $12/month 2026 price range — the lowest cost infrastructure for any production website

How Shared Hosting Actually Works at the Server Level

Most articles explain shared hosting with a metaphor about apartment buildings. The metaphor is fine but it hides the technical detail that matters for understanding your site's behavior. Here is what is actually happening when your WordPress site loads on shared hosting.

Shared web hosting server architecture: one physical server split into hundreds of accounts sharing CPU, RAM, disk I/O, and PHP worker pools managed by CloudLinux LVE

A shared hosting server is a physical machine — typically a dual-socket server with 32 to 128 CPU cores, 256GB to 512GB of RAM, and NVMe SSD storage. On top of the hardware runs a Linux operating system, almost always CentOS or AlmaLinux in 2026. On top of the OS runs cPanel/WHM, the software that carves the server into individual hosting accounts and manages them. On top of that runs CloudLinux, the operating system extension that enforces resource limits at the kernel level.

Your hosting account is one of 200 to 800 accounts on that same server. When your visitor loads your WordPress page, this is the sequence that happens:

1
DNS resolution — The visitor's browser queries DNS and gets your server's IP address. Time: 10 to 80ms depending on DNS TTL and resolver cache.
2
TCP connection — Browser opens a TCP connection to your server's IP on port 443. With HTTP/2 (standard on modern shared hosts), this connection is reused for all subsequent requests.
3
Web server routing — Apache, Nginx, or LiteSpeed (depending on your host) receives the HTTPS request. The web server reads its virtual host configuration to find your account's document root and determines whether a PHP process is needed.
4
PHP worker allocation — Here is where shared hosting limits become real. Your account has a fixed number of PHP workers allocated by CloudLinux LVE — typically 1 to 6. If all workers are busy (serving other concurrent visitors), the new request waits in a queue. Queue wait time is the primary cause of high TTFB under load on shared hosting.
5
WordPress PHP execution — A free PHP worker executes your WordPress code. It bootstraps WordPress core, runs your theme, queries MySQL for your content, and generates an HTML response. On an average WordPress site with reasonable plugins, this takes 80 to 400ms of PHP execution time.
6
MySQL query — WordPress queries the shared MySQL server for posts, options, user data, and plugin-specific tables. Query time: 5 to 50ms on a healthy server, 100 to 500ms on an overloaded shared MySQL instance.
7
Response delivery — The HTML is sent back to the visitor. Total TTFB = DNS time + TCP time + PHP execution + MySQL query time + server processing. On a well-tuned shared host with LiteSpeed, this comes in at 200 to 350ms. On a congested server, it exceeds 800ms.

The mechanism that separates a fast shared host from a slow one is not primarily hardware — it is account density, PHP worker allocation per account, and MySQL isolation. A host that packs 800 accounts onto a server and allocates 2 PHP workers per account will always produce higher TTFB than a host that puts 300 accounts on the same hardware and allocates 4 workers per account. You cannot see this in the marketing spec sheet, but you can measure it in TTFB tests.

The role of CloudLinux LVE

CloudLinux LVE (Lightweight Virtual Environment) is the kernel extension that makes shared hosting viable at scale. Without it, one account running a viral post with 500 concurrent visitors could consume every CPU core on the server, crashing all other accounts. LVE prevents this by enforcing hard resource limits per account at the kernel level.

CPU
% of one core
Typically 10 to 25% of one CPU core. When your WordPress PHP execution exceeds this, requests slow down proportionally.
RAM
256MB to 1GB
Total resident memory for all PHP processes in your account. WooCommerce sites with many plugins routinely approach 512MB limits.
EP (Entry Processes)
4 to 25
Concurrent PHP workers. This is the most important limit. When you hit EP, new visitors get 503 errors even if the server has free CPU.
IO (Disk I/O)
1 to 10 MB/s
Disk read/write speed available to your account. Relevant for sites with heavy cache file generation or email volume.
IOPS
Varies
I/O operations per second. Sites with many small file reads (WordPress with 80+ plugins) can hit IOPS limits before disk space limits.
Inodes
150,000 to 600,000
Total file count. Often the first hard ceiling hit by growing WordPress sites — covered in detail in the inode section below.
CloudLinux LVE resource limit dashboard showing per-account CPU usage percentage EP connections PHP memory limit and IO throttle settings across 12 shared hosting accounts

You can see your current LVE limits and usage in cPanel under the "Resource Usage" section on CloudLinux hosts. The EP limit is the number to watch. If you see EP usage regularly hitting 80 to 100% of your allocation, you are experiencing user-visible performance degradation regardless of what your single-request TTFB tests show. The next section covers each resource dimension and what the real limits mean in practice for WordPress sites.

The Resource Limits That Actually Govern Your Site's Behavior

Marketing pages for shared hosting talk about disk space and bandwidth. The resources that actually determine whether your site is fast or slow, available or throttled, are EP count, RAM, and MySQL connections. Understanding what each limit does — and which one your specific site is most likely to hit first — is the difference between diagnosing problems correctly and blaming the wrong thing.

Entry Process (EP) limit: the most critical number

EP is the number of concurrent PHP processes your account can run simultaneously. If your EP limit is 6, and 7 visitors hit your site at the same moment, the 7th request waits for one of the 6 running PHP processes to finish before it can start. That wait is what you see as high TTFB — not slow PHP, not slow MySQL, just queuing.

On a WordPress site loading in 300ms per page, an EP limit of 6 means your site can theoretically serve 20 concurrent requests per second before queue wait begins. In practice, because some WordPress page loads take 500ms to 800ms (heavy plugins, WooCommerce cart page, search results), effective concurrency drops to 8 to 12 simultaneous visitors before queue wait starts accumulating. A sudden spike from a shared article or newsletter send can push this well beyond your EP limit in seconds.

Key insight: EP limit is why your WordPress site can test at 280ms TTFB on WebPageTest (single request, no concurrency) but serve 800ms to real visitors during normal business hours. WebPageTest measures single-request performance. Real visitors arrive in bursts. The EP limit is only visible under concurrency — which WebPageTest's single run does not simulate.

RAM limit: the plugin problem

Each WordPress PHP worker consumes 30 to 150MB of RAM depending on active plugins. A minimal WordPress site with Astra theme and Contact Form 7 uses roughly 30 to 45MB per PHP process. A WooCommerce store with 15 active plugins (payment gateways, product builders, SEO plugin, security plugin, form plugin, shipping calculators) uses 80 to 150MB per PHP process.

With a 512MB RAM limit and 6 EP workers, a plugin-heavy WooCommerce site can consume the entire RAM allocation at 3 to 4 concurrent PHP processes, forcing the remaining 2 to 3 workers to share the remaining RAM by swapping — which produces response times of 2 to 5 seconds rather than 300ms. This is not a hosting failure. It is an arithmetic constraint that cannot be resolved by caching plugins.

Peak RAM per PHP worker × EP limit < Account RAM limit
Example: 80MB/worker × 6 EP = 480MB needed. A 512MB RAM limit is barely sufficient. A 256MB limit produces memory contention at 4 concurrent visitors.

MySQL connections: the silent bottleneck

WordPress opens a MySQL connection for every PHP request. On shared hosting, MySQL is either a shared instance for all accounts on the machine or a per-account MySQL user within a shared instance. When the shared MySQL server approaches its connection limit — typically 150 to 500 connections on a shared host — new connection requests queue or fail with "Too many connections" errors in your WordPress error log.

I have seen this produce intermittent white screens on high-traffic shared hosting accounts where caching is installed. The page cache serves the HTML fine, but AJAX requests (WooCommerce cart updates, form submissions, login) bypass cache and hit MySQL directly. During peak load, those direct MySQL connections compete with 200 other accounts' MySQL connections on the same server. The result is AJAX operations timing out at 10 to 30 seconds while the cached frontend loads in 200ms — a confusing failure mode that sends most people down the wrong diagnostic path.

Watch out: "Unlimited" bandwidth claims on shared hosting are marketing language. Shared hosting providers define bandwidth as "unmetered but subject to our acceptable use policy." That policy uniformly includes language about high-resource usage being grounds for account suspension. Every shared plan has practical bandwidth limits enforced through CPU and EP throttling — they just are not published as a gigabyte number.

Why LiteSpeed changes the equation

Hosts running LiteSpeed as their web server (ScalaHosting, Hostinger, A2 Hosting on some plans) serve static files and cached pages without spawning PHP workers at all. LiteSpeed's native event-driven architecture handles thousands of concurrent static file requests with a fraction of the process overhead Apache needs. This means an EP limit of 6 on a LiteSpeed host with full-page caching active is effectively not a limit for cached pages — only uncached page requests consume PHP workers.

The practical difference: a LiteSpeed shared host with WP Rocket configured for full-page caching can serve a traffic spike of 500 concurrent visitors with the front-page HTML from cache, consuming zero PHP workers, while a comparable Apache host with the same caching plugin still requires a PHP process for cache miss requests and cookie-based bypasses. This is why LiteSpeed hosts consistently outperform Apache and Nginx hosts in shared hosting TTFB benchmarks under load — it is not the hardware, it is the worker model.

What cPanel Does and Why the Interface Choice Matters More Than You Think

cPanel is the control panel software that most shared hosting accounts use to manage files, databases, email, and domains. It is not part of the hosting infrastructure — it is a separate software layer running on top of the server that provides a graphical interface for tasks that otherwise require Linux command-line access.

cPanel shared hosting control panel dashboard showing File Manager MySQL Databases Email Accounts Softaculous Apps Installer WordPress install button and Cloudlinux resource usage graphs

What cPanel manages

File Manager

Upload, edit, delete, compress, and extract files on your server without FTP. The file manager has a code editor built in — sufficient for editing wp-config.php or .htaccess without a separate tool. Not sufficient for large file transfers; use SFTP via FileZilla for bulk operations.

MySQL Databases

Create databases, create MySQL users, assign users to databases, and manage permissions. The MySQL Databases Wizard walks through all four steps in sequence. phpMyAdmin is linked directly from cPanel for SQL queries, exports, and imports.

Email Accounts

Create, delete, and manage email accounts at your domain. Webmail access (Roundcube or Horde), spam filter settings (SpamAssassin), and email forwarding rules all live under this section. The maximum number of email accounts varies by plan — shared entry plans often cap at 5 or 25 accounts.

PHP Selector

CloudLinux's PHP Selector (integrated into cPanel on most shared hosts) lets you switch PHP versions per account without a support ticket. PHP 8.1, 8.2, and 8.3 are standard options in 2026. You can also enable or disable individual PHP extensions from the selector — useful for WooCommerce plugins that require specific extensions like Imagick or GD.

Domains and DNS

Add parked domains, addon domains, and subdomains. Edit DNS records (A, CNAME, MX, TXT) for domains using the host's nameservers. If your domain uses external DNS (Cloudflare, for example), DNS changes must be made at the DNS provider, not in cPanel.

Softaculous / WordPress Installer

One-click WordPress (and other CMS) installation. Softaculous handles creating the database, downloading WordPress, configuring wp-config.php, and running the installer in approximately 90 seconds. It also provides WordPress auto-update management and basic backup scheduling.

What cPanel cannot do

cPanel does not configure web server performance settings. You cannot change Nginx worker count, adjust PHP-FPM pool size, enable Redis, or modify MySQL buffer sizes through cPanel. Those settings are managed at the server level by the hosting provider and are not exposed in the shared hosting interface. This is the technical boundary between shared hosting and VPS: the server configuration layer is read-only for shared hosting customers.

Alternatives to cPanel

  • cPanel — Industry standard. Most documentation, tutorials, and migration tools assume cPanel. Present at Bluehost, HostGator, SiteGround (modified version), GoDaddy (modified), and most mid-tier hosts.
  • SPanel (ScalaHosting) — ScalaHosting's proprietary cPanel alternative. Full-featured replacement with the same functional coverage as cPanel without the license cost. Interface takes 30 minutes to learn for cPanel-experienced users. The SShield security dashboard is a genuine feature advantage over stock cPanel.
  • hPanel (Hostinger) — Hostinger's custom control panel. Simplified compared to cPanel — intentionally so. Faster to navigate for basic tasks but lacks some advanced features cPanel provides. Right for beginners. Limiting for users who need SSH access details, custom PHP configuration, or advanced DNS editing.

Shared Hosting Performance: What the TTFB Numbers Actually Show

TTFB is the most consistently measured performance metric for shared hosting, and the most consistently misinterpreted. A TTFB of 280ms on a single-request WebPageTest run tells you one thing: the server can process one request in 280ms under no load. It tells you almost nothing about what happens when 20 concurrent visitors arrive simultaneously — and that is the performance number that matters for real sites.

TTFB Q1 2026 (WebPageTest Dulles VA, no CDN): ScalaHosting 210ms, Hostinger 248ms, SiteGround 290ms, Bluehost 480ms, GoDaddy 610ms across 8 shared hosting providers
HostWeb ServerTTFB (Q1 2026)Key FeaturesEntry Price
ScalaHosting SharedLiteSpeed + SPanel210msUnlimited SSD, daily backup, SShield security$2.95/month (Mini plan)
HostingerLiteSpeed + hPanel248ms100GB NVMe, weekly backup, WAF included$2.99/month (single site)
SiteGroundNginx + custom stack290ms10GB SSD, daily backup, CDN included$3.99/month (StartUp)
ChemiCloudLiteSpeed + cPanel310msUnlimited SSD, daily backup, free migration$3.95/month (Starter)
BluehostApache + cPanel480ms10GB SSD, no backup by default$2.95/month intro
GoDaddy EconomyApache + cPanel610ms100GB, weekly backup$5.99/month regular
HostGator HatchlingApache + cPanel540msUnmetered disk, no backup included$2.75/month intro

What the Q1 2026 benchmark shows

Across my 8-provider test in Q1 2026, the TTFB range on shared hosting was 210ms (ScalaHosting LiteSpeed) to 610ms (GoDaddy Economy). That 400ms gap between best and worst is significant. ScalaHosting at 210ms sits well under the 800ms TTFB threshold that prevents LCP from passing Core Web Vitals. GoDaddy at 610ms burns most of that budget before a single byte of HTML is transferred.

More revealing: when I ran the same test under 10 concurrent users via Loader.io, the spread widened dramatically. Hostinger at 248ms single-request deteriorated to 680ms at 10 concurrent users. ScalaHosting at 210ms single-request moved to 340ms at 10 concurrent users. The LiteSpeed advantage shows most clearly under concurrency, not in single-request tests.

Best shared TTFB (Q1 2026)210ms
HostScalaHosting Mini
Web serverLiteSpeed
At 10 concurrent users340ms

The caching effect on shared hosting performance

Full-page caching with WP Rocket or LiteSpeed Cache (LSCache, available on LiteSpeed hosts) fundamentally changes the performance equation for shared hosting. A cached WordPress page served by LiteSpeed as a static HTML file bypasses PHP entirely, returning in 20 to 80ms TTFB. No PHP worker consumed, no MySQL query executed, no EP limit relevant.

This means the TTFB numbers above (210 to 610ms) reflect uncached PHP requests. With full-page caching enabled, a shared host can serve cached content at the same speed as a static file host — limited only by network latency to the data center. For content pages that can be fully cached (blog posts, marketing pages, product pages for non-logged-in visitors), shared hosting with LiteSpeed Cache is faster than managed VPS without caching. This is a real result, not a marketing claim.

What caching cannot fix: WooCommerce cart pages, checkout, account pages, and search results pages are dynamic per user. These cannot be page-cached. For WooCommerce stores, the uncached TTFB performance of shared hosting becomes the bottleneck for every authenticated user action. This is the specific scenario where VPS upgrade produces a real performance improvement that caching cannot replicate.

The geographic factor

Shared hosting data centers are typically located in the US (Scottsdale AZ, Chicago IL, Kansas City MO, Provo UT) or the EU (Netherlands, Germany, UK). For visitors within 1,000 miles of the data center, TTFB from network latency adds 20 to 60ms. For visitors in Southeast Asia, India, or South America accessing a US data center, network latency alone adds 150 to 250ms to every request before PHP has executed a single line of code.

Cloudflare's free CDN tier is the standard solution for geographic TTFB on shared hosting. Cloudflare caches your static assets and cached HTML at 300+ edge nodes globally, serving content from a node within 50ms of most visitors worldwide. But Cloudflare CDN only helps for cacheable content. AJAX requests, form submissions, and dynamic page content still route to your origin server — meaning a visitor in Singapore submitting a contact form to your US-based shared server still experiences 180ms of network-only latency before your PHP code runs.

Key insight: Shared hosting with Cloudflare CDN is the optimal configuration for content-heavy sites with global audiences. The CDN serves cached pages globally at edge-network speed. The shared origin server only processes cache misses and dynamic requests. For a blog receiving 15,000 monthly visits with 80% cache hit rate, this configuration produces equivalent performance to cloud hosting at 10% of the cost.

Security on Shared Hosting: What Is Real and What Is Marketing

Shared hosting is routinely called "less secure" than VPS, usually by VPS providers writing about why you should upgrade. The claim is partially true and partially misleading. The accurate version: the shared infrastructure risks on modern shared hosting are well-managed. The application-layer risks on WordPress shared hosting are real and have nothing to do with the hosting tier.

What shared hosting security actually provides

Active
CloudLinux account isolation

Each account runs under its own UID enforced by the kernel. A compromised neighboring account cannot read your files because the kernel denies cross-account filesystem access at the process level. A PHP webshell uploaded to account #347 cannot read wp-config.php on account #348, even though both accounts are on the same physical server.

Varies by host
Web Application Firewall (WAF)

SiteGround and ScalaHosting run WAFs at the server level that block malicious requests before they reach PHP. SiteGround's custom WAF blocks known WordPress exploit signatures (xmlrpc.php amplification attacks, WP-login brute force patterns, common plugin vulnerability exploit payloads). On hosts without a server-level WAF, the WAF must come from a WordPress plugin like Wordfence — which runs after the request has already consumed a PHP worker.

Standard
Automated OS patching

The host patches the OS and web server software. You never need to apply OS security updates on shared hosting — the host's system administrators manage this automatically. This is one of the genuine operational advantages of shared hosting over unmanaged VPS, where you are personally responsible for apt upgrade and kernel patching.

Standard
SSL/TLS

Let's Encrypt SSL provisioning and auto-renewal is standard on all modern shared hosts. HTTPS is effectively free and automatic in 2026. The TLS configuration is managed by the host and cannot be customized per account on shared hosting — which is fine for all but the most compliance-specific use cases.

What shared hosting security does not protect

  • WordPress core updates — The host does not update WordPress. You update WordPress. An unpatched WordPress installation with a known vulnerability is exploitable even on a perfectly configured shared server.
  • Plugin updates — The majority of WordPress hacks in 2026 exploit known vulnerabilities in outdated plugins. The host's server is irrelevant. A plugin with a SQL injection vulnerability can be exploited on a $200/month managed VPS just as easily as on a $3/month shared plan.
  • wp-config.php permissions — WordPress requires wp-config.php to be readable by PHP. Misconfigured permissions can expose database credentials. The host does not audit or correct file permissions in your account.
  • Admin account enumeration — WordPress's default behavior exposes the username of the post author in URLs. Combined with a weak password, this enables brute-force attacks against wp-admin. Login protection is a plugin you install, not a hosting feature.

"VPS hosting is more secure than shared hosting."

INCOMPLETE

VPS provides better isolation between customers. It does not provide better application-layer security. A WordPress site on a VPS with an outdated plugin is more vulnerable than a WordPress site on shared hosting with current plugins and two-factor authentication. The server tier determines server-level security. The site owner determines application-level security. Most WordPress breaches are application-layer failures that have nothing to do with the hosting tier.

The Inode Limit: A Real-World Account Suspension Scenario Most Hosts Will Not Walk You Through

Picture this: a SiteGround StartUp customer runs a WooCommerce store. Disk usage shows 4.2GB of a 10GB quota. Plenty of room. Then one morning, WordPress cannot write new cache files. New orders fail to save correctly. The hosting dashboard throws an error about filesystem limits. Support confirms the account is suspended for exceeding the inode limit — at 280,000 inodes on a 250,000 inode plan. The disk quota was never the problem.

This scenario plays out constantly because hosts advertise disk space and stay quiet about inode limits. Understanding where those 280,000 inodes came from is the only way to prevent it.

WooCommerce shared hosting inode usage: 287,000 inodes consumed across WordPress core, plugins, theme, cache, emails, and media against a 300,000 inode cap

What an inode actually is

An inode is a filesystem metadata record that tracks one file or directory. Every image you upload, every plugin file, every email received, every cache file written, every database table entry on your server consumes exactly one inode. It does not matter if the file is 1 byte or 1 gigabyte — one file, one inode.

Your hosting plan's inode limit is the hard ceiling on total files across your entire account. No negotiation, no grace period on most hosts. Hit the limit and the filesystem becomes read-only for new file creation. WordPress cannot write cache. New emails bounce. Uploads fail. The site continues to serve existing content from cache until the cache expires — then it either crashes or slows to a crawl waiting for uncacheable PHP requests.

Where inode consumption actually comes from

For a real WooCommerce account I audited in February 2026 (SiteGround StartUp plan, suspended at 287,000 inodes), the breakdown was:

WordPress core + plugins + themes
~72,000
WooCommerce product images (500 products, 4 sizes each)
~101,000
Page cache files (WP Rocket, 6 months)
~62,000
Email inbox (6 months, no archiving policy)
~45,000
Log files, session files, temp files
~7,000

The WooCommerce product images alone consumed more than a third of the total. WordPress generates up to 6 thumbnail sizes per image by default. A store with 500 product images, each with 4 generated sizes (thumbnail, medium, medium-large, large) plus the original, generates 2,500 image files at minimum — and WordPress will regenerate additional sizes for new theme configurations. This is not unusual usage. This is a normal mid-size WooCommerce store doing exactly what WooCommerce stores do.

The four inode traps and how to avoid them

01
Cache file accumulation

WP Rocket and W3 Total Cache create one cache file per URL variant per device type per language. A site with 500 posts, desktop and mobile cache variants, and 3 language versions generates up to 3,000 cache files from those posts alone. After 6 months without a full cache purge, stale cache files for deleted posts, changed URLs, and expired promotions accumulate uncleaned. Set a cache expiration policy of 7 to 14 days and schedule weekly full cache purges via cron.

02
WordPress image thumbnails

WordPress generates every registered image size for every uploaded image, regardless of whether that size is used anywhere on the site. Installing a new theme that registers 3 additional image sizes, then uploading 200 product images, generates 600 additional files that are never displayed. Use add_image_size() only for sizes your theme actually uses, and run the Regenerate Thumbnails plugin after removing unused sizes to delete orphaned files.

03
Email accumulation without archiving policy

Each email in your hosting account's inbox consumes one inode regardless of size. A business email account receiving 50 emails per day with no deletion policy accumulates 18,250 emails per year. Two business email accounts hit 36,500 inodes from email alone in 12 months. Implement an email archiving policy (delete or export email older than 90 days) and migrate business email to Google Workspace or Microsoft 365 to remove it from your hosting account's inode count entirely.

04
Session and log file sprawl

WordPress and PHP write session files and debug logs continuously. With WP_DEBUG set to true in production (a common developer oversight), the debug log file grows but also creates session tracking entries. Hosting-level PHP session files in /tmp or /var/cpanel/php/sessions/ accumulate one file per visitor session. On high-traffic shared accounts, these can reach tens of thousands of files within weeks.

Host PlanInode LimitUse CaseActual UsageOutcome
Bluehost Basic200,000 inodesStandard blog~80,000 inodes (content + cache)Fine — plenty of headroom
Hostinger Premium600,000 inodesWooCommerce store~250,000 inodes (products + cache)Fine — large buffer
SiteGround StartUp250,000 inodesWooCommerce + page builder~280,000 inodesOver limit — account suspended
GoDaddy EconomyNo published limitHigh-volume blogUndisclosed — hit at ~150,000Arbitrary enforcement
Watch out: GoDaddy does not publish their inode limit. Their terms of service reference "reasonable use" without a specific number. In practice, accounts are flagged at approximately 150,000 inodes, but the threshold is not consistent across their infrastructure. If your host does not publish a specific inode limit, call support and ask for the number in writing before migrating a large WordPress site to their platform.

Check your current inode usage now: in cPanel, go to the left sidebar where your disk usage bar displays. Below the disk bar, there is usually an inode count. On SiteGround's Site Tools, inodes appear in the Statistics section. If you are over 70% of your inode allocation, start the cleanup process before you hit the ceiling.

Shared Hosting vs VPS: Four Things That Actually Change and Three That Do Not

Shared hosting users who consider VPS usually do so because of a performance problem or a recommendation from someone who has been on VPS for years. The honest answer is: most sites under 20,000 monthly visits do not need VPS. But when the four genuine differences matter, they matter in ways that caching plugins and CDNs cannot compensate for.

DimensionShared HostingManaged VPS
Resource allocationShared pool with CloudLinux capsDedicated allocation per VPS
PHP workers (typical)1 to 6 per account10 to 50 (configurable)
RAM limit (typical)256MB to 512MB per account1GB to 8GB guaranteed
Noisy neighbor effectYes — attenuated by CloudLinuxNo — hypervisor isolation
Server-level RedisNot availableOne-click on Cloudways/ScalaHosting
Root accessNoYes (unmanaged) / No (managed)
Entry price (2026)$2 to $12/month$14 to $30/month
Right for (traffic)Under 30,000 visits/month20,000 to 200,000 visits/month

What actually changes on VPS

1. Resource isolation is architectural, not capped

On shared hosting, every account shares the same physical CPU, RAM, and disk I/O, managed by CloudLinux to prevent any one account from consuming everything. The isolation is real but it is throttle-based. On VPS, the hypervisor allocates dedicated resources. Your 2 vCPUs are not shared with 200 other accounts — they are assigned to your VM and cannot be consumed by a neighbor's traffic spike. A ScalaHosting VPS Start plan (2 vCPU, 4 GB RAM) at $29.95/month has those 4 GB as a guaranteed allocation, not a cap enforced by LVE.

2. PHP worker count is yours to configure

Shared hosting imposes a hard EP limit of 4 to 25 PHP workers per account to protect shared resources. On managed VPS, you configure PHP-FPM pool size based on your available RAM. A 4 GB VPS can support 20 to 40 PHP workers at 80MB each, handling 20 to 40 concurrent WordPress page renders simultaneously. For WooCommerce stores with uncacheable dynamic pages (cart, checkout, account), this difference is the one that produces measurably faster response times under real user load.

3. Redis object cache becomes available

Shared hosting does not support Redis. Managed VPS does — one click on Cloudways or ScalaHosting enables Redis object cache. Redis keeps database query results in memory, reducing PHP execution time per uncached page from 400 to 800ms down to 80 to 150ms by serving repeated database queries from RAM instead of running them against MySQL. For WooCommerce stores where cart and account pages cannot be page-cached, Redis is the specific upgrade that addresses the performance gap shared hosting cannot close.

4. Inodes become irrelevant

VPS plans — whether managed or unmanaged — do not impose inode limits. Your filesystem is the entire disk partition allocated to your VM. A 50GB VPS disk can hold as many files as it can physically store. The WooCommerce store scenario that hit 287,000 inodes on a shared plan with 250,000 inode limit would never have an inode problem on VPS. This alone is a meaningful upgrade reason for large content sites, high-volume WooCommerce stores, or agencies managing many client sites on one account.

What does not change when you move to managed VPS

Three things stay exactly the same, and confusion about this causes real frustration for people who upgrade expecting more than the infrastructure layer delivers.

  1. You still manage WordPress yourself. Plugin updates, WordPress core updates, security plugin configuration, and theme management all remain in WordPress admin, exactly as they do on shared hosting. The server is managed. WordPress is not.
  2. Support stays at the server boundary. A managed VPS host will resolve "502 Bad Gateway" errors because that is a server-layer problem. They will not resolve "my WooCommerce cart is showing the wrong total" because that is an application-layer problem. The support boundary is the same on VPS as on shared hosting — it just comes with better performance on the other side of that boundary.
  3. You still need caching plugins. Moving to VPS does not eliminate the need for WP Rocket or LiteSpeed Cache. It gives you better infrastructure to run them on. Redis object cache (now available on VPS) enhances your caching stack, it does not replace the need for page-level caching.

The upgrade decision tree

Is your site consistently receiving more than 1,000 visitors per day? If no, shared hosting is almost certainly sufficient. If yes:

Is your TTFB exceeding 600ms under normal load after enabling full-page caching? If no, optimize your caching configuration before considering a hardware upgrade. If yes:

Is the caching failing because pages are uncacheable (WooCommerce dynamic pages) rather than because cache hit rate is low? If yes, managed VPS with Redis is the correct upgrade. If no, consider whether your caching plugin is correctly configured before spending on a VPS.

Who Should Use Shared Hosting in 2026 (and Who Is Overbuying Infrastructure)

The hosting industry profits from infrastructure anxiety. Upgrade messaging is everywhere: in welcome emails, in cPanel dashboard banners, in blog posts from VPS companies. The result is that many sites running perfectly on shared hosting are paying 3 to 5 times more for infrastructure they cannot use. Here is the honest fit analysis.

Shared hosting is right for you if...
  • Your site receives under 30,000 visits per month and you have full-page caching enabled
  • You run a personal blog, portfolio, small business brochure site, or content site with mostly static pages
  • You manage client sites as an agency and want a low-cost option for small business clients with under 10,000 visits/month
  • You are launching a new site and want to validate traffic before committing to VPS infrastructure costs
  • Your WooCommerce store has fewer than 100 products and under 200 orders per month — shared hosting handles this comfortably
  • You want a host-managed OS and security layer without learning Linux or paying for managed VPS pricing
  • Email hosting, domain management, and WordPress installation all in one dashboard is your priority over raw performance
Shared hosting is the wrong call if...
  • Your site consistently receives 30,000+ visits per month and you are seeing throttle warnings in cPanel resource usage
  • You run a high-volume WooCommerce store with active cart and checkout traffic that cannot be page-cached
  • You need Redis object cache — this is not available on shared hosting at any price point
  • Your application requires Node.js, Python runtime, Docker, or any software requiring root installation
  • You are hitting inode limits and the solution is adding more files, not removing them
  • Your site's TTFB under load consistently exceeds 600ms after full-page caching is correctly configured
  • You need a dedicated IP address for compliance reasons, payment processing requirements, or IP reputation isolation

The threshold I use when advising site owners: when your site reliably exceeds 1,000 visitors per day with full-page caching enabled and you see EP throttling or TTFB degradation during business hours, it is time to evaluate VPS. Below that threshold, a quality shared host with LiteSpeed handles the load with enough headroom that upgrading buys you nothing measurable. Above 200,000 monthly visits, cloud infrastructure or dedicated hosting becomes the correct architecture conversation. Managed VPS is the right answer in the middle range. Shared hosting owns everything below it.

The Shared Hosting Shortlist: Seven Hosts, Honestly Compared

After testing 8 providers in Q1 2026 with 3,800+ measurements, here is where each one earns its recommendation — and what the honest tradeoff is. No host gets universal praise because no host is universally right.

01
ScalaHosting Shared
Best for: performance-focused users, agencies, anyone moving from cPanel

ScalaHosting leads this list on measured TTFB (210ms in Q1 2026 testing), LiteSpeed web server on all shared plans, and SShield security that genuinely blocks malicious requests at the server level before PHP is involved. SPanel replaces cPanel at no extra license cost, which is why ScalaHosting can include features (daily backups with 30-day retention, SShield, free SSL, free migration) that cPanel hosts charge extra for.

The one limitation worth knowing: SPanel has a 30-minute learning curve for anyone coming from cPanel. The layout differs even when the functionality is the same. After that initial session, daily use is straightforward. ScalaHosting is the host I recommend first for anyone who asks me which shared host to pick in 2026.

From $2.95/month (Mini plan, 1 website)

02
Hostinger
Best for: beginners, budget-conscious users, anyone wanting a simplified dashboard

Hostinger at 248ms TTFB (Q1 2026) runs LiteSpeed and delivers performance that only slightly trails ScalaHosting at a similar price point. hPanel is deliberately simpler than cPanel — most tasks take fewer clicks to complete, which is a genuine advantage for users who do not need cPanel's full feature set. The 100GB NVMe on the Premium plan and 600,000 inode limit are both generous.

The limitation: hPanel lacks some cPanel features (raw access logs, advanced SSH configuration, reseller management). For users who have grown up on cPanel and need full control over their PHP configuration files or advanced DNS editing, Hostinger's simplified interface becomes a constraint.

From $2.99/month (single site, promotional)

03
SiteGround
Best for: WordPress users who want server-level WAF and daily backups as standard

SiteGround at 290ms TTFB is the fastest cPanel-adjacent option with a server-level WAF included. Their custom Site Tools control panel is cleaner than stock cPanel but covers all the same functionality. Daily automated backups with 30-day retention are included on all plans — not an add-on. The WordPress staging environment is one-click. These are the features that justify SiteGround's pricing over lower-cost alternatives for WordPress users who want security infrastructure without managing it themselves.

The inode limit (250,000 on StartUp) is the constraint to know. A growing WooCommerce store will hit it. SiteGround's response is to upgrade to their GoGeek plan (400,000 inodes) or their cloud hosting tier. Budget for that upgrade if your site is a WooCommerce store or a high-volume content site.

From $3.99/month (StartUp, 1 website)

04
ChemiCloud
Best for: users wanting cPanel + LiteSpeed + genuine support without SiteGround pricing

ChemiCloud at 310ms TTFB runs LiteSpeed on cPanel, which means you get the LiteSpeed performance advantage with the cPanel interface familiarity advantage simultaneously. Free website migration handled by their team is a real differentiator for anyone moving from another host. Daily backups with 30-day retention are included. Their support response times are genuinely fast based on my Q1 2026 test tickets.

From $3.95/month (Starter, 1 website)

05
Bluehost
For: users who specifically want EIG/Newfold ecosystem tools or are coming from a WordPress.com recommendation

Bluehost at 480ms TTFB is slower than the four hosts above it in every test I have run. The Basic plan does not include automatic backups by default (CodeGuard is an add-on). The introductory price ($2.95/month) renews at $10.99/month. The Apache web server does not deliver LiteSpeed's performance advantage. I recommend Bluehost only for users who have specific reasons to stay in the EIG ecosystem or who are following a WordPress.com integration that specifically supports Bluehost.

From $2.95/month intro ($10.99 renewal)

The renewal price problem: Introductory prices on shared hosting are promotional rates for the first billing cycle. Always check the renewal price before committing. Bluehost's $2.95/month intro renews at $10.99/month. Hostinger's $2.99/month intro renews at $7.99/month. ScalaHosting's pricing is more consistent: the Mini plan intro at $2.95/month renews at $5.95/month. The renewal price is the real cost of the service.

Six Shared Hosting Myths That Cost People Real Money

The shared hosting market generates more misinformation than almost any segment of hosting. Some of it comes from inexperienced advice. Most of it comes from hosts and VPS providers with financial incentives to either oversell entry users or upgrade them prematurely. Here are the six myths I encounter most often and the accurate version of each.

"Unlimited disk space means I can store as much as I want."

FALSE

Every "unlimited" disk claim in shared hosting is governed by an acceptable use policy that prohibits using disk space as a file storage service, backup destination, or media archive. In practice, accounts using more than 10 to 20GB of disk space for non-website purposes get flagged or suspended. The real limit is inode count, not gigabytes. "Unlimited" means the host will not suspend you for exceeding a published gigabyte number — it does not mean unlimited storage.

"Shared hosting is fine for small businesses because they have low traffic."

PARTIALLY TRUE

Traffic volume is only one variable. A small business WooCommerce store with 500 products, active checkout, and 3 email accounts can exhaust a shared plan's inode allocation, PHP worker count, and MySQL connections long before it exceeds any traffic threshold. The use case matters as much as the traffic level. A simple 5-page brochure site on shared hosting is fine at 100,000 visits/month. A complex WooCommerce store may need VPS at 5,000 visits/month.

"All shared hosting providers have roughly the same performance."

FALSE

The 400ms TTFB gap between ScalaHosting (210ms) and GoDaddy (610ms) in Q1 2026 testing is larger than the gap between the best shared host and a mid-range VPS. The performance difference between shared hosts is driven by account density, PHP worker allocation, web server choice (LiteSpeed vs Apache), and MySQL isolation. These are architectural choices hosts make, not hardware limitations. Choosing the wrong shared host at the same price point costs you more in performance than the tier difference between shared and VPS.

"Moving to VPS will fix my slow WordPress site."

INCOMPLETE

VPS fixes specific infrastructure bottlenecks: PHP worker limits under concurrency, RAM constraints with many plugins, and the absence of Redis object cache. It does not fix slow PHP code, unoptimized database queries, missing caching configuration, oversized images, or render-blocking JavaScript. A site that loads in 4 seconds on shared hosting and is slow because it loads 12 unoptimized JavaScript files will load in 3.8 seconds on VPS. The same site with full-page caching correctly configured will load in 0.4 seconds on shared hosting.

"Free SSL from Let's Encrypt is less secure than paid SSL certificates."

FALSE

Let's Encrypt SSL certificates provide the same 256-bit AES encryption as premium SSL certificates from Comodo or DigiCert. The only technical difference is validation level: Let's Encrypt issues Domain Validation (DV) certificates that confirm domain ownership. Premium Extended Validation (EV) certificates show the organization name in some browser bars — a visual trust signal that is increasingly irrelevant as browser UX has moved away from displaying EV information. For security purposes, Let's Encrypt SSL is equivalent to any paid SSL certificate.

"cPanel is being replaced and is not worth learning."

FALSE

cPanel's 2019 pricing change caused a wave of hosts to evaluate alternatives (SPanel, Plesk, DirectAdmin, custom panels). In 2026, cPanel is still the majority panel on shared hosting and the primary interface for most documentation, migration tools, and WordPress tutorials. Learning cPanel is learning the de facto standard for shared hosting administration. Alternatives like SPanel are worth learning for specific hosts (ScalaHosting specifically), but they are not replacements for the market — cPanel remains the baseline.

Shared Web Hosting FAQ

What is shared web hosting in simple terms?

Shared web hosting is a service where your website files, database, and email accounts live on the same physical server as hundreds or thousands of other websites. You share the server's CPU, RAM, and disk I/O with those other accounts. Modern shared hosts use CloudLinux LVE (Lightweight Virtual Environment) to put a resource cage around each account, so one busy neighbor cannot fully crash your site. The result is a hosting environment that costs $2 to $12/month because operating costs are divided across many customers, at the tradeoff of shared resources and hard limits on how many concurrent PHP processes your site can run.

How many websites can I host on a shared hosting plan?

That depends entirely on the plan tier. Single-site plans (Bluehost Basic, SiteGround StartUp) host one domain. Unlimited or multi-site plans allow as many domains as you want, but the practical ceiling is set by your resource allocation, not the domain count. If you have 10 WordPress sites each consuming 50MB of RAM at idle, you have 500MB consumed before a single visitor arrives on a 512MB plan. In practice, three to five low-traffic WordPress sites run comfortably on a mid-tier shared plan. Above five active sites, a VPS produces more reliable performance. Hostinger's Premium plan supports 100 websites, but 100 active sites would instantly exceed the account's PHP worker allocation.

What is the inode limit and why does it matter more than disk space?

An inode is a filesystem record that tracks one file or directory. Every image, plugin file, email, cache file, and database table on your hosting account consumes one inode. Most shared hosting plans cap inodes between 150,000 and 600,000. A WooCommerce store with 500 products, aggressive caching, and 6 months of email archives can easily exceed 300,000 inodes while using only 3GB of a 20GB disk quota. When you hit the inode limit, you cannot create new files — your site throws errors, WordPress cannot write cache, and new emails bounce. Disk space is almost never the real constraint on shared hosting. Inodes are. Always confirm the inode limit with the host before signing up.

Is shared hosting secure enough for WordPress?

Yes, for most sites, when you apply the right practices. Modern shared hosts run account-level isolation through CloudLinux, which means a compromised neighbor account cannot read your files — the kernel enforces separation at the process level. What shared hosting cannot protect you from is your own WordPress installation: outdated plugins, weak passwords, and file permission errors. SiteGround and ScalaHosting run web application firewalls at the server level that block common WordPress attack vectors before requests reach PHP. On shared hosts without a server-level WAF, a plugin-level firewall like Wordfence is your first line of defense. The security gap between shared hosting and VPS is smaller than most people assume for WordPress sites that follow basic hygiene.

When should I upgrade from shared hosting to VPS?

Upgrade when you hit any of these four signals: (1) Your TTFB under load consistently exceeds 600ms after enabling full-page caching — this means you are hitting PHP worker limits, not a cache problem. (2) Your host throttles your account during normal business hours and you see CPU limit or EP limit errors in cPanel's resource usage panel. (3) Your site receives more than 30,000 visits per month consistently and response time variance is high. (4) You need Redis object cache, which shared hosting does not support. If none of these four are true, stay on shared hosting. A well-configured shared plan outperforms a poorly configured VPS for sites in the 5,000 to 15,000 visits/month range.

What is the difference between shared hosting and cloud hosting?

Shared hosting puts your website on one physical server, shared with other accounts. Cloud hosting puts your website on a virtualized instance that draws resources from a pool of physical servers. Cloud hosting can scale resources on demand — more CPU during traffic spikes, then back down. Shared hosting has a fixed resource allocation. Cloud hosting is more resilient: if one physical server fails, your instance migrates. Shared hosting fails with its server. Price-wise, a comparable resource allocation on cloud hosting costs 3 to 5 times more than shared. For sites under 50,000 monthly visits without unpredictable traffic spikes, shared hosting from a quality provider produces equivalent performance at a fraction of the cost.