Reglas de funcionamiento del rastreador
Qué hace CrawlForge cuando descarga una página en su nombre: ocho reglas fundamentales, el motivo de cada una y cómo se aplican.
Las ocho reglas fundamentales
Estas reglas limitan lo que construimos, no solo lo que pedimos a los clientes. Una función que rompa alguna de ellas no se publica, por mucha demanda que tenga.
Crawl-delay y el Retry-After del propio host, con valores predeterminados conservadores por debajo.G1 — Solo páginas públicas y sin autenticación
Ningún acceso con credenciales a una plataforma cuyos términos lo prohíban. No aceptamos sus credenciales para un sitio objetivo, no mantenemos cuentas en plataformas de terceros y ninguna herramienta está construida para iniciar sesión en su nombre.
Por qué: eludir la autenticación es la línea en la que el scraping deja de ser una cuestión contractual y pasa a ser una cuestión de la Computer Fraud and Abuse Act. Incumplir unos términos es una disputa entre dos partes; acceder sin autorización es una categoría de riesgo distinta, y no la asumimos por un cliente.
Cómo se aplica: ninguna herramienta acepta credenciales de un sitio objetivo como parámetro, y CrawlForge no almacena ninguna. Los contextos de navegador que abre stealth_mode son efímeros — el backend de ejecución los recicla —, así que no queda ninguna sesión iniciada que reutilizar. scrape_with_actions ejecuta la lista de acciones que usted proporciona: usarla para iniciar sesión en una plataforma cuyos términos prohíben el acceso automatizado incumple la Política de uso aceptable y es motivo de suspensión.
G2 — Sin resolución de CAPTCHA, sin falsificar tokens y sin saltarse muros de pago
No integramos servicios de resolución de CAPTCHA, no falsificamos ni reproducimos tokens de desafío antibot y no construimos formas de saltarse muros de pago.
Por qué: son controles técnicos de acceso. Vencer uno no es un ajuste de compatibilidad: es decidir ignorar la respuesta que el propietario del sitio ya dio. No es una función que publiquemos, y publicarla pondría en duda todas las demás reglas de esta página.
Cómo se aplica: ningún proveedor de resolución de CAPTCHA es una dependencia de la API ni del servidor MCP. stealth_mode existe para que un navegador real se comporte como un navegador real — encabezados, ventana gráfica y tiempos realistas — en sitios que fallan con una descarga HTTP simple. No resuelve desafíos: si una página devuelve un desafío, ese desafío le llega a usted.
G3 — Preferir una API documentada al scraping
Cuando un objetivo publica una API, la herramienta que cubre ese objetivo la usa.
Por qué: una API es más barata por registro, exacta en lugar de aproximada, estable frente a cambios de maquetación y permitida por construcción: el editor decidió qué expone. Hacer scraping de una fuente que ofrece una API es la peor decisión de ingeniería antes que un problema ético.
Cómo se aplica: reddit_search lee el contenido de Reddit mediante API públicas de datos en JSON en lugar de hacer scraping de reddit.com, que bloquea el acceso automatizado. search_web y serp_rank llaman a API de búsqueda en vez de descargar páginas de resultados. Toda cobertura nueva se especifica primero por API: solo se escribe una ruta de scraping cuando ninguna API cubre los datos.
G4 — Identificarse honestamente
Cada solicitud saliente lleva un único User-Agent honesto: nombre real del producto, versión y una URL de contacto.
Por qué: un sitio que quiera bloquearnos tiene que poder hacerlo. Una identidad que rota o se disfraza le quita al propietario del sitio la capacidad de decidir sobre nosotros, y hace que G5 y G7 no se puedan verificar desde fuera: una lista de bloqueo que no se puede reconocer no es una lista de bloqueo.
Cómo se aplica: todas las herramientas de descarga pasan por un único ayudante de descarga compartido, que envía la identidad que aparece abajo: nombre del producto, versión y URL de contacto. Si usted tiene su propio acuerdo con un objetivo, dispone de un parámetro userAgent por solicitud: esa es su declaración ante ese objetivo, hecha de forma explícita, y no un valor predeterminado del producto.
No hace falta fiarse del encabezado: Verificación del rastreador CrawlForge explica al propietario de un sitio cómo comprobar una solicitud contra nuestra clave de firma publicada, cómo bloquearnos con una sola regla de robots.txt y a dónde escribir para una exclusión permanente.
Cómo se identifica CrawlForge
El User-Agent que envía la API REST. El servidor MCP envía su propia versión de paquete con la misma forma: el segmento de versión difiere entre ambos, el token de producto CrawlForge no.
User-Agent: CrawlForge/1.0.0 (+https://crawlforge.dev)G5 — Respetar robots.txt de forma predeterminada
Todas las herramientas de descarga consultan robots.txt antes de descargar. La excepción es por solicitud, devuelve una advertencia en la respuesta y queda registrada contra la API key que la pidió.
Por qué: el valor predeterminado tiene que ser el respeto, porque es con el valor predeterminado con el que circula la mayor parte del tráfico. Hacer que la excepción sea explícita y quede registrada la convierte en su decisión documentada sobre un objetivo que usted conoce, y no en una elección silenciosa que hicimos por usted para todo el producto.
Cómo se aplica: las reglas de cada origen se descargan una vez, se almacenan en caché y se comparan con nuestro token de producto. Un robots.txt ausente, inaccesible, demasiado grande o con respuesta distinta de 200 se trata como ausencia de restricciones: un sitio que no puede servir el archivo no ha expresado ninguna. Una URL no permitida se omite y, cuando el punto de entrada es el que está prohibido, la solicitud falla antes de descargar nada, así que un rastreo bloqueado no cuesta credits.
Cómo bloquear CrawlForge en su sitio
Añada esto a su robots.txt. El nombre del grupo es el token de producto CrawlForge, con el que se comparan tanto la API REST como el servidor MCP, así que esta única regla bloquea todas las herramientas de CrawlForge en ambas superficies. Si ya bloqueó el token retirado CrawlForge-Bot, ese bloqueo sigue vigente: se respeta una prohibición procedente de cualquiera de los dos nombres, así que no necesita cambiar nada.
User-agent: CrawlForge
Disallow: /G6 — Ritmos moderados de forma predeterminada
La concurrencia y las pausas tienen valores predeterminados conservadores, y las señales de ritmo del propio host — el Crawl-delay de su robots.txt y el Retry-After de una respuesta 429 o 503 — se respetan en ambas superficies.
Por qué: la carga que imponemos es carga que paga otra persona, en ancho de banda, en CPU del servidor de origen y en la guardia de quien esté de turno. Un rastreador que ignora un Retry-After que le acaban de entregar no es rápido: es igual de rápido, pero maleducado.
`Retry-After`: se registra en todas las respuestas y, mientras la ventana siga abierta, se rechazan las siguientes solicitudes a ese host — error HOST_BACKOFF, HTTP 429, indicando el host y los segundos restantes. No se le cobra por ello, y respect_robots: false no llega hasta ahí: ese parámetro es una declaración sobre robots.txt, mientras que un 429 es el host respondiéndonos directamente, y no es algo que quien llama pueda anular en su nombre. Se aceptan las dos formas que permite la especificación y la espera tiene un tope de cinco minutos, para que un encabezado erróneo no pueda bloquear un host.
Este es el único punto en el que las dos superficies se comportan de forma distinta, y el motivo es el entorno de ejecución, no la política. El servidor MCP espera el intervalo completo y continúa. La API REST rechaza de inmediato: dentro de una función serverless con un techo de 30 segundos, esperar dos minutos consumiría la solicitud y no le devolvería nada — habiendo esperado, siendo interrumpida y sin haber descargado la página —, así que le da la respuesta del host al instante.
`Crawl-delay`: las cinco herramientas que descargan más de una página — crawl_deep, map_site, generate_llms_txt, batch_scrape y deep_research — espacian sus solicitudes a un host según lo que pida su robots.txt. El espaciado es por host, así que un sitio lento nunca retiene a otro que no lo esté. En batch_scrape, un host que declara una pausa queda en la práctica serializado mientras el resto conserva toda la concurrencia: es lo que pide la directiva, y conviene saberlo si envía cincuenta URL de un mismo dominio con pausa. Cuando una pausa no cabe en el presupuesto de tiempo de la ruta, la URL se omite en lugar de quedarse colgada: el resultado se marca como skipped con el motivo, una línea de resumen aparece en notes y no se le cobra. Las herramientas de una sola descarga descargan una vez y no tienen nada que espaciar.
crawl_deep acepta además su propio parámetro crawl_delay. Esa es una pausa que pide usted, distinta de la que pide el sitio; cuando se aplican ambas se resuelven en una sola espera y gana la más larga. El límite de velocidad de su plan (de 1 a 10 solicitudes por segundo) es un techo adicional independiente por encima de todo ello: consulte las preguntas frecuentes.
G7 — Las exclusiones y retiradas son permanentes
El propietario de un sitio que pide no ser descargado se añade a una lista de bloqueo a nivel de plataforma. Ningún parámetro de cliente la anula.
Por qué: una lista de bloqueo que cualquier cliente puede desactivar no es una lista de bloqueo. Si la exclusión vive en las opciones de cada solicitud, respetarla depende de que cada cliente lo elija, lo que significa que no se sostiene. Tiene que situarse por debajo de la capa de solicitud.
Cómo se aplica: la lista de bloqueo se comprueba antes de enviar la solicitud y se aplica a todas las herramientas, todas las API keys y todos los planes. No hay ningún parámetro que la desactive, y una excepción a robots.txt no llega hasta ella. Para solicitar una exclusión o presentar una retirada, escriba a support@crawlforge.dev indicando el dominio y las páginas afectadas.
G8 — Sin creación de perfiles ni datos personales no públicos
Las herramientas devuelven lo que la fuente publica públicamente. No construimos funciones que reúnan datos públicos dispersos en un perfil de una persona.
Por qué: el RGPD y la CCPA se aplican a los datos personales con independencia de dónde proceda el HTML, y «era público» no es una base jurídica. Bajo el RGPD, la agregación es en sí misma una finalidad de tratamiento que hay que justificar: publicar un dato sobre uno mismo en un sitio no es consentir a ser recopilado.
Cómo se aplica: ninguna herramienta cruza identidades entre fuentes, y no se conserva ningún índice centrado en personas. Cuando un esquema de extracción recoge datos personales, el esquema es suyo y la responsabilidad del tratamiento también: lo que nosotros conservamos es el registro de uso, que guarda la solicitud y no el contenido extraído. Establecer una base jurídica para los datos personales que usted extraiga es su obligación según la Política de uso aceptable.
Explícitamente fuera de alcance
Los mencionamos porque nos los piden. Ninguno está en la hoja de ruta.
- Scraping autenticado de LinkedIn, Indeed o cualquier plataforma cuyos términos lo prohíban (G1).
- Scraping de instancias autenticadas de Workday u otros sistemas de contratación con autenticación (G1).
- Servicios de resolución de CAPTCHA (G2).
- Falsificación de tokens de desafío y elusión de DataDome, PerimeterX o Kasada (G2).
robots.txtignorado de forma predeterminada (G5).- Evadir un bloqueo dirigido específicamente a CrawlForge: rotar la identidad o volver a entrar con otro User-Agent (G4, G7).
- Construir perfiles de personas (G8).
Pedir una de estas cosas no señala una carencia del producto. Es la regla funcionando.
Exclusiones y retiradas
Si usted gestiona un sitio y no quiere que CrawlForge lo descargue, tiene dos vías. Una regla en robots.txt se respeta de forma predeterminada en todas las herramientas y surte efecto en la siguiente descarga. Una exclusión a nivel de plataforma es permanente y ningún cliente puede anularla: escriba a support@crawlforge.dev indicando el dominio y las páginas afectadas.