- 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
priorityychangefreq. Usalastmodsolo si es coherente y verificable, así que unlastmodfalso es peor que ninguno. - Solo deben ir URLs canónicas, indexables y que respondan 200: nada de redirecciones,
noindexni 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
lastmodfiable: 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.

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>

| Regla | Qué dice la documentación |
|---|---|
| Tamaño | «Todos los formatos limitan un solo sitemap a 50 MB (sin comprimir) o 50.000 URLs» |
| Codificación | UTF-8, con los valores de las etiquetas escapados como entidades |
| URLs | Absolutas y completas; Google las rastrea «exactamente como están listadas» |
Longitud de loc | Menos de 2.048 caracteres (protocolo de sitemaps.org) |
| Compresión | Se permite gzip, pero el límite de 50 MB se aplica al archivo descomprimido |
| Ámbito | Sin 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 &. 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.

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.

<?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.

| Extensión | Obligatorio | Límites documentados |
|---|---|---|
| Imágenes | image:image e image:loc | Hasta 1.000 imágenes por url. Admite imágenes en otro dominio si verificas ambos en Search Console |
| Vídeo | thumbnail_loc, title, description y content_loc o player_loc | Descripción de hasta 2.048 caracteres; duración de 1 a 28.800 segundos; hasta 32 etiquetas |
| Noticias | news:news con publicación, idioma, fecha y título | Hasta 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.
| Incluir | Excluir |
|---|---|
| URLs canónicas con código 200 | URLs que redirigen (lista el destino final) |
| Páginas indexables con contenido propio | Pá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 sitemap | Errores 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.

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

| Mensaje o síntoma | Causa habitual según la ayuda de Google |
|---|---|
| URLs no accesibles / no seguidas | Cadenas de redirecciones o URLs relativas |
| URL no permitida | URLs por encima del directorio del sitemap, o de otro dominio o protocolo |
| URL no válida, fecha no válida, error de análisis | Caracteres sin escapar o formato incorrecto |
| Demasiadas URLs | Más de 50.000 en un archivo: divídelo y usa un índice |
| Error de tamaño de archivo | Más de 50 MB sin comprimir |
| Vacío, formato no admitido o espacio de nombres incorrecto | Estructura o cabecera mal formadas |
| Contiene URLs bloqueadas por robots.txt | Una 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.

| Archivo | Qué incluye | lastmod |
|---|---|---|
/sitemap.xml | Archivo 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 contacto | 10 de 24, todas con la misma fecha (2026-10-06): las de ubicaciones y páginas locales |
/blog/sitemap.php | Generado en PHP a partir de los artículos publicados cuya fecha ya ha llegado: hoy, 6 URLs | Ninguna |
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
lastmodno 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. Unlastmodparcial y uniforme no da a Google nada verificable. - Tengo el dato y no lo uso. Cada artículo tiene un
date_modifieden supost.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
- Abre el archivo y valida la forma. Respuesta 200,
Content-TypeXML, UTF-8, espacio de nombres correcto y entidades escapadas. Concurl -Ilo ves en segundos. - Cuenta URLs y peso. Lejos de 50.000 y 50 MB. Si te acercas, planifica el índice antes del error.
- 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. - 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.
- Revisa
lastmod. ¿Hay fechas distintas? ¿Coinciden con la modificación real? ¿Cambian al desplegar sin que cambie el contenido? - 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.
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
- Información general sobre los sitemaps Google Search Central
- Crear y enviar un sitemap Google Search Central
- Gestionar sitemaps grandes con un índice Google Search Central
- Sitemaps de imágenes Google Search Central
- Sitemaps de vídeo Google Search Central
- Sitemaps de Google Noticias Google Search Central
- Versiones localizadas de tu página (hreflang) Google Search Central
- Informe Sitemaps Ayuda de Search Console
- Protocolo de sitemaps XML sitemaps.org




