Shared Hosting vs VPS vs Dedicated Server: Which One Do You Need?
The four types of hosting explained in plain words: what shared hosting, a VPS, a dedicated VPS and a dedicated server really give you, what each costs, which is faster, and a tested PHP file that shows whether your site has outgrown its plan.
Every website lives on a server. The only question is how much of that server is yours. With shared hosting you rent a small corner of a busy server, with a VPS you get a guaranteed slice of it, and with a dedicated server the whole machine is yours. Each step up costs more and gives you more power, and more work.
This guide explains the four types of hosting in plain words, what they cost, which one is faster, and gives you a small tested PHP file that shows whether your site has outgrown the plan it is on.
The four types of hosting
| Type | What you get | Who manages the server | Good for |
|---|---|---|---|
| Shared hosting | Space on a server shared with hundreds of other sites, with a control panel such as cPanel | The host | Blogs, business sites, small shops, PHP scripts |
| VPS (virtual private server) | A virtual server with its own guaranteed CPU, memory and disk, and full root access | You (or the host, on a managed VPS) | Several sites, custom software, chat, VPN and call servers, Node.js apps |
| Dedicated server | A whole physical machine for you alone | You (or the host, if managed) | Busy sites, big databases, game servers, heavy video or calls |
| Cloud hosting | Servers you can resize or add in minutes and pay for by the hour | You, with the provider's tools | Traffic that goes up and down, apps that grow fast |
You will also see managed WordPress hosting, which is usually shared or cloud hosting tuned for WordPress, and dedicated VPS hosting, explained below.
Shared hosting vs VPS: is a VPS the same as shared hosting?
No. Both can run on the same kind of hardware, but the deal is different:
| Shared hosting | VPS | |
|---|---|---|
| Resources | Shared: a busy neighbour can slow your site down | Guaranteed CPU and memory for you |
| Access | A control panel and FTP; no root | Full root access over SSH: install anything |
| Software | Only what the host offers (PHP, MySQL, email) | Anything that runs on Linux: chat servers, TURN, VPN, Node.js, Docker |
| Your work | None: updates and security are the host's job | You update and secure the system, unless it is managed |
| Price | $2 to $15 a month (check the renewal price) | $4 to $40 a month for most small projects |
A VPS is faster than shared hosting when your site needs the power. A small blog on good shared hosting with LiteSpeed and caching can feel just as fast as on a cheap VPS that nobody has tuned.
VPS vs dedicated server: which is better?
| VPS | Dedicated server | |
|---|---|---|
| Performance | Shares the physical CPU with other VPSs; usually fine, sometimes uneven | The whole CPU, disks and network card are yours: steady performance under heavy load |
| Power for the money | Better at the low end | Better at the high end: a dedicated server often gives several times the CPU of a VPS at the same price |
| Speed of change | Resize, snapshot and rebuild in minutes | Hardware changes take hours or days |
| When a part fails | The provider moves you to other hardware | You wait for the data centre to swap the part, so backups and a second server matter more |
In short: a VPS for almost every project that has outgrown shared hosting, and a dedicated server only when a VPS big enough would cost more than the machine itself.
What is dedicated VPS hosting?
A dedicated VPS (or “dedicated vCPU” VPS) is a VPS whose CPU cores are reserved for you instead of shared with other customers. It sits in the middle: steady performance like a dedicated server, with the quick resizing and snapshots of a VPS. Most cloud providers sell them next to their normal, shared-CPU plans, at roughly two to three times the price.
What each one costs
| Type | Typical price a month | Watch out for |
|---|---|---|
| Shared hosting | $2 to $15 | The renewal price, often three to six times the first term. See our cheap hosting guide. |
| VPS | $4 to $40 (Oracle's free tier: $0) | Included traffic, and whether it is managed. Our VPS comparison lists the cheap ones. |
| Dedicated VPS | $20 to $100 | The number of reserved cores |
| Dedicated server | From about $40 to $60 for a modern entry server (older hardware from about $11), most between $100 and $250 | Setup fees, and how long a hardware repair takes |
Prices as listed by hosts and price trackers in October 2026. For example, Hetzner's entry dedicated servers start at about €42 a month after its 2026 price rises.
Which is better for you?
| Your project | Start with |
|---|---|
| A blog, a business website, a portfolio | Shared hosting |
| A small online shop or a PHP script (blog, tools, games website) | Good shared hosting |
| Several websites you want to manage together | A VPS with a free control panel |
| A chat app, video calls (TURN), a VPN, a Node.js or Python app | A VPS: shared hosting cannot run these |
| A busy shop or forum that is slow on a big VPS | A dedicated VPS, then a dedicated server |
| A game server or heavy video for many users | A dedicated server |
Try it: has your site outgrown its hosting?
Before you pay for a bigger plan, measure the one you have. Save this as hosting-check.php, upload it to your site and open it in the browser. It times a fixed CPU task, measures disk speed, and shows the limits your host has set:
<?php
// hosting-check.php: is your site outgrowing its hosting? Upload it, open it, read the numbers, then delete it.
// Run it on two hosts (or old and new plan) and compare.
function mb($bytes) { return round($bytes / 1048576, 1) . ' MB'; }
// 1. CPU: how long a fixed amount of math takes (lower is faster)
$t = microtime(true);
$x = 0;
for ($i = 1; $i <= 3000000; $i++) { $x += sqrt($i); }
$cpu = round((microtime(true) - $t) * 1000);
// 2. Disk: write and read back a 20 MB file
$file = __DIR__ . '/disk-test.tmp';
$data = str_repeat('x', 1048576);
$t = microtime(true);
$fh = fopen($file, 'w');
for ($i = 0; $i < 20; $i++) { fwrite($fh, $data); }
fclose($fh);
$write = 20 / max(microtime(true) - $t, 0.001);
$t = microtime(true);
$read = strlen(file_get_contents($file));
$readSpeed = ($read / 1048576) / max(microtime(true) - $t, 0.001);
unlink($file);
// 3. Limits the host has set
$load = function_exists('sys_getloadavg') ? sys_getloadavg() : false;
$free = @disk_free_space(__DIR__);
$total = @disk_total_space(__DIR__);
$rows = [
['PHP version', PHP_VERSION],
['CPU test (3 million square roots)', $cpu . ' ms'],
['Disk write speed', round($write) . ' MB/s'],
['Disk read speed', round($readSpeed) . ' MB/s'],
['Memory limit per PHP request', ini_get('memory_limit')],
['Max run time per PHP request', ini_get('max_execution_time') . ' s'],
['Max upload size', ini_get('upload_max_filesize')],
['Server load (1, 5, 15 min)', $load ? implode(', ', array_map(fn($v) => round($v, 2), $load)) : 'hidden by the host'],
['Disk free / total', ($free && $total) ? mb($free) . ' / ' . mb($total) : 'hidden by the host'],
['Memory this page used', mb(memory_get_peak_usage(true))],
];
?>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="robots" content="noindex"><title>Hosting check</title>
<style>body{font-family:system-ui,sans-serif;max-width:680px;margin:30px auto;padding:0 16px}td{padding:8px 12px;border-bottom:1px solid #ddd}td:last-child{font-weight:700}</style>
</head>
<body>
<h1>Hosting check</h1>
<table>
<?php foreach ($rows as [$name, $value]): ?>
<tr><td><?= htmlspecialchars($name) ?></td><td><?= htmlspecialchars((string)$value) ?></td></tr>
<?php endforeach; ?>
</table>
<p>Reload a few times: busy shared servers give very different numbers each time. Delete this file when you are done.</p>
</body>
</html>
| Line | How to read it |
|---|---|
| CPU test | Lower is faster. Compare two hosts or two plans with the same file. If the number jumps around a lot when you reload, the server is busy with other customers. |
| Disk write and read | NVMe disks show hundreds or thousands of MB/s. Double-digit numbers mean slow disks, which hurt databases most. |
| Memory limit | 128 MB is tight for WordPress shops and large scripts; 256 MB or more is comfortable. |
| Max run time | Long imports, backups and reports need more than 30 seconds. |
| Server load | On a VPS, a load above the number of CPU cores means the server is overloaded. Shared hosts often hide it. |
If the numbers are fine but the site is still slow, the cause is usually the site itself (heavy plugins, no caching, big images), and a bigger plan will not fix it. Delete the file when you are done.
What forums such as Reddit keep advising
- Start on shared hosting and move when you hit a real limit, not before.
- An unmanaged VPS is cheap but not free of work: updates, firewall and backups are now yours.
- Do not buy a dedicated server for a small site. A tuned VPS handles far more than most new sites ever get.
- Compare renewal prices, not first-year deals.
Hostinger and other hosts that sell all three
Most large hosts, Hostinger among them, sell shared, cloud and VPS plans, so you can move up later without changing company. That is convenient, but compare each step on its own: the cheapest shared host is not always the best value for a VPS. There are no affiliate links on this page.
Moving up from shared hosting to a VPS
Moving one site is easy; running a server well is the real change. Plan for these before you switch:
- A control panel or not: a free panel such as HestiaCP or CloudPanel gives you websites, databases and SSL in a browser
- Security: SSH keys, a firewall, automatic updates, and the panel port closed to everyone but you
- Backups that live somewhere else, so one broken server does not take your sites with it
- Email: mail from a fresh VPS often lands in spam, so many people keep email at an outside service
What our apps and scripts need
| Product | Hosting it needs |
|---|---|
| Blog CMS, digital products shop, web tools website, game portal | Shared hosting with PHP 8.1 and MySQL |
| Live video chat app, video dating app, video call chat app | A VPS for the XMPP chat server and the TURN server, as in our ejabberd and TURN guide |
| VPN app | A VPS for WireGuard, see our WireGuard VPS guide |
The chat and video call apps run on your own servers, so you pay for a VPS instead of per-minute fees to a calling API, which is why one cheap VPS is often enough to start.