technical
Sitemap en robots.txt
MetricSpot busca una línea Sitemap: en robots.txt. Así es como Google, Bing y la mayoría de rastreadores de IA descubren tu sitemap sin que lo envíes a mano.
Qué comprueba esta verificación
Descarga /robots.txt y busca una o más directivas Sitemap:. Comprueba que la URL sea absoluta (las URLs relativas no están permitidas por la especificación) y accesible.
Por qué importa
La mayoría de los rastreadores descubre tu sitemap por una de tres vías:
- Lo envías en Google Search Console / Bing Webmaster Tools.
- Lo declaras en
robots.txtmedianteSitemap:. - El rastreador prueba
/sitemap.xmlcomo último recurso.
El método 2 es el que escala a rastreadores con los que no tienes cuenta — Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, Applebot, Yandex, Baidu y decenas de indexadores más pequeños leen robots.txt antes de rastrear nada. Declarar tu sitemap ahí es una línea de configuración que difunde la ubicación a todos a la vez.
Si lo saltas, un sitemap generado por un CMS en una URL no estándar (/sitemap_index.xml, /wp-sitemap.xml, /sitemap-0.xml) puede no ser descubierto nunca por los rastreadores pequeños que no prueban rutas alternativas.
Cómo arreglarlo
Añade una línea Sitemap: a /robots.txt. Usa la URL absoluta y canónica — mismo esquema (https), mismo hostname (con o sin www, coincidiendo con tu canónico), sin redirecciones intermedias.
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
Se permiten varios sitemaps. Lista cada uno, o lista un índice de sitemaps que referencie a los demás:
Sitemap: https://example.com/sitemap-pages.xml
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-products.xml
Reglas:
- Sólo URL absoluta.
Sitemap: /sitemap.xmles inválido según la especificación. Algunos rastreadores lo toleran, otros ignoran la directiva entera. - Coincide con el esquema/host canónico. Si tu sitio es
https://www.example.com, no declareshttps://example.com/sitemap.xml. Google trata el sitemap como perteneciente al host en el que se declara. - La directiva
Sitemap:es global, no pertenece a un bloqueUser-agent:. Ponla en su propia línea, arriba o abajo del archivo — la posición no importa.
nginx (sirviendo un robots.txt estático):
location = /robots.txt {
alias /var/www/example.com/robots.txt;
}
Next.js (App Router) — robots.txt dinámico:
// app/robots.ts
import type { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: [{ userAgent: "*", allow: "/" }],
sitemap: "https://example.com/sitemap.xml",
};
}
Astro: pon un public/robots.txt literal en tu proyecto, o genera uno en src/pages/robots.txt.ts:
// src/pages/robots.txt.ts
import type { APIRoute } from "astro";
export const GET: APIRoute = ({ site }) => {
const body = `User-agent: *
Allow: /
Sitemap: ${new URL("sitemap-index.xml", site).href}
`;
return new Response(body, { headers: { "Content-Type": "text/plain" } });
};
Si usas @astrojs/sitemap, emite sitemap-index.xml — apunta la directiva al índice, no a sitemaps individuales.
WordPress: Yoast SEO y Rank Math añaden la línea Sitemap: al robots.txt virtual automáticamente. Si tienes un /robots.txt real en disco, el plugin no puede sobrescribirlo — o borras el archivo o añades la línea Sitemap: a mano.
Cloudflare Workers / Pages: robots.txt es sólo texto estático — déjalo en tu directorio public/. Si lo generas mediante un Worker, configura content-type: text/plain para que los rastreadores lo interpreten correctamente.
Combínalo con Archivo robots.txt, Sitemap XML y Permitir rastreadores de IA — los tres juntos configuran toda la superficie de descubrimiento del rastreo.
Preguntas frecuentes
¿Sigo necesitando enviar el sitemap en Search Console si está en robots.txt?
Sí, para Google. El envío en Search Console te da estadísticas de indexación por sitemap, informes de errores y diagnósticos “descubierto, no indexado” que el autodescubrimiento no ofrece. Usa los dos — robots.txt para el resto de la web, Search Console para visibilidad específicamente sobre Google.
¿Puedo tener más de una línea Sitemap:?
Sí. La especificación permite varias declaraciones de sitemap. O las listas todas, o listas un archivo índice de sitemaps que referencie a los demás (más limpio y fácil de mantener).
¿Y si la URL de mi sitemap cambia?
Actualiza la línea Sitemap: y Googlebot lo pillará la próxima vez que lea robots.txt (normalmente en 24 horas). Si tenías un sitemap antiguo enviado en Search Console, elimínalo a mano — robots.txt sólo le dice a los rastreadores dónde está el nuevo, no caduca el antiguo.
Fuentes
Última actualización 2026-05-11