12 cosas que deberías saber sobre los sitemaps.xml


Hoy nos toca el tercer post especializado en sistemas de indexación SEO. Ya hemos abordado las posibilidades de los archivos Robot.txt y la gestión de las etiquetas o cabeceras del meta-robots para controlar la indexación. Ahora nos toca trabajar con otro de los archivos más famosos del SEO: los archivos sitemaps.xml. Como en anteriores ocasiones vamos desgranar todo el contenido en distintos puntos, en este caso hablaremos sobre 12 cosas que es importante que sepas sobre estos archivos. Algunas serán sabidas, otras espero que te sorprendan y por supuesto algunas serán validas para unos proyectos u otros.

Qué son y cómo crear los sitemaps.xml

Los Sitemap no son más que una vía que nos ofrecen los buscadores para que nosotros mismos les digamos que páginas deberían rastrear. Como casi todo en herramientas de indexación son solo sugerencias y Google en realidad visitará las páginas que le de la gana en el orden que él quiera. Sin embargo en muchos proyectos en los que (más por defecto de la web que de las arañas de Google) las arañas van un poco perdidas han demostrado ser de gran utilidad para guiarlas y ayudarlas a encontrar el contenido.

Los sitemaps.xml son uno de los primeros archivos que Google se preocupó por que conociésemos y eso ha conseguido que exista muchísima documentación sobre como crearlos. A día de hoy la mejor referencia oficial que tenemos la encontramos en «sitemaps.org» en muchísimos idiomas. El protocolo es muy simple pero tiene algunas peculariedades.

Este es el formato normal de un archivo sitemaps.xml bien hecho:


   
     http://blog.ikhuerta.com
     2017-09-29
     monthly
     1.0
   
   

De esta estructura lo importante es sobretodo la declaración inicial. Si no definimos el sitemap como un XML y sus atributos xmlns no será bien interpretado. Luego solo se trata de ir añadiendo nodos <url> con sus detalles (de los que solo <loc> es obligatorio). De echo la inmensa mayoría de los sitemaps que encontraras verás que solo contienen el nodo «loc» y ningún otro detalle de las URLs.

La codificación de caracteres también es muy importante, solo se admite UTF-8 así que hay que revisarla. Además el sistema nos prohíbe de forma explicita el uso de ciertos caracteres. Si queremos usarlos tenemos que «escapearlos» en HTML, es decir, debemos usar un código HTML para identificar el carácter exacto que realmente deseamos incorporar.

Por suerte estos no son muchos:

Carácter prohibido Código HTML para incluirlo
& &amp;
« &quot;
&apos;
> &gt;
< &lt;

Todo muy lógico, y no es nada que aun site con un poco de SEO onpage bien hecho le vaya a afectar. Pero tengámonos en cuenta. Por ejemplo, ¿qué pasa con esta url: «http://midominio.com?categoria=2&producto=25»? pues que en realidad en nuestro sitemap deberíamos incluirla como «http://midominio.com?categoria=2&producto=25».

Por último hay una restricción de tamaño:

  • Máximo se nos permiten 50.000 URLs por archivo sitemap.xml
  • Y el peso del archivo no podrá ser superior a los 50MB (así que cuidado con ajustar a 50.000 urls como hacen muchos que la podéis liar)

Bien, hasta aquí la teoría, pasamos a las cosas que a parte de la documentación básica deberíamos todos tener contempladas para hacer un buen uso de estos archivos.

1. La mayoría de sites no necesitan un sitemap.xml para nada

Esto no es solo verdad, sino que si hacemos mal el archivo sitemap.xml podemos hacer más mal a la indexación que bien. Este es otro de los puntos clásicos de los SEOs que están empezando: en clase les dicen que los sitemaps.xml son esenciales y de ahí muchos entienden que cualquier site que no los tenga no indexará bien y mejoraría su indexación con ellos.

Esto no es cierto, estos archivos son una guía para que las arañas no se pierdan y sepan donde acceder. Pero ¿que pasa si no se pierden? Les estoy aportando algo con este archivo. Puede que si, si tienes alguna estrategia de trabajo con ellos (veremos varios ejemplos más adelante) pero solo por subirlo con URLs y nada más no ganarás absolutamente nada con ello.

Así que por ejemplo para sites pequeños (normalmetne con pocos recursos de desarrollo) y donde no vemos un problema de estructura evidente nosotros desde IKAUE no solemos pedir archivos sitemaps.xml. El SEO siembre debe jugar en la línea de la rentabilidad y sin duda gastar tiempo de desarrollo en algo que no aporta absolutamente nada no tiene sentido. Y no, la solución no es subir un archivo sitemap.xml estático que creas tu con cualquier programita… ¿qué sentido tiene? ¿Vas a usar un crawler menor para ayudar a uno que es mucho más potente que el que tu usas? ¿Que esperas encontrar que google no pueda encontrar por si mismo?

