PRIVACIDAD

Tus preferencias.

Rechazar no limita el acceso a la web. Cerrar sin guardar conserva tu decisión anterior.

Técnicas · siempre activas

Guardamos únicamente tu elección durante un máximo de 12 meses en este navegador.

Consultar proveedores, duración y transferencias

Rastreo

Sitemap XML: qué garantiza, formato, límites y errores

Qué hace y qué no hace un sitemap XML, cómo usar lastmod, qué ignora Google y cómo enviarlo y diagnosticarlo. Con el análisis de los sitemaps de mi web.

¿Quieres aplicarlo a tu web?Hablemos
ResumenQué es un sitemap y qué no garantiza
Puntos clave
  • Un sitemap es una sugerencia: Google dice que no garantiza que todas las URLs se rastreen e indexen, y que enviarlo es «solo una pista».
  • Cada archivo admite hasta 50.000 URLs o 50 MB sin comprimir; si te pasas, se divide y se envía un índice de sitemaps.
  • Google ignora priority y changefreq. Usa lastmod solo si es coherente y verificable, así que un lastmod falso es peor que ninguno.
  • Solo deben ir URLs canónicas, indexables y que respondan 200: nada de redirecciones, noindex ni 404.
  • Se envía desde el informe Sitemaps de Search Console o con una línea Sitemap: en robots.txt, y el informe te dice si hay errores de lectura.
  • Los sitemaps de mi web son correctos en lo básico, pero les falta lastmod fiable: lo detallo más abajo.

Muchas auditorías dan el sitemap por bueno porque «existe y Search Console lo lee». Eso solo prueba que el archivo se descarga y se entiende. No prueba que contenga las URLs correctas, que las fechas sirvan para algo ni que Google vaya a rastrear lo que listas.

Aquí cubro qué es y qué no garantiza un sitemap, el formato y los límites que dice Google, qué etiquetas cuentan, los índices y los sitemaps de imágenes, vídeo y noticias, cómo se envía y diagnostica, los errores más comunes y un análisis sin maquillar de los dos sitemaps de cristofercruz.net.

Cadena de cuatro pasos: URL en el sitemap, descubierta, rastreada e indexada, con los dos últimos marcados como no garantizados, y dos cajas con lo que el sitemap sí ayuda a hacer y lo que no garantiza.
El sitemap participa en el primer paso, el descubrimiento. Rastrear e indexar siguen dependiendo de Google.

Qué es un sitemap y qué no garantiza

Un sitemap es un archivo que lista las URLs de tu sitio que quieres que los buscadores conozcan, con datos opcionales como la fecha de modificación. Google admite tres formatos: XML, RSS/mRSS/Atom y texto plano, y declara que no tiene preferencia entre ellos. El XML es el que se usa casi siempre porque admite las extensiones de imagen, vídeo y noticias.

Su límite está en la propia documentación: un sitemap ayuda a encontrar URLs, pero «no garantiza» que todo lo que contiene se rastree y se indexe. Y al enviarlo se dice que es «solo una pista». Es decir, sirve para descubrir, no para forzar nada, y no arregla contenido flojo, duplicado o bloqueado. Tampoco lo trates como una palanca de presupuesto de rastreo: eso solo importa en sitios muy grandes.

Cuándo hace falta y cuándo no

Google lo plantea al revés de lo que se suele oír. Un sitemap te interesa si tu sitio es grande, si es nuevo y tiene pocos enlaces externos, o si tiene mucho contenido multimedia o aparece en Google News. Puede no hacer falta si el sitio es pequeño (la documentación habla de unas 500 páginas o menos), está bien enlazado internamente y no tienes vídeo, imágenes o noticias que quieras destacar.

Mi lectura práctica: en una web pequeña y bien enlazada el sitemap no es la palanca, pero cuesta poco, sirve como inventario de URLs indexables y te da el informe de Search Console. Lo mantengo igualmente, con la condición de que esté bien hecho.

Formato y límites que documenta Google

