Bestellen
Hosting
Domeinnaam
Ondersteuning
Ontdek

Op deze pagina

Blog / Hosting · · ~18 min lezen

VPS performance optimaliseren: 7 tips die direct werken

Met zeven bewezen VPS performance optimaliseren tips verlaag je TTFB met 80%. FastCGI cache, OPcache en Redis: concrete instellingen die je direct toepast.

Geschreven door: Pablo Cleij Pablo Cleij
Deel dit artikel

Samenvatting: VPS performance optimaliseren tips

De zeven configuratielagen met de meeste impact: PHP OPcache (30-50% snellere uitvoering), FastCGI page cache (TTFB van 912ms naar 178ms), Redis object cache (60-90% minder databasequeries), MariaDB buffer pool tuning, Gzip/Brotli-compressie, BBR TCP-congestion control en een CDN als geografische multiplier. Geen hardwareupgrade nodig, alleen de juiste instellingen.

De effectiefste VPSKeurigOnline zegtVPSEen VPS is een eigen virtuele server met meer vrijheid en flexibiliteit dan shared hosting. performance optimaliseren tips kosten niets extra: de winst zit volledig in de configuratie van je bestaande server. De standaardinstellingen van een verse Linux-installatie zijn gericht op brede compatibiliteit, niet op maximale snelheid. NginxKeurigOnline zegtNginxNginx is een open-source webserver, reverse proxy en load balancer die veel gebruikt wordt voor hoogperformante websites. draait met slechts één worker process, PHPKeurigOnline zegtPHPPHP (Hypertext Preprocessor) is een populaire open-source scripttaal die speciaal is ontworpen voor webontwikkeling en server-side programmering. hercompileert elke script bij elke request en de databaseKeurigOnline zegtDatabaseEen database is een georganiseerde verzameling gegevens die elektronisch wordt opgeslagen en beheerd. slaat geen queryresultaten op. In een praktijktest op een 4 GB VPS daalde de TTFBKeurigOnline zegtTTFBTTFB (Time to First Byte) meet de tijd tussen een HTTP-verzoek en de eerste byte van het serverantwoord. van 912ms naar 178ms en steeg de doorvoer van 12 naar 284 requests per seconde na het doorvoeren van de aanpassingen in dit artikel.[5] Geen extra RAM, geen nieuwe server. Alleen configuratie.

De aanpassingen zijn gestructureerd in zeven lagen, van de webserver bovenaan tot het TCP-protocol onderaan. Elke laag is onafhankelijk toepasbaar en levert direct meetbaar resultaat. Begin bij de lagen met de hoogste impact-per-moeite-ratio en werk van daaruit verder.

VPS-server als gesloten kraan: een hand draait de hendel open en een trickle wordt een volle krachtige stroom

Waarom VPS-performance direct je omzet en Google-ranking raakt

Elke 100 milliseconden extra laadtijd verlaagt je conversieratio met gemiddeld 7%.[1] Een website die in één seconde laadt, converteert 2,5 keer beter dan een site die er vijf seconden over doet.[3] Zelfs een verbetering van 0,1 seconde verhoogt de gemiddelde orderwaarde met 9,2%.[2] Snelheid is geen technisch luxeprobleem. Het is een directe omzetfactor. Lees meer over de relatie tussen paginasnelheid en verkopen in onze gids over conversie-optimalisatie.

Naast conversie telt snelheid mee voor je Google-positie. Page experience signals, waaronder Core Web VitalsKeurigOnline zegtCore Web VitalsCore Web Vitals zijn Google's belangrijkste metrics voor website-ervaring en snelheid., wegen voor 28% mee in Google-rankings.[4] Dat is de zwaarste enkelvoudige categorie, zwaarder dan contentwaarde (25%) en backlinks (22%). Pagina's met een LCPKeurigOnline zegtLCPLCP (Largest Contentful Paint) meet de laadtijd van het grootste zichtbare element op een webpagina. onder 1,0 seconde ranken gemiddeld 7,5 posities hoger dan pagina's met een LCP boven 4,0 seconden.[4] Koppel je technische VPS-optimalisaties aan je on-page SEO-strategie, zoals beschreven in de complete Yoast SEO-gids.

Het onderscheid met gedeelde hosting is dat op een VPS de winst volledig in configuratie zit. Je hebt root-toegang en kunt elke instelling aanpassen. De standaardinstellingen van de meeste Linux-distributies zijn gericht op compatibiliteit, niet op performance. Dat betekent dat je de verbeteringen al betaald hebt met je maandelijkse VPS-kosten. Ze wachten alleen op activering.

