L’altre dia vaig estar pensant en les coses que em faltava per implementar en aquest blog, i que m’agradaria tindre “controlades” en certa manera. I em van vindre al cap els errors 404 (els famosos de que no s’ha trobat la pàgina).
Tot i que mostrava l’avís de que la pàgina no s’havia trobat, i a més l’avis estava “integrat” al tema, després jo no podia saber quines pàgines havien presentat problemes als lectors del blog. Així que, en un primer moment, em vaig posar a fer el que fem tots els usuaris de WordPress: tirar de plugins per afegir funcionalitats.
I en vaig trobar un que era quasi el que volia: 404 notifier. Aquest plugin detecta els errors 404 que s’han produït al blog, informant de quines pàgines
Però aquest plugin té una cosa que el feia terrible per a les meues necessitats: els avisos de pàgines 404 els envia al correu electrònic. I no reb ja prou coses per correu electrònic (estic subscrit a una infinitat de llistes de correu a les que, poc a poc, vaig demanant la baixa)!
Perquè no intentar que les coses siguen com un vol? Jo, en aquest cas, volia “poder saber quins són els errors 404 del blog”, i no “saber quins són els errors 404 del blog”. La diferència eixa entre “poder saber” i “saber” és importantíssima, sobretot en aquesta “era de la informació”, on ens trobem saturats per dades que, la majoria de vegades, ni necessitem.
Així que em vaig posar “manos a la obra”. Vaig començar a buscar per internet i vaig trobar una bona entrada en un blog on contaven com utilitzar el Google Analytics per a analitzar els missatges d’error produïts al WordPress. Si bé és cert que d’aquesta manera només es podran gestionar les visites fetes per lectors amb el javascript activat (com la resta d’estadístiques de l’Analytics) ens pot servir prou com a base per a veure per on se’ns estan escapant els lectors.
I la questió va resultar ben senzilla: només calia modificar la URL que registra l’analytics quan entra a una pàgina del blog que no existeix per una altra que siga senzilla de controlar després. Després de pegar-li algunes voltes, vaig optar per reescriure les URLs que donen error per “/404/url-original/”, de manera que una petició a la pàgina https://xavi.ivars.me/aquesta-no-existeix/
es queda registrada al Google Analytics com a https://xavi.ivars.me/404/aquesta-no-existeix/
.
Per a implementar-ho, només cal modificar a la pàgina 404.php del nostre tema.
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-XXXXX-X");
pageTracker._initData();
pageTracker._trackPageview();
</script>
per
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-XXXXX-X");
pageTracker._initData();
var xvurl = '/404' + document.location.pathname;
if(document.location.search!='') {
xvurl += document.location.search;
}
pageTracker._trackPageview(xvurl);
</script>
En el meu cas, com que no tinc pàgina 404.php, i tot es troba a l’index.php, havia de fer la substitució només en el cas de que es tractara d’un error 404. A fer això ens ajuda la funció de WordPress is_404()
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-XXXXX-X");
pageTracker._initData();
<?php if(!is_404()) { ?>
pageTracker._trackPageview();
<?php } else { ?>
var xvurl = '/404' + document.location.pathname;
if(document.location.search!='') {
xvurl += document.location.search;
}
pageTracker._trackPageview(xvurl);
<?php } ?>
</script>
Interessant article, jo algun dia hauré de posar-me a personalitzar el bloc...
També tens les Webmaster tools de Google que t'informa dels 404 que veu el robot.
@Joan, si que comença a ser hora de personalitzar-lo, si... :P
@Xavier, gràcies! No me'n recordava de les Webmaster Tools. Les he mirades, i he corregit alguns enllaços mal posats que tenia en algunes entrades (encara tenien el format del Pivot :D)