Het Probleem met Tracking Scripts
Google Analytics 4 en Facebook Pixel zijn krachtige tools voor marketing en analytics. Maar ze hebben een keerzijde: ze vertragen je website.
Standaard laden deze scripts op elke pagina, voor elke bezoeker. Dit resulteert in:
- Extra HTTP requests naar externe servers
- JavaScript parsing en uitvoering op elke pageview
- Verhoogde Total Blocking Time (TBT)
- Slechtere Largest Contentful Paint (LCP)
- Lagere Core Web Vitals scores
De Oplossing: Selectief Laden
In plaats van tracking scripts overal te laden, laden we ze alleen waar ze daadwerkelijk waarde toevoegen:
Slim Tracking Principe:
- Alleen belangrijke pagina's: home, contact, checkout, producten
- Alleen niet-ingelogde bezoekers: je hoeft jezelf niet te tracken
- Alleen relevante post types: posts, producten, pagina's
- Update-proof: mu-plugin blijft werken na WordPress updates
Het resultaat? Je behoudt 90%+ van je tracking data, maar je website laadt significant sneller op de meeste pagina's.
De Complete mu-plugin Code
Maak het bestand /wp-content/mu-plugins/wpts-ultra-speed-tracking.php aan:
<?php
/*
Plugin Name: Ultra Speed Tracking Optimized
Description: Injecteert GA4 en Facebook Pixel alleen op belangrijke pagina's voor niet-ingelogde gebruikers, volledig update-proof.
Version: 1.1
######################################################################
# #
# ********************************************************** #
# * * #
# * WPTS.nl - Tracking Plugin v1.1 * #
# * Hands-On, Minimal, Update-Proof * #
# * * #
# * Touch this file = you own the consequences * #
# * * #
# ********************************************************** #
# #
######################################################################
*/
/* ============================================================
* CONFIGURATIE - PAS DEZE WAARDEN AAN
* ============================================================ */
$important_pages = array('home','contact','checkout'); // pagina-slugs
$important_post_types = array('post','product'); // blogposts of WooCommerce producten
/* ============================================================
* TRACKING SCRIPTS DEFINITIE
* ============================================================ */
$scripts_to_inject = array(
'header' => array(
array(
'pages' => $important_pages,
'roles' => array(), // lege array = alle bezoekers
'code' => "<!-- WPTS.nl Google Analytics -->
<script async src='https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX'></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXX');
</script>"
)
),
'footer' => array(
array(
'pages' => $important_pages,
'roles' => array(),
'code' => "<!-- WPTS.nl Facebook Pixel -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'YOUR_PIXEL_ID');
fbq('track', 'PageView');
</script>"
)
)
);
/* ============================================================
* INJECTIE FUNCTIE - NIET AANPASSEN
* ============================================================ */
function ultimate_speed_inject_scripts($position) {
global $scripts_to_inject, $important_post_types;
if(!isset($scripts_to_inject[$position])) return;
// Skip voor ingelogde gebruikers
if(is_user_logged_in()) return;
// Haal huidige pagina slug op
$current_slug = get_post_field('post_name', get_post());
// Check of we posts hebben
if(!have_posts()) return;
foreach($scripts_to_inject[$position] as $item) {
// Check pagina filter
if(!empty($item['pages'])) {
if(!in_array($current_slug, $item['pages'])) continue;
}
// Check post type filter
if(is_singular() && !empty($important_post_types)) {
if(!in_array(get_post_type(), $important_post_types)) continue;
}
// Injecteer de code
echo $item['code'] . "\n";
}
}
/* ============================================================
* HOOKS - KOPPEL AAN WORDPRESS
* ============================================================ */
add_action('wp_head', function() {
ultimate_speed_inject_scripts('header');
});
add_action('wp_footer', function() {
ultimate_speed_inject_scripts('footer');
});
Code Uitleg per Sectie
Configuratie Sectie
Bovenaan het bestand definieer je welke pagina's en post types belangrijk zijn:
$important_pages = array('home','contact','checkout');
$important_post_types = array('post','product');
- $important_pages: Pagina slugs waar tracking geladen wordt
- $important_post_types: Post types waar tracking geladen wordt
Scripts Definitie
De $scripts_to_inject array bevat alle tracking codes, gesplitst in header en footer:
- header: Scripts die in
<head>moeten (GA4) - footer: Scripts die voor
</body>moeten (Facebook Pixel) - pages: Op welke pagina's dit script laadt
- roles: Voor welke gebruikersrollen (leeg = iedereen)
Injectie Functie
De ultimate_speed_inject_scripts() functie doet het zware werk:
- Checkt of de gebruiker is ingelogd (zo ja, skip)
- Haalt de huidige pagina slug op
- Controleert of de pagina in de whitelist staat
- Controleert het post type
- Echo't de tracking code indien alle checks slagen
Configuratie voor Jouw Website
Stap 1: Vervang de Tracking IDs
Zoek en vervang deze waarden in de code:
G-XXXXXXX → Jouw Google Analytics 4 Measurement ID
YOUR_PIXEL_ID → Jouw Facebook Pixel ID
Stap 2: Bepaal Belangrijke Pagina's
Pas de $important_pages array aan met jouw belangrijke pagina slugs:
// E-commerce website
$important_pages = array('shop','cart','checkout','my-account','contact');
// Lead generation website
$important_pages = array('home','diensten','contact','offerte-aanvragen');
// Blog website
$important_pages = array('home','about','contact');
// + alle posts via $important_post_types = array('post');
Stap 3: WooCommerce Integratie
Voor WooCommerce websites voeg je 'product' toe aan de post types:
$important_post_types = array('post','product','product_variation');
Installatie Stap-voor-Stap
-
1
Maak mu-plugins map aan
Controleer of
/wp-content/mu-plugins/bestaat. Zo niet, maak deze map aan via FTP of bestandsbeheer. -
2
Maak het bestand aan
Maak een nieuw bestand
wpts-ultra-speed-tracking.phpin de mu-plugins map. -
3
Plak en configureer de code
Kopieer de code en vervang
G-XXXXXXXenYOUR_PIXEL_IDmet jouw tracking IDs. -
4
Pas de pagina lijst aan
Wijzig
$important_pagesnaar de slugs van jouw belangrijke pagina's. -
5
Test de implementatie
Open je website in incognito modus en controleer of de scripts laden op de juiste pagina's.
Veelgestelde Vragen
Verlies ik veel tracking data?
Minimaal. De meeste waardevolle conversies gebeuren op de pagina's die je trackt (home, contact, checkout). Je verliest alleen data van minder belangrijke pagina's zoals archieven of zoekresultaten.
Werkt dit met Google Tag Manager?
Ja! Vervang simpelweg de GA4 code door je GTM container code. Dezelfde logica geldt: GTM laadt dan alleen op de gespecificeerde pagina's.
Waarom niet gewoon een caching plugin?
Caching versnelt het laden van je HTML, maar tracking scripts zijn externe resources. Die worden altijd opnieuw geladen. Door ze selectief te laden, vermijd je het probleem in plaats van het te verzachten.
Blijft dit werken na WordPress updates?
Ja, mu-plugins worden niet aangeraakt door WordPress updates. Ze zijn "must-use" en blijven altijd actief, ongeacht welke updates je uitvoert.
Kan ik meer tracking scripts toevoegen?
Absoluut! Voeg gewoon extra items toe aan de $scripts_to_inject array. Je kunt LinkedIn Insight Tag, Twitter Pixel, Hotjar of andere scripts op dezelfde manier toevoegen.
Wat als ik tracking op alle pagina's nodig heb?
Laat de $important_pages array leeg of verwijder de check. Dan laden de scripts op alle pagina's, maar nog steeds alleen voor niet-ingelogde bezoekers.
Conclusie
Met deze mu-plugin optimaliseer je je tracking implementatie voor maximale performance:
- GA4 en Facebook Pixel laden alleen waar nodig
- Ingelogde gebruikers worden niet getrackt (snellere admin)
- Update-proof door mu-plugin architectuur
- Eenvoudig uit te breiden met extra tracking scripts
- Significant betere Core Web Vitals scores
Dit is een essentieel onderdeel van WordPress performance optimalisatie. Combineer het met andere speed optimalisaties voor de beste resultaten.
Professionele Speed Optimalisatie
Wil je je WordPress website volledig laten optimaliseren voor snelheid?