Questa mattina spulciavo, come faccio di tanto in tanto, i dati raccolti da Google Webmaster Tools sullo stato di salute del mio blog. Un po’ come ci si allarma quando il dottore ci dice che il colesterolo è schizzato a 300, allo stesso modo ho avuto un piccolo sussulto quando ho notato l’impennata di errori 404 riscontrati dai robottini di Mountain View che analizzano ogni singolo dettaglio di questo sito. La colpa, lo sapevo già, era da attribuire al cambio nella struttura dei permalink messo in atto un mese fa. A quanto pare, i miei sondaggi (a colpi di ricerche sul motore californiano) per cercare di capire quante persone ancora puntassero ai vecchissimi permalink con il solo numero, mi avevano portato fuori strada.
Ritenevo infatti che oramai non vi fossero molti collegamenti con quel formato: buona parte spazzati via dalla scomparsa di Splinder, altri spariti con la chiusura di tanti blog in questi anni. Mai deduzione fu più sbagliata: l’impossibilità di accedere alle pagine con il solo numerino ha fatto schizzare gli errori 404 da 60 al giorno a circa 1300. Così sono corso ai ripari e mi sono scritto un plugin 🙂 Che al posto di un laconico messaggio di pagina non trovata, reindirizza il visitatore verso l’articolo che stava cercando. Di fatto ho implementato sia l’utile che il dilettevole: adesso posso usare gli indirizzi col solo numerino come shortlink, quando ne ho bisogno (cerca shortlink nel sorgente della pagina). E per mettere la ciliegina sulla torta, ho anche fatto in modo che l’articolo sia persino raggiungibile antecedendo le categorie al titolo: /ingresso/a-chi-piace-lungo-a-chi-piace-corto
e /4272
portano entrambi qui.
Sebbene un mago sia tenuto a non svelare mai i propri trucchi, farò un’eccezione dandoti qualche dritta su come implementare una cosa del genere:
- il cuore del plugin è l’action template_redirect di WordPress: quest’azione viene eseguita quando per qualche motivo WordPress ha deciso di mandare un segnale di reindirizzamento al visitatore, probabilmente perché la pagina che stava cercando non esiste
- allora basta attaccare una funzione a quell’azione che controlla se il problema è un 404
- se lo è, cerco di capire se il permalink usato contiene semplicemente un identificativo numerico, che userò per ripescare l’articolo corrispondente dal database e servirlo al visitatore con l’apposito redirect 301 (in modo che anche Google sia contento e non indicizzi le due pagine separatamente)
- se il permalink non è numerico, provo a vedere se l’ultimo pezzo coincide con il post_name di qualcuno dei miei articoli nel database, ed in caso positivo procedo come sopra
- se proprio non riesco a rintracciare nessun contenuto, allora mi arrendo e restituisco il famigerato 404 🙂
Morale della favola: coloro a cui piacciono gli indirizzi corti, possono usare l’identificativo numerico; coloro che preferiscono le lettere, possono scegliere tra le tante combinazioni a loro disposizione (con ID numerico, con categoria, diretto). Ufficialmente, comunque, il tema usa gli indirizzi diretti, che sono quelli che piacciono di più a me. E tu che ne pensi?
Commenti
Che sei un mago 😉
Probabilmente per un breve periodo su GWT avrai errori di url duplicate perchè non si accorge subito del 301, almeno a me era successo così quando avevo cambiato la struttura dei permalink di wp.
ps
io ho ancora dei 404 risalenti al 2007 quando avevo il blog multilingua, per fare prima probabilmente avevo usato robot.txt per disalloware i crawler su /en… poco tempo fa avevo resettato il robot.txt e sono rispuntati fuori, google non si scorda nulla, li ho ricacciati via con il robot anche se dovrei rimuoverli. 🙂
pps
ahhaha anche io avevo messo homer d’oh nel 404 adesso lo rimetto!! 🙂
Risposte al commento di evilripper
Vero, Google ha una memoria da elefante, ed un incedere altrettanto “lento” nell’accorgersi dei cambiamenti. Ma non li si può biasimare, con l’espansione esponenziale quotidiana del web, é difficile star dietro ad ogni sitarello di periferia (come il mio) 😉
Risposte al commento di camu
@camu: io persi tutto il blog per un errore stupido a Maggio 2012. Google ancora deve accorgersi, uff 😛