¿Qué es un sitemap XML?
Vamos a empezar por el principio.
Un sitemap XML es un fichero con la lista de URLs de tu web que quieres que rastreen Googlebot y compañía. Así es como se ve uno a pelo:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
</url>
<url>
<loc>https://example.com/blog/</loc>
</url>
</urlset> El sitemap no sustituye al enlazado interno. Lo que hace es darle a Google un atajo para descubrir páginas nuevas y ver cuáles han cambiado desde su última visita.
¿Lo necesito?
Depende del tamaño de tu web.
Si tienes 20 páginas bien enlazadas, Google las va a encontrar igual. Aun así te recomiendo tenerlo, porque en Search Console te dirá cuántas de esas URLs tiene indexadas.
Donde sí marca la diferencia es en estos casos:
- Webs con miles de páginas o que crecen cada día: ecommerce, medios, directorios, SEO programático…
- Páginas recién publicadas o con pocos enlaces internos.
- Migraciones, cuando quieres que Google se entere cuanto antes de las URLs nuevas.
- CMS que no generan sitemap o que lo llenan de URLs que no quieres indexar.
¿Cómo funciona el generador?
Esta herramienta vivía antes en sitemapgenerator.xyz. La he traído a mi web y la he rehecho para que todo ocurra en tu navegador, así que tus URLs no pasan por ningún servidor.
Son tres pasos:
- Saca las URLs. Lo más rápido es pasar Screaming Frog, filtrar por indexables y exportar. También te vale una exportación del CMS o una query a la base de datos.
- Pégalas o sube el archivo. Si son pocas (hasta unas 10.000), pégalas en la caja. Si son más, sube un .txt con una URL por línea o directamente el .csv del crawler: el generador busca la columna de URLs y pasa del resto.
- Dale a generar y descarga. Si sale un solo sitemap te bajas el .xml. Si salen varios, te los llevas en un ZIP.
Por el camino quita duplicados, escapa los caracteres especiales y te enseña las líneas que ha descartado. Lo de
escapar no es una tontería: un & sin escapar rompe el sitemap entero y Search
Console te lo marca como error.
¿Qué pasa si tengo más de 50.000 URLs?
Cada sitemap admite como máximo 50.000 URLs y 50 MB sin comprimir. Si te pasas de cualquiera de los dos, el generador trocea la lista y crea un índice que enlaza a todos los trozos.
Imagina que tienes un millón de URLs. Te llevarás esto:
sitemap-index.xml
sitemap-1.xml
sitemap-2.xml
...
sitemap-20.xml
El índice apunta a cada sitemap en la raíz de tu dominio (https://tudominio.com/sitemap-1.xml), así
que sube todos los ficheros ahí. Después envía solo el índice a Search Console y Google se encarga del resto.
¿Y si trabajo con varios dominios?
Un sitemap solo puede llevar URLs de su propio host, así que el generador las agrupa por dominio sin que tengas que tocar nada.
Si mezclas URLs de example.com y example.es, el ZIP queda así:
example.com/
sitemap-index.xml
sitemap-1.xml
sitemap-2.xml
example.es/
sitemap.xml ¿Y si quiero juntar subdominios?
También se puede. Abre los ajustes avanzados y cambia la RegExp de agrupación, que por defecto es .*
(un grupo por host).
Si tienes www.example.com, m.example.com y blog.example.com y los quieres en el mismo sitemap, cambia
.* por example\..*.
Ojo con esto: Google solo acepta URLs de otros hosts en un sitemap si los tienes todos verificados en Search Console o si declaras el sitemap en el robots.txt de cada uno.
¿Cómo se lo envío a Google?
Una vez descargado, te quedan cuatro pasos:
- Sube el fichero a la raíz:
https://tudominio.com/sitemap.xml. - Añade esta línea al robots.txt:
Sitemap: https://tudominio.com/sitemap.xml - En Search Console, ve a Indexación › Sitemaps, pega la URL y dale a Enviar.
- Haz lo mismo en Bing Webmaster Tools, que de paso alimenta a Copilot y DuckDuckGo.
A los pocos días el informe de Sitemaps te dirá cuántas URLs ha descubierto Google y cuántas ha indexado. Si la diferencia es grande, ya tienes por dónde empezar la siguiente auditoría.
¿Qué URLs meto en el sitemap?
Solo las que quieres ver en Google. Es decir, URLs:
- Que devuelvan un 200, sin redirecciones.
- Canónicas, sin parámetros de tracking ni versiones duplicadas.
- Sin
noindexy sin bloquear por robots.txt.
Cada URL rota o redirigida que metes le dice a Google que tu sitemap no es fiable, y con el tiempo le hace menos caso. Por eso te recomiendo pasar el crawler antes y quedarte solo con las indexables.
¿Y lastmod, priority y changefreq?
Google pasa de priority y changefreq, así que el generador ni los pone.
lastmod es otra historia. Google sí lo usa, pero solo cuando la fecha refleja un cambio real del
contenido. Si le pones la fecha de hoy a páginas que llevan meses igual, aprenderá a ignorarla en tu web.
Mi consejo: marca la opción solo si todas las URLs de la lista han cambiado hoy. Si no, deja que tu CMS ponga las fechas página a página.
Y eso es todo. Si te ha sido útil, pásasela a quien ande peleándose con sitemaps 🙂