Hvordan fikse Yoast's WordPress SEO Sitemap 404 Error
Etter å ha blitt lastet ned over 1 million ganger, er WordPress SEO by Yoast plugin den aller beste og mest komplette SEO-plugin for WordPress. Selv om det ikke har gitt oss noen problemer tidligere, har det vært vondt for noen brukere. Nylig kjørte en av våre kunder inn i spørsmålet om å få en 404-feil for deres sitemaps generert av Yoasts WordPress SEO-plugin. Etter å ha prøvd noen få ting, var vi i stand til å finne ut løsningen. I denne artikkelen vil vi vise deg hvordan du kan fikse sitemap 404-feilen i WordPress SEO-plugin av Yoast.
Oppdatering: Det er viktig at du forstår at dette problemet er mest sannsynlig forårsaket av dårlig kodet temafunksjon eller plugin. Yoasts plugin fungerer fint på våre nettsteder. Ville bare være veldig klar over dette.
Første ting du bør prøve er å åpne .htaccess-filen din (du kan faktisk gjøre dette fra WordPress SEO-plugin> Edit Files-alternativet) og bare legge til følgende kode der inne:
# WordPress SEO - XML Sitemap Omskrivning Fiks 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] # END WordPress SEO - XML Sitemap Omskrivning Fix
For de fleste løste dette problemet. Noen rapporterte at mens denne koden løste problemet, sendte siden fortsatt 404 svarheader som innebar at Google Webmasters-verktøyet ikke kunne finne det. Vel i vår kundes tilfelle, løste løsningen ikke problemet.
Selv om det ikke var foretrukket, hadde vi ikke annet valg enn å redigere kjernepluginfilene for å fikse problemet. Som foreslått av hadjedj.vincent redigerte vi klasse sitemaps.php ligger i "/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php".
Du må se på init () -koden og få den delen til å se slik ut:
/ ** * Initialiser nettstedkart. Legg til sitemap omskrive regler og spørre 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 ();
I utgangspunktet hva vi gjør er å legge til den globale $ wp_rewrite; før alt som allerede er der og legger til flush_rules etter koden. Ved å legge til dette i pluginet ser det ut til å fikse 404-problemet på kundens nettsted. Vi har ingen anelse om hvorfor Yoast ikke gjør dette som standard, men det ser ut til at ganske mange brukere har dette sitemap 404-problemet. Dette problemet er forklart i kommentarene.
Oppdater: Som noen av brukerne rapporterte om at de etter at de hadde installert ovennevnte reparasjon, fortsatt trengte å fjerne merket for sitemap-alternativet i Yoasts SEO-plugin og lagre innstillingene sine. Etter at re-sjekke alternativet for sitemap, ble feilen for dem fastsatt.
Hvis du leter etter dette problemet, håper vi at denne løsningen har hjulpet deg.