Después de haber sido descargado más de 1 millón de veces, WordPress SEO por Yoast plugin es, con mucho, el mejor y más completo plugin de SEO para WordPress. Aunque no nos ha dado ningún problema en el pasado, para algunos usuarios ha sido una molestia. Recientemente uno de nuestros clientes se topó con el problema de obtener un error 404 para sus sitemaps generados por el plugin WordPress SEO de Yoast. Después de probar algunas cosas, pudimos encontrar la solución. En este artículo, le mostraremos cómo corregir el error del sitemap 404 en el plugin SEO de WordPress de Yoast.
Actualización: Es importante que entiendas que este problema es probablemente causado por una función o plugin de tema mal codificado. El plugin de Yoast funciona bien en nuestros sitios. Sólo quería ser muy claro sobre esto.
Lo primero que debes intentar es abrir tu archivo.htaccess (puedes hacerlo desde la opción WordPress SEO plugin> Edit Files) y simplemente añadir el siguiente código allí:
12345678# WordPress SEO – XML Sitemap Reescribir FixRewriteEngine OnRewriteBase /RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1[L]RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2[L]# ENDWordPress SEO – XML Sitemap Rewrite Fix
Para la mayoría de la gente esto soluciona el problema. Alguien informó que mientras este código corregía el problema, la página seguía enviando el encabezado de respuesta 404, lo que significaba que la herramienta Webmasters de Google no podía encontrarlo. Bueno, en el caso de nuestro cliente, la solución anterior NO solucionó el problema.
Aunque no se prefirió, no tuvimos más remedio que editar los archivos de los plugins principales para solucionar el problema. Como sugería hadjedj.vincent, editamos el classs-sitemaps.php ubicado en «/wp-content/plugins/wordpress-seo/inc/classs-sitemaps.php».
Necesitas mirar el código de la función init() y hacer que esa sección se vea así:
1234567891011/** * Inicializar mapas del sitio. Añadir reglas de reescritura del mapa de sitio y consulta var */ functioninit() { 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(); }}; y
Básicamente lo que estamos haciendo es añadir el $wp_rewrite global; antes de todo lo que ya está allí y añadir flush_rules después del código. Al añadir esto en el plugin, parece que arregla el problema del 404 en el sitio web de nuestro cliente. No tenemos idea de por qué Yoast no está haciendo esto por defecto, pero parece que bastantes usuarios están teniendo este problema con el sitemap 404. Esta cuestión se explica en los comentarios.
Actualización: Como algunos de nuestros usuarios reportaron que después de aplicar la corrección anterior, todavía necesitaban deseleccionar la opción sitemap en el plugin SEO de Yoast y guardar su configuración. Después de volver a comprobar la opción del sitemap, se corrigió el error para ellos.
Si estabas buscando este problema, esperamos que este arreglo te haya ayudado.
Deja una respuesta