Come aggiustare gli errori 404 dovuti a Seo by Yoast

Tempo stimato di lettura: 2 minuti, 38 secondi
Pubblicato il 26 Settembre 2012

WordPress SEO by Yoast è di sicuro il plugin più scaricato ed apprezzato dai blogger che usano WordPress. Anche se a me personalmente non ha mai dato problemi in passato, molti utenti continuano a riscontrare alcune difficoltà.

Uno dei problemi che ci vengono posti più frequentemente infatti è questo: come mai le sitemap generate da WordPress SEO by Yoast spesso danno errori 404? Per mettere pace una volta per tutte a questo problema, ho deciso di scrivere questo post in modo da indirizzare qui tutti i nostri amici e clienti che incontrano questo problema.

La problematica principale legata a questo tipo errore è spesso dovuta al modo in cui le funzioni del tema sono state codificate. Il mio suggerimento spassionato è quello di mantenere il tuo tema sempre aggiornato.

Se il tuo tema ha qualche anno e lo sviluppatore che lo ha creato non provvede più a fornire aggiornamenti, ti consiglio di cominciare a ragionare su un restyling completo del tuo sito.

Per prima cosa partiamo dal file .htaccess e per farlo non entriamo nel server, ma piuttosto nel plugin di SEO by Yoast direttamente dal tuo panello di amministrazione di WordPress. Clicca su Modifica i files come vedi nel foto e vai giù finché non trovi l’area dedicata al file .htaccess.

Appena ci sei sopra inserisci questo codice:

# WordPress SEO - XML Sitemap Rewrite Fix
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index\.xml$ /index.php?sitemap=1 [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
</IfModule>
# END WordPress SEO - XML Sitemap Rewrite Fix

Questa soluzione funziona benissimo e tutti i nostri clienti sono sempre stati soddisfatti. Però facendo una ricerca più attenta ho avuto modo di scoprire che per alcuni tipi di temi la soluzione era più radicale.

Per cui se questa soluzione, nel tuo caso, non dovesse sistemare tutto continua a leggere…

A questo punto se continui a ricevere errori 404 dalle tue sitemap devi andare a mettere mano direttamente nel plugin di Yoast.

Come suggerito in questo thread del 2011 postato sul forum di WordPress.org devi andare a modificare il file class-sitemaps.php che trovi in “/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php”. Trova la funzione init() e modificala inserendo questo codice

/**
* Initialize sitemaps. Add sitemap rewrite rules and query var
*/

function init() {
global $wp_rewrite;
$GLOBALS['wp']->add_query_var( 'sitemap' );
$GLOBALS['wp']->add_query_var( 'sitemap_n' );
add_rewrite_rule( 'sitemap_index\.xml$', 'index.php?sitemap=1', 'top' );
add_rewrite_rule( '([^/]+?)-sitemap([0-9]+)?\.xml$', 'index.php?sitemap=$matches[1]&sitemap_n=$matches[2]', 'top' );
$wp_rewrite->flush_rules();
}

Voci di corridoio indicano che Joost de Valk abbia sistemato questo problema già in un paio di updates precedenti. Nel caso però tu non voglia cambiare/aggiornare il tuo tema allora questa soluzione a mio giudizio è la migliore da seguire.

Personalmente non ho mai avuto la necessità di applicare questo secondo step per risolvere gli errori 404 generati dalle sitemap e ti suggerisco sempre di avere una copia back up a portata di mano prima di avventurarti nell’utilizzo di $wp_rewrite; e flush_rules.

In bocca al lupo e buon lavoro!

Shares