Como contra además tenemos a toda esta gente que sube un sitemap sin tener mucha idea de SEO y encima provoca problemas de indexación que antes no tenía. Esto pasa más de lo que podría parecer (hay demasiados «primos de» o «amigos de» haciendo SEO para webs pequeñas). Os pongo algunos ejemplos de problemas que podemos provocar con sitemaps.xml mal realizados.

  • Para empezar si no lo haces bien puedes darle muchas URLs que en SEO te importan más bien poco su indexación. Esto pasa cuando los generas automáticamente. Le dices que te indexe paginas corporativas que antes no tenía indexadas cosas así. También cuando te los generan desde desarrollo sin que pase nadie las indicaciones de qué deben contener te puedes encontrar con cosas URLs del entorno privado de usuario o páginas de gracias en el sitemap… ¿En serio queremos enseñarle eso a Google?
  • Otro clásico parecido al primero es cuando nos fiamos de nuestro CMS o de algún plugin de esos que lo genera todo. Ahi WordPress, drupals y cosas así son unos expertos en conseguir indexar contenido basura. Taxonomias a las que no habías ofrecido URLs en tu página, Páginas de autor, de Archivos Mensuales (o peor aun diarios). No todo suma, todo esto resta
  • Finalmente otro problema sucede con sites donde el rastreo de Google no llega a todas las páginas (con problemas de crawl budget). Nos encontramos con que le cuesta llegar a URLs muy profundas y decidimos subirlas al sitemaps «para ayudarle a encontrarlas». En estos casos podemos provocar que la araña ataque a páginas que tienen menos prioridad de posicionamiento del que tu les dabas en tu estructura. Por ejemplo, en una estructura web has relegado el posicionamiento de artículos muy viejos que no estaban bien enfocados hacia el target real de tu web a varios clicks desde la home (asumiendo que muchos no se indexarán). Subes un sitemap y te alegras porque mejora la indexación de estos artículos. Pero por otro lado no te das cuenta de que el crawl budget sigue siendo el mismo que tenías (no lo has mejorado) y que la araña visite estos contenidos tan despriorizados acaba provocando al cabo de un tiempo la desindexación de otros que tampoco estaban en primera línea de indexación pero que tenias más priorizados que estos que ahora estás empezando a recoger. Cuidado con ese tipo de cosas que cuando pasan puedes no darte cuenta de que el problema lo has provocado tu mismo con tus ansias de indexación. El crawl budget es el que es y el sitemap.xml no lo mejora.
  • Por ultimo un problema (para mi menor) es que estamos poniendo a disposición de cualquiera que sea capaz de localizar este archivo todas nuestras URLs y todos los datos que pongamos sobre ellas a su alcance. La competencia en SEO se audita también y ponérselo un poco difícil no está de más. A mi me parece que salvo excepciones no es problemático que la competencia vea nuestros sitemaps, pero todo depende. Si esto te preocupa, es fácil de evitar: pongámonos a los archivos un nombre que no sea obvio y declaremoslos en Google Search Console y no en Robots.txt.

En definitiva dos cosas a destacar: a) en muchas webs no notaras ninguna por añadir un sitemap y b) si no te lo tomas en serio puedes empeorar tu indexación en lugar de mejorarla. Como norma general, si no hay una estrategia clara detrás no hagas un sitemap.

2. Declárale la guerra a los archivos de «mapa del sitio», esos no son los buenos

Si es que en realidad es muy obvio que no ayudan pero sigue sucediendo. La gente lee sitemap y hace asociaciones raras. No es lo mismo un archivo XML de Sitemaps que un Mapa del sitio montado en una o varias páginas de la web.

Un sitemap.xml:

Es un archivo muy concreto que tus usuarios no ven y que solo le ofreces a los rastreadores. Solo cumple funciones SEO, no afecta a la usabilidad del site

Un Mapa del sitio (o sitemap HTML o sitemap a secas):

Son páginas web que se usaban hace muchos años para suplir carencias de estructura en la web. Lo que hacían estas páginas era, ante sites que no permitían a las arañas alcanzar el contenido saltando de link en link ofrecer una vía secundaria de indexación. Vamos, que se solucionaban carencias básicas del site creando páginas nuevas en el mismo.

Esto hace unos años era muy común… teníamos Menús que se montaban en iframes o con flash. Las webs las hacían diseñadores, sin directrices y la UX ni tenía nombre… Más adelante aun se usaron para casos específicos: Por ejemplo era algo muy usado en Webs basadas en un buscador (clasificados, páginas de vuelos, etc.). La página tal y como estaba diseñada no ofrecía links hacia el contenido así que se colocaba un link abajo de «mapa del sitio» donde link a link el contenido acababa siendo accedido por las arañas. Eran otros tiempos y las arañas eran mucho más tontas y nosotros sabíamos menos sobre como gestionarlas.

A día de hoy los mapas del sitio no tienen sentido. Existen métodos mucho mejores para conseguir que las arañas encuentren el contenido. Lo primero es una arquitectura bien planificada y aprovechar los propios menús y bloques de enlaces del site. Si esto no es suficiente es probable que necesitemos dar vías de acceso secundarias (las aerolíneas siguen haciéndolo) pero con una estructura muy cercana a una real de un site y con contenidos, no con simples páginas llenas de enlaces…

Lo peor de este sistema es que quien lo tiene cree que ha solucionado la papeleta y no es verdad… Lo dicho: Muerte a los mapas del sitio. No los relaciones nunca con los sitemaps.xml. Estos últimos son una herramienta estupenda para hacer SEO mientras que los desfasados mapas de sitio son solo un vestigio del pasado tenebroso del SEO.

3. Podemos enviar a Google el sitemap de varias formas, no solo mediante Google Search Console

