Ya me he encontrado a varios clientes a los que les pasa esto, y supongo que si lees este artículo hay bastantes probabilidades de que sea porque a ti también te está pasando: Google Search Console te está comunicando un error en el sitemap, y cuando vas a mirarlo ves una simple línea de texto en la página en blanco: el sitemap está prácticamente vacío.
Vamos a ver en este artículo por qué se genera ese problema con el sitemap de Yoast SEO y, sobre todo, cómo solucionarlo de forma correcta.
En este artículo explico cómo solucionar el error de visualización en el sitemap de Yoast SEO. Si tu problema no es ése, sino que el sitemap da un error 404, echa un vistazo a este otro artículo:
Tabla de contenidos
El error en el sitemap
Básicamente este error consiste en que el sitemap se convierte en apenas una línea de texto, en lugar de devolver lo que debería: un listado de las URL disponible en tu web. De hecho, si visitas tu sitemap (en tuweb.com/sitemap.xml) te encuentras algo parecido a esto:
Cuando, en realidad, deberías ver algo así, que es el sitemap que genera Yoast SEO.:
Error en el sitemap de Yoast
A decir verdad, no estoy seguro de si este error se limita al sitemap generado por Yoast SEO, o se da también en otros sitemaps. Lo cierto es que las veces que me lo he encontrado, ha sido en webs que utilizaban el plugin de Yoast para generarlo.
El error te lo comunica Google Search Console, pero si no sueles revisar sus mensajes o no tienes GSC enlazado con la web difícilmente te darás cuenta de él, ya que la del sitemap no es una URL que suela visitarse. Pues bien, uno de mis clientes sí se había percatado y lo había solucionado a su modo instalando el plugin Google XML Sitemaps.
Qué genera el error en el sitemap
La primera vez que me lo encontré tuve que hacer de detective hasta descubrir que el culpable era… ¡WP Super Cache!
Vuelvo a decir lo mismo de antes: no sé si otros plugins de caché también generan este problema, pero yo las veces que me lo he encontrado ha sido con éste: en total cinco veces, las cinco con la combinación de sitemap de Yoast SEO y WP Super Cache.
Sabiendo ya el culpable, a posteriori, es sencillo deducir qué esta ocurriendo: WP Super Cache incluye el sitemap en caché al igual que cualquier otra página: guardando una versión en HTML. Y claro, cuando se visita la URL en lugar del archivo XML generado por Yoast lo que se muestra es una versión HTML. Como las etiquetas son distintas, el navegador muestra texto plano, hasta que la página se rompe.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Solucionar el error del sitemap
Una vez que sabemos qué es lo que está pasando, la solución es bastante fácil, y consta sólo de dos pasos:
- Decirle a WP Super Cache que no debe incluir el sitemap en la caché (ninguno de los sitemaps en realidad, ya que Yoast genera varios)
- Vaciar la cache para eliminar la versión cacheada del sitemap que muestra actualmente
Así que, como ves, es bastante fácil. Para ello tendremos que ir a la sección de ajustes avanzados de WP Super Cache (Ajustes > WP Super Cache > Avanzado), y bajaremos hasta la opción Nombres de archivos aceptados y URIs rechazadas. Ahí será donde le digamos que no cachee los sitemaps, pero hay que hacerlo utilizando la notación que utiliza el plugin.
Excluir el sitemap de la caché
En el cuadro de texto de esta opción, si no has cambiado nada, habrá dos líneas:
wp-.*\.php index\.php
Eso hace que no se incluyan en la caché los scrips en PHP cuyo nombre comienza por «wp-«, para evitar problemas con los archivos de WordPress. Ahí es donde, a continuación y en diferentes líneas, añadiremos:
sitemap\.xml sitemap_index\.xml .*-sitemap\.xml
El resultado será algo así:
Te explico lo que hace cada una de ellas:
- La primera línea (sitemap\.xml) evita que se cachee el archivo principal del sitemap, que en el caso del generado por Yoast es un simple script que redirige a sitemap_index.xml
- La segunda línea (sitemap_index\.xml) evita que se incluya en la caché el índice de sitemaps, sitemap_index.xml
- La tercera línea evita que se incluya en caché cualquiera de los sitemaps secundarios que genera Yoast (el sitemap de entradas, el de páginas, el de productos, el de categorías…), evitando la inclusión de cualquier archivo cuyo nombre termine por «-sitemap.xml»
A decir verdad, la primera de las tres líneas no es estrictamente necesaria, y muy probablemente ni la necesitarás. Pero ponerla no hace daño, y hombre prevenido vale por dos. Y ya está: una vez hecho esto basta con vaciar la caché, y ¡tachán! problema resuelto.
Como siempre, si tienes cualquier duda o consulta no tienes más que contactar conmigo y estaré encantado de intentar ayudarte.
miguel dice
Hola,
A mi me pasa que en el Search Console me da un error con el sitemap enviado con yoast.
Me dice que el formato del post-sitemap.xml no es compatible. Hago la prueba de errores en search console pero me dice que no hay errores sin embargo el mensaje de error no desaparece y me dice que no envia ningun post aunque si que dice que estan indexados….un autentico cacao que no se como resolver. YO acedo a mi sitmepa y ahi me aparece todo correcto….se ha rallado search console?
Saludos
Enrique J. Ros dice
Hola Miguel
Fíjate en qué fecha marca para el error (a la derecha). Las notificaciones de errores de sitemap no se eliminan, y siguen visibles aún cuando el error esté más que solucionado. Puede incluso que fuera un error puntual en uno de los accesos del bot y que no se volviera a producir más, pero tú seguirás viéndolo ahí. Si has comprobado que todo está correcto, no hay nada de qué preocuparse.
Un saludo.
virginia dice
Hola, he corregido
sitemap\.xml
sitemap_index\.xml
.*-sitemap\.xml me sigue dando error , será quizás por la www, que no tiene mi sitemaps ? Qué hago ? uno nuevo que incluya la dirección completa? buen día de viernes!
Enrique J. Ros dice
Hola Virginia
¿Has limpiado la caché después de añadir las exclusiones?
Un saludo.
Steve Rozada dice
Hola Enrique!
Exactamente como has dicho, he tenido el mismo problema y lo he solucionado gracias a tu articulo. En mi caso ha sido mucho mas sencillo. Solo he tenido que actualizar el plugin que controlaba los caches. Pero me orientaste en la dirección adecuada.
Muchas gracias!!
Enrique J. Ros dice
Gracias a ti por tu comentario, me alegra que te haya sido útil 🙂
Un saludo.
Leo Expósito dice
Hola, esto me ha sido de mucha utilidad, aun cuando no está relacionado con el problema que tengo ahora, corrí inmediatamente como loco a excluir el sitemap de la cache..!!!
Saludos..!!
jose dice
Hola Enrique, muchas gracias por el articulo, creo que tengo el mismo problema, pero uso Swift Performance Lite, en Exclude URLs, tengo escrito sitemap y sitemap# y me sigue dando error, el sitemap me lo creo el yoast como dominio.com/sitemap_index.xml
he borrado del cache el sitemaps, pero si me sigue diciendo google que esta vacio..
que puede ser? muchasssss gracias por tu ayuda
Enrique J. Ros dice
Hola Luis
Comprueba manualmente si el sitemap está donde debe (en /sitemap.xml) y si no es así desactiva el plugin de caché para comprobar si así aparece. Si es así solicita soporte a los desarrolladores.
Un saludo
Jose dice
En primer lugar muchas gracias por tu artículo. Mi problema es que sigo los pasos que indicas y una vez enviado el sitemap en estado aparece «correcto» en verde, sin embargo, no indexa ninguna url y cuando pincho para ver más información, en todas aparece el mensaje: «Estado no se ha podido obtener».
Me refiero a las urls del sitemap por separado, por ejemplo: category-sitemap.xml / page-sitemap.xml / post_tag-sitemap1.xml etcétera.
Te agradezco mucho la ayuda, lo he enviado muchas veces y sigue apareciendo el mismo error.
Un saludo.
Lucia Montenegro dice
Hola Enrique,
Muchísimas gracias por este dato, me permitió solucionar mi problema en un par de minutos, el error desapareció como por arte de magia.
Saludos!
Felipe dice
Hola, a mi lo que me pasa es que el sitemap se genera bien. Pero al momento de subirlo al search console me aparece «No se ha podido leer el sitemap» tengo varias web y en la mayoría me aparece error.
¿Cómo puedo solucionar?
Gracias
Enrique J. Ros dice
Hola Felipe
Visita tú mismo el sitemap para comprobar si hay algo raro. También verifica que has escrito bien la ruta en Google Search Console (a veces es algo tan simple como eso) y que no esté bloqueado por el robots.txt.
Un saludo
lola dice
Muchas gracias por su articulo,
yo tengo el mismo problema y he introducido la siguiente cadena:
wp-.*\.php
sitemap\.xml
sitemap_index\.xml
.*-sitemap\.xml
y he vaciado la cache
Pero me sigue dando el error.
Mi pregunta es: la cadena es correcta o me falta al final index\.php?
Alex dice
Buenas, gracias por tu articulo,
yo tengo un problema que search console me dice que tengo un error que no encuentra un xml y no me indexa la página.
el que no encuentra y da error 404 es bg_block-sitemap.xml,
Entro en mi yoast seo y estan todas las direcciones en el sitemap pero al entrar en bg_block-sitemap.xml si esta, pero esta completamente en blanco, que puedo hacer? gracias.
Enrique J. Ros dice
Hola Alex
Deberías configurar el custom post type para que no se incluya en el sitemap. Puedes hacerlo desde los ajustes de WooCommerce.
Un saludo
Gema dice
Hola,
Muchas gracias por tu articulo. Me encanta que haya gente que ayuda tanto a los que no sabemos. ¡gracias!
A mi me pasa que en Search console me pone esto:
Falta esta etiqueta obligatoria. Añádala y vuelva a enviar la información.
Ejemplos
Línea 3
Etiqueta principal: urlset
Etiqueta: url
¿Qué debo hacer? Muchas gracias
NICHER FREY dice
gracias por este blog, me ayudo muchísimo, mi problema era por los enlaces permanentes.
Luis dice
Agradezco tu apoyo tan profesional y correcto. En mi caso apliqué la misma cadena en el plugin WP-Optimize, el cual tiene el mismo error con Yoast. Funcionó perfectamente y de forma inmediata en search console.
De verdad gracias y bendiciones
Aitor Udabe dice
Mismo problema en varias webs pero sin plugins de cache.
Si es cierto que hay cache en servidor pero sigue estando desactivada y sigue pasando