Skip to main content

From shared hosting to a VDS: when it's time to move

Hosting & cPanel · 18.10.2026 · 5 min read
Illustration for “From shared hosting to a VDS: when it's time to move”

Shared hosting is built for sites with predictable load and server resources split among dozens of neighbors. As a project grows, the limits of a shared plan start restricting not only peak load but everyday operation: from the number of concurrent PHP processes to the version of the software in use. This article covers the signs that it is time to move to a VDS, not whether the move pays off financially.

Recurring 508 and 509 errors

Codes 508 (Resource Limit Is Reached) and 509 (Bandwidth Limit Exceeded) are typical signals from cPanel-based panels running CloudLinux: the account has used up the CPU, memory, or process limit set for the plan, and LVE temporarily blocks new requests. A one-off error during a peak load spike is not a cause for alarm, but blocks recurring several times a week mean normal site load already exceeds what the plan provides.

A detailed breakdown of exactly which limits the panel tracks and how to read them is in the article "Resource Usage in cPanel": it also explains how to tell a one-off spike from a systemic resource shortage.

Memory and process count

A shared plan almost always caps the number of concurrent PHP processes (entry processes) and the memory per process. If a site relies on heavy plugins, caching proxies, or background jobs, rising traffic quickly hits this limit rather than CPU: new requests wait for a slot to free up instead of running in parallel.

On a VDS, processes and memory are limited only by the resources allocated to the server and by settings the administrator sets, not by a shared plan limit spread across dozens of neighbors. This removes the constraint but shifts both the configuration and the monitoring responsibility onto the administrator.

Needing control over the environment

Shared hosting usually offers a fixed set of PHP, Node.js, and system library versions that can only be switched within what the provider prepared in advance. If a project needs a non-standard interpreter version, a custom module, a daemon listening on a port in the background, or a cron job with an unusual run frequency, this typically falls outside a shared environment.

A VDS with root access removes this limit: you can install arbitrary software, run your own services, and manage web server configuration directly instead of through a ready-made panel interface.

Traffic growth and the number of concurrent connections

A full breakdown of the plan's own limits is in the article "Shared hosting limits and resources": it lists typical caps on inodes, databases, and mailboxes that are also worth checking before deciding to move.

If traffic grows steadily rather than in a single spike, and the load chart over several weeks shows a sustained rise rather than a random peak, that is a more reliable signal for moving than a single day of errors.

Migration and what comes with it

Moving from shared hosting to a VDS is almost never just a matter of copying files: you need to set up the web server, the database, mail, and TLS certificates — in other words, recreate what the hosting plan already provided out of the box. For a WordPress project, the step-by-step migration order is described in the article "WordPress migration to VDS".

Migration is best planned ahead of time, not at the moment the site already fails to load because of limits: moving the database and verifying everything works takes time, and doing it under the pressure of an outage is the worst option.

  • 508/509 errors recur several times a week, not once every six months
  • A non-standard PHP or Node.js version is needed that the panel does not offer
  • A custom daemon or service needs to listen on a port in the background
  • Traffic has been growing steadily for several months
  • Root access is needed to install specific software
ParameterShared hostingVDS
Server accessthrough a control panelroot access
PHP/Node.js versionsfixed set from the providerany version the administrator installs
Processes and memoryshared plan limit per accountlimited only by the server's own resources
Configuration responsibilityon the provideron the administrator
# Checking current load on a VDS
top -bn1 | head -15

# Free memory and disk usage
free -h
df -h /

Frequently asked questions

Does a single 508 error in a month mean it is time to move to a VDS?

No, a one-off error during a peak load spike is normal LVE behavior on a shared plan and does not indicate a systemic problem. The real signal for moving is recurrence: blocks happening several times a week for several weeks in a row.

Can I first check exactly which limit the site is hitting?

Yes, and that is the right place to start: the "Resource Usage in cPanel" article explains how the panel shows exactly which resource — CPU, memory, or process count — was exhausted at the moment of the block. This helps decide whether a VDS move is needed or optimizing code and caching is enough.

Does the whole project need to move to a VDS at once, or can it be partial?

Technically only part of the services can be moved, such as the database or mail, leaving the rest on hosting, but such a mixed setup complicates administration and raises the risk of drift between the two. For most projects it is simpler and more reliable to move the whole site in one planned pass, following steps similar to those in the WordPress migration article.

Was this article helpful?
← Back to Knowledge Base Ask Support