De benchmark die dit artikel als referentie gebruikt: een standaard LEMP-stack op een 4 GB VPS, geoptimaliseerd met de zeven lagen hieronder. Resultaat: TTFB van 912ms naar 178ms, doorvoer van 12 naar 284 requests per seconde, CPU-gebruik bij 50 gelijktijdige requests van 97% naar 22%.[5]

Laag 1: Nginx webserver tuning

Nginx is event-driven: één process verwerkt duizenden gelijktijdige verbindingen zonder per verbinding een thread te forken. ApacheKeurigOnline zegtApacheApache HTTP Server is een open source webserver ontwikkeld door de Apache Software Foundation. is thread-based en start per request een nieuw process of thread. Bij 50 of meer gelijktijdige bezoekers loopt het RAM-gebruik van Apache snel op naar honderden megabytes. Op een VPS, waar geheugen schaars is, is dat nadelig. Gebruik je Apache vanwege DirectAdminKeurigOnline zegtDirectAdminDirectAdmin is een webhosting control panel ontwikkeld door JBMC Software als kostenefficiënt en gebruiksvriendelijk alternatief voor cPanel.-integratie of .htaccessKeurigOnline zegthtaccessEen .htaccess bestand is een configuratiebestand voor Apache webservers waarmee je per directory instellingen kunt wijzigen zonder toegang tot de hoofdconfiguratie.-regels, bekijk dan de Apache .htaccess-optimalisaties als tussenweg.

Worker processes en verbindingen

De standaardinstelling worker_processes 1 benut slechts één CPU-kern. Zet dit op auto zodat Nginx automatisch één worker per beschikbare kern start:

worker_processes auto;
events {
    worker_connections 1024;
    use epoll;
    multi_accept on;
}

worker_connections 1024 is het maximum aantal verbindingen per worker. Op een 4-core VPS geeft dit 4.096 gelijktijdige verbindingen. use epoll activeert het efficiëntste Linux-I/O-event model. multi_accept on laat elke worker meerdere verbindingen tegelijk accepteren in plaats van één per iteratie.

Compressie met Gzip en Brotli

Gzip-compressieKeurigOnline zegtGZIP-compressieGZIP verkleint websitebestanden tijdens verzending voor snellere laadtijden. verkleint HTMLKeurigOnline zegtHTMLHTML is de programmeertaal voor het maken van webpagina’s.-, CSSKeurigOnline zegtCSSCSS (Cascading Style Sheets) is een opmaaktaal voor het vormgeven en stylen van webpagina's en documenten.- en JavaScriptKeurigOnline zegtJavaScriptJavaScript is een programmeertaal die wordt gebruikt om interactieve en dynamische websites te maken.-bestanden met 50 tot 70%.[7] Het is de snelste overdrachtswinst met de laagste CPU-kost per verzoek:

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json
           application/javascript application/xml+rss text/javascript;

BrotliKeurigOnline zegtBrotliBrotli is een compressie-algoritme ontwikkeld door Google dat webinhoud effectiever comprimeert dan gzip. geeft gemiddeld 15 tot 20% betere compressie dan Gzip voor tekstbestanden, maar vereist de ngx_brotli-module. Gebruik je Cloudflare als CDNKeurigOnline zegtCDNEen CDN (Content Delivery Network) is een wereldwijd netwerk van servers dat content sneller bij gebruikers aflevert. (zie laag 7), activeer Brotli dan op CDN-niveau. Cloudflare hercompileert bestanden naar Brotli voor ondersteunende browsers, ook als je eigen server alleen Gzip aanbiedt.

Bestandscache en HTTP/2

Met open_file_cache bewaart Nginx bestandsdescriptors in het geheugen zodat het bestandssysteem niet bij elke statische request opnieuw bevraagd wordt:

open_file_cache max=10000 inactive=30s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

HTTPKeurigOnline zegtHTTPHTTP (HyperText Transfer Protocol) is het protocol dat de communicatie tussen webclients en servers mogelijk maakt./2 activeert multiplexing: meerdere bestanden worden over één TCP-verbinding parallel verzonden zonder wachttijd per bestand. Voeg http2 toe aan de listen-directive van je HTTPS-server:

listen 443 ssl http2;

Laag 2: PHP versnellen met OPcache en PHP-FPM

Drie waterbronnen van links naar rechts: een druppel, een kraantje en een brandslang — drie ordes van grootte meer doorvoer