El mínimo es un urlset con el espacio de nombres correcto y, por cada página, una etiqueta url con su loc. Todo lo demás es opcional según el protocolo en sitemaps.org.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://ejemplo.com/pagina/</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
</urlset>
Bloque de código con un sitemap mínimo y tres tarjetas con los límites: 50.000 URLs por sitemap, 50 MB sin comprimir y 50.000 sitemaps por índice.
Estructura mínima de un sitemap y los tres techos que conviene recordar.
ReglaQué dice la documentación
Tamaño«Todos los formatos limitan un solo sitemap a 50 MB (sin comprimir) o 50.000 URLs»
CodificaciónUTF-8, con los valores de las etiquetas escapados como entidades
URLsAbsolutas y completas; Google las rastrea «exactamente como están listadas»
Longitud de locMenos de 2.048 caracteres (protocolo de sitemaps.org)
CompresiónSe permite gzip, pero el límite de 50 MB se aplica al archivo descomprimido
ÁmbitoSin envío por Search Console, un sitemap solo afecta a los descendientes de su directorio padre; en la raíz cubre todo el sitio

El escapado importa más de lo que parece. Una URL con parámetros contiene &, y en el XML tiene que ir como &amp;. Un ampersand sin escapar es una causa clásica de error de análisis.

lastmod, changefreq y priority

De las tres etiquetas opcionales, Google lo dice sin rodeos: «ignora los valores de priority y changefreq». Siguen en el protocolo de sitemaps.org (que las define como pistas y las limita a una prioridad relativa dentro del propio sitio), pero para Google no cuentan. No pierdas tiempo calculando prioridades.

lastmod sí se usa, con una condición: Google lo emplea si es coherente y verificable. La fecha debe reflejar la última actualización significativa de la página, no la fecha en que se generó el sitemap. El formato es W3C Datetime, y 2026-05-19 es válido.

Tres tarjetas: lastmod marcado como usado si es coherente y verificable, y changefreq y priority marcados como ignorados por Google.
Solo lastmod tiene efecto en Google, y solo si es fiable.

Cómo tener un lastmod fiable

  • Sácalo del dato real: la fecha de modificación del contenido en tu CMS o base de datos, no la fecha del sistema ni la del despliegue.
  • Cámbialo solo con cambios significativos. Corregir una coma o actualizar un pie de página común no lo es.
  • No pongas la misma fecha en todas las URLs. Si todas tienen el mismo día, no es información, es ruido.
  • Si no puedes garantizarlo, omítelo. Google no pide lastmod, y uno falso lo desacredita.

Un contraste sencillo: en el HTML, dateModified en los datos estructurados y lastmod en el sitemap deberían contar la misma historia. Si discrepan, Google tiene tres versiones de la misma fecha y ninguna merece confianza.

Sobre la relación con el 304: el protocolo aclara que lastmod es independiente de la cabecera If-Modified-Since y que cada buscador puede ponderarlas de forma distinta. Si te interesa esa parte, la expliqué en caché SEO.

Índices de sitemaps

Cuando superas los límites, divides el sitemap en varios y envías un archivo índice. Un índice puede tener hasta 50.000 etiquetas loc, y según Google puedes enviar hasta 500 índices por sitio en tu cuenta de Search Console. Los sitemaps referenciados tienen que estar en el directorio del índice o por debajo, y alojados en el mismo sitio, salvo que configures el envío entre sitios.

Un archivo sitemap_index.xml del que cuelgan tres sitemaps hijos: páginas, blog e imágenes, con una nota sobre su ubicación.
El índice apunta a los sitemaps hijos; cada uno respeta sus propios límites. Las cifras del dibujo son un ejemplo.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://ejemplo.com/sitemap-paginas.xml</loc>
    <lastmod>2026-05-19</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://ejemplo.com/sitemap-blog.xml</loc>
  </sitemap>
</sitemapindex>

Dividir no solo sirve para respetar el techo. Separar por tipo de contenido (páginas, blog, productos) hace que el informe de Search Console te dé una lectura por bloque: si el sitemap de productos tiene un 40 % de URLs excluidas y el del blog un 2 %, ya sabes dónde mirar. La documentación de Google no dice si un índice puede apuntar a otro índice, así que yo no lo hago.

Sitemaps de imágenes, vídeo y noticias

Son extensiones del formato XML. Cada una declara su espacio de nombres en urlset y se puede combinar con las demás en el mismo archivo, aunque Google avisa de que combinar extensiones aumenta mucho el tamaño y los límites siguen aplicándose.

