Knowledge Base Guide

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 SizeProductsDaily VisitorsRAMCPUDisk
Starter<500<2002GB1 core20GB SSD
Small500-2K200-1K4GB2 cores40GB SSD
Medium2K-10K1K-5K8GB4 cores80GB SSD
Large10K+5K+16GB+4-8 cores160GB+ 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

  1. Set up new server with matching PHP version and extensions
  2. Export database: mysqldump -u root -p prestashop_db | gzip > backup.sql.gz
  3. Transfer files: rsync -avz /var/www/html/prestashop/ newserver:/var/www/html/prestashop/
  4. Import database on the new server
  5. Update credentials in app/config/parameters.php
  6. Fix permissions: chown -R www-data:www-data, dirs 755, files 644
  7. Clear cache: rm -rf var/cache/*
  8. Test using /etc/hosts to point domain to new IP
  9. Lower DNS TTL to 300 seconds 24 hours before switch
  10. 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_url if 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

  1. Starting out: Cloud VPS with 2GB RAM ($5-10/month) + free CDN/SSL. Outperforms most $15/month shared hosting.
  2. Growing store: Managed VPS ($15-30/month). They manage the server, you focus on selling.
  3. Established (1K+ visitors/day): VPS with 8-16GB RAM, dedicated MariaDB, Redis, Nginx + FastCGI cache. $15-40/month.
  4. 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.

Loading...
Back to top