Zonder OPcache compileert PHP bij elke request de broncode opnieuw naar bytecode. Die stap is nutteloos: de broncode verandert niet tussen requests. OPcache slaat de gecompileerde bytecode op in gedeeld geheugen zodat PHP die stap overslaat. Resultaat: 30 tot 50% snellere PHP-uitvoering bij alle dynamische verzoeken.[7]

OPcache-configuratie

Voeg de volgende regels toe aan /etc/php/8.x/fpm/conf.d/10-opcache.ini (pas het versienummer aan):

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=0

memory_consumption=256 reserveert 256 MB voor de bytecode-cacheKeurigOnline zegtCacheEen cache is een tijdelijke opslaglaag die veelgebruikte gegevens bewaart voor snellere toegang en betere prestaties.. Voor grote applicaties zoals WooCommerceKeurigOnline zegtWooCommerceWooCommerce is de gratis e-commerce plugin voor WordPress. Bouw een professionele webshop met producten, betalingen en verzending — zonder technische kennis. is dit het minimum. max_accelerated_files=10000 bepaalt hoeveel PHP-bestanden tegelijk gecacht kunnen worden. revalidate_freq=60 controleert elke 60 seconden of bronbestanden veranderd zijn. Op een productieserver is 60 seconden vertraging acceptabel. Op een ontwikkelserver zet je dit op 1 of 0 om de cache meteen te invalideren bij bestandswijzigingen.

PHP-FPM pool tuning

PHP-FPM verwerkt PHP-requests via een pool van child processes. De kritieke instelling is pm.max_children: het maximum aantal gelijktijdige PHP-processes. Te laag geeft request-queuing en TTFB-pieken. Te hoog laat de server wisselen naar swap, wat de performance totaal breekt.

De formule: max_children = beschikbaar RAM voor PHP / gemiddeld geheugengebruik per PHP-process. Een typisch WordPressKeurigOnline zegtWordPressWordPress is een open-source contentmanagementsysteem (CMS) geschreven in PHP, waarmee je eenvoudig websites en blogs kunt bouwen en beheren.-process gebruikt 40 tot 60 MB. Op een 4 GB VPSKeurigOnline zegtVPSEen VPS is een eigen virtuele server met meer vrijheid en flexibiliteit dan shared hosting. met 3 GB beschikbaar voor PHP:

3.000 MB / 50 MB = 60 max_children

Stel de pool in met pm=dynamic voor adaptief gedrag in /etc/php/8.x/fpm/pool.d/www.conf:

pm = dynamic
pm.max_children = 60
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

pm.max_requests=500 recycles een child process na 500 afgehandelde requests. Dat voorkomt geheugenlekkage die bij langdurig draaiende PHP-applicaties op de achtergrond optreedt. Controleer na een dag het werkelijke geheugengebruik per process met ps aux | grep php-fpm en pas max_children aan als de piek boven je berekende maximum uitkomt.

Laag 3: caching met FastCGI page cache en Redis object cache

Handen die een sluitende steen op een evenwichtige stapel platte rivierkeien plaatsen — drie lagen caching die elkaar aanvullen

Caching is de optimalisatielaag met de grootste absolute impact. OPcache versnelt PHPKeurigOnline zegtPHPPHP (Hypertext Preprocessor) is een populaire open-source scripttaal die speciaal is ontworpen voor webontwikkeling en server-side programmering.-uitvoering. FastCGI cache vermijdt PHP helemaal. Redis elimineert databasequeries voor ingelogde gebruikers. Ze zijn complementair en vullen elkaar aan.

FastCGI page cache via Nginx

FastCGI cache slaat de volledige HTML-uitvoer op schijf op. Voor een anonieme bezoeker antwoordt Nginx direct vanuit de schijfcache zonder PHP of de database te raadplegen. TTFB daalt typisch van 800 tot 900ms naar onder de 200ms voor anonieme bezoekers.[5] In een lab-benchmark steeg de doorvoer van 9,2 requests per seconde zonder cache naar 699 requests per seconde met FastCGI cache, een toename van meer dan 7.500%.[6]

Configureer de cache-zone in het http-blok van /etc/nginx/nginx.conf:

fastcgi_cache_path /tmp/nginx-cache levels=1:2
    keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout updating invalid_header;
fastcgi_cache_lock on;

In het server-blok van je vhost voeg je bypass-regels toe voor ingelogde gebruikers en beheerderssessies:

set $skip_cache 0;