Tres tarjetas: imágenes con hasta 1.000 por URL, vídeo con título, descripción, miniatura y ubicación obligatorios, y noticias con hasta 1.000 por sitemap y solo los últimos dos días.
Las tres extensiones y el dato que más se suele pasar por alto de cada una.
ExtensiónObligatorioLímites documentados
Imágenesimage:image e image:locHasta 1.000 imágenes por url. Admite imágenes en otro dominio si verificas ambos en Search Console
Vídeothumbnail_loc, title, description y content_loc o player_locDescripción de hasta 2.048 caracteres; duración de 1 a 28.800 segundos; hasta 32 etiquetas
Noticiasnews:news con publicación, idioma, fecha y títuloHasta 1.000 news:news por sitemap; solo artículos de los últimos dos días

Google ha retirado de su documentación de imágenes las etiquetas image:caption, image:geo_location, image:title e image:license, y de la de vídeo varias como video:category o video:price. Si tu generador aún las incluye, no te perjudican por sí mismas, pero tampoco aportan. En una web de servicios como la mía, sin vídeo propio ni noticias, solo valoraría el de imágenes si las imágenes fueran el negocio; antes iría la optimización de imágenes para SEO.

Una mención sobre hreflang: también se puede declarar en el sitemap con xhtml:link, y cada url debe listar todas las variantes, incluida ella misma. Esos elementos hijos no cuentan para el límite de URLs. El detalle de esa implementación lo trato en el artículo sobre hreflang y aquí no lo desarrollo.

Qué URLs incluir y cuáles no

La regla que aplico: el sitemap es la lista de URLs que quiero indexadas. Cualquier URL que tú mismo desaconsejas en otra señal es una contradicción, y eso incluye las que declaran un canonical hacia otra URL.

IncluirExcluir
URLs canónicas con código 200URLs que redirigen (lista el destino final)
Páginas indexables con contenido propioPáginas con noindex o bloqueadas por robots.txt
Una única versión de cada URL (https, host elegido)Variantes con parámetros, duplicadas o con otro canonical
URLs absolutas del mismo host que el sitemapErrores 404 o 5xx, páginas de resultados internos

Esto conecta con el renderizado: si una URL del sitemap depende de JavaScript para mostrar su contenido, comprueba que Google lo ve renderizado antes de dar por buena su inclusión.

Cómo enviarlo y cómo se diagnostica

Hay dos vías oficiales, y se pueden usar a la vez. La primera es una línea en el archivo robots.txt, en cualquier posición del archivo, con la ruta completa. Google la encuentra la siguiente vez que rastrea el robots.txt, y no hay límite de sitemaps en ese archivo.

Sitemap: https://ejemplo.com/sitemap.xml

La segunda es el informe Sitemaps de Search Console, que necesita permisos de propietario. El procedimiento que describe la ayuda es: publicas el sitemap, compruebas con una inspección de URL en vivo que Googlebot lo alcanza (la carga de página debe figurar como correcta), pegas la URL en el cuadro de nuevo sitemap y le das a enviar. También existe la API de Search Console para hacerlo por programa.

Cuatro pasos numerados: publicar el sitemap, probarlo con inspección de URL en vivo, enviarlo en el informe Sitemaps y revisar su estado.
El camino de envío: publicar, probar, enviar y revisar el estado.

Estados del informe

  • Correcto: el sitemap se cargó y se procesó sin errores.
  • Tiene errores: se pudo obtener, pero hay uno o más errores de análisis o de URLs.
  • No se pudo obtener: el archivo no se descargó. Las causas listadas incluyen bloqueo por robots.txt, una acción manual sin resolver, un 404 y problemas temporales del servidor.

Google obtiene el sitemap enseguida tras enviarlo, pero rastrear las URLs que contiene puede tardar, y no se rastrean necesariamente todas. Tras un fallo reintenta durante unos días. Para errores temporales, la ayuda sugiere reenviar solo si persisten pasadas varias horas. Y «Correcto» no significa que las URLs estén indexadas: eso se mira en el informe de indexación de páginas.

En mi flujo, el informe sirve para saber si el archivo se lee. Para saber qué pasa con las URLs cruzo el sitemap con las páginas indexadas y excluidas. Si quiero saber si Googlebot llega a pedirlas, lo miro con un análisis de logs.

Errores típicos y qué significan

