WordPress optimaliseren op een VPS
WordPress optimaliseren op een VPS – Pixzo technische handleiding
Dit artikel beschrijft hoe u de prestaties van WordPress maximaliseert op een Pixzo VPS, bedoeld voor beheerders die de server zelf configureren.
Vereisten
- Server: Pixzo VPS met minimaal 2 GB RAM en 2 CPU cores - WP-versie: WordPress 6.5 of hoger (controleer met `wp core version`) - PHP: 8.1 of 8.2 (controleer met `php -v`) - SSH-toegang met root- of sudo-rechten - Webserver: Nginx (aanbevolen) of LiteSpeed - Optioneel: `wp-cli` (installeer met `curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar`)
Stappen
1. Optimaliseer de webserver en PHP-stack
Gebruik Nginx voor betere prestaties bij statische bestanden dan Apache. Zet OPcache aan voor PHP 8.2.
Open `/etc/php/8.2/fpm/php.ini` en wijzig deze regels:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000Herstart PHP-FPM:
sudo systemctl restart php8.2-fpm
2. Configureer PHP-FPM workers
Pas het aantal workers aan op de resources van uw VPS. Voor 2 GB RAM en 2 cores: maximaal 8 workers.
Bewerk `/etc/php/8.2/fpm/pool.d/www.conf`:
pm = dynamic
pm.max_children = 8
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 4Herstart PHP-FPM:
sudo systemctl restart php8.2-fpm
3. Activeer HTTP/2 in Nginx
Open `/etc/nginx/nginx.conf` en voeg toe aan het `http` blok:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
}Controleer de configuratie en herstart:
sudo nginx -t && sudo systemctl restart nginx
4. Installeer paginacaching
Voor Nginx: gebruik WP Rocket (plugin) en configureer de cache-instellingen.
Installeer WP Rocket via WP-admin en zet in Settings > WP Rocket > Cache: - Enable caching: aan - Cache lifespan: 3600 seconden (1 uur)
Of gebruik nginx-helper voor een server-side cache:
sudo apt install nginx-common
Voeg aan `/etc/nginx/sites-available/your-site` toe:
set $cache_uri $request_uri;
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
add_header Cache-Control "public, immutable";
}Test en herstart:
sudo nginx -t && sudo systemctl reload nginx
5. Configureer browsercaching
Voeg bovenstaande cache-headers aan Nginx toe voor statische bestanden.
In hetzelfde bestand, voeg onder `location ~* \.(jpg|jpeg|png|gif|ico|css|js)$` ook toe:
add_header Cache-Control "public, immutable";
Herlaad Nginx.
6. Optimaliseer afbeeldingen
Gebruik `optipng` en `jpegoptim` voor bulkverkleining:
sudo apt install optipng jpegoptim
find /var/www/html/wp-content/uploads -name "*.jpg" -exec jpegoptim --strip-all --max=85 {} \;
find /var/www/html/wp-content/uploads -name "*.png" -exec optipng -o7 {} \;Activeer WebP-ondersteuning via WP Rocket (instellingen onder Media).
7. Ruim de database op
Gebruik WP-Optimize:
wp plugin install wp-optimize --activate
wp db optimizeVerwijder verlopen transients en spammers:
wp transient delete --all
wp comment delete $(wp comment list --status=spam --format=ids) --force8. Beperk autoloaded options
Controleer de autoload-omvang:
wp option list --autoload=yes --format=total_size
Als dit groter is dan 1 MB, vind en verwijder ongebruikte opties:
wp option list --autoload=yes --format=json | grep -E '"option_name":"(.*)"' | head -20
wp option delete ongebruikte_option_nameVerificatie
Controleer de paginasnelheid met een tool:
curl -o /dev/null -s -w "Time total: %{time_total}\n" https://jouwsite.nl
Normale laadtijd: minder dan 500ms.
Controleer de PHP-opcache-status:
php -r "print_r(opcache_get_status());"
Zie `opcache_enabled` = true.
Veelgestelde problemen
Probleem: Paginacache werkt niet met Nginx en WP Rocket. Oplossing: Controleer of de Nginx-helper plugin is geactiveerd en configureer het cache location block correct.
Probleem: PHP-FPM crasht na de worker-configuratie. Oplossing: Verlaag `pm.max_children` tot 4 en controleer het RAM-geheugen: `free -h`.
Probleem: Afbeeldingen worden niet in WebP geleverd. Oplossing: Installeer de Imagick PHP-extensie: `sudo apt install php8.2-imagick` en herstart PHP-FPM.
Door deze configuratie draait WordPress op uw Pixzo VPS zonder overbodige databasequeries of onnodige PHP-processen. Wat is uw grootste performance bottleneck?