Uno de los puntos básicos pero vitales para que Google lea nuestro sitemap. El sitemap no es como el archivo robots que siempre queda alojado en la misma URL sino que practicamente podemos ponerle cualquier nombre. Así que hay que decirle a Google (o a bing) donde buscar. Esto se hace mediante Google Search Console, donde encontraremos una sección llamada sitemap donde podemos indicar esta URL. A esta acción la mal-llamamos «subir el sitemap». No subes nada, pero se le ha quedado este nombre.

Veremos más adelante que esta es la mejor vía posible pues nos da ciertas estadísticas sobre errores y su lectura, pero no es la única, en realidad podemos usar dos vías más para indicarle a Google estos archivos.

Indincándolo en el robots.txt

Es una de las vías recomendadas y puede suponer una gran ventaja cuando hacemos implementaciones genéricas, en muchos sites a la vez o por lo que sea no podemos acceder al Google Search Console de cada dominio por separado. También puede ser una buena opción para buscadores menores. Por ejemplo, si vamos a trabajar sobretodo Google pero queremos que ya de paso Bing lea nuestros sitemaps (aunque no vayamos a trabajarlos en bing) podemos añadirlo al Robots.txt y además darlos de alta en Google Search Console.

Es tan sencillo como declarar todos los archivos sitemaps que deseemos con la declaración «siteamap:» al principio de la línea.

Sitemap: http://www.midominio.com/mi-bonito-sitemap-1.xml
Sitemap: http://www.midominio.com/mi-bonito-sitemap-2.xml
Sitemap: http://www.midominio.com/mi-bonito-sitemap-3.xml
Sitemap: http://www.midominio.com/mi-bonito-sitemap-4.xml

Los buscadores los rastrearán pero no nos darán la información de indexación y errores que si veríamos en Search Console.

Haciendo ping

Otra forma es hacer «ping» a una URL del buscador al que deseamos informar con la URL a leer. Un «Ping» no es más que una solicitud a esta URL sin más complejidades. Se carga la URL y el sistema se da por enterado. Esta solución también es valida para varios buscadores. Enviamos un ping a una URL con el siguiente formato «{dominio buscador}/ping?sitemap={URL del Sitemap}». Por ejemplo para enviar a Google el ping de mi dominio llamaríamos a la siguiente URL.

http://www.google.es/ping?sitemap=http://www.midominio.es/sitemaps.xml

Esta es la forma más descontrolada aunque puede servirnos para pegarle un toque de atención al buscador y que venga a mirar algo. Mucha gente lo usa además para intentar forzar reastreos: ante un update lanzamos pings de sitemaps que contienen las URLs con update intentando que la araña las visite. Si bien es cierto que subir sitemaps de URLs a realizar updates parece que algo si que afecta yo al menos no he tenido mucha diferencia en hacer ping o no a sus sitemaps la verdad.

4. Los sitemaps.xml solo afectan a archivos que están en su directorio o a mayor profundidad de este

Es decir «midominio.com/carpeta1/carpeta2/sitemaps.xml» no debe contener enlaces a archivos de «midominio.com/carpeta1» o «midominio.com/» solo a los de «midominio.com/carpeta1/carpeta2/…»

Asi que por ejemplo crear la típica carpeta de /sitemaps/ y por ejemplo alojar uno en «midominio.com/sitemaps/posts.xml» no es una buena idea ya que en teoría estos enlaces no se seguirían.

Lo mejor que podemos hacer es que es que todos nuestros sitemaps queden en la raiz de nuestro dominio (así garantizamos que no tendremos este tipo de restricciones). También existe la posibilidad de tener las cosas bien organizadas, y por ejemplo tener «/blog/sitemaps.xml» que solo tenga links a «/blog/…» pero es más fácil equivocarse con estas URLs que obligando a que los archivos se queden en la raiz del dominio (sin usar carpetas).

Lo que solemos hacer nosotros para ordenarlos es (si realmente tenemos esta necesidad) jugar con el nombre de los archivos. Por ejemplo, imagina que tienes un sitemap destinado al blog de la tienda de madrid del site. Como no acabamos de fiarnos de meterlo en la carpeta «dominio.com/madrid/blog/sitemap.xml» porque algunas URLs podrían no estar en esta estructura lo que si podemos es emular algo parecido con en el nombre poniéndole por nombre por ejemplo: «/sitemap-dominio-com–madrid–blog.xml»

5. Google no solo admite sitemaps en XML, hay más formatos

Y es que el sitemap.xml es solo uno de los formatos admitidos (y el más completo y estándar, claro) pero hay otros que nos pueden ser muy muy útiles en otros casos. Puedes verlos todos en la documentación de Google sobre formatos de sitemap.

Podemos subir archivos sitemap.txt, formados por un archivo muy simple que tan solo contenga todas las URLs del site una detrás de otra cada una en una línea distinta. Google los lee igual y nos podemos evitar complejidades técnicas si tenemos prisa o trabajamos con el típico proyecto con recursos técnicos limitados… (ejem). Como sitemap básico funcionará igual, pero este sistema por supuesto no es el más recomendado por la sencilla razón de que perdemos muchas de las funcionalidades que veremos más adelante (dado precisamente a que solo indicamos URLs y nada más con ellos).