Seis tarjetas con errores frecuentes: URLs que redirigen, noindex o 404, URLs relativas o de otro host, lastmod falso, bloqueo por robots.txt y más de 50.000 URLs.
Seis fallos que se repiten. Los cuatro primeros son de contenido del sitemap; los dos últimos, de acceso y tamaño.
Mensaje o síntomaCausa habitual según la ayuda de Google
URLs no accesibles / no seguidasCadenas de redirecciones o URLs relativas
URL no permitidaURLs por encima del directorio del sitemap, o de otro dominio o protocolo
URL no válida, fecha no válida, error de análisisCaracteres sin escapar o formato incorrecto
Demasiadas URLsMás de 50.000 en un archivo: divídelo y usa un índice
Error de tamaño de archivoMás de 50 MB sin comprimir
Vacío, formato no admitido o espacio de nombres incorrectoEstructura o cabecera mal formadas
Contiene URLs bloqueadas por robots.txtUna regla de robots.txt bloquea parte de lo listado

El que más veo en la práctica no genera ningún mensaje: un sitemap con URLs con noindex o que redirigen se lee sin errores y aun así envía señales contradictorias. Solo lo detectas cruzando el sitemap con un rastreo.

Cómo lo tengo en mi web: lo que hay y lo que falta

He revisado el código de cristofercruz.net. Hay dos sitemaps, ambos declarados en robots.txt con líneas Sitemap:: /sitemap.xml y /blog/sitemap.php. No hay un índice de sitemaps que los agrupe.

Dos tarjetas con los sitemaps de la web: sitemap.xml estático con 24 URLs y 10 con lastmod de la misma fecha, y blog/sitemap.php dinámico con 6 URLs sin lastmod; debajo, tres carencias.
Estado de mis dos sitemaps en el momento de escribir esto.
ArchivoQué incluyelastmod
/sitemap.xmlArchivo estático con 24 URLs: home, servicios (índice y doce páginas), herramientas, casos de éxito, ubicaciones y páginas locales, sobre mí, el listado del blog y contacto10 de 24, todas con la misma fecha (2026-10-06): las de ubicaciones y páginas locales
/blog/sitemap.phpGenerado en PHP a partir de los artículos publicados cuya fecha ya ha llegado: hoy, 6 URLsNinguna

Lo que hace bien: las URLs son absolutas, con https y el mismo host, el XML se genera con las entidades escapadas (htmlspecialchars) y el sitemap del blog se actualiza solo al publicar y no incluye artículos con fecha futura. El archivo estático lista las páginas que cuelgan del menú y de los servicios.

Lo que no hace bien, sin rodeos:

  • El lastmod no es fiable. Las diez fechas del sitemap estático son idénticas, lo que suena a una edición en bloque y no a una fecha por página. Las 14 URLs restantes y las del blog no tienen ninguna. Un lastmod parcial y uniforme no da a Google nada verificable.
  • Tengo el dato y no lo uso. Cada artículo tiene un date_modified en su post.json, pero la función que genera el sitemap del blog no lo expone, así que no sale en el XML. Es un arreglo pequeño.
  • El sitemap estático no tiene generador. No he encontrado ningún script en el código que lo cree, así que cualquier página fija nueva hay que añadirla a mano y es fácil olvidarla.
  • No hay índice ni sitemap de imágenes. Con 30 URLs no lo necesito para los límites. Lo del sitemap de imágenes es una decisión, no una carencia grave, pero hoy no lo uso.
  • Una carpeta del blog queda fuera. Existe /blog/google-io-2025/ y no aparece en ninguno de los dos sitemaps. No he comprobado si es intencionado.

Tampoco he verificado desde el código el estado del envío en Search Console: eso solo lo ve quien tiene el acceso a la propiedad. Lo que sí está en el repositorio es la declaración en robots.txt, que a efectos de descubrimiento es suficiente.

Cómo auditar un sitemap

  1. Abre el archivo y valida la forma. Respuesta 200, Content-Type XML, UTF-8, espacio de nombres correcto y entidades escapadas. Con curl -I lo ves en segundos.
  2. Cuenta URLs y peso. Lejos de 50.000 y 50 MB. Si te acercas, planifica el índice antes del error.
  3. Rastrea todas las URLs del sitemap con tu crawler y filtra las que no devuelven 200, tienen noindex, canonical a otra URL o están bloqueadas por robots.txt. Cada una es una contradicción.
  4. Compara sitemap y rastreo. Páginas indexables que no están en el sitemap, y URLs del sitemap huérfanas sin enlaces internos, un síntoma habitual de una arquitectura web SEO mal planteada.
  5. Revisa lastmod. ¿Hay fechas distintas? ¿Coinciden con la modificación real? ¿Cambian al desplegar sin que cambie el contenido?
  6. Lee el informe Sitemaps. Estado, última lectura, URLs descubiertas y errores. Después cruza con el informe de indexación de páginas.