if ($request_method = POST) { set $skip_cache 1; }
if ($query_string != "")    { set $skip_cache 1; }
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php") {
    set $skip_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wordpress_logged_in") {
    set $skip_cache 1;
}

fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache WORDPRESS;
fastcgi_cache_valid 200 60m;
add_header X-Cache $upstream_cache_status;

Met Cloudflare als CDN ervoor daalt de edge-TTFB voor anonieme bezoekers verder naar 30 tot 50ms.[5] In onze gids voor WordPress sneller maken lees je hoe je FastCGI cache combineert met WordPress-plugins als WP Rocket of W3 Total Cache, en hoe je cache-invalidatie regelt bij publicatie van nieuwe content.

Redis object cache

Ingelogde gebruikers bypassen de page cache. Zonder aanvullende maatregelen voert WordPress elke databasequery opnieuw uit per request. Redis lost dit op: het object cache-subsysteem van WordPress slaat queryresultaten op in Redis. Het gevolg is 60 tot 90% minder databaseaanvragen voor ingelogde sessies.[7]

Stel het geheugenplafond in via /etc/redis/redis.conf:

maxmemory 256mb
maxmemory-policy allkeys-lru

Voeg daarna de verbindingsgegevens toe aan wp-config.php:

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE_KEY_SALT', 'jouw-unieke-site-sleutel');

Installeer de Redis Object Cache-plugin en activeer de persistent object cache via de plugininstellingen. Het verschil tussen de drie cachelagen in één zin: OPcache = PHP-bytecode in RAM, FastCGI cache = volledige HTML-pagina op schijf, Redis = databasequeryresultaten in RAM.

Laag 4: database optimaliseren (MariaDB/MySQL)

De database is het meest verwaarloosde bottleneck op een VPS. Zelfs met een goed geconfigureerde cachinglaag bereiken sommige queries de database, en die moeten dan snel verwerkt worden. De drie directe ingrepen hieronder hebben het hoogste rendement voor de laagste configuratiemoeite.

InnoDB buffer pool instellen

De InnoDB buffer pool is het werkgeheugen van MariaDB en MySQLKeurigOnline zegtMySQLMySQL is een open-source relationeel databasebeheersysteem (RDBMS) dat gegevens opslaat in tabellen.: tabellen en indexen die erin passen worden direct vanuit RAM gelezen in plaats van van schijf. De standaardwaarde is 128 MB, ongeacht hoeveel RAM de server heeft. Op een dedicated database-VPS stel je de buffer pool in op 70% van het beschikbare RAM voor 2 tot 10 keer snellere queries.[7]

Voeg dit toe aan /etc/mysql/mariadb.conf.d/50-server.cnf (of /etc/my.cnf):

[mysqld]
innodb_buffer_pool_size = 2G          # 70% van ~3 GB beschikbaar RAM
innodb_buffer_pool_instances = 2      # één per GB buffer pool
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2   # lichte durability trade-off, hogere snelheid

Gebruik je de VPS voor zowel web als databaseKeurigOnline zegtDatabaseEen database is een georganiseerde verzameling gegevens die elektronisch wordt opgeslagen en beheerd. op dezelfde machine, stel de buffer pool dan in op 25 tot 30% van het totale RAM om voldoende ruimte te laten voor NginxKeurigOnline zegtNginxNginx is een open-source webserver, reverse proxy en load balancer die veel gebruikt wordt voor hoogperformante websites., PHP-FPM en Redis.

Query cache uitschakelen en trage queries loggen

De query cache is gedepreceerd vanaf MariaDB 10.4 en veroorzaakt vergrendelingsconflicten bij schrijfintensieve workloads. Zet hem expliciet uit:

query_cache_type = 0
query_cache_size = 0

Activeer tegelijk de trage-querylog om indexmissers zichtbaar te maken:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

Queries die langer dan 1 seconde duren of geen index gebruiken, schrijft MariaDB naar het logbestand. Analyseer het logbestand met pt-query-digest (Percona Toolkit) om de zwaarste queries te vinden en te prioriteren voor indexoptimalisatie.

Tip: Voer periodiek OPTIMIZE TABLE wp_options en OPTIMIZE TABLE wp_postmeta uit op drukke WooCommerce-installaties. Deze tabellen fragmenteren snel door frequente insert- en delete-operaties. Een geoptimaliseerde tabel kan queries 2 tot 5 keer sneller beantwoorden zonder enige applicatiewijziging.

Laag 5: TCP- en kerneltuning met BBR en sysctl

