You installed WordPress once on a shared hosting account and it worked. Now you're hearing about VPS, managed WordPress hosting, cloud platforms, and someone mentioned "containers." Each term sounds important but nobody explains what they actually mean for your site or how much control you'll have when something breaks at 2 AM.
I'll walk through four hosting categories, define every technical term as we go, and show you what a first setup looks like on each platform. By the end you'll know which tradeoffs matter for your use case.
What "hosting" actually controls
Hosting determines three things: where your files live, who manages the software stack underneath WordPress, and how much access you get when you need to troubleshoot. A web server (usually Apache or Nginx) listens for visitor requests. PHP runs your WordPress code. A database server (MySQL or MariaDB) stores your posts and settings. Your hosting type decides whether you configure these yourself or whether the provider locks them down.
Shared hosting means your site runs on a server with dozens or hundreds of other accounts. You get a control panel (usually cPanel) and FTP access but you can't restart services or edit the main web server config. VPS (Virtual Private Server) gives you a dedicated slice of a physical machine with root access—you install and configure everything. Managed WordPress hosting is shared infrastructure tuned specifically for WordPress, often with automatic updates and staging environments. Cloud platforms (like AWS Lightsail or DigitalOcean) give you a VPS-style virtual machine but bill by the hour and let you scale resources without rebuilding.
Shared hosting: cPanel, limited shell, fixed resources
Shared hosting is where most people start. You buy a plan, get a cPanel login, and install WordPress through Softaculous or a one-click installer. The provider manages Apache, PHP, and MySQL versions. You upload themes via FTP or the File Manager and edit wp-config.php if you need to change database credentials.
What you can change
You control your WordPress files, plugins, and database content. Many hosts let you pick a PHP version from a dropdown in cPanel (usually 7.4, 8.0, 8.1, or 8.2). You can create cron jobs through the cPanel interface and set PHP memory limits with a .user.ini file in your document root:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
You cannot restart Apache or MySQL. You can't install server-level software like Redis or Elasticsearch. If the server runs out of inodes or disk space because a neighbor's account filled up, you wait for support to clean it.
Resource limits
Shared plans advertise "unlimited" bandwidth or disk but enforce CPU and memory limits behind the scenes. A typical entry plan might allow 1 CPU core equivalent and 1–2 GB of RAM. If a plugin runs a long query or a traffic spike hits, the host suspends your account or shows a 503 error until load drops.
I've seen accounts suspended because a backup plugin ran during peak hours and the server's load average spiked. The fix was moving the backup cron to 3 AM and splitting it into smaller chunks.
First-time setup
- Log into cPanel.
- Find Softaculous Apps Installer or WordPress Toolkit under Software.
- Click Install, choose your domain, set an admin username (never "admin") and a strong password.
- The installer creates a database, writes
wp-config.php, and runs the WordPress installer script. - Visit
yourdomain.com/wp-admin, log in, and you're live.
Total time: five minutes. You didn't touch SSH or a config file. That's the appeal.
VPS: root access, manual stack, SSH required
A VPS gives you a virtual machine with root login. You choose an operating system image (usually Ubuntu, CentOS, or Debian) and the provider boots it. From there you install the LAMP stack (Linux, Apache, MySQL, PHP) or LEMP (Nginx instead of Apache) yourself.
What you can change
Everything. Install any PHP version from source, compile Nginx with custom modules, tune MySQL's innodb_buffer_pool_size, set up Redis or Memcached, configure firewall rules, add swap space. If you want to run multiple PHP versions and switch per virtual host, you can. You can also break everything if you delete the wrong config line.
When a plugin causes a white screen, you SSH in, check /var/log/apache2/error.log or /var/log/nginx/error.log, spot the fatal error, disable the plugin by renaming its folder under /var/www/html/wp-content/plugins/, and bring the site back.
Resource limits
You get dedicated CPU cores and RAM. A $12/month VPS might offer 2 vCPUs, 2 GB RAM, and 50 GB SSD. Traffic is usually metered—1 or 2 TB per month—but you won't hit that unless you serve large video files. If you use all the RAM, the kernel invokes the OOM killer and kills processes; your site goes down until you restart services or add swap.
First-time setup on Ubuntu 22.04
This assumes you've never used SSH. I'll show every command.
-
Connect via SSH.
Your VPS provider emails you an IP address and root password. On macOS or Linux, open Terminal. On Windows, use PuTTY or the Windows Terminal with OpenSSH.bash ssh [email protected]Typeyeswhen it asks about the host key, then paste the password. -
Update packages.
bash apt update && apt upgrade -y -
Install Apache, MySQL, PHP.
bash apt install apache2 mysql-server php php-mysql libapache2-mod-php php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip -y -
Secure MySQL.
bash mysql_secure_installationSet a root password, remove anonymous users, disallow remote root login, remove test database. -
Create a database for WordPress.
bash mysql -u root -pInside the MySQL prompt:sql CREATE DATABASE wpdb; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'strong_password_here'; GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; EXIT; -
Download and extract WordPress.
bash cd /tmp wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz mv wordpress /var/www/html/mysite chown -R www-data:www-data /var/www/html/mysite -
Configure Apache virtual host.
bash nano /etc/apache2/sites-available/mysite.confPaste:apache <VirtualHost *:80> ServerName yourdomain.com DocumentRoot /var/www/html/mysite <Directory /var/www/html/mysite> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/mysite_error.log CustomLog ${APACHE_LOG_DIR}/mysite_access.log combined </VirtualHost>Save (Ctrl+O, Enter, Ctrl+X).bash a2ensite mysite.conf a2enmod rewrite systemctl reload apache2 -
Point your domain's A record to the VPS IP in your DNS manager. Wait a few minutes for propagation.
-
Run the WordPress installer.
Visithttp://yourdomain.comin a browser. WordPress asks for database name (wpdb), username (wpuser), password, and host (localhost). Click through, set your site title and admin account, and you're live.
Total time first attempt: 45 minutes. After you've done it twice, 15 minutes.
So what if you want WordPress-specific optimizations without manual setup?
That's where managed WordPress hosting fits. Providers like Kinsta, WP Engine, and Flywheel run WordPress on a tuned stack (often Nginx, PHP-FPM, MariaDB, and an object cache) and handle updates, backups, and staging.
What you can change
You control themes, plugins, and content. You cannot SSH into the server or edit web server configs. The provider blocks certain plugins (common targets: backup plugins that hammer the disk, poorly coded page builders, old caching plugins that conflict with the platform's edge cache). You push code changes via SFTP or Git integration. Staging environments let you test updates on a copy before pushing to production.
PHP version and caching rules are managed through a dashboard. You might toggle Redis or adjust PHP memory from a dropdown. No command line required.
Resource limits
Managed plans bill by monthly visits rather than raw CPU or RAM. An entry plan might allow 25,000 visits per month with 10 GB storage and a CDN included. If you exceed visits, the host either charges overage fees or asks you to upgrade. Because the infrastructure is WordPress-only, resource usage per visitor is predictable.
First-time setup
Sign up, enter your domain, and the platform provisions WordPress for you. You receive an admin login. Point your domain's DNS to the provided nameservers or A record. The host automatically provisions an SSL certificate through Let's Encrypt. You're online in ten minutes without touching a terminal.
The downside: cost. Managed plans start around $30/month compared to $5 for shared or $12 for a VPS.
Cloud platforms: hourly billing, snapshot backups, flexible scaling
Cloud VPS offerings from AWS Lightsail, DigitalOcean, Linode, or Vultr give you the same root access as a traditional VPS but let you resize CPU and RAM without reprovisioning. You can take snapshots of the entire disk, clone servers, and spin up new instances in different regions.
What you can change
Same as a VPS—full root access. The difference is in management tooling. Cloud dashboards let you reboot, resize, view traffic graphs, and manage firewalls through a web UI. You can automate deployments with cloud-init scripts or Terraform. Many platforms offer one-click WordPress images that pre-install the LAMP stack and WordPress, landing somewhere between shared hosting ease and VPS control.
Resource limits
You choose instance size and pay by the hour. A $6/month instance might give you 1 vCPU and 1 GB RAM; a $24/month instance gives 2 vCPUs and 4 GB RAM. Scale up when you launch a marketing campaign, scale back down when traffic drops.
Bandwidth is generous—1 TB or more—but overage charges apply. Snapshot storage and backups cost extra (usually a few dollars per month for a 25 GB disk image).
First-time setup with a one-click image
- Create an account on DigitalOcean, Linode, or Lightsail.
- Click Create Droplet (DigitalOcean) or Launch Instance (Lightsail).
- Choose the WordPress image under Marketplace or Apps.
- Pick instance size, region, and SSH key (generate one with
ssh-keygenif you don't have one). - Launch. The platform emails you the instance IP and the auto-generated WordPress admin password.
- SSH in to retrieve the password:
bash ssh [email protected] cat /root/.digitalocean_password - Point your domain's A record to the IP.
- Visit
http://yourdomain.com/wp-admin, log in with the provided credentials, change the password immediately.
The image pre-configures Apache or Nginx, MySQL, PHP, and a basic firewall. You still have root access if you need to install extra software later.
Comparing control, cost, and breakage risk
| Aspect | Shared | VPS | Managed WP | Cloud VPS |
|---|---|---|---|---|
| Root/SSH access | No | Yes | No | Yes |
| Manages updates | Host | You | Host | You |
| Plugin restrictions | Rare | None | Common | None |
| Typical monthly cost | $3–10 | $5–20 | $30–100 | $6–50 |
| Scaling method | Upgrade plan | Rebuild or resize | Upgrade tier | Resize instance |
| Breakage risk | Low | High | Low | Medium |
Shared hosting is the safe default if you're running a blog or small business site and never want to touch a terminal. Managed WordPress hosting makes sense when your site generates revenue and downtime costs more than the hosting premium. A VPS or cloud instance is the right pick when you need custom software, specific PHP versions, or you're comfortable fixing your own mistakes at 2 AM.
What to check first before choosing
Start with traffic and workload. If you're getting fewer than 10,000 visits per month and running a standard theme with a few plugins, shared hosting handles it fine. If you need WooCommerce with a large product catalog or membership plugins with complex database queries, you'll hit shared hosting CPU limits quickly.
Check plugin requirements. Some plugins (like certain LMS or booking systems) explicitly require VPS or dedicated resources because they run background jobs or maintain persistent connections.
Consider your technical comfort. If the idea of SSHing into a server and typing systemctl restart apache2 sounds intimidating, managed WordPress hosting or shared hosting with good support is worth the cost. If you've worked in a terminal before and can read error logs, a VPS gives you flexibility and better value once you're past the learning curve.
Test your backup and restore process before you need it. On shared hosting, use a plugin like UpdraftPlus and verify you can restore to a fresh WordPress install. On a VPS, script your backups with rsync or take weekly snapshots through your provider's dashboard. On managed hosting, confirm the provider's automatic backups actually work by restoring a staging site from a backup point.
FAQ
Can I move from shared hosting to a VPS later without downtime?
Yes. Set up WordPress on the VPS with a temporary domain or the server IP, migrate your database and files, test everything, then update your DNS to point to the new IP. DNS propagation takes a few hours but both servers stay live during the switch.
Do I need a control panel on a VPS?
No. cPanel costs extra on a VPS (around $15/month). Free alternatives like Webmin or CyberPanel exist, but many admins manage everything through SSH and text config files. If you're comfortable editing /etc/apache2/sites-available/ files directly, you don't need a GUI.
What's the difference between managed WordPress hosting and a VPS with a managed service?
Managed WordPress hosting optimizes the entire stack for WordPress and restricts what you can install. A managed VPS service (like Cloudways or RunCloud) gives you root access and lets you install anything, but the provider handles server updates and monitoring. You get more control than managed WordPress but less hand-holding.
Can I run multiple WordPress sites on one VPS?
Yes. Create separate Apache or Nginx virtual hosts, separate databases, and separate directories under /var/www/. Each site gets its own domain and config. A 2 GB VPS can comfortably host five to ten low-traffic WordPress sites.
How do I know when I've outgrown my current hosting?
Watch for frequent 503 errors, slow admin dashboard response, or suspension notices from your host. Check server resource usage in cPanel (CPU and memory graphs) or run top via SSH on a VPS. If you're consistently hitting limits during normal traffic, it's time to upgrade or optimize. Start by disabling unnecessary plugins and enabling object caching before jumping to a bigger plan.
When to pick each option
Shared hosting works for personal blogs, portfolio sites, and small business sites with predictable traffic and standard plugins. You get online fast and support handles the server-level problems.
A VPS fits if you need custom software, specific PHP extensions, or you're running multiple sites. The learning curve is real but the control and cost-per-resource ratio beats managed hosting once you're handling more than one or two sites.
Managed WordPress hosting makes sense when your time is worth more than the price difference, your site earns revenue, or you need guaranteed performance without becoming a sysadmin. The plugin restrictions occasionally frustrate but the automated staging and backups save hours.
Cloud VPS instances split the difference: you get VPS-level control with better tooling for snapshots, resizing, and multiple regions. Pick this if you expect traffic spikes, want to experiment with server configs without fear, or you're building something that might need to scale quickly.
None of these options is universally better. Your site's workload, your technical skill, and your tolerance for 2 AM troubleshooting determine the right fit.