Otra opción aun menos conocida es que podemos Subir un RSS o Feed del site. Estos son archivos que se usan para sindicar el contenido, es decir, para que ciertas herramientas puedan ver las ultimas publicaciones de una plataforma y leerlas. Son archivos XML que solo tienen contenido y no diseño. Si nunca has visto ninguno puedes ver el de cualqueir blog en wordpress añadiendo «/rss» al final de su URL. POr ejemplo, este es el RSS de mi blog. Subir este tipo de archivos suele suponer una mejora en la velocidad de indexación de nuevo contenido. Son sitemaps bastante consultados que por lo general solo contienen 10 o 20 elementos y por lo tanto Google puede leerlso muy rápidamente.

6. Tenemos sitemaps de varios tipos no solo de URLs

Estamos acostumbrados a que los Sitemaps.xml se refieran a páginas HTML concretas pero en realidad pueden contener otros tipos de información. Google tiene especificados 4 tipos de sitemap entre los que destaca el estandar (URLs):

  • Estandar: https://www.sitemaps.org/index.html
  • Video: https://support.google.com/webmasters/answer/80471
  • Imagen: https://support.google.com/webmasters/answer/178636
  • Noticias: https://support.google.com/news/publisher/answer/74288

Por supuesto, cuando lo que queremos es indexar contenido multimedia (algo que no siempre os recomendaría) los sitemaps especializados en videos e imágenes pueden ser muy útiles. Los de noticias también son utiles aunque con la desparición de Google News (que vuelve a estar visible, todos lo hemos visto) puede parecer que no tienen sentido la verdad es que no se trabajan igual y deberían aprovecharse en sitios de noticias.

POr ultimo mencionar que incluso podemos mezclar estas tipologías de sitemaps creando archivos que contengan sitemap de URLs, imagenes, videos, lo-que-quieras a la vez… Yo no lo haría porque no ayuda a entender las cosas mejor pero existe esa posibilidad.

7. Muchos campos (que cuesta tiempo desarrollar) se ignoran muchas veces por Google (según ellos por no hacerlo bien)

Y aquí viene el gran dilema al trabajar con sitemaps… ¿ponemos todos los atributos o no?

Los sitemaps nos ofrecen 3 campos a añadir a la URL:

  • lastmod: fecha de ultimo cambio en la página
  • changeFreq: Cada cuanto tiempo aprox cambia el contenido de esta página.
  • Priority: de 0.1 a 1.0 y solo en relación a las páginas del propio sitemap, cuan importantes son unas y otras.

Sobre su interpretación tenemos históricamente mensajes muy contradictorios por parte de Google pero que a la que los lees te das cuenta de que todos tienen un hilo común. No voy a replicarlos porque son bastantes, pero os los resumo: por un lado nos dicen que se ignora la fecha de modificacion y la frecuencia porque nadie lo hacia bien, por otro que se ignora la prioridad porque no aportaba la información esperada… pero siempre, en cada comentario que nos hacen hay una coletilla: «en la mayor parte de los casos».

Al final todo esto significa que estas etiquetas bien gestionadas no se ignoran, pero que solemos gestionarlas mal y cuando eso sucede Google no les hace ni caso. Esto cuadra, casi en todos los aspectos es así: si Google no lo ve claro ignora tus etiquetados. Así que partamos de que si que podemos usarlas, pero solo para usarlas bien, no para hacer el bruto.

Os comento algunos ejemplos de mala gestión que harían que google ignorase estas etiquetas…

Sobre lastmod

  • lastmod cuando usamos generadores de sitemaps.xml nos lo ponen a la fecha de creación del sitemap, lo cual no tiene sentido y más aun cuando todas las urls tienen la misma fecha
  • lastmod tampoco tiene sentido cuando lo usamos para manipular al buscador. Google sabe cuando modificamos el contenido… si mentimos nos pilla
  • Por ultimo En contenidos donde la Fecha aparece en el html o incluso la tenemos marcada con schema no podemos esperar que si no son fechas iguales nos haga caso

¿Que hacer con esta directriz?

Pensemos en su utilidad de cara al SEO. Realmente incorporarlo tan solo nos sirve para indicar a Google que se está perdiendo una actualización en uno de nuestros contenidos. Esperamos con ello que al ver que su fecha de modificación es más reciente que la que el tiene en caché venga a ver el contenido antes. Por ese motivo yo os recomendaría lo siguiente:

  • Ni lo marquéis en páginas o sitemaps que no podéis garantizar que su fecha implique si o si la ultima revisión del contenido único de la página
  • Marquémoslo solo en páginas de contenido (un last mod en un listado es muy difícil de trabajar con seguridad)
  • Usémoslo solo si realmente hacemos reediciones en el contenido y nuestra reindexación es tan lenta que tenemos que ayudar a Google a darse cuenta de que lo hemos cambiado

Para todo lo demás creo que es preferible no usarlo a usarlo mal y que eso invalide toda la etiqueta al leer nuestos sitemaps.

ChangeFreq

Otra vez suele usarse muy mal esta etiqueta:

  • Muchos sitemaps usan el daily para todo esperando que así su contenido se revise más a menudo
  • Otros escriben incluso mal el texto, tan solo se permite especificado por la documentación
  • Y otros simplemente la lían mucho haciendo un etiquetado arbitrario que nada tiene que ver con la realidad del cambio del contenido