De minst bekende maar eenvoudigste optimalisatie in dit artikel: twee sysctl-regels die het TCP-gedrag van je server fundamenteel verbeteren. Het risico is minimaal. De winst bij verbindingen met hogere latentie of pakketverlies bedraagt 20 tot 40% betere doorvoer.[7]

BBR TCP-congestion control inschakelen

BBR (Bottleneck BandwidthKeurigOnline zegtBandwidthBandwidth is de maximale hoeveelheid data die per tijdseenheid over een netwerkverbinding kan worden verstuurd. and RTT) is Google's TCP-congestiecontrol-algoritme, beschikbaar in de Linux-kernelKeurigOnline zegtKernelEen kernel is de kern van een besturingssysteem die de communicatie tussen hardware en software beheert. vanaf versie 4.9. Het traditionele CUBIC-algoritme reduceert de verzendsnelheid bij elk verloren pakket, ook bij pakketverlies dat niets met congestie te maken heeft. BBR modelleert de beschikbare bandbreedte en round-trip time actief en benut de verbinding daardoor efficiënter onder wisselende netwerkomstandigheden.

Voeg twee regels toe aan /etc/sysctl.conf:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

Laad de wijziging direct, zonder herstart:

sysctl -p

# Verifieer dat BBR actief is:
sysctl net.ipv4.tcp_congestion_control
# Verwachte output: net.ipv4.tcp_congestion_control = bbr

Aanvullende sysctl-instellingen

De volgende instellingen verbeteren de stabiliteit bij verkeerpieken en houden HTTP/2-verbindingen snel bij hergebruik:

# Voorkomt herstart van TCP slow-start na een korte verbindingsstilte
net.ipv4.tcp_slow_start_after_idle = 0

# Grotere accept-queue voor verkeerpieken
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# Hogere socketbuffers voor doorvoer op snelle verbindingen
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728

tcp_slow_start_after_idle=0 is bijzonder relevant voor HTTP/2-verbindingen die langere tijd open blijven maar pas verkeer genereren wanneer een bezoeker een nieuwe pagina opent. Zonder deze instelling herstart TCP bij elke nieuwe burst met een lage beginsnelheid en moet die opbouwen, wat TTFB bij terugkerende bezoekers onnodig verhoogt.

CDN: de afsluitende boost

Servertuning elimineert verwerkingstijd. Een CDN elimineert afstand. De twee zijn complementair: een geoptimaliseerde server in Amsterdam antwoordt nog steeds vanuit Amsterdam, ook voor bezoekers in Singapore of New York. Een CDN plaatst gecachede content op edge-nodes dicht bij de bezoeker.

De mediane TTFB bij sites zonder CDN is 1,2 seconde. Met CDN is dat 340ms, een factor 3,5 verbetering, gemeten over miljoenen sites via HTTP Archive.[8] Voor de meeste kleine en middelgrote bedrijven met een Nederlandse doelgroep is Cloudflare's gratis tier de laagdrempeligste keuze: DNSKeurigOnline zegtDNSHet Domain Name System (DNS) vertaalt domeinnamen naar IP-adressen, zodat websites makkelijk bereikbaar zijn.-proxy, edge-caching en automatische minificatie zonder maandelijkse kosten.

Cloudflare APO voor WordPress

Cloudflare APO (Automatic Platform Optimization) cached de volledige pagina op Cloudflare's edge, inclusief dynamische WordPressKeurigOnline zegtWordPressWordPress is een open-source contentmanagementsysteem (CMS) geschreven in PHP, waarmee je eenvoudig websites en blogs kunt bouwen en beheren.-content voor anonieme bezoekers. Edge-TTFB daalt naar 30 tot 50ms, ook zonder FastCGI cacheKeurigOnline zegtCacheEen cache is een tijdelijke opslaglaag die veelgebruikte gegevens bewaart voor snellere toegang en betere prestaties. op de server zelf. APO kost circa 5 dollar per maand en is een alternatief voor serverside FastCGI caching, niet perse een aanvulling. Heb je al FastCGI cache op je VPS geconfigureerd, dan werken beiden samen en verlaagt APO de latentie verder voor bezoekers op afstand.

Brotli via Cloudflare

