Meet de snelheid van je site in Google Analytics

Toegegeven, het is niet een nieuw idee om de snelheid van je pagina's te meten met javascript. Maar dit vervolgens doorgeven aan Google Analytics middels event tracking is dat wel. Nu Site Speed een officiële SEO ranking factor is, is het belangrijk om inzage te hebben in je snelheid.

De Google Webmaster Tools levert al een mooie grafiek over de tijd die Google over het renderen van je site doet. Zie voor meer uitleg mijn blog over het sneller maken van mijn eigen blog. Maar nog meer cijfers van alle laadtijden bij diverse gebruikers is altijd handig.

De laadtijden in cijfers

Op dit moment kan ik per pagina zien wat de totale laadtijd is geweest, maar ook het gemiddelde. Dat rapport ziet er als volgt uit:

Ik heb nog niet heel veel data, ik had geen zin om te wachten met bloggen 😉 Het leuke is dat je nu ook laadtijden kunt gaan bekijken per regio of type verbinding:

Nadeel van dit "custom report" is dat je zelf de kolom met de gemiddelde tijden moet uitrekenen (Excel) omdat hier alleen de totalen getoond worden. Voor DSL zou dat dan 20.126 / 19 = 1059 millisecondes per pagina worden. Op dezelfde manier kun je ook voor browsers of besturingssystemen kijken wat de laadtijden zijn.

Als kers op de taart kun je de laadtijden ook in een grafiek weergeven om zo het resultaat van je werk over verloop van tijd te zien. Kies daarvoor deze optie boven je grafiek in de gebeurtenissen rapportage:

Het script

Het script is eigenlijk heel eenvoudig. Het bestaat uit 2 delen waarvan de eerste helemaal bovenin de pagina vlak na de <head> geplaatst moet worden:

<script type="text/javascript">loadtimer=new Date();</script>

Het 2de gedeelte is iets geavanceerder en ziet er als volgt uit:

<script type="text/javascript">
window.onload = function()
{
_gaq.push(['timer._setAccount', 'UA-XXXXX-2'],['timer._trackPageview'],['timer._trackEvent', 'Tijdmeting', location.href, , parseInt(new Date() - loadtimer)]);
}
</script>

Of in de oudere versie van het meetscript:
<script type="text/javascript">
window.onload = function()
{
var loadTracker = _gat._getTracker("UA-XXXXX-2");
loadTracker._trackPageview();
loadTracker._trackEvent('Tijdmeting', location.href, , parseInt(new Date() - loadtimer));
}
</script>

Let op dat je een nieuw profielnummer gebruikt en niet het UA nummer van je hoofdmeting. Dit script zorgt er namelijk voor dat anders je bouncerate op nagenoeg 0% komt te staan. Daarnaast moet er vanwege een bug eerst een trackPageview gedaan worden omdat andere het meten van het event niet goed gaat. Deze trackPageview wil je ook niet in je hoofdmeting hebben.

Click to activate social bookmarks