¿Cómo deberíamos usarlo?

  • Lo primero. Ni lo indiquemos si no estamos dispuestos a trabajarlo bien y de forma bien automatizada (esta etiqueta no nos ayuda en sitemaps.xml estáticos). Partamos de la idea de que si nos pilla mintiéndole a nuestro favor ignorará la etiqueta.
  • Aún así, en muchos casos esta directriz ni siquiera va a tener sentido. ¿Cada cuanto cambia un contenido? Lo correcto sería indicar «never» pero, ¿queremos decirle a Google eso? ¿y si nos hiciese caso y nunca la revisitase? Pero lo cierto es que un contenido puede no cambiar nunca y todo lo que no sea un «never» es mentir al buscador.
  • En listados muy dinámicos un «dialy» en contraposición a los «never» o «yearly» de las fichas haciendo más que evidente que queremos más indexación en estos listados dinámicos

En la práctica nosotros en IKAUE prácticamente nunca la indicamos porque son matices muy particulares y creemos poco en que las arañas vayan a cambiar su cola de indexación por esta directriz. Pero puesto a usarlo yo solo lo usaría en listados, para marcar diferencias entre los que añaden nuevos elementos constantemente (daily) y los que solo reciben nuevos elementos cada pocos dias (weekly), esperando así optimizar mejor nuestro crawl budget detectando mejor nuevos items en la web.

Priority

Como en las demás esta también suele usarse muy mal…

  • Los generadores automáticos de sitemaps nos marcan todo el site a priority «1.0» lo cual es como no decir nada
  • Muchos SEOs la intentan aprovechar para posicionar contenidos TOP que luego no se respaldan en absoluto por links, menús, autoridad ni por ninguna otra señal.
  • Otros intentan hacer cambios en sus sitemaps para provocar la reindexación de contenidos. Por ejemplo, tengo todo mi sitemap todo a 0.5 y cuando quiero que se reindexe un contenido cambio la prioridad de este a 1.0 esperando que esto provoque la visita de la araña. Esto no suele funcionar (aunque si lo que hacemos es subir otro sitemap nuevo a veces si)

¿como usar la directriz de priority?

Cuando no tenemos problemas de indexación el uso más lógico que podemos hacer del sitemap es ayudarnos a reforzar la estructura de la web marcando la importancia de cada una de nuestras webs. En estos sites subir el típico archivo de sitemaps donde todo el sitemap tiene priority «1.0» ya sabemos que es estúpido. Lo que tenemos es que aprovechar este campo para reforzar la estructura/arquitectura del site. La misma definición de menús, URLs, Breadcrumbs e inlinks, debería ser consecuente con los datos indicados en priority.

Lo que buscamos es que Google vea que nuestras prioridades si tienen sentido para que nos haga caso y asi ayudarle a matizar lo más importante. Así encontrar que la home y secciones principales tienen prioridad 1.0 y vamos bajando hasta encontrar los productos estrella en prioridad 0.7 o 0.6 puede tener sentido. Haciéndolo así no se nos permite colocar estos productos en máxima prioridad (mintiendo a Google) pero si al menos diferenciar los importantes de los que no lo son (por ejemplo marcando los importantes a 0.7 y los menos importantes a 0.5).

Hay que partir de nuestra deficnición de arquitectura web y luego hacer pequeñas modificaciones sin cosas demasiado drásticas que invaliden la directriz totalmente para Google.

8. Un Sitemap nos permite suplir otras etiquetas de indexación como hreflang o canonical (aunque no es igual de potente)

Y aqui viene otra utilidad secundaria de los sitemaps. Todos sabemos que el proyecto web perfecto no existe… Todos tienen uno, dos o incluso muchos problemas. Hay cosas que sencillamente resulta un problema etiquetar en ciertas web. Abordamos ya como solucionar problemas de indexación desde cabeceras o indexación desde el robots pero veamos dos posibilidades que si que nos aportan los sitemaps para suplir a etiquetas concretas.

Marcar los hreflang desde el sitemap

Los hreflang son una suerte de implementación en sites con orientación a varias regiones geográficas o simplemente idiomas. Su definición es en realidad sencilla: Desde cada página web debo indicar en su cabecera y mediante etiquetas <link rel=»alternate» hreflang /> sus urls equivalentes en otro idioma.

Esto que parece muy simple en la práctica si tu web por detrás no tiene estas equivalencias ya hechas (algo muy común en CMSs libres donde esta orientación multidioma no se había planeado desde un principio) o si las maquetas son especialmente rígidas puede ser un infierno para los programadores.

En estos casos debemos saber que contamos con otra posibilidad: indicar estas relaciones en los archivos sitemap en lugar de (o además de) en la web. Su uso es igual de simple: en cada <url/< del sitempa indicamos además del nodo <loc> varios nodos <xhtml:link/> con las equivalencias de esa URL con otros idiomas. El problema sigue siendo el mismo: debemos identificar en cada URL todas sus posibles traducciones pero al menos disponemos de otro lugar (muchas veces más programado a medida del SEO) donde hacer este trabajo.

Puedes ver cómo desarrollar estos sitemaps aquí, o simplemente guiarte por el ejemplo que te copio a continuación:



  
    http://www.midominio.com/como-hacer-sitemaps
    
    [... otras traducciones ...]
  
  [... otras urls ...]

Evitar canibalizaciones del contenido

Y este es un método que desde luego no es equivalente a una buena etiqueta canonical (de las que hablaremos en otro post) pero si que puede ayudarnos en ciertos momentos en los que tenemos canibalizaciones de contenido (entiéndase canibalizado como contenido duplicado interno en el cual uno posiciona por encima de otro haciendo a la segunda URL totalmente inútil).