BrotliKeurigOnline zegtBrotliBrotli is een compressie-algoritme ontwikkeld door Google dat webinhoud effectiever comprimeert dan gzip. geeft 15 tot 20% betere compressie dan Gzip voor HTML- en CSSKeurigOnline zegtCSSCSS (Cascading Style Sheets) is een opmaaktaal voor het vormgeven en stylen van webpagina's en documenten.-bestanden. Cloudflare biedt Brotli gratis op alle CDNKeurigOnline zegtCDNEen CDN (Content Delivery Network) is een wereldwijd netwerk van servers dat content sneller bij gebruikers aflevert.-lagen. Dat geldt ook als je eigen Nginx alleen Gzip ondersteunt: Cloudflare hercompileert bestanden naar Brotli voor browsers die het ondersteunen. Activeer het via het Cloudflare-dashboard onder Speed, vervolgens Optimization, vervolgens Content Optimization.

Cloudflare gratis tier: wat je krijgt

  • DNS-proxy met DDoS-bescherming
  • Edge-caching voor statische bestanden (afbeeldingen, CSS, JavaScript)
  • Automatische Brotli-compressie
  • Automatische minificatie van HTML, CSS en JavaScript
  • HTTP/3 (QUIC) voor snellere verbindingsopbouw bij pakketverlies

Meten voor en na: zo check je of het werkt

Elke laag in dit artikel is meetbaar. Leg je beginwaarden vast voordat je wijzigingen aanbrengt, zodat je de impact van elke stap afzonderlijk kunt beoordelen. Onze complete TTFB-gids legt de metric diepgaand uit als je de begripsvorming wilt verdiepen.

TTFB en cacheheaders controleren

Controleer met één curl-commando of de FastCGI cache actief is en of je een cache-HIT of MISS ontvangt:

curl -sI https://jouwdomein.nl | grep -i 'x-cache\|age\|cf-cache\|server-timing'

X-Cache: HIT bevestigt dat Nginx de response vanuit cache serveerde. Age: 347 betekent dat de gecachede versie 347 seconden oud is. Een ontbrekende X-Cache-header, of X-Cache: MISS, betekent dat de cache niet actief is of dat het verzoek een bypass-conditie raakte (ingelogde gebruiker, POST-request, querystring).

TTFB en Core Web Vitals over tijd

GTmetrix en WebPageTest geven TTFBKeurigOnline zegtTTFBTTFB (Time to First Byte) meet de tijd tussen een HTTP-verzoek en de eerste byte van het serverantwoord., LCP en overige Core Web Vitals per meting zichtbaar. Voer beide tests vanuit een vaste locatie uit, Amsterdam voor Nederlandse doelgroepen, voor consistente vergelijkingen. Richt je op deze doelwaarden:

MetricGoedVerbetering nodig
TTFB< 200ms> 500ms
LCP< 2,5s> 4,0s
Doorvoer (kleine VPS)> 100 req/sec< 20 req/sec

Load test met Apache Bench of wrk

# Apache Bench: 1.000 requests met 50 gelijktijdige verbindingen
ab -n 1000 -c 50 https://jouwdomein.nl/

# wrk: 30 seconden, 4 threads, 50 verbindingen
wrk -t4 -c50 -d30s https://jouwdomein.nl/

De output toont requests per seconde, gemiddelde latency en het percentage mislukte requests. Voer de test zowel voor als na elke optimalisatielaag uit voor een eerlijke vergelijking. De combinatie van ab voor snelle throughput-checks en WebPageTest voor real-browser metrics geeft het meest complete beeld.

Database-analyse met MySQLTuner

wget https://raw.githubusercontent.com/MySQLTuner/mysqltuner-perl/master/mysqltuner.pl
perl mysqltuner.pl

MySQLKeurigOnline zegtMySQLMySQL is een open-source relationeel databasebeheersysteem (RDBMS) dat gegevens opslaat in tabellen.Tuner analyseert de MariaDB- of MySQL-configuratie en geeft aanbevelingen voor buffer pool-grootte, query-cache en indexgebruik op basis van de daadwerkelijke workload van je server. Voer het script pas uit nadat de server ten minste 24 uur productieverkeer heeft verwerkt. Adviezen gebaseerd op een lege query-statistiekentabel zijn onbetrouwbaar.

Veelgestelde vragen over VPS performance optimaliseren

Welke VPS-optimalisatie heeft het meeste direct effect?

FastCGI page cache heeft de grootste directe impact. Het bypasses PHP volledig voor anonieme bezoekers en verlaagt TTFB typisch van 800 tot 900ms naar onder de 200ms, een verbetering van 80% zonder extra hardware. Combineer het meteen met PHP OPcache, zodat ook de requests die de cache missen, zoals POST-verzoeken en beheerderspagina's, aanzienlijk sneller worden verwerkt.

Wat is het verschil tussen OPcache en FastCGI cache?

