robots.txt para Web Scraping: Lo que Obliga, Lo que No
robots.txt es una convención, no un contrato, y no es un candado. Aquí está lo que realmente pide a un scraper, lo que no puede imponer, y cómo respetarlo mientras se obtiene la información.
Cada conversación sobre la ética del scraping comienza con robots.txt, y la mayoría se equivoca en una de dos direcciones: tratándolo como una ley por la que serás arrestado si la rompes, o como un ruido que puedes ignorar por completo. No es ninguna de las dos. robots.txt es una convención voluntaria que indica a los bots bien comportados qué rutas preferiría un sitio que dejaran en paz. Saber exactamente lo que obliga y lo que no es lo que separa una operación de datos profesional de una imprudente. Esta es una guía para profesionales, y una nota al principio: esto es informativo, no un consejo legal.
Lo que realmente es robots.txt
robots.txt implementa el Protocolo de Exclusión de Robots, estandarizado en 2022 como RFC 9309. Es un archivo de texto plano que reside en la raíz de un dominio - https://example.com/robots.txt - con un archivo por dominio o subdominio. Es opcional: un 404 simplemente significa que el sitio no tiene archivo y no ha expresado ninguna preferencia. Crucialmente, es una solicitud, no una barrera. Nada en el servicio de un robots.txt impide técnicamente el acceso; depende de la buena fe de los bots que lo leen.
Leerlo es una única solicitud: haz esto antes de rastrear cualquier cosa, cada vez:
# Just read it
curl -s https://example.com/robots.txt
# Through a proxy, as your scraper would see it
curl -s -x http://USER:PASS@gate.quantumproxies.io:8000 https://example.com/robots.txt
Las directivas que importan
El vocabulario es pequeño. Aprende estos y podrás leer cualquier robots.txt de un vistazo:
User-agent- a qué bot se dirigen las siguientes reglas.*significa todos los bots; un nombre comoGooglebotapunta a uno. Los nombres de las directivas no distinguen entre mayúsculas y minúsculas, pero los valores de las rutas sí:/Private/no es/private/.Disallow- un prefijo de ruta que no se debe rastrear.Disallow: /admin/bloquea esa carpeta y todo lo que está debajo de ella.Disallow: /bloquea todo el sitio; unDisallow:vacío permite todo.Allow- una anulación no estándar pero universalmente respetada que permite nuevamente una ruta dentro de una prohibida.Crawl-delay- una sugerencia no estándar que pide N segundos entre solicitudes. Respétalo: ignorarlo es una de las formas más rápidas de ser bloqueado.Request-rateyVisit-time- directivas raras que limitan las solicitudes por intervalo o restringen el rastreo a ciertas horas UTC.Sitemap- una URL absoluta al mapa del sitio XML. No es una restricción, es un regalo: mapea la estructura del sitio para ti.
Una advertencia sobre la sintaxis: los comodines * y $ en los patrones de ruta no están en el estándar original, pero todos los motores principales los respetan, por lo que Disallow: /*.pdf$ es común y efectivo en la práctica.
import urllib.robotparser as rp
# Parse robots.txt and check a URL for your user agent
robots = rp.RobotFileParser()
robots.set_url("https://example.com/robots.txt")
robots.read()
UA = "MyResearchBot/1.0"
print(robots.can_fetch(UA, "https://example.com/products")) # True / False
print(robots.crawl_delay(UA)) # seconds, or None

Lo que obliga - y lo que no
Esta es la parte que la gente más necesita aclarar. robots.txt no es, por sí mismo, legalmente vinculante, y no es un mecanismo técnico de control de acceso - no bloquea nada. Los tribunales generalmente han tratado los datos públicos bien conocidos como públicos. Pero 'no es una ley por sí mismo' no es lo mismo que 'sin consecuencias'. Ignorar los deseos declarados de un sitio puede convertirse en un factor en argumentos de términos de servicio, intrusión o uso indebido de computadoras, invita a bloqueos y escrutinio adicional, y es simplemente mala ciudadanía. La postura pragmática: trata robots.txt como un piso ético que honras, y trata las verdaderas cuestiones legales - datos personales, contratos, jurisdicción - como un asunto separado para resolver correctamente. Nuestro resumen de la legalidad del web scraping en 2026 cubre esos temas por separado.
El cambio de los rastreadores de IA
robots.txt ha tomado una segunda vida como el canal de exclusión para el entrenamiento de IA. Los sitios ahora agregan reglas explícitas para agentes de usuario de IA - GPTBot, Google-Extended, CCBot, ClaudeBot, PerplexityBot y otros - para decir 'indéxame, pero no entrenes conmigo'. Esta es la razón por la que los investigadores ahora argumentan que robots.txt ya no es suficiente por sí solo para mantener los datos públicos fuera de los modelos: depende completamente de que cada rastreador elija obedecer, y solo habla con agentes declarados y bien comportados. Si operas un rastreador, declarar un User-Agent honesto y respetar estas exclusiones es la base. El archivo complementario emergente para la intención opuesta - invitar a herramientas de IA - es llms.txt, que cubrimos en nuestra guía de llms.txt.
# A modern robots.txt often carries AI-specific opt-outs:
# User-agent: GPTBot
# Disallow: /
#
# User-agent: Google-Extended
# Disallow: /
#
# User-agent: *
# Crawl-delay: 5
# Sitemap: https://example.com/sitemap.xml

Ser un buen ciudadano mientras se obtienen datos
Respetar robots.txt y recopilar los datos públicos que necesitas no están en conflicto. Las disciplinas que te mantienen bienvenido son las mismas que te mantienen sin bloqueos: respeta Crawl-delay y regula tus solicitudes, identifica tu bot honestamente, almacena en caché agresivamente para nunca volver a obtener la misma página, y evita los puntos finales costosos que un sitio está tratando de proteger. La norma comunitaria, bien expresada en los foros, es que robots.txt existe principalmente para desalentar a los bots que generan tráfico aplastante - así que no seas ese bot. Nuestra guía de scraping educado convierte esto en reglas concretas de ritmo.
Para los equipos que quieren que el cumplimiento se maneje por defecto, una Scraper API puede leer y respetar robots.txt como parte de la solicitud, junto con una limitación de ritmo sensata - por lo que el buen comportamiento es el comportamiento predeterminado de la herramienta, no una casilla que podrías olvidar. También mantiene una huella limpia y declarada en lugar de un script bruto golpeando desde una IP.
Recopila datos públicos de manera conforme
Preguntas frecuentes
¿Aplica legalmente robots.txt al web scraping?
No por sí mismo. robots.txt es una convención voluntaria (RFC 9309), no una ley o un contrato, y no bloquea técnicamente el acceso. Pero ignorarlo puede alimentar reclamos de términos de servicio, intrusión o uso indebido de computadoras e invita a bloqueos y escrutinio. Trátalo como un piso ético a honrar, y maneja las verdaderas cuestiones legales - datos personales, contratos - por separado. Esto no es un consejo legal.
¿Cómo leo el robots.txt de un sitio web?
Envía un HTTP GET a la raíz del dominio con /robots.txt añadido, por ejemplo, https://example.com/robots.txt. cURL o cualquier cliente HTTP funciona; en Python, urllib.robotparser lo analiza y responde can_fetch() para un agente de usuario y URL dados. Un 404 significa que el sitio no tiene robots.txt y no ha declarado ninguna preferencia de rastreo.
¿Qué significa Disallow: /?
Pide a todos los bots coincidentes que no rastreen ninguna ruta en el sitio - todo el dominio está fuera de límites por solicitud. Un Disallow: vacío significa lo contrario: todo está permitido. Recuerda que estas son solicitudes a rastreadores bien comportados, no barreras impuestas, y que los valores de ruta distinguen entre mayúsculas y minúsculas mientras que los nombres de las directivas no.
¿Puedo ignorar robots.txt si los datos son públicos?
Técnicamente puedes, ya que no se impone, pero generalmente no deberías. Ignorarlo es mala ciudadanía, te bloquea más rápido, y puede fortalecer el argumento de un sitio en tu contra en una disputa. El enfoque profesional es respetarlo, rastrear solo rutas públicas permitidas, regular tus solicitudes, y mantener los datos personales completamente fuera de alcance.
robots.txt es un pequeño archivo que lleva una gran señal: aquí está cómo este sitio quiere ser rastreado. Léelo primero, respeta las rutas y el ritmo, declara quién eres, y puedes recopilar los datos públicos que necesitas mientras te mantienes firmemente en el lado correcto tanto de la etiqueta como del riesgo.