Google PageSpeed 100 Score: Complete Gids 2025
Hoe krijg je een perfecte PageSpeed score van 100? Complete technische gids: afbeeldingen optimaliseren, code minimaliseren, Core Web Vitals verbeteren. Met real voorbeelden.
Hoe krijg je een perfecte PageSpeed score van 100? Complete technische gids: afbeeldingen optimaliseren, code minimaliseren, Core Web Vitals verbeteren. Met real voorbeelden.
Waarom is je PageSpeed score belangrijk? Google gebruikt snelheid als ranking factor. Een trage site = lagere positie + hogere bounce rate + minder conversie. In deze gids leer je exact hoe je een perfecte 100 score haalt (of minimaal 90+).
PageSpeed Insights is Google’s gratis tool die meet:
De 100 score betekent:
Realiteit check:
Waarom zo lastig?
Goed nieuws: Met moderne tech (geen WordPress) is 90+ eenvoudig haalbaar.
Wat is het?
Tijd tot de grootste content element zichtbaar is.
Target:
Hoe verbeteren?
// Slecht: Grote afbeelding zonder optimalisatie
<img src="hero.jpg" />
// Goed: Geoptimaliseerd + lazy loading
<img
src="hero.webp"
srcset="hero-400.webp 400w, hero-800.webp 800w"
sizes="(max-width: 600px) 400px, 800px"
loading="lazy"
alt="Hero afbeelding"
/>
Quick wins:
Wat is het?
Tijd voordat browser reageert op eerste interactie (klik, tap).
Target:
Hoe verbeteren?
Voorbeeld:
<!-- Slecht: Blocking script -->
<script src="huge-library.js"></script>
<!-- Goed: Defer laden -->
<script src="huge-library.js" defer></script>
<!-- Beter: Async + module -->
<script type="module" src="app.js" async></script>
Wat is het?
Hoeveel content “springt” tijdens laden.
Target:
Hoe verbeteren?
Code voorbeeld:
/* Slecht: Geen dimensies */
img {
width: 100%;
}
/* Goed: Aspect ratio reserveren */
img {
width: 100%;
aspect-ratio: 16/9;
object-fit: cover;
}
Typische fouten:
1. Formaat kiezen:
Foto's met veel detail → WebP (50% kleiner dan JPG)
Logo's/illustraties → SVG (vector, schaalt perfect)
Transparantie nodig → WebP with alpha (beter dan PNG)
2. Comprimeren:
3. Responsive images:
<picture>
<source
srcset="hero-400.webp 400w, hero-800.webp 800w, hero-1200.webp 1200w"
type="image/webp"
/>
<img
src="hero-800.jpg"
alt="Hero"
width="800"
height="450"
loading="lazy"
/>
</picture>
4. Lazy loading:
// Native lazy loading (super easy)
<img src="image.jpg" loading="lazy" />
// Met Intersection Observer (meer controle)
const images = document.querySelectorAll('img[data-src]');
const imageObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
imageObserver.unobserve(img);
}
});
});
images.forEach(img => imageObserver.observe(img));
Voor optimalisatie:
Na optimalisatie:
1. Code Splitting
// Slecht: Alles in 1 bestand laden
import { everything } from 'huge-library';
// Goed: Dynamic imports
const module = await import('./feature.js');
2. Tree Shaking
// Slecht: Hele library importeren
import * as _ from 'lodash';
// Goed: Alleen wat je nodig hebt
import debounce from 'lodash/debounce';
3. Minification
Voor:
function calculateTotalPrice(items, taxRate) {
let total = 0;
for (let item of items) {
total += item.price * item.quantity;
}
return total * (1 + taxRate);
}
Na minification:
function c(i,t){let o=0;for(let r of i)o+=r.price*r.quantity;return o*(1+t)}
1. Critical CSS
<!-- Inline critical CSS voor above-the-fold content -->
<style>
.hero { background: #000; color: #fff; min-height: 100vh; }
.nav { position: sticky; top: 0; }
</style>
<!-- Async load rest -->
<link rel="preload" href="styles.css" as="style" onload="this.rel='stylesheet'" />
2. Remove Unused CSS
# PurgeCSS: Remove unused styles
npm install -D @fullhuman/postcss-purgecss
# Kan 90% van CSS verwijderen in production
3. CSS Minification
Time To First Byte: Tijd voordat server eerste byte stuurt.
Target:
1. Betere Hosting
WordPress shared hosting: 800-2000ms TTFB ❌
Vercel/Netlify edge: 20-100ms TTFB ✅
Impact: 90% sneller!
2. Database Optimalisatie
3. Server-side Caching
// Laravel cache voorbeeld
$posts = Cache::remember('posts', 3600, function () {
return Post::with('author')->get();
});
4. CDN Gebruiken
Headers instellen:
# Nginx config
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
Betekent:
// Progressive Web App caching
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('v1').then((cache) => {
return cache.addAll([
'/',
'/styles.css',
'/script.js',
'/logo.png'
]);
})
);
});
Voordeel:
Voor:
Problemen:
Week 1: Afbeeldingen (45 → 67)
Week 2: JavaScript (67 → 78)
Week 3: Hosting (78 → 92)
Week 4: Fine-tuning (92 → 98)
Na:
Business Impact:
1. PageSpeed Insights
2. Lighthouse (Chrome DevTools)
# Terminal gebruik
npm install -g lighthouse
lighthouse https://yoursite.com --view
3. WebPageTest
4. GTmetrix
1. Baseline meten:
# Test 5x voor gemiddelde
for i in {1..5}; do
lighthouse https://yoursite.com --output json --output-path report-$i.json
done
2. Één verbetering per keer
3. Real User Monitoring
// Gebruik Google Analytics 4
gtag('event', 'page_view', {
page_load_time: performance.timing.loadEventEnd - performance.timing.navigationStart
});
Waarom belangrijk?
Hoe activeren:
# Nginx 1.25+ with quiche
listen 443 quic reuseport;
listen 443 ssl;
http3 on;
<!-- Preload kritieke resources -->
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin />
<!-- Prefetch volgende pagina -->
<link rel="prefetch" href="/next-page" />
<!-- Preconnect naar external domain -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
Afbeeldingen:
JavaScript:
CSS:
Fonts:
Server:
Caching:
Realiteit:
Belangrijker dan score:
Targets:
Focus op:
Niet:
Gratis Website Audit:
Of laat mij bouwen:
Laatst bijgewerkt: 31 oktober 2025
Tags: google pagespeed, core web vitals, website snelheid, performance optimalisatie, lcp verbeteren, seo technisch
Laat mij je helpen met een snellere, betere website die meer klanten oplevert. Neem contact op voor een vrijblijvend adviesgesprek.