OPcache slaat gecompileerde PHP-bytecode op in RAM en elimineert hercompilatie bij elke request. Dat geeft 30 tot 50% snellere PHP-uitvoering voor alle verzoeken die PHP raken. FastCGI cache slaat de volledige HTMLKeurigOnline zegtHTMLHTML is de programmeertaal voor het maken van webpagina’s.-uitvoer op schijf op en bypasses PHP helemaal voor anonieme bezoekers. In benchmarks steeg de doorvoer van 9,2 naar 699 requests per seconde, meer dan 7.500%, ten opzichte van een configuratie zonder cache. Ze zijn complementair: OPcache helpt bij alle PHP-requests, FastCGI cache helpt specifiek voor anonieme bezoekers.

Moet ik Redis installeren als ik al FastCGI cache gebruik?

Ja, als je website ingelogde gebruikers heeft, zoals WooCommerceKeurigOnline zegtWooCommerceWooCommerce is de gratis e-commerce plugin voor WordPress. Bouw een professionele webshop met producten, betalingen en verzending — zonder technische kennis.-klanten, leden of abonnees. Ingelogde bezoekers bypassen de page cache en voeren zonder Redis elke databasequery opnieuw uit per request. Redis slaat de queryresultaten op in geheugen en elimineert 60 tot 90% van die databaseaanvragen voor ingelogde sessies. Op een WooCommerce-winkel met actieve klanten is Redis daarmee bijna even belangrijk als FastCGI cache.

Is Nginx beter dan Apache voor een VPS?

Voor hoog-concurrent verkeer en FastCGI caching: ja. Nginx is event-driven en verwerkt duizenden gelijktijdige verbindingen in één process met minimale CPU- en RAM-belasting. ApacheKeurigOnline zegtApacheApache HTTP Server is een open source webserver ontwikkeld door de Apache Software Foundation. start per verbinding een nieuw process of thread en loopt bij 50 of meer gelijktijdige requests snel op in geheugengebruik. Gebruik je Apache vanwege .htaccess-regels of DirectAdminKeurigOnline zegtDirectAdminDirectAdmin is een webhosting control panel ontwikkeld door JBMC Software als kostenefficiënt en gebruiksvriendelijk alternatief voor cPanel.-vereisten, pas dan in elk geval de .htaccessKeurigOnline zegthtaccessEen .htaccess bestand is een configuratiebestand voor Apache webservers waarmee je per directory instellingen kunt wijzigen zonder toegang tot de hoofdconfiguratie.-cachingheaders en Gzip-instellingen toe als tussenweg.

Helpt een CDN als mijn server al snel is?

Ja, absoluut. Servertuning verlaagt de verwerkingstijd, maar verkleint de fysieke afstand tussen server en bezoeker niet. Een CDN plaatst gecachede content op edge-nodes dicht bij de bezoeker. De mediane TTFB daalt van 1,2 seconde zonder CDN naar 340ms met CDN, een factor 3,5. Zelfs voor bezoekers die geografisch dicht bij je server zitten, offloadt een CDN statische bestanden en verlaagt de druk op je VPS bij piekverkeer.

Wat is BBR en hoeveel risico loopt ik met het inschakelen ervan?

BBR is Google's TCP-congestiecontrol-algoritme dat 20 tot 40% betere doorvoer geeft bij hogere netwerklatentie of pakketverlies. Inschakelen kost twee regels in /etc/sysctl.conf en één sysctl -p om ze direct te activeren. Het risico is minimaal: BBR zit standaard in de Linux-kernelKeurigOnline zegtKernelEen kernel is de kern van een besturingssysteem die de communicatie tussen hardware en software beheert. vanaf versie 4.9 en wordt door Google, Cloudflare en andere grote platforms op productieservers gebruikt. Je hoeft niets te installeren en de instelling is eenvoudig terug te draaien.

Conclusie: prioriteiten voor directe implementatie

De zeven optimalisatielagen in dit artikel zijn niet gelijkwaardig. Sommige leveren bij minimale moeite het grootste resultaat. Werk ze af in volgorde van impact:

