Crear un robots.txt sin errores de sintaxis
El archivo robots.txt, situado en la raíz de un sitio (https://www.example.com/robots.txt), indica a los robots de rastreo qué partes pueden visitar. Este generador de robots.txt lo escribe por ti a partir de grupos de reglas, avisa de los errores habituales e incluye un comprobador: escribes una dirección y un robot, y responde «Permitido» o «Bloqueado» mostrando la regla que decide. No se envía nada; todo se calcula en tu navegador.
Cómo se usa
- Empieza con un ajuste rápido: «Permitir todo», «Bloquear todo», «Bloquear una carpeta de administración» o «Bloquear los robots de IA de la lista». También puedes pegar tu archivo actual en «Importar un robots.txt existente» y pulsar «Importar».
- En cada grupo, rellena «User-agent»:
*para todos los robots o el nombre técnico de uno concreto. La lista «Añadir un ejemplo…» propone nombres habituales, que conviene comprobar en la documentación de cada robot. - Añade reglas con «+ Añadir una regla»: elige
DisallowoAllowy escribe una ruta que empiece por/. Si quieres, indica un «Crawl-delay» y, al final, la dirección completa de tu sitemap. - Revisa «Puntos que revisar», prueba varias direcciones en el «Comprobador de URL» y pulsa «Descargar robots.txt» o «Copiar».
Sintaxis y prioridad de las reglas
Un grupo empieza con una o varias líneas User-agent seguidas de sus reglas. Cada robot sigue un único grupo: el que lleva su nombre (sin distinguir mayúsculas), o si no el grupo *. Si su nombre aparece en dos grupos, sus reglas se unen. Dentro del grupo elegido, la norma RFC 9309 no tiene en cuenta el orden de las líneas: gana la regla que coincide con la ruta más larga y, a igual longitud, gana Allow.
Ejemplo para una tienda online:
User-agent: *Disallow: /carrito/Allow: /carrito/ayudaDisallow: /*?orden=
| Dirección comprobada | Resultado | Motivo |
|---|---|---|
/carrito/pago | Bloqueado | solo coincide Disallow: /carrito/ |
/carrito/ayuda-envios | Permitido | /carrito/ayuda (14 caracteres) es más largo que /carrito/ (9) |
/zapatillas?orden=precio | Bloqueado | el comodín * sustituye a «zapatillas» |
/zapatillas?color=rojo | Permitido | ninguna regla coincide |
Sin $ al final, una regla compara el principio de la dirección: Disallow: /blog bloquea también /blogueros, y Disallow: /*.pdf$ bloquea /guia.pdf pero no /guia.pdf?v=2. Los caracteres codificados se comparan normalizados: /%61dmin equivale a /admin, pero %2F no equivale a /.
Sitemap, rastreo y desindexación
La línea Sitemap indica la dirección completa de tu mapa del sitio; no pertenece a ningún grupo y se puede repetir. Ojo: Disallow impide el rastreo, no la indexación. Una página bloqueada puede seguir en los resultados, sin descripción, si otros sitios la enlazan. Para retirarla, déjala rastreable y añade la metaetiqueta robots noindex. Tampoco es una protección: el archivo es público y los robots malintencionados lo ignoran.
Robots de IA y errores frecuentes
Algunos servicios de inteligencia artificial rastrean la web con robots propios que tienen un nombre técnico publicado. Puedes permitirlos o bloquearlos como a cualquier otro; el ajuste rápido correspondiente crea un grupo con los nombres de la lista de ejemplos y Disallow: /. Esos nombres cambian, así que revisa el archivo de vez en cuando. Los fallos más comunes son un Disallow: / olvidado tras pasar de pruebas a producción, una ruta sin / inicial, una línea sin dos puntos y un archivo que no está en la raíz. El generador avisa de los tres primeros.
Preguntas frecuentes
¿Se respeta el Crawl-delay?
No siempre. La directiva no forma parte del estándar: algunos robots la aplican y otros la ignoran y ofrecen un ajuste de frecuencia en sus herramientas para webmasters.
¿Un «Disallow:» vacío bloquea algo?
No. Una regla Disallow: sin ruta no coincide con ninguna dirección. Es la forma clásica de decir «todo permitido» y la que escribe el ajuste «Permitir todo».
¿Necesito un robots.txt para cada subdominio?
Sí. El archivo solo vale para el host, el protocolo y el puerto desde los que se sirve: tienda.example.com y www.example.com necesitan cada uno el suyo.