Sitemaps
Todo lo que necesitas saber acerca de cómo crear e interpretar un Sitemap

- Autor:
-
Carlos Sánchez
- Temática:
- Enlazado ,
- Internacional ,
- Rastreo
- Fecha de publicación:
- 2024-02-06
- Última revisión:
- 2024-03-27
Un Sitemap SEO será un archivo web con un listado de URLs donde le indicará a los motores de búsqueda cuales son las URLs relevantes.
Según el tipo de Sitemap, se pueden indicar más factores, como la última actualización, si esa URL contiene imágenes o vídeos relevantes, o incluso si tiene una versión de idioma o "regional" alternativa.
Los Sitemaps se recomiendan especialmente en webs grandes, con gran cantidad de archivos multimedia o con mal enlazado. Lo ideal con estos Sitemaps es automatizarlo, pues es complicado mantener actualizado el Sitemap de cualquier web mínimamente grande.
Como existen opciones tan sencillas como añadir un Sitemaps con las URLs principales en un archivo txt, o una implementación básica de xml y es algo que no hace daño al posicionamiento ni al rendimiento, yo personalmente recomiendo hacerlo siempre (en un claro orden de prioridad, por debajo de tareas más necesarias), ya que es bastante habitual que en una web, el enlazado externo/interno y la arquitectura no brillen por ser ejemplares.
Características generales de cualquier Sitemap
- Un Sitemap no mejora directamente el posicionamiento, sirve para favorecer el rastreo y la indexación.
- Un Sitemap no puede pesar más de 50MB ni incluir más de 50.000 URLs, de hecho, cuando el Sitemap adquiere un tamaño/peso considerable, se recomienda dividir entre distintos Sitemaps.
- Puedes mejorar el enlazado interno con un Sitemap HTML. No es exactamente lo que pide Google, pero favoreces el Rastreo y puedes pensar una estrategia para que cualquier usuario llegue a cualquier página en menos de 4 clicks como hace New York Times.
- Las URLs deben ser absolutas.
- Las URLs deben pertenecer al propio dominio.
- Es recomendable que los Sitemaps cuelguen del directorio Raiz, pues las URLs solo afectarán a las URLs descendientes del directorio donde se encuentra el Sitemap.
- Los Sitemaps deben estar codificados en UTF-8, así que cuidado con los caracteres especiales.
- Es recomendable añadir la URL de los Sitemaps más relevantes en el robots.txt para que todos los motores de búsqueda lo tomen en cuenta fácilmente. Es un estándar.
- Es recomendable añadirlo en la Google Search Console y en Bing Webmaster, para que lo tengan en cuenta cuanto antes.
- Evita en todo momento añadir URLs no indexables, bloqueadas por robots.txt o que su canonical apunte a otra página.
Es útil saber que no necesitas poner todas las URLs en un mismo Sitemap ni necesariamente lo tienes que hacer sólo para robots. Está genial que lo puedas segmentar en bloques para detectar errores y que sea útil y entendible para el ser humano. Aquí tienes un ejemplo de cómo sería el mío (para ver el código le puedes dar a click derecho y a "ver código fuente de la página", o si estás en el móvil añadir "view-source:" delante de la url).
Sitemap xml
Un Sitemap XML es el tipo de Sitemap más completo, ya que nos permite ofrecerle a Google un montón de información sobre las características de las URLs que le queremos indicar al motor de búsqueda como indexables.
Sitemap Básico
En un Sitemap de XML básico simplemente nos tenemos que centrar en poner las URLs de acuerdo a la semántica que tienen los Sitemaps pensados para SEO.
En una web con un alfabeto ordinario debemos iniciar siempre con este código en el archivo .xml para indicar el tipo de escritura:
<?xml version="1.0" encoding="UTF-8"?>
Explicado esto, muestro un ejemplo de un sitemap básico y estándar, pondré solo una URL para que se vean y aprecien las características:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Si quieres añadirle un estilo chulo, puedes usar el mío -->
<?xml-stylesheet href="https://carlossanchezdonate.com/wp-content/themes/sanchezdonate/core/css/stylesheet.xsl" type="text/xsl"?>
<!-- hay que ponerle el atributo correcto en urlset, con el xmlns correcto, para un sitemap simple nos vale:-->
<urlset
xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
>
<url>
<loc>https://carlossanchezdonate.com/</loc>
<lastmod>2023-05-24</lastmod>
</url>
</urlset>
Atributos
- urlset: El urlset es una etiqueta que va a servir para indicar que "librerías" de sitemaps.org vamos a emplear. Para un Sitemap básico poner en el artibuto xmlns la url https://www.sitemaps.org/schemas/sitemap/0.9 es suficiente.
- url: Indica todos los atributos que vas a añadir por cada URL del sitemap. En este caso solo una.
- loc: En loc indicamos la URL de la página que podemos poner. Esta página debe ser siempre indexable y con una self-canonical.
- lastmod: Este atributo es bastante útil, pues al nos permite indicar a Google cual ha sido la última fecha de modificación de dicha página.
El atributo lastmod debemos utilizarlo con cuidado, ya que desde junio de 2023 hacen énfasis en utilizar utilizar el lastmod solo cuando haya cambios significativos en la página.
El resto de atributos como changefreq o priority son irrelevantes, ya que Google no los lee y pueden haces más pesada la página.
Sitemap de imágenes
El resto de sitemaps específicos en realidad son como una extensión de un Sitemap básico, pero que se le añade la "librería" de imágenes, con el atributo y url tal cual que pongo en el ejemplo, y con las etiquetas correspondientes dentro de <url>.
Lo que se hace con añadir imágenes en un sitemaps es decir las imágenes importantes que hay en una URL.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Si quieres añadirle un estilo chulo, puedes usar el mío -->
<?xml-stylesheet href="https://carlossanchezdonate.com/wp-content/themes/sanchezdonate/core/css/stylesheet.xsl" type="text/xsl"?>
<!-- hay que ponerle el atributo correcto en urlset, con el xmlns correcto, para un sitemap simple nos vale:-->
<urlset
xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
>
<url>
<loc>https://master-testing.com/</loc>
<lastmod>2023-05-24</lastmod>
<image:image>
<image:loc>https://carlossanchezdonate.com/wp-content/themes/sanchezdonate/images/sanchez-white-seo.svg</image:loc>
</image:image>
</url>
</urlset>
Adjunto un ejemplo de Sitemap de imágenes que puedes ver haciendo click derecho y señalando a "ver código fuente".
Atributos
- image:image: Dentro de esta etiqueta pondremos todas las etiquetas válidas dentro de una imagen.
- image:loc: Si loc es la url de una página, image:loc por lógica es la url de una imagen.
El resto de atributos existentes para un sitemap de imágenes específicos de imágenes están obsoletos desde el 6 de mayo de 2022.
Sitemap de vídeo
No es necesario incluir el sitemap de imágenes para incluir el de vídeo. Una extensión no depende de otra.
Este tipo de Sitemap tiene sentido en webs que utilizan muchos vídeos como las webs de canales de televisión. Es recomendable especialmente señalar las URLs donde la característica principal es el vídeo y combinarlo con un dato estructurado de video.
Recomendaciones para un sitemap de video:
- Incluir vídeos que estén en el viewport de la página al entrar.
- No incluir vídeos que no tengan relación con el texto del contenido.
- El video debe ser accesible y rastreable.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Si quieres añadirle un estilo chulo, puedes usar el mío -->
<?xml-stylesheet href="https://carlossanchezdonate.com/wp-content/themes/sanchezdonate/core/css/stylesheet.xsl" type="text/xsl"?>
<!-- hay que ponerle el atributo correcto en urlset, con el xmlns correcto, para un sitemap simple nos vale:-->
<urlset
xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
>
<url>
<loc>https://master-testing.com/</loc>
<lastmod>2023-05-24</lastmod>
<image:image>
<image:loc>https://carlossanchezdonate.com/wp-content/themes/sanchezdonate/images/sanchez-white-seo.svg</image:loc>
</image:image>
<video:video>
<video:thumbnail_loc>https://i.ytimg.com/vi_webp/f5-07hStg4A/maxresdefault.webp</video:thumbnail_loc>
<video:title>Cookies y Cache en el SEO</video:title>
<video:description>Descubrir que son las cookies y la cache, como afectan a una web y cómo utilizarlas a nuestro favor en el SEO</video:description>
<video:player_loc>https://www.youtube.com/embed/f5-07hStg4A</video:player_loc>
<!-- Etiquetas opcionales para vídeo -->
<video:duration>5198</video:duration>
<video:publication_date>2023-05-24</video:publication_date>
<video:family_friendly>yes</video:family_friendly>
<video:rating>5.0</video:rating>
<video:view_count>3000</video:view_count>
<video:restriction relationship="allow">ES MX US</video:restriction>
<video:platform relationship="allow">mobile</video:platform>
<video:requires_subscription>yes</video:requires_subscription>
<video:uploader>Carlos Sánchez</video:uploader>
<video:live>no</video:live>
<video:tag>cookies, cache, servidores, wpo, seo, seo tecnico</video:tag>
</video:video>
</url>
</urlset>
Atributos obligatorios
En la documentación oficial está el detalle de todos y cada uno de estos atributos.
Como se puede observar, hay un montón de atributos que son necesarios para que el sitemap de vídeos funcionen.
- video:video
- video:thumbnail_loc
- video:title
- video:description
- video:content_loc
- video:player_loc
Atributos opcionales
- video:duration
- video:expirtation_date
- video:rating
- video:view_count
- video:publication_date
- video:family_friendly
- video:restriction
- video:platform
- video:requires_subscription
- video:uploader
- video:live
- video:tag
Sitemap de Noticias
Los Sitemaps de noticias son más complicados de implementar de una forma correcta, es por este motivo que recomiendo leerse las instrucciones con calma. No obstante este tipo de Sitemaps son muy rastreables por Google en el sentido de que es una de las formas más rápidas de indexación.
La forma más rápida de indexar sería el API indexing, pero está recomendada sólo para vídeos de streaming y publicaciones de empleos, es decir, para "indexaciones fugaces", por lo que aplicar la implementación de API Indexing podría considerarse Black-hat ya que debe tener dichos datos estructurados.
En conclusión, la forma más rápida/eficiente de indexar una noticia o publicación además del inspector de elementos de Search Console, sería por un Sitemap de Noticias.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Si quieres añadirle un estilo chulo, puedes usar el mío -->
<?xml-stylesheet href="https://carlossanchezdonate.com/wp-content/themes/sanchezdonate/core/css/stylesheet.xsl" type="text/xsl"?>
<!-- hay que ponerle el atributo correcto en urlset, con el xmlns correcto, para un sitemap simple nos vale:-->
<urlset
xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
>
<url>
<loc>https://master-testing.com/</loc>
<lastmod>2023-05-24</lastmod>
<image:image>
<image:loc>https://carlossanchezdonate.com/wp-content/themes/sanchezdonate/images/sanchez-white-seo.svg</image:loc>
</image:image>
<video:video>
<video:thumbnail_loc>https://i.ytimg.com/vi_webp/f5-07hStg4A/maxresdefault.webp</video:thumbnail_loc>
<video:title>Cookies y Cache en el SEO</video:title>
<video:description>Descubrir que son las cookies y la cache, como afectan a una web y cómo utilizarlas a nuestro favor en el SEO</video:description>
<video:player_loc>https://www.youtube.com/embed/f5-07hStg4A</video:player_loc>
<!-- Etiquetas opcionales para vídeo -->
<video:duration>5198</video:duration>
<video:publication_date>2023-05-24</video:publication_date>
<video:family_friendly>yes</video:family_friendly>
<video:rating>5.0</video:rating>
<video:view_count>3000</video:view_count>
<video:restriction relationship="allow">ES MX US</video:restriction>
<video:platform relationship="allow">mobile</video:platform>
<video:requires_subscription>yes</video:requires_subscription>
<video:uploader>Carlos Sánchez</video:uploader>
<video:live>no</video:live>
<video:tag>cookies, cache, servidores, wpo, seo, seo tecnico</video:tag>
</video:video>
<news:news>
<news:publication>
<news:name>El equivalente al h1</news:name>
<news:language>es</news:language>
</news:publication>
<news:publication_date>2023-05-24</news:publication_date>
<news:title>Inventarnos otro title o copiar el que hay</news:title>
</news:news>
</url>
</urlset>
Atributos obligatorios:
Para que un sitemap de noticias sea efectivo debe tener estas etiquetas de forma obligatoria.
- news:news
- news:publication
- news:name
- news:language
- news:language
- news:publication_date
- news:title
Un sitemap de noticias debe actualizar con nuevos artículos a medida que se vayan publicando. La URL en este sitemap específico tiene más sentido que en ninguno que la URL sea estática.
Los artículos deben tener como máximo 2 días de antigüedad, cuando pase ese periodo, deben retirarse las URLs del sitemap o eliminarse las etiquetas y subetiquetas pertenecientes a <news:news>
Sitemap Index
El sitemap index es un sitemap de Sitemaps, como hay una restricción de peso y enlaces, es ideal cuando se tienen webs largas. A mi también me suele gustar para dividir distintas secciones y a la hora de tenerlo automatizado, tener los sitemaps con cierto orden. Para además tener una mayor facilidad a la hora de detección de errores.
Así se vería un Sitemap Index:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="wp-content/themes/sanchezdonate/core/css/stylesheet.xsl" type="text/xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://carlossanchezdonate.com/sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>https://carlossanchezdonate.com/sitemap-posts.xml</loc>
</sitemap>
</sitemapindex>
Sitemap de idiomas
Si deseas implementar un Sitemap de idiomas, debes tener conocimiento acerca de como funcionan los hreflang. Pues además de apuntar a las distintas versiones de idiomas, es importante que se mencionen como autoreferencia y tener los conceptos claros, como en qué consiste el x-default.
Recordando las directrices que son común a todos los métodos de implementación. Tenemos que tener en cuenta que esta sería la solución más práctica en un sistema de páginas de distintos idiomas con diferentes dominios e incluso servidores, ya que su mantenimiento e implementación sería mucho más sencillo que hacerlo por medio de metaetiquetas o servidores.
Esto se debe a que solo habría que sustituir los archivos xml y consistiría en comprobar que coinciden en que son versiones alternativas por cada URL en los distintos dominios.
No todas las URLs tienen por qué tener una versión alternativa, pero por cuestiones de seguridad, Google solo tendrá en cuenta un hreflang cuando este se indica desde las diferentes versiones.
Así es como funcionan los hreflangs
Cuando cuelga del mismo dominio
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://hreflang.test/</loc>
<xhtml:link
rel="alternate"
hreflang="es"
href="http://hreflang.test/es"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://hreflang.test/"/>
</url>
<url>
<loc>http://hreflang.test/es</loc>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://hreflang.test/"/>
<xhtml:link
rel="alternate"
hreflang="es"
href="http://hreflang.test/es"/>
</url>
</urlset>
Cuando son distintos dominios
Como mencionaba este es el caso más práctico, entonces cada archivo xml tiene que estar en su versión de idioma. Aquí pongo un ejemplo básico de cómo funcionaría:
Formato español
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://hreflangtest.es</loc>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://hreflangtest.uk/"/>
<xhtml:link
rel="alternate"
hreflang="es"
href="http://hreflangtest.es"/>
</url>
</urlset>
Formato en el dominio inglés
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://hreflangtest.uk/</loc>
<xhtml:link
rel="alternate"
hreflang="en"
href="http://hreflangtest.uk/"/>
<xhtml:link
rel="alternate"
hreflang="es"
href="http://hreflangtest.es"/>
</url>
</urlset>
Sitemap TXT
En el caso de que no te quieras complicar la vida, siempre puedes crear un archivo .txt (que no se llame robots por favor) y ponerlo en la carpeta root.
Este Sitemap ofrece muy poca personalización, pero si que permite añadir un listado de URLs simple con las páginas más importantes de la web.
Esto es bastante útil como parche mientras se programa el Sitemap bueno para evitar pérdida de tiempo por su facil manejo. Pero no es escalable ni eficiente a largo plazo para proyectos grandes.
Sitemap Feed
Si tienes un blog con RSS, MRSS o Atom 1.0, tu feed vale como Sitemap. La ventaja que Google acepte este formato es que la mayoría de CMS lo generan de forma automática y relativamente bien. Además los artículos de una web mayoritariamente son indexables. Así que para una web sencilla es una tremenda opción para tener un Sitemap totalmente automatizado de forma natural sin necesidad de plugins (un sitemap de posts).
Recuerda no ser un gran genio y bloquear el /feed/ por medio del robots.txt como recomiendan la mayoría de negligentes desinformadores si lo que pretendes es usar este sistema.
Automatizar Sitemaps
Como podrás ver, parecen complejos de actualizar y hacerlo de forma eficiente, especialmente el sitemap de noticias.
Pero por muy complejos que parezcan manualmente, si se programan y automatizan, se convierte en un proceso bastante sencillo, personalizado y escalable.
Es decir, lo ideal es hacer la plantilla y automatizarlo, de forma que tu web lo procese cada vez que se reciba una actualización.
Para hacer esto o aprender a mejorarlo estéticamente, no puedo explicarlo en un solo post. Pero si en el máster de SEO Técnico. Así que si quieres volverte un experto en Sitemaps no lo dudes.
Bibiliografía
Te falta mi máster. Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de WEB
¡Accede al Máster de SEO Técnico!