VPS performance optimaliseren: volgorde van impact

  1. PHP OPcache: laagste moeite, directe 30 tot 50% PHP-versnelling. Één INI-bestand aanpassen en PHP-FPM herstarten.
  2. FastCGI page cache: grootste TTFB-impact, typisch min 80% voor anonieme bezoekers. Medium moeite vanwege Nginx-configuratie en bypass-regels.
  3. Redis object cache: vult de FastCGI-gap voor ingelogde gebruikers. 60 tot 90% minder databasequeries bij WooCommerce- en ledenverkeer.
  4. MariaDB buffer pool: 2 tot 10 keer snellere databasequeries, één regelwijziging in my.cnf.
  5. BBR TCP-congestion control: twee sysctl-regels, 20 tot 40% betere netwerkthroughput. De laagste moeite van alle lagen in dit artikel.
  6. Nginx worker en compressie: 50 tot 70% kleinere overdrachten met Gzip, volledige CPU-benutting met worker_processes auto.
  7. Cloudflare CDN: geografisch voordeel dat servertuning nooit kan repliceren. De gratis tier volstaat voor Nederlandse websites met nationale doelgroepen.

Begin met curl -sI https://jouwdomein.nl om je huidige TTFB en cacheheaders in kaart te brengen. Die beginmeting is je nulmeting. Elke optimalisatie die je daarna toepast, is direct meetbaar in de output van datzelfde commando. Bij KeurigOnline heb je op iedere VPS volledige root-toegang en controle over alle instellingen in dit artikel.

Bronnen

  • [1] WebsitePulse (2024), E-Commerce Site Speed & Cart Abandonment Report: Elke 100ms extra laadtijd verlaagt de conversieratio met ~7%, op basis van analyse van 10 miljard sessies.
  • [2] Think With Google (2019), Milliseconds Make Millions: Een verbetering van 0,1 seconde verhoogt conversieratio met 8,4% en gemiddelde orderwaarde met 9,2% (analyse 37 merken, 30 miljoen sessies).
  • [3] Portent (2023), Site Speed Is (Still) Impacting Your Conversion Rate: Sites die in 1 seconde laden converteren 2,5 keer beter dan sites die er 5 seconden over doen (analyse 100 miljoen pageviews).
  • [4] DollarPocket (2025), SEO Ranking Factors Study 2025: Core Web VitalsKeurigOnline zegtCore Web VitalsCore Web Vitals zijn Google's belangrijkste metrics voor website-ervaring en snelheid. wegen voor 28% mee in Google-rankings; LCPKeurigOnline zegtLCPLCP (Largest Contentful Paint) meet de laadtijd van het grootste zichtbare element op een webpagina. onder 1,0 seconde correleert met gemiddeld 7,5 hogere posities (analyse 10 miljoen zoekresultaten).
  • [5] 1gbits.com (2024), How to Optimize WordPress on a VPS: Praktijkbenchmark op 4 GB VPS: TTFB van 912ms naar 178ms (-80%), doorvoer van 12 naar 284 req/sec (23x), CPU bij 50 gelijktijdige req. van 97% naar 22%.
  • [6] WPX.si (2024), Benchmarking Different Types of Cache on WordPress: Zonder cache 9,2 req/sec (TTFB 426ms); PHPKeurigOnline zegtPHPPHP (Hypertext Preprocessor) is een populaire open-source scripttaal die speciaal is ontworpen voor webontwikkeling en server-side programmering. OPcache 31,9 req/sec (+246%); NginxKeurigOnline zegtNginxNginx is een open-source webserver, reverse proxy en load balancer die veel gebruikt wordt voor hoogperformante websites. FastCGI cache 699 req/sec (+7.500%, TTFB 2ms).
  • [7] VPSKeurigOnline zegtVPSEen VPS is een eigen virtuele server met meer vrijheid en flexibiliteit dan shared hosting..DO (2024), How to Speed Up Your VPS: Impact per optimalisatielaag: FastCGI cacheKeurigOnline zegtCacheEen cache is een tijdelijke opslaglaag die veelgebruikte gegevens bewaart voor snellere toegang en betere prestaties. 5-50x, Redis 60-90% minder DB-queries, OPcache 30-50%, Gzip 50-70%, BBR 20-40%.
  • [8] WebVitals.tools / HTTPKeurigOnline zegtHTTPHTTP (HyperText Transfer Protocol) is het protocol dat de communicatie tussen webclients en servers mogelijk maakt. Archive (2025), TTFB Guide: Mediane TTFBKeurigOnline zegtTTFBTTFB (Time to First Byte) meet de tijd tussen een HTTP-verzoek en de eerste byte van het serverantwoord. met CDNKeurigOnline zegtCDNEen CDN (Content Delivery Network) is een wereldwijd netwerk van servers dat content sneller bij gebruikers aflevert. 340ms vs. 1,2 seconde zonder CDN, een factor 3,5 verbetering.