En estos casos lo que solemos hacer es decidir cual de los dos contenidos queremos que sea el que se posicione y añadir una etiqueta canónica (si no un 301 directamente) desde las URLs secundarias a la principal. Pero sabemos que esto no es siembre fácil…

Sin embargo: ¿Sabías que ante duplicados internos Google escoge casi siempre la URL que esté en el sitemap.xml? Lo indican ellos mismos en su documentación, mencionando que es un posible sustituto de etiquetas canonicas. Para ello solo tenemos qu etner un sitemap bien hecho, en el que evitemos incluir ninguna etiqueta que tenga riesgo de ser canibalizada. Es decir, en estos casos en los que varias URLs tienen el mismo contenido o apuestan por la misma Keywrod nos basta con solo incluir la URL principal en el sitemap para que esta sea la que muestre Google en sus resultados. Salvo que por links recibidos nuestra elección de URL principal no tenga ningún sentido (por ejemplo: le indicamos una URL sin links internos dejando fuera a la URL que se enlaza desde todos los menús) Google nos hará caso.

No nos engañemos, esto no es como un canonical: No traspasa autoridad y ni siquiera tenemos garantías de que nos haga caso siempre (bueno, con los canonicals tampoco) pero es una vía secundaria que tener en cuenta cuando tenemos este tipo de limitaciones.

9. Los indices para sitemaps son lo mejor que puedes usar ¡Aprovechalos Siempre!

.

Dado que los Sitemaps.xml son finitos (tienen peso y URLs máximas) tuvieron que idear una forma por las que despiezarlos en distintos archivos. Para poder hacer eso existe un tipo de archivo sitemap de índice. Son archivos en los que podemos indicar otros archivos sitemap. Las ventajas son claras: subimos un único archivo y desde este controlamos todos los que ofrecemos realmente a Google automatizando su fragmentación.

Y es que al final intentar centralizar todo el sitemap en un único archivo tiene muchos riesgos:

  • Corremos el riesgo de pasarnos del tamaño máximo.
  • Nos cuesta mucho encontrar en el todas las URls
  • Nos cuesta auditar sus prioridades.

Lo mejor es que para cada concepto, sección, lo-que-sea de la web creemos un sitemap distinto y usemos estos índices para organizarlo todo.

Crear un índice es sencillo y está bien documentado en siteamps.org, tan solo tenemos que indicar una rama «sitemapindex» donde podemos incluir elementos «sitemap» que tienen su localización y de forma opcional su última modificación con «lastmod» (al que aplicaríamos los mismos comentarios que al lastmod de las URLs).



   
      http://www.midominio.com/sitemap1.xml
   
   
      http://www.midominio.com/sitemap2.xml
   

10. Esta es muy importante: Los sitemaps son la única forma de comprobar el porcentaje de indexación de nuestras URLS.

Uno de los mejores indicadores que nos dan los sitemaps cuando los subimos vía Google Search Console es el estado de indexación de la lista de URLS que les pasamos en ellos. Esto lo hace para cada sitemap: lo subimos y al poco tiempo ya nos dice para cada uno cuantas URLs contenía y de ellas cuantas ha indexado. Solo tendremos que dividir una cifra sobre la otra para saber el porcentaje de indexación de dicho sitemap.

Pensando un poco sobre esto no es difícil llegar a la conclusión de que no queremos subir sitemaps enormes a nuestro site: lo suyo es que subamos siempre un indice que apunte a una colección más o menos grande de sitemaps.xml parciales del site. ¿Cuantos? depende de cuanta información quieras realmente recoger.

Por cada sitemap.xml fragmentado que creemos, tendremos un nuevo grupo de URLs del que conocer el estado de su indexación. Así que a mayor cantidad de información que queramos saber sobre la indexación del site más deberíamos fragmentar los sitemaps para conocerla. Esta es una técnica medianamente conocida pero que aun sabiendola se usa poco y se aplica sin pensar demasiado en ella:

Os pongo dos ejemplos para que queden claro.

Imaginad que tenemos un blog del que vamos a subir los sitemaps.xml fragmentados en distintas piezas para conocer el estado de indexación de cada tipo de página. Una fragmentación básica nos haría crear los siguientes sitemaps:
– Home.xml
– categorías.xml
– tags.xml
– Posts.xml

Con esto podremos saber que porcentaje de cada tipo de página tenemos indexado. Seguramente si el blog tiene mucho tiempo y poco seo técnico nos encontraremos con que cada tipología de contenido tiene gran cantidad de URLs sin indexar.

Y esto esta bien saberlo pero si solo vemos este tipo de cosas no podremos accionarlo, no sabemos que hacer para mejorar estas situación y no tenemos nada que hacer con esta información. Este suele ser el problema.

Ahora pensemos en aplicar a nuestra fragmentación del sitemap una lógica SEO. Pensamos en cada tipología de página, cual puede ser su problemática de indexación. Por ejemplo, escogemos los posts, donde estamos viendo el mayor porcentaje de contenido no indexado, los analizamos y vemos que es probable que se trata de un problema de anigüedad: a mayor antigüedad del post más creemos que se habrá desindexado… Así que hacemos nuestra fragmentación del sitemap buscando obtener información justo por este criterio y en lugar de subir un único sitemap de post subimos la siguiente colección:

– posts-novedad.xml –> Indexación 90%
– post-ultimo-mes.xml –> Indexación 100%
– posts-2-meses.xml –> Indexación 98%
– post-3-6meses.xml –> Indexación 89%
– posts-7-12-meses.xml –> Indexación 50%
– post-1-2-anos.xml –> Indexación 55%
– posts-2-3-anos.xml –> Indexación 57%
Etc…

La cantidad de indexación de cada uno de estos sitemaps si que es un dato accionable. Puedo encontrarme con que a partir de los 6 meses empiezan a perder la indexación y descubrir que tengo problemas de rastreo profundos. O que los posts de hace más de 5 años siguen indexados pero los actuales no se indexan tan bien (demostrando un problema de autoridad y de calidad del contenido)…

Se pueden hacer muchas estrategias de este tipo. Incluso jugar a cambiar el patrón por el que dividimos estos sitemaps. Piensa por ejemplo en pasar screaming frog, sacar las URLs por distancia de rastreo desde la home y subir un sitemap temporal según distancia de rastreo para ver a partir de cuantos saltos empieza a sufrir la indexación. Sacamos el dato, lo accionamos y luego volvemos a usar los sitemaps de siempre…

Otra opción es simplemente hacer seguimiento, apuntar estos datos cada seemana y asi observar como mejora o empeora la indexación por zonas de la web.

11. Puedes alojar los sitemaps fuera de tu dominio

Alguno habrá arqueado la ceja al leer este título… Y es que esto es raro pero tiene grandisimas ventajas sobre todo si llevas el SEO desde fuera de la web (como freelance, agencia, consultoría, etc.). Nunca os recomendaría alojar el sitemap general de vuestro site en otro dominio distinto al del propio site pero para ciertas acciones y pruebas viene muy bien tener la posibilidad de poder ir haciendo subidas sin molestar a los desarrolladores de la web. Pensad solo en muchas de las posibilidades que hemos comentado en este post y veréis que tener un espacio donde no depender de IT para subir ciertos sitemaps bajo tu control te va a permitir realizar más acciones (o al menos de forma más rápida) de este tipo.

La idea es sencilla: a parte de los propios sitemaps de la web quiero tener la posibilidad de subirle sitemaps que no se alojen en ese dominio. ¿Dpnde se alojarán? Pues en un dominio mio, uno en el que no dependo de IT y puedo acelerar ciertas acciones mientras IT responde a las guías y funcionales que les hemos pasado.

Para esto hay varias opciones:

A. Usar los sitemaps para sites multiples

Esto está documentado en esta URL y basicamente nos permite subir el sitemap de un dominio de la forma normal, solo que indicándole dentro del sitemap URLs de otros dominios.

Para esto básicamente tenemos que hacer que el usuario que suba el sitemap.xml sea ADMIN del Google Search Console de los dos dominios. Así que en realidad nada impide que creemos un dominio tonto (sitemaps-seo.midominio.com) lo demos de alta en GSC y en el subamos nuestros propios sitemaps.xml para nuestros clientes, siempre y cuando nos hayan dado privilegios sobre sus propios GSCs.

B. Indicar el sitemap.xml en el robots.txt ya directamente apuntando a otro dominio

Este es otro recurso documentado incluso en la propia documenación documentación de los sitemaps.org. Ahi nos dicen que podemos incluir en la directriz «sitemap: » del archivo robots un sitemap sin que importe que se encuentre o no en el dominio indicado.

Es decir que si en midominio.com dispongo de un robots.txt que acaba con las siguientes lineas:

sitemap: http://midominio.com/sitemap-general.xml
sitemap: http://dominioAgenciaSeo.com/sitemap-agencia.xml

Leerá ambos. Si sumamos esto a que estos sitemaps pueden ser indices que controlan donde leer cada archivo ya tenemos un mecanismo similar al de Google Search Console.

Que todo esto tiene sus riesgos, por supuesto, pero bien hecho es una puerta nueva que no hay que desaprovechar solo porque nos de miedo usarla.

12. Puedes usar Sitemaps para alentar a las arañas a que visiten URLs que quieres que se miren (aunque no por ello que se indexen)

Por ultimo y con una utilidad muy práctica si lo ligamos al punto anterior (de subir sitemaps por tu cuenta) tenemos una vieja técnica que se basa en subir sitemaps.xml para forzar su rastreo. Es sabido que al ir haciendo actualizaciones de los sitemaps las URLs que ahí se contienen acaban tarde o temprando siendo visitadas, pero esto es por lo general aún más rápido (aunque tampoco va a ser inmediato) si lo que hacemos es subir sitemaps nuevos.

Así que tenemos una herramienta (la subida de nuevos sitemaps) que nos permite crearle a Google listas de URLs pendientes de rastrear y que nos puede venir muy bien sobretodo en ocasiones en las que por no ofrecer ya links a estas páginas o por tener un rastreo lento no nos acabamos de fiar del trabajo de las arañas.

Os listo algunos de estos casos:

  • En una migración dejar el sitemap antiguo o incluso, mejor aun, subir un nuevo el sitemap de URLs con 301 ayuda a que estas se lean antes y asegura que todas terminen siendo leidas
  • Lo mismo para 301. Después de arreglos masivos de errores 404 que han sido sustituidos por 301 una subida de sitemap con estas URLs ayuda a que las arañas las recojan y asimilen./li>
  • Ante una actualización de desindexación con meta-robots subir el sitemap también puede ayudar a agilizar su lectura
  • Subir un sitemap de URLs AMP en teoría no es estándar y no «es necesario» pero en algunos casos donde la indexación de páginas AMP se atasca nos ha resultado de mucha ayuda.
  • No es bueno crear errores en nuestros sitemaps pero para validar el bloqueo de URLs en grandes listados también podemos subir un sitemap con todas las URLs que deberían estar bloqueadas en el site y ver que efectivamente el validador nos da errores al tener estas bloqueadas.

