PrestaShop Hosting Guide: Requirements, Server Setup & Performance
Choosing hosting for PrestaShop — shared vs VPS vs dedicated, minimum requirements by version, server configuration, SSL, CDN, migration guide, and what to avoid.
Choosing Hosting for PrestaShop: What Actually Matters
Hosting is the foundation under your store. Get it wrong and no amount of optimization will save you. This guide is opinionated — we have run PrestaShop on everything from $3/month shared hosting to 64GB dedicated servers. We tell you what works and where your money is best spent.
Hosting Types Explained
Shared Hosting ($3-15/month)
Your store shares a server with hundreds of other websites. You get cPanel, limited PHP settings, and no root access.
- Pros: Cheap, managed for you, includes email hosting
- Cons: Noisy neighbors tank performance, no SSH on budget plans, cannot install Redis or Varnish, PHP version often locked, shared IP hurts email deliverability
Fine for under 500 products and low traffic. Not fine for anything serious.
VPS ($5-60/month)
Dedicated RAM, CPU, and disk. Root access. Full control over everything.
- Managed VPS: Provider handles OS updates and security. You handle the application. Management panels or managed hosting add $5-20/month on top of the VPS cost.
- Unmanaged VPS: Blank server, SSH access, you manage everything. Cheaper but requires Linux knowledge.
This is the sweet spot for 90% of PrestaShop stores.
Dedicated Server ($80-300+/month)
Entire physical server. No virtualization overhead. Overkill for most stores, essential for 50K+ products with heavy traffic.
Cloud VPS
Cloud VPS providers offer hourly billing, quick provisioning, snapshots, and APIs. Pricing for 2GB/2vCPU ranges from $5-15/month depending on provider and region. European providers tend to be cheaper than US-based ones for equivalent specs.
Managed PrestaShop Hosting
Pre-configured for PrestaShop with PS-specific support. More expensive, less flexible, often resold infrastructure.
Managed PS hosting makes sense with zero server admin knowledge. For everyone else, a VPS with a LEMP stack gives better performance at lower cost.
Minimum Requirements by PS Version
PrestaShop 1.7
- PHP: 7.1-7.4 • MySQL: 5.5+ (5.7 recommended) • RAM: 2GB min, 4GB recommended
- Extensions: curl, gd, intl, mbstring, zip, xml, json, openssl
PrestaShop 8.x
- PHP: 7.2-8.1 (8.1 strongly recommended) • MySQL: 5.6+ • RAM: 4GB min
- Extensions: Same as 1.7 plus fileinfo, iconv
PrestaShop 9.x
- PHP: 8.1-8.4 (8.2+ recommended) • MySQL: 8.0+ or MariaDB 10.5+ • RAM: 4GB min, 8GB recommended
- Extensions: Same as 8.x, Symfony 6.4 requirements apply
These are minimums. A store with 5,000 products, 50 modules, and real traffic needs 4-8GB RAM regardless of version. The "minimum" gets you installed, not performing well.
Sizing Guide
| Store Size | Products | Daily Visitors | RAM | CPU | Disk |
|---|---|---|---|---|---|
| Starter | <500 | <200 | 2GB | 1 core | 20GB SSD |
| Small | 500-2K | 200-1K | 4GB | 2 cores | 40GB SSD |
| Medium | 2K-10K | 1K-5K | 8GB | 4 cores | 80GB SSD |
| Large | 10K+ | 5K+ | 16GB+ | 4-8 cores | 160GB+ SSD |
A store with 5,000 products and 5 images each, regenerated across 7 image types, uses 10-20GB for images alone.
What Actually Matters for Performance
Providers love quoting cores, RAM, and bandwidth. Here is what actually moves the needle, in order:
1. PHP Version and OPcache
PHP 8.1 is 20-40% faster than 7.4 on identical code. OPcache is even bigger — without it, PrestaShop recompiles hundreds of PHP files per page load. With it, bytecode serves from memory.
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
If your host does not support OPcache or runs PHP 7.x in 2026, leave immediately.
2. Disk I/O — SSD Is Mandatory
PrestaShop reads hundreds of files per request. HDD random read: 5-15ms. SSD: 0.1ms. This alone makes a 3x difference. Never run PrestaShop on HDD.
3. MySQL Configuration
A typical page runs 100-300 queries. innodb_buffer_pool_size determines how much data stays in RAM. Set to 50-70% of RAM on a dedicated DB server, 25-40% on a combined app+db server.
4. RAM
Each PHP-FPM worker uses 30-80MB. Ten workers = 300-800MB for PHP alone. Add MySQL, OPcache, Redis, OS — 2GB is tight.
5. HTTP/2
Multiplexes requests over a single connection. Reduces load time 20-40% on stores loading 60-80 assets. Requires HTTPS.
Shared Hosting: Know the Limits
Shared hosting works for small stores. Here are the walls you will hit:
- No SSH: Cannot run CLI commands, Composer, or console commands
- Cron limits: Many hosts cap at every 15 minutes. PrestaShop needs frequent cron.
- memory_limit capped: 128-256MB is common. Large imports fail silently.
- No Redis: File-based caching only — slow on shared storage
- Shared IP: Another site's spam blacklists your IP. Order emails stop arriving. See our email deliverability guide.
When choosing shared hosting, prioritize: SSH access, PHP version control, OPcache support, and adequate memory limits. Check renewal pricing — intro offers are marketing.
Introductory prices are marketing. $2.99/month renews at $10.99. Always check renewal pricing.
VPS: The Right Choice for Most Stores
Why VPS Wins
- Full root access — install Redis, Varnish, Elasticsearch, anything
- Dedicated resources — no noisy neighbors
- Full OPcache and PHP-FPM control
- Unrestricted SSH and cron
- Nginx instead of Apache
- Server snapshots before risky changes
What to Look for in a VPS Provider
- SSD/NVMe storage: Non-negotiable. If they don't specify, assume HDD.
- Fair pricing: 2GB/2vCPU should cost $5-15/month. If it's $30, you're overpaying.
- Datacenter location: Choose close to your customers. EU stores need EU datacenters.
- Snapshots: Free or cheap snapshots for quick rollback before updates.
- Good documentation: You'll be setting up the server. Documentation quality matters.
If you've never managed a Linux server, consider a managed VPS service or a server management panel ($5-20/month extra).
LEMP Stack Setup
# Debian 12 / Ubuntu 22.04
apt install nginx php8.2-fpm php8.2-mysql php8.2-curl \
php8.2-gd php8.2-intl php8.2-mbstring php8.2-xml \
php8.2-zip php8.2-opcache mariadb-server redis-server -y
mysql_secure_installation
Never managed a Linux server? Start with a managed VPS or a management panel. A misconfigured VPS is worse than shared hosting. See our security hardening guide.
Dedicated and Cloud: When You Need More
Move beyond VPS when: 50K+ products, 5K+ daily visitors, multistore with 5+ shops, or 99.99% uptime SLA required.
Dedicated servers with 64GB RAM and NVMe drives can cost as little as EUR 40-60/month from European providers. More power than most stores need, but the price-to-performance ratio often beats cloud VPS at scale.
Scaling steps: separate database server (biggest return), Redis on its own instance, then load balancer with multiple app servers for very high traffic (requires shared storage and Redis sessions).
Server Configuration for PrestaShop
Use Nginx, Not Apache
Apache is the default because shared hosting uses it, not because it is better. Nginx uses event-driven I/O (10-30MB vs 300-800MB for Apache prefork), serves static files without PHP, and has built-in FastCGI cache.
If you must use Apache, use mpm_event with PHP-FPM, never mpm_prefork with mod_php.
PHP-FPM Settings
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 500
php_admin_value[memory_limit] = 512M
php_admin_value[max_execution_time] = 300
Formula for pm.max_children: (Available RAM - MySQL - OS) / 50MB per worker. With 4GB: (4000 - 1500 - 500) / 50 = 40. Set 20-30 to leave headroom.
MySQL Tuning
[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
tmp_table_size = 64M
max_heap_table_size = 64M
slow_query_log = 1
long_query_time = 1
Enable the slow query log. A single bad query running 200 times per page is worse than a slow server. The log is how you find it. See our performance guide for details.
Redis for Sessions and Cache
PrestaShop stores sessions and cache on disk by default. Redis moves both to RAM — faster reads, no disk I/O, automatic expiration. Uses 50-100MB and eliminates the most common cause of slow admin pages: filesystem session locking.
SSL/TLS: Non-Negotiable
Every store needs HTTPS. Google penalizes HTTP. Browsers show warnings. Payment providers require it.
Let's Encrypt
Free, automated, renews every 90 days. Install Certbot and forget about it:
apt install certbot python3-certbot-nginx -y
certbot --nginx -d yourshop.com -d www.yourshop.com
Cloudflare SSL
Free SSL via their proxy. Always use Full (Strict) mode — Flexible sends unencrypted traffic to your server. Set X-Forwarded-Proto header so PrestaShop detects HTTPS behind the proxy.
Force HTTPS
Enable in Shop Parameters → General, then add a server redirect:
# Nginx
server {
listen 80;
server_name yourshop.com;
return 301 https://yourshop.com$request_uri;
}
# Apache (.htaccess)
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
CDN: When and How
For a store serving one region with a local server, a CDN adds minimal speed. The value is in caching and DDoS protection.
Cloudflare free tier is enough for most stores: global CDN, free SSL, DDoS protection, HTTP/2, Brotli. Configure in Advanced Parameters → Performance → Media Servers.
- Cache aggressively: Images, CSS, JS, fonts
- Never cache: Admin, cart, checkout, my-account, pages with PrestaShop cookies
Never enable "Cache Everything" on your entire domain. Cached checkout pages mean one customer sees another's cart. Cache only static assets and specific URL patterns.
Backups: Your Host Is Not Enough
Your provider's backups are weekly, on the same infrastructure, and may not work when needed. That is a comfort blanket, not a strategy. Provider goes down = backups gone too. Ransomware encrypts files and the encrypted versions get backed up. You need the database from 2 hours ago, not last Tuesday.
Minimum: daily automated DB dumps + file backups, stored off-server, 30-day retention, monthly test restores. Full details in our backup guide.
Migrating Between Hosts
- Set up new server with matching PHP version and extensions
- Export database:
mysqldump -u root -p prestashop_db | gzip > backup.sql.gz - Transfer files:
rsync -avz /var/www/html/prestashop/ newserver:/var/www/html/prestashop/ - Import database on the new server
- Update credentials in
app/config/parameters.php - Fix permissions:
chown -R www-data:www-data, dirs 755, files 644 - Clear cache:
rm -rf var/cache/* - Test using
/etc/hoststo point domain to new IP - Lower DNS TTL to 300 seconds 24 hours before switch
- Final DB sync right before DNS switch to capture last orders
Common Pitfalls
- File permissions: Web server user must own files. Writable: var/cache, img, upload, download
- .htaccess missing: Migration tools skip hidden files. Apache needs AllowOverride All.
- Base URL mismatch: Update
ps_shop_urlif domain changes - PHP version jump: 7.4 to 8.1 may break modules using deprecated functions
Never switch DNS before testing. Use your local /etc/hosts to point the domain to the new IP and test checkout, admin, and all key pages.
Red Flags: When to Walk Away
Technical
- No SSH: Cannot troubleshoot or deploy properly
- PHP 7.x in 2026: End-of-life, known unpatched vulnerabilities
- No OPcache: 3-5x worse performance for zero reason
- HDD storage: If they do not say SSD/NVMe, assume HDD
- Locked php.ini: Cannot run PrestaShop properly
Business
- "Unlimited" anything: Nothing is unlimited. They throttle you.
- Holding company brands: Multiple "different" hosts owned by the same company — same oversold infrastructure, different logos
- No uptime SLA: Not confident in their own infrastructure
- Support takes days: Store down at 2 AM needs minutes, not business days
- Forced annual billing: Counting on you not leaving when disappointed
The cheapest hosting is the one that does not go down during Black Friday. A $5/month saving that costs $5,000 in lost sales is not a saving.
The Hosting Checklist
Verify every item before committing to a provider.
Server
- PHP version matches PS requirements
- All required PHP extensions available
- php.ini configurable (memory_limit, OPcache)
- MySQL/MariaDB version compatible
- SSD or NVMe storage
- SSH access
- Unrestricted cron
Performance
- OPcache enabled and configurable
- Sufficient RAM (4GB+ recommended)
- HTTP/2 support
- Redis or Memcached available
Reliability
- 99.9%+ uptime SLA
- Automated and manual backups
- Sub-hour critical support response
- Datacenter near your customers
Pricing
- Renewal price checked (not just intro)
- Monthly billing available
- Transfer limits understood
- No migration restrictions
Our Recommendation
- Starting out: Cloud VPS with 2GB RAM ($5-10/month) + free CDN/SSL. Outperforms most $15/month shared hosting.
- Growing store: Managed VPS ($15-30/month). They manage the server, you focus on selling.
- Established (1K+ visitors/day): VPS with 8-16GB RAM, dedicated MariaDB, Redis, Nginx + FastCGI cache. $15-40/month.
- Large catalog, high traffic: Dedicated server or separated cloud architecture. $50-100+/month.
Set up monitoring from day one — UptimeRobot is free for 50 monitors. After hosting is sorted: optimize with our performance guide, lock it down with our security checklist, and set up real backups with our backup guide. Hosting is the foundation — but only the beginning.
More guides available
Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.