Habiendo sido descargado más de 1 millón de veces, el plugin WordPress SEO by Yoast es de lejos el mejor y más completo plugin SEO para WordPress. Si bien no nos ha dado problemas en el pasado, para algunos usuarios ha sido un dolor. Recientemente, uno de nuestros clientes se topó con el problema de obtener un error 404 para sus sitemaps generados por el plugin SEO de Yoast WordPress. Después de probar algunas cosas, pudimos descubrir la solución. En este artículo, le mostraremos cómo corregir el error 404 del mapa del sitio en el plugin WordPress SEO de Yoast.

Actualización: es importante que comprenda que es muy probable que este problema esté causado por un complemento o una función de tema mal codificada. El plugin de Yoast funciona bien en nuestros sitios. Solo quería ser muy claro acerca de esto.

Lo primero que debe intentar es abrir su archivo .htaccess (en realidad puede hacer esto desde el plugin WordPress SEO> opción Editar archivos) y simplemente agregue el siguiente código allí:

# WordPress SEO - XML ​​Sitemap Rewrite Fix RewriteEngine en
 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 Rewrite Fix 

Para la mayoría de las personas esto solucionó el problema. Alguien informó que aunque este código solucionó el problema, la página aún enviaba el encabezado de respuesta 404, lo que significaba que la herramienta Google Webmasters no podía encontrarlo. Bueno, en el caso de nuestro cliente, la solución anterior NO solucionó el problema.

Aunque no se prefiere, no tuvimos más remedio que editar los archivos del plugin principal para solucionar el problema. Como lo sugirió hadjedj.vincent, editamos el class-sitemaps.php ubicado en «/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php».

Necesitas mirar el código de la función init () y hacer que esa sección se vea así:

/ **
 * Inicializar sitemaps.  Agregar reglas de reescritura del mapa del sitio y consulta 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 = $ coincidencias [1] & sitemap_n = $ coincidencias [2]', 'top  ');
 $ wp_rewrite-> flush_rules ();
 } 

Básicamente, lo que estamos haciendo es agregar el $ wp_rewrite global; antes de todo lo que ya está allí y agregar flush_rules después del código. Al agregar esto en el complemento, parece solucionar el problema 404 en el sitio web de nuestro cliente. No tenemos idea de por qué Yoast no está haciendo esto de manera predeterminada , pero parece que bastantes usuarios tienen este problema de sitemap 404. Este problema se explica en los comentarios.

Actualizar: Como algunos de nuestros usuarios informaron que después de aplicar la corrección anterior, aún necesitaban desmarcar la opción de mapa del sitio en el complemento SEO de Yoast y guardar sus configuraciones. Después de eso, volver a verificar la opción del mapa del sitio solucionó el error.

Si estaba buscando este problema, esperamos que esta solución lo haya ayudado.