Cómo funciona esta comprobación
Scanaris hace tres cosas. Primera, pide /robots.txt y lo da por válido solo si responde 200 y no es HTML (las aplicaciones de una sola página devuelven su página para cualquier ruta); si no, abre un hallazgo de severidad baja. Segunda, pide /sitemap.xml y lo da por válido si responde 200 y contiene una etiqueta <urlset> o <sitemapindex>; si no lo encuentra ahí pero el robots.txt tiene una línea Sitemap:, lo da por bueno igualmente; en otro caso, hallazgo de severidad baja. Tercera, mira si la página escaneada lleva noindex, sea en la etiqueta <meta name="robots"> o en la cabecera HTTP X-Robots-Tag; si lo lleva, abre un hallazgo de severidad media, porque esa página no va a aparecer en Google.
Por qué importa
El robots.txt es la primera URL que visita cualquier rastreador y donde le dices qué puede recorrer y dónde está tu sitemap. El sitemap es la lista de URLs que quieres que Google indexe, con su fecha de modificación: sin él, Google descubre tus páginas siguiendo enlaces, que es más lento y se deja las que están poco enlazadas. Son los dos de severidad baja porque su ausencia no impide la indexación, solo la hace peor. El noindex es otra cosa: es una orden directa a Google de que no muestre esa página, y en la home significa que tu web no existe en el buscador. Es el fallo de SEO más devastador y más silencioso que hay, y casi siempre es un resto del entorno de pruebas.
Cómo arreglarlo
robots.txt
User-agent: *
Allow: /
Sitemap: https://tudominio.com/sitemap.xml
Archivo de texto plano en la raíz. En Nuxt y Next.js hay módulos y convenciones (app/robots.ts) que lo generan; en un sitio estático, va en la carpeta public. No listes en él rutas privadas: es público y se las estarías señalando a cualquiera, como explica rutas sensibles en robots.
Sitemap
- Nuxt: el módulo de sitemap lo genera a partir de las rutas y de las URLs que le pases (posts, productos).
- Next.js: un archivo
app/sitemap.tsque devuelve la lista de URLs. - WordPress: lo genera solo desde la versión 5.5 en
/wp-sitemap.xml; añade esa línea al robots o deja que Yoast o Rank Math lo pongan en/sitemap_index.xml. - Astro, Hugo, Jekyll: un plugin o integración oficial.
Solo URLs indexables, canónicas y que respondan 200. Envíalo en Google Search Console y Bing Webmaster Tools: así sabrás cuántas de esas URLs están realmente indexadas.
noindex en la página
Busca de dónde sale. En Nuxt, el módulo de robots puede marcar noindex según una variable de entorno que a veces se copia del entorno de pruebas al de producción. En Next.js, metadata.robots. En WordPress, el ajuste "Disuadir a los motores de búsqueda" de Ajustes de lectura, que alguien activó para la web en construcción. En Vercel, los despliegues de previsualización llevan X-Robots-Tag: noindex automáticamente, pero el de producción no; si lo ves en producción, lo has añadido tú en la configuración de cabeceras.
Comprueba que está arreglado
curl -s https://tudominio.com/robots.txt
curl -s https://tudominio.com/sitemap.xml | head -5
curl -sI https://tudominio.com | grep -i x-robots-tag
curl -s https://tudominio.com | grep -oiE '<meta name="robots"[^>]*>'
Las dos primeras deben mostrar texto y XML, no HTML. Las dos últimas no deben contener noindex (una meta robots con index, follow o max-image-preview es normal).
Preguntas frecuentes
Mi sitemap está en otra ruta, como /sitemap_index.xml.
Vale cualquier ruta siempre que el robots.txt la referencie con la línea Sitemap:. La comprobación la busca ahí antes de dar el hallazgo.
Quiero que mi web no salga en Google de momento.
Entonces el noindex es correcto y puedes aceptar el hallazgo. Pero ponte un recordatorio: la mayoría de las webs con noindex en producción no lo tienen a propósito.
¿El robots.txt afecta a los bots de IA?
Sí, es el mismo archivo donde se permite o bloquea a GPTBot, ClaudeBot o PerplexityBot. Qué estás permitiendo y qué conviene lo mira rastreadores de IA.