Google Analytics en error 404-pagina’s
- op 3 juli 2007
- in Handig
3
Op deze plaats mopper ik vaak over Google, maar het zoeksysteem heeft ook twee formidabele kanten. De eerste is natuurlijk Google Adsense, waarmee ik een aardig deel van mijn inkomsten verdien (ja, zo schijnheilig ben ik ook wel weer). De tweede is Google Analytics, het hulpmiddel om het bezoek aan websites te analyseren.
Google Analytics is een walhalla voor wie een website beheert en van cijfers houdt. Vroeger vonden we Nedstat al heel mooi en informatief, maar zonder te overdrijven kun je rustig stellen dat Google Analytics honderd keer meer informatie biedt: welke pagina’s en paginaclusters worden het meest bezocht, hoe komen bezoekers binnen, hoe lang blijven ze op de site, welke pagina’s bezoeken ze daarbij, wat zijn de belangrijkste afhaakpagina’s, en nog véél meer informatie. En dit alles over elke gewenste periode. De resultaten worden getoond in tabellen (te downloaden als Excel-spreadsheet), staaf- en taartdiagrammen. Kortom: Google Analytics is een Efteling voor wiskundigen.
Bijna wekelijks neem ik wel even de tijd om de Google Analytics-grafiekjes te bekijken. En vrijwel altijd stuit ik wel op een verrassend nieuw inzicht in een van mijn websites. Een voorbeeld betreft mijn wandelsite Tweevoeter.nl. In november 2005 was ik om technische redenen genoodzaakt om alle pagina-adressen van deze site te voorzien van de extensie .php. Binnen enkele weken had Google alle nieuwe adressen verwerkt.
Operatie geslaagd? Helaas, een paar honderd andere websites bleven linken naar verouderde pagina’s. De belangrijkste mailde ik met het verzoek hun link aan te passen, maar daar werd maar mondjesmaat gehoor aan gegeven. Drie maanden later gaf Google Analytics aan dat nog steeds 20 procent van alle bezoekers op een niet-bestaande pagina terechtkwam. Dat is veel.
Volgende ingreep: een error 404-pagina. Voor wie deze term niet kent: een error 404 is de fout die je krijgt als je een niet-bestaand adres intikt, bijvoorbeeld van een pagina die inmiddels verhuisd is. Door de error 404 op te maken in de vormgeving van je site, inclusief alle navigatiemenu’s, kunnen bezoekers vanuit de niet-bestaande pagina doorklikken naar andere delen van je site en op zoek gaan naar de gewenste informatie.
Operatie alsnog geslaagd? Helaas. Einde 2006, een jaar na de adreswijzigingsoperatie, viel me bij mijn wekelijkse rondje Google Analytics iets op. De gemiddelde klikdiepte (het aantal bezochte pagina’s per bezoeker) voor de hele site lag op 2,8. Dat is niet veel. Toen ik vervolgens de relatie legde tussen ingangspagina en klikdiepte, dan bleek de error 404-pagina met afstand onderaan te staan met een gemiddelde klikdiepte van slechts 1,2. Omgerekend: minimaal 80 procent van de bezoekers die een niet-bestaande Tweevoeter-pagina bezochten, besloot direct af te haken; hooguit 20 procent (en waarschijnlijk nog een stuk minder) deed nog een poging de informatie elders op de site te vinden.
Conclusie: zelfs een opgemaakte error 404-pagina met een nette foutmelding is voor de meeste bezoekers een afknapper. Om de klikdiepte wat op te schroeven zit er maar één ding op: alle 404-errors wegwerken, zodat bezoekers alleen op pagina’s terechtkomen met relevante inhoud. Om dat voor elkaar te krijgen heb ik eerst in beeld moeten krijgen welke niet-bestaande pagina’s het meest werden opgevraagd. Ik heb daarop een scriptje gemaakt dat mij een e-mail stuurde zodra iemand een 404-error kreeg. De eerste dag kreeg ik zo’n 1500 e-mails. De belangrijkste niet-bestaande pagina’s heb ik daaruit gevist. Voor elke pagina heb ik een zogeheten ‘redirect’ aan mijn .htaccess-bestand toegevoegd, bijvoorbeeld:
RedirectMatch permanent ^/drenthe/$ http://www.tweevoeter.nl/drenthe.php
Deze regel betekent dat elke bezoeker van het adres www.tweevoeter.nl/drenthe/ automatisch wordt doorgeschakeld naar het nieuwe adres www.tweevoeter.nl/drenthe.php. Zo heb ik elke niet-bestaande pagina gekoppeld aan het nieuwe adres. Met snel resultaaat: binnen een dag was het aantal mailtjes gezakt tot nog maar een paar honderd. En een week later nog maar 50. Je vraagt je misschien af: waarom heb je deze redirects niet meteen in 2005 ingebouwd? Dat had een praktische reden: de site draaide toen nog op een Windows-server in een shared hosting-omgeving. Nu staat de site op een eigen virtuele Linux-server en dan heb je veel meer mogelijkheden om de webserver te beïnvloeden.
Inmiddels bevat mijn .htaccess-bestand een stuk of 500 redirects. Dat is erg veel en het zal ook de webserver iets vertragen, maar 404-errors komen vrijwel niet meer voor. En het belangrijkste: volgens Google Analytics is de klikdiepte gestegen tot 3,3, dus een verhoging van 0,5. Dit verschil lijkt weinig indrukwekkend, maar het betekent wel dat je met hetzelfde aantal bezoekers bijna 20 procent meer pageviews genereert en de advertentie-inkomsten navenant stijgen. En dat met hooguit een halve dag werk. Was elke halve werkdag maar zo lucratief…
Overigens ben ik nog steeds niet van de 404-errors verlost, ik krijg nog altijd zo’n 20 tot 30 mailtjes per dag. Maar dit heeft andere oorzaken. Aan de adressen te zien zijn dit meestal geen verdwaalde bezoekers, maar pogingen van hackers om uit te zoeken welke toepassingen op mijn site zijn geïnstalleerd. Verder zijn er ook wel eens bezoekers van vlees en bloed die behoorlijk wat af blijken te knoeien op je site. Maar dat is weer een verhaal apart…
Onno
500 redirects? Kan dat echt niet beknopter met regular expressions? Zoiets als dit?
RedirectMatch permanent ^/([^/]+)/$ http://www.tweevoeter.nl/$1.php
Waarbij:
^ = begin van string
() = een match voor dit deel wordt geplaatst in $1
[^/] = een karakter dat niet gelijk is aan slash
+ = 1 of meer van het voorgaande
$ = einde string.
Ik weet niet of het werkt bij RedirectMatch, maar het werkt prima bij RewriteRule. Hier een voorbeeld dat ik gebruik:
RewriteRule (.*) index.php?action=$1 [QSA,L]
Oftewel:
/listpages -> /index.php?action=listpages
Onno
Hm, laat ik die wel in zijn context geven, anders gaat het fout. Hier wordt die regel alleen toegepast als er iets achter de slash wordt meegegeven, en als dat geen bestaande file of directory is.
RewriteRule ^$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?action=$1 [QSA,L]
Wessel
Bedankt voor de tip. Een rewrite zou denk ik ongeveer 100 van de 500 redirects overbodig kunnen maken. Het belangrijkste doel van die adreswijzigingsoperatie was inderdaad om .php toe te voegen, maar ik heb toen veel meer zaken aangepakt, zoals pagina’s naar mappen verplaatsen en omgekeerd, andere pagina’s samenvoegen, enzovoorts.