Un archivo robots.txt es un texto pequeno en la raiz de un host que dice a los crawlers que rutas de URL pueden pedir. No es una contrasena, no es una etiqueta noindex y no sirve para esconder secretos. Bien hecho, Googlebot, Bingbot y otros gastan el crawl budget en las paginas que te importan. Mal hecho, bloqueas CSS, ocultas un sitemap o filtras un staging a la busqueda. Esta guia cubre las reglas que siguen importando en 2026, la diferencia entre Disallow y noindex, y los errores que cuestan rankings. Cuando quieras un archivo para pegar en https://tu-dominio/robots.txt, usa el Generador de robots.txt - corre en el navegador y no sube las rutas.
Respuesta rapida
Guarda robots.txt en la raiz de cada host (https://www.example.com/robots.txt). Usa grupos User-agent con prefijos Allow y Disallow, mas una linea Sitemap: con una URL https absoluta. Allow: / es el default habitual de un sitio publico. Disallow: / es para staging. robots.txt solo pide a los crawlers que no pidan esas URLs; las bloqueadas pueden seguir saliendo en busqueda si hay enlaces. Usa una meta robots noindex (o X-Robots-Tag) cuando quieras sacar una URL de los resultados. Nunca uses robots.txt para esconder datos privados - el archivo es publico.
Que es robots.txt (y que no es)
robots.txt es el Robots Exclusion Protocol: un conjunto voluntario de reglas que los crawlers consultan antes de pedir otras URLs de ese host. Los bots bien educados (Googlebot, Bingbot, muchos crawlers SEO) lo respetan. Scrapers y algunos fetchers de IA pueden ignorarlo. Trata el archivo como una pista de crawl, no como un control de seguridad.
- Es un archivo de texto publico. Cualquiera puede abrir https://tu-host/robots.txt y leer cada Disallow que escribiste.
- Es por host. www.example.com y example.com necesitan cada uno su archivo si ambos sirven contenido.
- No autentica usuarios. Una linea Disallow no detiene un navegador, un scraper ni a alguien con la URL.
- No saca URLs de Google por si solo. Para eso estan noindex (y las bajas en Search Console).
Los buscadores siguen necesitando pedir CSS, JavaScript e imagenes para renderizar la pagina como la ve una persona. Bloquear esos assets es una forma clasica de hundir como Google entiende el layout. Un buen robots.txt es aburrido: permite el sitio publico, bloquea unos prefijos de admin y apunta al sitemap.
Donde debe vivir el archivo
Los crawlers solo piden una ruta: /robots.txt en ese host. Un archivo en cualquier otro sitio se ignora.
- Correcto: https://www.example.com/robots.txt
- Ignorado: https://www.example.com/blog/robots.txt o https://www.example.com/static/robots.txt
- www y apex son hosts distintos. Si ambos responden, cada uno necesita un archivo (o uno debe redirigir al otro antes de que los crawlers miren).
- Sirvelo como text/plain con HTTP 200. Un soft 404 HTML, un muro de login o un 500 parecen un archivo ausente o roto.
- Dejalo en la raiz del host canonico que quieres indexar, coincidiendo con el host de Search Console.
La sintaxis que de verdad importa
Un robots.txt son grupos de reglas. Cada grupo empieza con una o mas lineas User-agent, luego lineas Allow y Disallow de ese grupo. Las lineas Sitemap quedan fuera de los grupos y aplican a todo crawler que las entienda.
- User-agent: * - el grupo default para crawlers que no tienen un grupo mas especifico.
- User-agent: Googlebot - un grupo con nombre. Google usa el grupo mas especifico que coincida, no * mas Googlebot juntos.
- Disallow: /admin/ - saltar las rutas que empiezan por /admin/.
- Allow: / - permitir todo el sitio. Un Disallow vacio es la forma antigua de decir lo mismo.
- Sitemap: https://www.example.com/sitemap.xml - una URL https absoluta a tu sitemap XML.
- Los comentarios empiezan con #. Las lineas en blanco separan grupos. Las rutas distinguen mayusculas.
Google admite * (cualquier secuencia) y $ (final de URL) en rutas Allow y Disallow. Bing se parece. No inventes directivas que Google ignora. Crawl-delay es el ejemplo habitual: Google no lo usa. Usa los ajustes de crawl de Search Console si necesitas frenar a Googlebot.
Allow frente a Disallow
Disallow lista prefijos de ruta que el crawler deberia saltar. Allow lista prefijos que puede pedir, util cuando un padre esta denegado. Google elige la ruta coincidente mas larga, no la primera linea del archivo.
- Disallow: / significa saltar todo en este host. Usalo en staging, no en el sitio publico.
- Allow: / (o ninguna linea Disallow) significa pedir todo el host.
- Disallow: /tmp mas Allow: /tmp/public/ deja entrar a Googlebot a la carpeta publica y saltar el resto de /tmp.
- Un Allow mas especifico puede reabrir una ruta que un Disallow mas corto cerro.
- La barra final importa. /admin y /admin/ son prefijos distintos. Ajusta las URLs que tu CMS sirve de verdad.
Gana la coincidencia mas larga
Si una linea dice Disallow: /blog y otra Allow: /blog/how-to, Google trata /blog/how-to como permitido porque ese prefijo es mas largo. No te fies del orden de las lineas. Escribe los prefijos que quieres y prueba unas URLs en Search Console.
robots.txt frente a noindex
Esta es la distincion que salva (o hunde) la indexacion. robots.txt y noindex hacen trabajos distintos. Mezclarlos es como las URLs se quedan en busqueda sin titulo ni snippet.
- robots.txt Disallow - por favor no pidas esta URL. El crawler aun puede listarla si otras paginas enlazan.
- noindex (meta robots o X-Robots-Tag) - puedes pedir esta URL, pero no la muestres en resultados.
- Si haces Disallow de una URL, Google a menudo no puede ver un noindex en esa pagina, porque nunca descarga el HTML.
- Para sacar una URL publica del indice, permite el crawl y pon noindex en la pagina. Luego espera al recrawl.
- Para esconder un host privado, no te fies solo de robots.txt. Usa HTTP auth, listas de IP o mantenlo fuera de internet publico.
Una pagina de gracias, una URL de facetas o unos resultados de busqueda interna suelen querer noindex (y crawl) para que Google vea la etiqueta. Un host de staging quiere Disallow: / mas control de acceso real. Un admin de CMS puede usar ambos: Disallow del prefijo para no gastar crawl budget, y noindex si esas URLs son alcanzables sin login.
Mejores practicas para un sitio publico
La mayoria de sitios de herramientas y brochure necesitan un archivo corto y aburrido. Empieza por allow-all, anade un sitemap y luego Disallow solo los prefijos que no deben quemar crawl budget.
- Permite todo el sitio publico (User-agent: * y Allow: /).
- Anade una linea Sitemap: con la URL https absoluta de tu sitemap XML.
- Opcionalmente Disallow de rutas de admin como /admin/ o /wp-admin/.
- No hagas Disallow de CSS, JavaScript, fuentes o imagenes que Google necesita para renderizar.
- No hagas Disallow de tus prefijos de locale (/es/, /pt/, /fr/, /de/) si esas URLs deben posicionar.
- Deja la limpieza de parametros en Search Console o en canonicals, no en un laberinto de Disallow.
- Revisa el archivo en vivo despues de cada deploy. Un Disallow: / olvidado de staging es un corte habitual.
Staging, preview y hosts privados
Si un host no debe aparecer nunca en busqueda, Disallow: / es la mitad robots.txt del trabajo. No es el trabajo entero. Enlaces, sitemaps y propiedades de Search Console pueden seguir sacando las URLs.
- Pon staging en su propio host (staging.example.com), no en una ruta publica de produccion.
- Disallow: / en ese host, y sirve noindex en cada respuesta HTML si el host es alcanzable.
- Prefiere autenticacion HTTP o una VPN. robots.txt no detiene a un crawler que ignora el protocolo.
- No envies un sitemap de staging a la propiedad de produccion de Search Console.
- Cuando clones produccion a staging, sustituye el robots.txt de produccion al momento. El archivo allow-all es el peligroso aqui.
La linea Sitemap
La directiva Sitemap: es independiente de los grupos User-agent. Google, Bing y otros la usan como pista de descubrimiento. No anula Disallow. Si listas una URL en el sitemap y tambien la haces Disallow, mandas senales mixtas.
- Usa una URL https absoluta. Sitemap: /sitemap.xml no es valido.
- Puedes listar mas de un sitemap (indice mas hijos, o archivos por locale).
- El host del sitemap debe coincidir con el de robots.txt cuando puedas. Un sitemap en otro host pide setup extra en Search Console.
- Deja el sitemap en URLs indexables. Paginas de gracias, carritos y clones de staging no van ahi.
Comodines, anclas de final y comentarios
El parser de robots.txt de Google admite dos tokens extra en las rutas. Usalos con mesura. Un archivo largo de comodines es mas dificil de probar que unos prefijos exactos.
- * coincide con cualquier secuencia. Disallow: /*.json$ salta URLs que terminan en .json.
- $ coincide con el final de la URL. Sin el, *.json tambien coincidiria con .json.html.
- # empieza un comentario hasta el final de la linea. No pongas secretos, API keys ni hostnames internos en comentarios.
- Si un crawler no admite * o $, puede tratarlos como literales. Quedate en prefijos simples cuando puedas.
Ejemplo trabajado
Un sitio publico de marketing que tambien tiene un admin de CMS puede publicar este archivo. El preset allow-all del generador mas un sitemap y dos lineas Disallow produce la misma forma.
- User-agent: *
- Allow: /
- Disallow: /admin/
- Disallow: /wp-admin/
- Sitemap: https://www.example.com/sitemap.xml
Ese archivo dice a todos los crawlers que pidan el sitio publico, salten los dos prefijos de admin y miren el sitemap XML. No hace noindex de las URLs de admin (el login ya deberia ocultarlas). No bloquea /_next/ ni /images/. Despues de pegarlo, abre la URL /robots.txt en vivo en un navegador y confirma que los bytes coinciden con lo que copiaste.
Errores habituales
- Poner el archivo en un subdirectorio. Los crawlers solo piden /robots.txt.
- Hacer Disallow de CSS, JavaScript o fuentes para que Google no pueda renderizar la pagina.
- Usar Disallow para 'esconder' una pagina que aun quieres sacar del indice. Usa noindex y permite el crawl.
- Dejar Disallow: / en produccion despues de clonar staging.
- Una linea Sitemap: relativa. Debe ser una URL https absoluta.
- Bloquear rutas de og:image. Los crawlers sociales siguen necesitando pedir la imagen. Mira la guia completa de etiquetas Open Graph.
- Desajustes de mayusculas (/Admin vs /admin/). Las rutas distinguen mayusculas.
- Lineas Crawl-delay que Google ignora y dan una falsa sensacion de control de ritmo.
- Escribir secretos en comentarios. El archivo es publico.
- Asumir que todos los bots respetan el archivo. Algunos scrapers lo ignoran. Eso es un problema de acceso, no de robots.txt.
Preguntas frecuentes
robots.txt esconde paginas de Google?
No. Pide a Googlebot que no pida esas URLs. Si otras paginas enlazan una URL bloqueada, Google aun puede listarla con poco o ningun snippet. Para sacar una URL de los resultados, permite el crawl y anade noindex.
Donde pongo robots.txt?
En la raiz del host: https://www.example.com/robots.txt. Esa ruta exacta es la unica que piden los crawlers. Un archivo en una carpeta se ignora.
Debe todo sitio permitir a todos los crawlers?
Los sitios publicos que quieren posicionar suelen empezar con User-agent: * y Allow: /. Staging, preview y hosts privados deberian Disallow: / y anadir control de acceso real. Los grupos con nombre (Googlebot, Bingbot) son para excepciones, no para el archivo de cada dia.
Hace falta una linea Sitemap?
Si cuando tienes un sitemap XML. Es una pista de descubrimiento, no un interruptor de ranking, y no anula Disallow. Usa una URL https absoluta. Tambien puedes enviar el mismo sitemap en Search Console.
Sigue sirviendo Crawl-delay?
No para Google. Google ignora Crawl-delay. Si Googlebot es demasiado agresivo, usa los ajustes de crawl de Search Console. Otros bots pueden respetarlo, pero esta guia (y el generador) se quedan en User-agent, Allow, Disallow y Sitemap.
Como pruebo el archivo?
Abre la URL /robots.txt en vivo y leela. Luego usa Inspeccion de URL en Search Console en unas URLs permitidas y denegadas. Para un recorrido clic a clic del constructor, mira Como usar el Generador de robots.txt.
Construye el archivo en tu navegador
Empieza por allow all, block all o block admin, luego copia la salida en vivo. No se sube nada:
- Generador de robots.txt - presets, rutas Allow/Disallow y una URL de sitemap opcional.
- Como usar el Generador de robots.txt - guia paso a paso de la misma herramienta.
- Generador de etiquetas Open Graph - tarjetas de share que los crawlers sociales deben poder pedir.
- Generador de slugs - slugs de URL limpios para las paginas que quieres crawlear.
- Todas las herramientas SEO - el indice completo de la categoria.
Genera robots.txt - gratis
Abre el Generador de robots.txt, elige un preset, anade rutas y una URL de sitemap, y copia el archivo. Guardalo en la raiz del sitio. Todo corre en tu navegador.