Y bueno, en definitiva, nos ayuda a comprobar o intentar agilizar la indexación tras nuestras actualizaciones en la web. Siempre que queramos que las arañas pesen por sitios atípicos por los que normalmente tardarían en pasar una subida puede ponerlas en marcha, nunca será algo excesivamente rápido pero ayudará a que no se eternice.

Como decía, si unimos este punto además al anterior, por el cual podemos subirle a un cliente sitemaps.xml en nuestro propio dominio, tenemos un sistema de control de la indexación que no afecta al desarrollo de la web y que nos aportará en ciertos momentos el extra que necesitamos.

Conclusión

Los sitemaps son unos archivos muy poco mimados por gran cantidad de SEOs. Como son fáciles de definir y no arrojan grandes complicaciones más allá de conseguir el propio listado de URLs para muchos el trabajo queda ahí. Incluso como decíamos al principio es una zona que mucha gente acaba cuidando tan poco que hacen más mal que bien…

Sin embargo son una herramienta que trabajadas al detalle pueden ser un gran aliado tanto para mejorar nuestra indexación, para hacer un análisis de la indexación o para suplir distintas carencias técnicas del SEO de nuestro site.

El problema con estos archivos sigue siendo siempre el mismo: la base hay que programarla para que tenga sentido. Los desarrollos a medida no suelen haberlos tenido en cuenta y muchos CMS que los desarrollan mediante plugins al hacerlo de forma generica no acaban de ser lo que necesitamos. Solo tras una planificación y definición estratégica adecuadas empezamos a hacer autenticas virguerías con estos archivos. Hay muchos tipos de SEO y muchos estadios de evolución en una estrategia SEO, no creo que esto sea de lo primero a atacar (por complejo) pero si tengo clara una cosa: al hacer un sitemap debemos tomarnos nuestro tiempo y hacerlo bien. SI no vas a mimarlos, mejor no los uses.


8 respuestas a “12 cosas que deberías saber sobre los sitemaps.xml”

  1. Hola Iñaki! Me parece un gran artículo sobre los sitemaps, de hecho creo que nunca he visto un post donde se expliquen con tanto detalle todas sus posibilidades. Yo la verdad soy de esos que no le dan tanta importancia, lo uso como un apoyo para los robots pero no como algo determinante ya que Google nos decía que no es vinculante a la hora de tratar nuestro sitio. Por eso quiero preguntarte ¿resulta realmente efectivo para solucionar problemas tan conflictivos como la indexación de páginas multiidioma, sustituyendo a las etiquetas hreflang?

    • Funcionar funciona pero yo prefiero el marcado en página sobretodo para validar y tener controlada la situación de forma más evidente. Los usamos como paso previo si el desarrollo en HTML va a tardar

  2. Gran articulo, soy novato en el tema de los sitemaps y tengo una complicación, que no se si lo es, la verdad, te explico:

    Tengo la situación que uso 2 cms diferentes, uno para un ecommerce y otro para el blog. El ecommerce esta en el raiz y el blog en la url dominio/blog, y la pregunta es: ¿he de dejar el sitemap del blog en el directorio /blog o lo paso al raíz ( donde sea)? Ya se que es posible que la consulta sea de 1º, pero me lleva de cráneo. Gracias de antemano.

    • Hola cesar, El sitemap puede estar donde quieras mientras así se lo indiques a Google en GSC o en el robots.txt (tal y como explica el.articulo)

      La única limitación que hay es que ni puede afectar a nada por debajo de la carpeta en la que se encuentra. Es decir que si en /blog/sitemap.xml metes urls del blog no pasará nada malo. Tampoco pasará nada malo si pones urls al blog desde /sitemap.xml pero lo que no puedes hacer es poner urls a otras carpetas que no sean /blog en /blog/sitemap.xml

      Repasa si puedes estos puntos en el artículo y verás que se menciona todo esto.

  3. Hola Iñaki

    Primero que nada te felicito por tu post! es muy completo!.

    Quiero hacerte una consulta: para nuestro caso tenemos una especie de tienda ecommerce y generamos paginas nuevas todos los días. En ese caso la actualización del Sitemap debe ser diaria? Podría hacer un Sitemap solo con la estructura básica, ejemplo: Home, Tienda, Contacto? De esta manera dejo afuera las paginas de producto y me evitaría tener que actualizarlas diariamente.

    Desde ya muchas gracias Iñaki

    • Buenas Agustín

      Lo suyo en realidad no es que se «actualicen» diariamente sino que los sitemaps tiren directamente de base de datos, que los pidas cuando los pidas estén siempre actualizados.

      Que luego le quieres meter algo de caché para que no te sature el servidor, ok, pero yo no jugaria a generarlos a mano, deben ser programados.

      Luego sobre si separarlos o no ya se comenta en el post las ventajas que existen de seprarlo todo pero cuando realmente tienen más potencial es cuando contemplan todo tu site.

Responder a Luis Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *