Mapa del sitio XML

Qué es un mapa del sitio XML, su anatomía, las etiquetas ignoradas (priority/changefreq), lastmod preciso, los límites de 50 000/50MB, hreflang en mapas del sitio y cómo enviar uno.

Publicado por primera vez: 22 jun 2026 · Última actualización: 3 ago 2026 · Avanzado
Idiomas
1 señal de evidencia en esta página

Un mapa del sitio XML es un archivo UTF-8 que enumera las URL canónicas e indexables que deseas que los motores de búsqueda conozcan, cada una en un bloque <url> con un <loc> obligatorio y un <lastmod> opcional. Ayuda a los motores a descubrir URL pero no garantiza la indexación; su beneficio real es el diagnóstico de enviadas frente a indexadas en Search Console. Google ignora <priority> y <changefreq>, y usa <lastmod> solo cuando es verificablemente preciso (actualizaciones significativas, no un 'hoy' genérico). Un mapa del sitio tiene un límite de 50 000 URL o 50MB sin comprimir; más allá de eso, divides los archivos y los referencias desde un índice de mapa del sitio. Incluye solo URL canónicas, indexables y con estado 200; omitir una URL del mapa del sitio no es lo mismo que no indexarla. Los mapas del sitio también son el lugar más fácil para gestionar hreflang a escala. Referéncialo en robots.txt y envíalo en Search Console y Bing Webmaster Tools.

TL;DR — Un sitemap XML es un archivo UTF-8 de URLs <loc> canónicas e indexables, cada una opcionalmente con un <lastmod>. Ayuda al descubrimiento, no a la indexación — el beneficio es la señal de enviadas vs. indexadas en Search Console. Google ignora <priority> y <changefreq> y usa <lastmod> solo cuando es verificablemente preciso (actualizaciones significativas, nunca un “hoy” genérico). Un archivo tiene un límite de 50 000 URLs o 50 MB sin comprimir — más allá de eso, divide y usa un índice de sitemap. Incluye solo URLs 200, canónicas e indexables; excluir una URL no es lo mismo que noindexarla. XML no es el único formato aceptado (RSS/Atom/txt también funcionan), y los sitemaps son el lugar más fácil para gestionar hreflang a escala — aunque esas anotaciones se publican con un retraso, no instantáneamente. Referéncialo en robots.txt y envíalo en Search Console + Bing Webmaster Tools.

Evidence for this claim The XML sitemap protocol lists canonical URL locations and optional metadata, with limits of 50,000 URLs and 50 MB uncompressed per sitemap. Scope: Sitemaps protocol and current Google-supported limits. Confidence: high · Verified: Sitemaps XML format Evidence for this claim Google treats sitemaps as discovery hints rather than guarantees and supports submission through Search Console or robots.txt references. Scope: Current Google sitemap behavior and submission methods. Confidence: high · Verified: Google Search Central: Build and submit a sitemap

Qué es realmente un sitemap XML

Un sitemap XML es un archivo, escrito según el protocolo sitemaps.org 0.9, que enumera las URLs de tu sitio que quieres que los motores conozcan. La propia definición de Google: “A sitemap is a file where you provide information about the pages, videos, and other files on your site, and the relationships between them.” (traducción) «Un sitemap es un archivo donde proporcionas información sobre las páginas, videos y otros archivos de tu sitio, y las relaciones entre ellos.» Es una ayuda de descubrimiento y un diagnóstico de cobertura — explícitamente no una garantía: “A sitemap helps search engines discover URLs on your site, but it doesn’t guarantee that all the items in your sitemap will be crawled and indexed.” (traducción) «Un sitemap ayuda a los motores de búsqueda a descubrir URLs en tu sitio, pero no garantiza que todos los elementos de tu sitemap serán rastreados e indexados.»

Ese enfoque importa, porque es donde se malgasta mucho esfuerzo. El sitemap no es una palanca de posicionamiento ni un comando de indexación. Aquí tienes un ejemplo mínimo anotado:

<?xml version="1.0" encoding="UTF-8"?>            <!-- XML declaration; UTF-8 -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">  <!-- root + namespace -->
  <url>                                           <!-- one entry per page -->
    <loc>https://www.example.com/foo.html</loc>   <!-- required: absolute URL -->
    <lastmod>2026-06-04</lastmod>                 <!-- optional: last significant change -->
  </url>
</urlset>

Anatomía

  • La declaración XML<?xml version="1.0" encoding="UTF-8"?>. Google es inequívoco aquí: “The sitemap file must be UTF-8 encoded.” (traducción) «El archivo de sitemap debe estar codificado en UTF-8.» Si te equivocas con la codificación, los caracteres especiales se rompen.
  • <urlset> + espacio de nombres — el elemento raíz, con xmlns="http://www.sitemaps.org/schemas/sitemap/0.9". El espacio de nombres es lo que le dice al analizador que esto es un sitemap; un espacio de nombres incorrecto o ausente es un error común en Search Console.
  • <url> — un bloque por página.
  • <loc> — obligatorio. “Use fully-qualified, absolute URLs in your sitemaps” (traducción) «Usa URLs absolutas y completamente calificadas en tus sitemaps» — no rutas relativas, y por debajo de ~2 048 caracteres. Todos los valores deben estar escapados como entidades: & se convierte en &amp;, ' se convierte en &apos;, " se convierte en &quot;, > se convierte en &gt;, y un menor que literal se convierte en &lt;.
  • <lastmod> — opcional; la fecha en que la página cambió significativamente por última vez (más sobre la regla de honestidad abajo).
Evidence for this claim Each loc must be a fully qualified absolute URL and XML special characters must be entity escaped. Scope: XML/HTTP sitemap generation, hosting and submission Confidence: high · Verified: Build and submit a sitemap

La verdad sobre las etiquetas ignoradas

Esto es lo más desactualizado en la mayoría de los tutoriales de sitemaps. Dos etiquetas heredadas — <priority> y <changefreq> — son ignoradas por Google. Gary Illyes llamó a priority “essentially a bag of noise,” (traducción) «esencialmente una bolsa de ruido», y John Mueller ha dicho que priority y change frequency “doesn’t really play that much of a role with Sitemaps anymore.” (traducción) «ya no juegan un papel tan importante con los Sitemaps.» Bing ha confirmado lo mismo: changefreq y priority ya no afectan su rastreo ni su posicionamiento. Puedes dejarlas (no hacen daño) o eliminarlas — simplemente no hacen nada.

<lastmod> es diferente — no lo mezcles con las etiquetas ignoradas. Google usa <lastmod>, pero solo cuando confía en él, y esa confianza es aproximadamente binaria: o Google cree en tus fechas o no. La regla es que la fecha debería reflejar un cambio significativo“an update to the main content, the structured data, or links on the page is generally considered significant, however an update to the copyright date is not.” (traducción) «Una actualización del contenido principal, los datos estructurados o los enlaces de la página se considera generalmente significativa, sin embargo, una actualización de la fecha de derechos de autor no lo es.» El modo de fallo que veo constantemente es marcar cada URL con la fecha de hoy en cada compilación. Eso es contraproducente: Mueller lo ha llamado “just lazy,” (traducción) «simplemente perezoso», señalando que es trivial para los motores reconocerlo y solo les dificulta detectar páginas realmente actualizadas. Miente con suficiente frecuencia y, en palabras de Google, “eventually we’re not going to believe you anymore.” (traducción) «Finalmente ya no te vamos a creer.» Bing se apoya aún más en <lastmod> como señal de frescura que Google — así que una fecha precisa te ayuda en ambos motores, y una falsa te perjudica en ambos.

Ubicación, nombre, codificación y compresión

  • Ubicación/nombre. No hay un nombre de archivo obligatorio, pero /sitemap.xml en la raíz es la convención. Por defecto, un sitemap solo afecta a las URLs en o por debajo de su propia ruta, así que mantenlo lo suficientemente alto para cubrir todo lo que lista. La única excepción: puedes alojar un sitemap para un sitio diferente si has verificado la propiedad de ese sitio y su robots.txt apunta de vuelta a la ubicación real del sitemap — Google llama a esto envío cruzado, y es el mecanismo detrás de un índice de sitemap que agrega sitemaps alojados en otro lugar.
  • Codificación. UTF-8, siempre.
  • Compresión. Puedes comprimir un sitemap con gzip (sírvirlo como .xml.gz), lo cual vale la pena en archivos grandes. Matiz importante: el límite de 50MB se mide sin comprimir — gzip ahorra ancho de banda, no margen frente al límite de tamaño.

Límites → dividir + índice de sitemap

Un solo sitemap está limitado a 50 000 URLs o 50MB sin comprimir, lo que ocurra primero. Google lo afirma directamente: “All formats limit a single sitemap to 50MB (uncompressed) or 50,000 URLs.” (traducción) «Todos los formatos limitan un solo sitemap a 50MB (sin comprimir) o 50 000 URLs.» Cuando superas cualquiera de los dos límites, divides la lista en varios archivos de sitemap y los referencias todos desde un índice de sitemap — un sitemap de sitemaps. Ese es un tema hermano propio; la versión corta es que envías el índice, y un índice puede apuntar a hasta 50 000 sitemaps hijos, así que nunca te quedarás sin capacidad.

Qué URLs incluir — y “excluir ≠ noindex”

Incluye solo URLs que sean indexables, canónicas y devuelvan 200. Eso significa sin redirecciones 3xx, sin duplicados no canónicos, sin páginas noindex, sin URLs bloqueadas por robots. Un sitemap limpio de exactamente tu conjunto indexable es lo que hace que la comparación enviado-vs-indexado de Search Console sea significativa — contamínalo con basura y habrás tirado el diagnóstico.

Ahora el punto mecánico que la gente entiende mal: excluir una URL de tu sitemap no la desindexa. El sitemap es un anuncio, no una puerta. Eliminar la entrada de una URL solo deja de anunciar esa página; si Google ya la conoce (a través de enlaces, historial u otra fuente), permanece en el índice. Los únicos mecanismos que realmente eliminan una página son una directiva noindex (con rastreo permitido para que Google pueda verla), un 404/410, o la herramienta de eliminaciones. Así que “sácala del sitemap” nunca es la respuesta correcta a “cómo desindexo esto”.

Formatos de archivo de sitemap aceptados

XML no es el único formato que Google acepta — vale la pena saberlo para que no asumas que estás atascado escribiendo XML a mano. Google llama a XML “the most versatile of the sitemap formats,” (traducción) «el más versátil de los formatos de sitemap», pero también lee:

  • Fuentes RSS 2,0 / Atom — útiles porque muchos CMS ya publican una; llevan solo URLs de páginas.
  • mRSS — una fuente RSS de medios, usada para video.
  • Texto plano (.txt) — literalmente una URL por línea, solo URLs de páginas web, UTF-8.

XML sigue siendo el valor predeterminado correcto porque es el único formato que soporta las extensiones (metadatos lastmod, anotaciones de imagen, video y hreflang). Los demás son solo de URLs.

hreflang en sitemaps

Si tienes un sitio multilingüe o multirregional, el sitemap suele ser el lugar más fácil para gestionar hreflang — mantienes todo el clúster de idiomas en un solo archivo en lugar de inyectar etiquetas de retorno en cada plantilla de página. (Es uno de los tres lugares válidos donde puede vivir hreflang; el <head> y las cabeceras HTTP son los otros.)

Cómo se implementa. Cada <url> recibe hijos xhtml:link rel="alternate", uno por versión de idioma/región, y declaras el espacio de nombres xmlns:xhtml="http://www.w3.org/1999/xhtml" en <urlset>:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.example.com/english/page.html</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/english/page.html"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://www.example.de/deutsch/page.html"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/english/page.html"/>
  </url>
  <!-- each alternate URL repeats the FULL set, including itself (return tags) -->
</urlset>

La regla de la etiqueta de retorno. Esta es la parte que atrapa a la gente. Cada elemento <url> debe listar todas las versiones alternativas de la página — incluida la propia. Google: “Cada <url> debe tener un elemento hijo <xhtml:link rel="alternate" hreflang="[supported_language-code]"> que liste todas las versiones alternativas de la página, incluida la propia.” Y debe ser bidireccional: “Si la página X enlaza a la página Y, la página Y debe enlazar de vuelta a la página X. Si este no es el caso para todas las páginas que usan anotaciones hreflang, esas anotaciones pueden ser ignoradas o no interpretarse correctamente.” Añade una entrada x-default para el respaldo de idioma no coincidente. Una sola etiqueta de retorno rota o faltante puede invalidar todo el conjunto.

El límite cuenta solo las URLs <loc>. Un alivio para los sitios internacionales grandes: el límite de 50 000 URLs cuenta solo las URLs de página <loc>, no las alternativas hreflang. Así que un sitemap con 50 000 páginas, cada una con diez alternativas de idioma, todavía cabe — son las URLs de ubicación las que cuentan, no las URLs alternativas.

Cuando realmente se activa — días de presupuesto, no minutos. Aquí está la expectativa a establecer, y es mecanismo más que una línea citable. Google analiza tu sitemap hreflang cuando vuelve a buscar el sitemap, pero las anotaciones solo surten efecto una vez que todas las URLs del conjunto han sido (re)rastreadas y las etiquetas de retorno se han reconciliado entre sí. Eso significa que hay un desfase real entre publicar el hreflang y que se respeten las alternativas, y una URL lenta de re-rastrear o rota en el conjunto puede retener al resto. No esperes que se active en el momento en que lo envías — planifica para que se asiente a lo largo de días.

Referéncialo y envíalo

  • robots.txt — añade una línea Sitemap: con la URL absoluta completa. Esto también permite que los motores lo descubran automáticamente.
  • Google Search Console — el informe de Sitemaps (o la API de Search Console) es el método principal de envío; también es donde lees el diagnóstico de enviado vs. indexado.
  • Bing Webmaster Tools — envíalo también allí; Bing lo busca rápidamente y lo revisa regularmente.

Una nota de automatización desde cómo pienso sobre esto: un sitemap debería generarse automáticamente a partir de las páginas que realmente tienes, para que se mantenga actualizado. Un sitemap construido a mano se deteriora en cuanto tu sitio cambia. Los hermanos de esta página — la visión general de sitemaps, el índice de sitemap para sitios grandes, y las extensiones de sitemap de imágenes y sitemap de video — cubren el resto de la familia, y el tema más amplio de descubrimiento vincula los sitemaps con las otras formas en que los motores encuentran tus URLs.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.