
Sisukord
GDPR nõuab küpsiste nõusolekut. Google Analytics vajab jälgimiskoodi. Facebook Pixel vajab oma koodi. Kõik need on vajalikud – aga vaikimisi paigaldatuna võivad nad koos viia mobiilse PageSpeed skoori 70-ndatesse.
See ei ole paratamatus. See on arhitektuuriprobleem, millel on lahendus.
Miks jälgimiskoodid PSI skoori mõjutavad
PageSpeed Insights hindab lehe esimese laadimise kiirust. Kolmanda osapoole skriptid – Analytics, Pixel, cookie banner – laadivad väliselt serverilt, blokeerivad renderdamist ja lisavad TBT-le (Total Blocking Time) millisekundeid.
Tüüpiline probleem:
- Cookie banner laadib kohe lehe laadimise ajal – 30-80 KB skripti, mis blokeerib renderdamist kuni see on töödeldud.
- Google Analytics laadib välisest Google serverist – täiendav HTTP päring, 40-45 KB.
- Facebook Pixel laadib Meta serverist – veel üks päring, 80 KB.
Kolm skripti, kolm välispäringut, kõik korraga lehe laadimise ajal. PSI näeb seda kui “Reduce the impact of third-party code” hoiatust ja arvab punkte maha.
Lahenduse loogika – laadi ainult siis kui vaja
Kõige olulisem põhimõte: ükski jälgimisskript ei pea laadima enne kui kasutaja on lehega interakteerunud.
Cookie banner peab küll ilmuma – aga Klaro-tüüpi lahendus laadib ainult ~1.5 KB inline JS-i esialgsel laadimisel. Tegelik Klaro skript (~30 KB) laadib alles esimese kasutaja interaktsiooni peale – kerimine, hiire liigutus, klahvivajutus, puudutus.
Analytics ja Pixel laadivad alles pärast nõusolekut – ja isegi siis asünkroonselt, ilma renderdamist blokeerimata.
Tulemus: PSI mobiilskoor 99/100 täieliku jälgimisega lehel.
Käsitsi lahendus – delayed load koodiga
Kui tahad ise hallata ilma pluginata, on loogika järgmine:
// Cookie nõusolek localStorage-is
// Jälgimiskoodid laadivad alles pärast nõusolekut JA interaktsiooni
function hundikuu_tracking_delayed() { ?>
<script>
(function() {
var loaded = false;
var consent = localStorage.getItem('tracking_consent');
function loadTracking() {
if (loaded) return;
loaded = true;
// Lae ainult kui nõusolek on antud
if (consent === 'accepted') {
// GA4
var ga = document.createElement('script');
ga.src = 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX';
ga.async = true;
document.head.appendChild(ga);
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
// Facebook Pixel
!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', 'XXXXXXXXXXXXXXX');
fbq('track', 'PageView');
}
}
['mousedown', 'keydown', 'touchstart', 'scroll'].forEach(function(e) {
document.addEventListener(e, loadTracking, { once: true });
});
setTimeout(loadTracking, 3000);
})();
</script>
<?php }
add_action('wp_footer', 'hundikuu_tracking_delayed');
See töötab – aga sellel on piirangud. Nõusoleku haldus on lihtne (localStorage), Consent Mode v2 puudub, Meta CAPI puudub, WooCommerce sündmused puuduvad. Sobib lihtsale lehele, mitte e-poele.
Miks GTM ei lahenda probleemi automaatselt
Populaarne lahendus on panna kõik Google Tag Manageri ja lasta Tag Manageril hallata. See on hea arhitektuur – aga Tag Manager ise on ~28 KB skript, mis laadib samuti lehe laadimise ajal.
Google Tag Manager lahendab haldamise probleemi (kõik sildid ühes kohas), aga mitte laadimisaja probleemi. Selleks on vaja GTM-i asünkroonset laadimist koos Consent Mode v2 õige järjestusega – mis on tehniline detail, mis läheb paljudel valesti.
Õige järjestus:
- Consent Mode vaikeseisund (
gtag('consent', 'default', {...})) – enne GTM laadimist - GTM konteineri laadimine – asünkroonselt
- Nõusoleku uuendamine kui kasutaja valib –
gtag('consent', 'update', {...})
Kui järjestus on vale, ei tööta Google Ads konversioonide modelleerimine korrektselt isegi kui kasutaja nõusoleku annab.
Hundikuu Consent & Tracking – terviklarendus
Eelpool kirjeldatud käsitsi lahendus toimib, aga nõuab pidevat hooldust – eriti kui lisandub WooCommerce, vormide jälgimine või Meta CAPI. Sellepärast ehitasime Hundikuu Consent & Tracking plugina.
Probleem, mida lahendab: tüüpiline “täielik jälgimislahendus” WordPressile vajab nelja eraldi tööriista – küpsistebänner (CookieYes, Cookiebot), jälgimisplugin (PixelYourSite, Meta for Wordpress või Meta for Woocommere, Google Site Kit vms), GTM seadistus ja Meta CAPI seadistus eraldi. Neli tööriista, neli potentsiaalset konflikti, neli eraldi uuendust.
Kuidas plugin töötab tehniliselt:
Klaro nõusolekubänner laeb lehele ainult ~3 KB inline JS-i. Tegelik Klaro skript (~30 KB) laadib alles kasutaja esimesel interaktsioonil. Null mõju lehe esialgse laadimise kiirusele.
GTM laadib asünkroonselt koos õige Consent Mode v2 järjestusega – vaikeseisund seadistatakse enne GTM laadimist, nõusoleku uuendamine toimib korrektselt.
Meta CAPI töötab serveripoolselt Action Scheduleri kaudu – sündmused saadetakse taustal, ilma esiotsa viivituseta. WP Rocket vahemälu probleem (PHP ei käivitu vahemälustatud lehtedel) on lahendatud AJAX tagavaralahendusega, mis saadab PageView sündmused alati läbi admin-ajax.php. UUID-põhine deduplikatsioon tagab, et brauser ja server ei saada Meta-le topeltsündmusi.
WooCommerce sündmused – ViewContent, AddToCart, ViewCart, InitiateCheckout, Purchase – töötavad nii klassikaliste kui plokipõhiste (FSE) teemadega.
Tulemus: PageSpeed mobiilne skoor 99/100 täieliku jälgimisega lehel – küpsistebänner, GA4, Meta Pixel, WooCommerce sündmused, kõik koos.
Lisaks kaasas 23+ sildiga GTM konteineri mall – GA4, Meta Pixel, Google Ads konversioonid, kontakti mikrokonversioonid. Uue lehe seadistamine võtab 30 minutit, mitte tunde.
Kokkuvõte – mida meeles pidada
Ükski jälgimisskript ei pea laadima enne kasutaja interaktsiooni. See üks põhimõte lahendab suurema osa PSI probleemidest.
Käsitsi koodiga saab palju ära teha – delayed load, asünkroonne GTM, Consent Mode v2. Aga terviklarendus, mis katab ka CAPI, WooCommerce sündmused ja nõusolekuhalduse korraga, nõuab kas palju käsitsi tööd või tarka pluginat.
GDPR nõuded ei kao. Google Consent Mode v2 on kohustuslik alates 2024. aastast Google Ads konversioonide modelleerimiseks. Õige arhitektuur on investeering, mis maksab end tagasi kiiremas lehes ja täpsemas andmestikus.
Seotud postitused
WordPress Cron – miks vaikimisi on murtud ja kuidas päriselt parandada
SisukordMis on WP-Cron ja miks see on probleemLahendus 1 – väline cron, WordPress viisLahendus 2 –…
Redis Object Cache – miks andmebaas aeglustab ja kuidas seda lahendada
WordPress on andmebaasikeskne platvorm. Iga lehe laadimine tähendab andmebaasipäringuid – menüü,…
Miks me ehitasime oma küpsiste ja jälgimise plugina
Metakirjeldus: Hundikuu arendas WordPress plugina Cookies & Tracking, mis ühendab GDPR…
WordPress Cache – miks see on üks olulisemaid optimeerimisi
WordPress on dünaamiline platvorm. Iga kord, kui keegi su lehte külastab, toimub taustal terve…