Da diverso tempo sentivo il bisogno di cambiare la struttura dei permalinks di questo blog. Quella precedente (che qui definiscono simpaticamente “The Archivist“) non mi soddisfaceva in quanto in tutti i test di velocità di WordPress è risultata essere la meno performante in termini di prestazioni, oltre che quella meno SEO-friendly

Il risultato questo tipo di operazione, però, comporta la riscrittura completa di tutti gli indirizzi di tutti i nostri post e di tutte le nostre pagine, con conseguente generazione del 100% di errori 404 (pagina non trovata) per chiunque ci venga a visitare partendo da un link esterno. Motori di ricerca compresi.

Diventa quindi necessario dotarsi delle giuste contromisure, in modo da correggere immediatamente gli errori 404, ridirezionando il visitatore verso il nuovo indirizzo della risorsa a cui è interessato. Facendo un esempio, pratico, la predente struttura dei permalinks di questo blog, era la seguente:

/%year%/%month%/%postname%/

e generava una URL di questo tipo

www.skyflash.it/2012/05/nome-articolo

Quella attuale, invece, è

/%category%/%postname%/%post_id%/

Che a sua volta genera qualcosa di questo tipo

www.skyflash.it/categoria/nome-articolo/id_numerica/

Come fare, quindi, per far si che tutti i nostri indirizzi cambino da un momento all’altro, senza però causare errori 404 e senza distruggere l’indicizzazione dei post sui motori di ricerca? Con uno dei tanti plugin che WordPress mette a disposizione, e più precisamente:

Il plugin Advanced Permalinks

Advanced Permalinks permette di cambiare la struttura di blog WordPress già avviato senza incorrere in problemi di sorta. Una volta installato ed attivato, il plugin non avrà una configurazione separata, ma andrà ad “arricchire” le impostazioni dei Permalinks all’interno del pannello di gestione di WordPress. Vediamo come funziona:

Come prima cosa, impostiamo quella che sarà da questo momento la nostra nuova struttura dei permalinks

Facciamo poi click sul link Migration, ed andiamo ad inserire le informazioni relative alla struttura da sostituire

Da questo momento, ogni richiesta che riceverà il nostro blog relativa ad un indirizzo “vecchio”, verrà redirezionata tramite un redirect di tipo 301 (persistente) verso il nuovo indirizzo. Il che non disturberà assolutamente i motori di ricerca che, anzi, sentitamente ringrazieranno.

Ora non ci resta altro da fare che generare una nuova Sitemap e sottometterla immediatamente a Bing e a Google, che nel giro di pochi minuti inizieranno a visitare il nostro blog per verificare la bontà delle nuove informazioni, aggiornando i dati in loro possesso. Se vi dovesse capitare di analizzare il vostro [cci]access.log[/cci] noterete come gli status 301 ben presto lasceranno il posto a perfetti 200, che stanno appunto a significare che il nuovo indirizzo è stato recepito.

Può però capitare che, per molteplici ragioni (esempio: vendita di link all’interno di un vostro post) uno o più dei vostri indirizzi debbano mantenere la vecchia struttura, per dar modo a particolari spider di ritrovarli sempre inalterati. Anche in questo caso, ci viene in aiuto Advanced Permalinks, con la funzione Posts

In questo esempio, Advanced Permalinks viene istruito per impostare una particolare struttura (qui viene scelta quella precedentemente abbandonata, per cui di fatto ne viene mantenuto l’indirizzo originario) su uno specifico post, avente come id 4568.

Se volete l’esempio pratico:

Un post pescato a caso fra tutti quanti hanno la nuova struttura
http://www.skyflash.it/svago/letture/disponibile-anche-in-italia-il-nuovo-kindle-touch/6264/

Il post con id 4568
http://www.skyflash.it/2010/11/amazon-it-la-faq/

Advanced Permalinks per WordPress