Si Search Console marca «No se pudo obtener» con el archivo accesible en el navegador, prueba la inspección de URL en vivo sobre el sitemap y mira si una caché o un firewall están sirviendo algo distinto a Googlebot.

Auditoría SEO

Ver auditoría SEO

Preguntas frecuentes

¿Es obligatorio tener un sitemap XML?

No. Google indica que puede no hacer falta en sitios pequeños (alrededor de 500 páginas o menos) bien enlazados y sin mucho contenido multimedia. Aun así, es barato y te da un informe de diagnóstico.

¿Un sitemap hace que Google indexe mis páginas?

No. La documentación dice que no garantiza que todo lo listado se rastree e indexe. Ayuda a descubrir URLs, pero la indexación depende de la calidad, la accesibilidad y el resto de señales.

¿Sirven changefreq y priority?

Para Google no: afirma que ignora ambos valores. Puedes omitirlos sin consecuencias. El protocolo de sitemaps.org los mantiene como pistas, pero no hay compromiso de que otro buscador los use.

¿Cuántas URLs caben en un sitemap?

Hasta 50.000 URLs o 50 MB sin comprimir por archivo. Si superas alguno de los dos límites, divide en varios sitemaps y envía un índice, que admite hasta 50.000 sitemaps.

¿Debo incluir URLs con noindex o redirecciones?

No. El sitemap debe listar las URLs que quieres indexadas: canónicas, con 200 e indexables. Las redirecciones se sustituyen por su destino final y las páginas con noindex se sacan.

¿Hay que enviar el sitemap en Search Console si ya está en robots.txt?

No es obligatorio, porque Google lo encuentra al leer el robots.txt. Enviarlo en Search Console añade el informe con la última lectura y los errores, y por eso suelo hacer las dos cosas.

¿Un sitemap puede incluir URLs de otro dominio?

Por defecto no: las URLs deben estar en el mismo sitio y protocolo que el sitemap. Las imágenes sí pueden estar en otro dominio si verificas ambos en Search Console. El envío entre sitios es una configuración aparte.

Referencias

  1. Información general sobre los sitemaps Google Search Central
  2. Crear y enviar un sitemap Google Search Central
  3. Gestionar sitemaps grandes con un índice Google Search Central
  4. Sitemaps de imágenes Google Search Central
  5. Sitemaps de vídeo Google Search Central
  6. Sitemaps de Google Noticias Google Search Central
  7. Versiones localizadas de tu página (hreflang) Google Search Central
  8. Informe Sitemaps Ayuda de Search Console
  9. Protocolo de sitemaps XML sitemaps.org

Sigue leyendo

Rastreo

· 13 min

robots.txt: qué controla, qué no y cómo configurarlo bien

Qué bloquea robots.txt y qué no, cómo se leen los grupos y comodines, qué hacer con los bots de IA y el robots.txt real de mi web, línea a línea.

Leer el artículo: robots.txt: qué controla, qué no y cómo configurarlo bien
Metaetiquetas

· 13 min

Etiqueta canonical SEO: qué hace y cómo implementarla bien

El canonical es una sugerencia, no una orden. Métodos, casos reales, errores típicos y cómo lo genero yo en mi propia web.

Leer el artículo: Etiqueta canonical SEO: qué hace y cómo implementarla bien
Internacional

· 14 min

Hreflang: qué es, códigos, reciprocidad y errores típicos

Qué hace hreflang (no posiciona, intercambia la URL), cómo implementarlo en HTML, cabecera o sitemap, los errores que lo anulan y qué hago yo en mi web monolingüe.

Leer el artículo: Hreflang: qué es, códigos, reciprocidad y errores típicos

Tu próximo paso empieza con una conversación.

Cuéntame qué necesitas conseguir con tu web.

Hablemos de tu proyecto