Perplexity usa crawlers furtivos e não declarados para contornar diretrizes de proibição de crawling
(blog.cloudflare.com)- Perplexity usou um web crawler não declarado para contornar diretrizes de proibição de crawling
- Foram detectadas ações como ignorar o arquivo robots.txt e alterar continuamente IPs e User Agents
- Em testes com domínios recém-criados, confirmou-se que a Perplexity acessou o conteúdo do site mesmo com configurações de bloqueio ativas
- A Cloudflare, para evitar comportamentos como esse, retirou a Perplexity da lista de bots oficialmente autenticados e ajustou regras de gerenciamento
- Em contraste com operadores de bots de boa-fé como a OpenAI, o comportamento furtivo da Perplexity foi criticado como um problema
Visão geral do comportamento de uso de crawlers stealth da Perplexity
- Perplexity é um motor de respostas baseado em IA e, inicialmente, faz crawling de sites com um User Agent oficialmente declarado
- No entanto, quando enfrenta bloqueios de rede, altera o User Agent para ocultar a identidade e tenta acesso por meio de vários ASN (números de sistema autônomo)
- Nesse processo, foram encontradas várias tentativas de acesso ignorando o arquivo robots.txt ou nem mesmo solicitando-o
Princípios de confiança entre websites e crawlers e comportamento problemático
- A internet vem evoluindo por décadas com base na confiança, e o princípio é que crawlers atuem com transparência, intencionalidade e critérios de comportamento claros
- Crawlers devem respeitar as diretrizes e prioridades dos proprietários de websites, e o comportamento observado da Perplexity viola esse princípio
- Por isso, a Cloudflare removeu a Perplexity da lista oficial de bots autenticados e aplicou regras de gerenciamento adicionais para detectar e bloquear crawlers stealth
Casos de teste e detecção
- A Cloudflare criou domínios novos para testar o comportamento de crawling da Perplexity
- configurou o robots.txt para bloquear todos os acessos automatizados e adicionou regras de WAF
- Mesmo bloqueando o User Agent e os IPs oficiais da Perplexity, confirmou-se que o conteúdo do site ainda foi coletado com identidade escondida
- A Perplexity tentou acessar conteúdo com User Agents oficiais e stealth, sendo que este último se passa por um navegador real (Chrome)
| Tipo | Exemplo de User Agent | Requisições por dia |
|---|---|---|
| Oficial | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user) | 20 milhões~25 milhões |
| Stealth | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 | 3 milhões~6 milhões |
- A Perplexity usou vários IPs e ASN que não fazem parte do intervalo oficial e trocou IPs continuamente para tentar driblar regras de bloqueio
- Isso levou à identificação da atividade em dezenas de milhares de domínios e milhões de solicitações, e a Cloudflare utilizou machine learning e sinais de rede para identificar esse crawler
Casos e limitações de evasão de crawlers stealth
- Ao bloquear um crawler stealth, a Perplexity tenta fornecer respostas usando materiais de sites externos e outras fontes
- No entanto, nesse cenário também foi observada uma queda acentuada no nível de detalhamento do conteúdo
Padrões de operação de bots de boa-fé e boas práticas da OpenAI
- Um bot bem operado precisa seguir princípios como transparência, identidade clara, divulgação do objetivo da atividade, uso de bots distintos por atividade individual e cumprimento de regras de webmaster (como robots.txt)
- A OpenAI disponibiliza de forma transparente IPs oficiais, User Agents e o propósito da atividade de crawling, e respeita estritamente o robots.txt
- Mesmo no experimento, o crawler do ChatGPT interrompe tentativas adicionais de crawling ao encontrar diretivas disallow ou bloqueio de rede
- Métodos de autenticação padronizados como Web Bot Auth também são adotados ativamente
Proteção e resposta
- Todo crawling originado de User Agents não declarados da Perplexity é detectado e bloqueado pelo sistema de gerenciamento de bots da Cloudflare
- Clientes que já têm regras de bloqueio ou de challenge de bots da Cloudflare ativadas já estão protegidos
- Regras administrativas para bloqueio de crawlers stealth foram disponibilizadas para todos os clientes, incluindo os gratuitos
- Após o anúncio do Content Independence Day, mais de 2,5 milhões de websites aplicaram políticas de proibição de crawling por IA
- A Cloudflare continua evoluindo seu arsenal e suas tecnologias para acompanhar as tentativas de evasão em evolução de operadores de bots
Esforços de política e perspectivas futuras
- A Cloudflare participa ativamente de discussões com especialistas técnicos e de política em todo o mundo, incluindo a IETF, sobre padronização de extensões do robots.txt
- Avança para estabelecer regras para crawlers confiáveis e enfatiza transparência e conformidade em um ambiente de IA e crawlers em rápida mudança
2 comentários
Apoio a Perplexity
Opinião do Hacker News
Acho que esse problema é realmente difícil de resolver
Algumas lojas não recebem bem serviços como Instacart ou Postmates
Não importa se você faz compras pessoalmente ou escaneia todos os itens com o celular para comparar preços
Mas enviam funcionários próprios para investigar estoque ou retirar itens após pedido online não é algo permitido
As razões variam: não querem perder o controle da percepção de qualidade do produto (alimentos resfriando, aumento de preço, substituição errada, etc.), querem que funcionários atendam e criem relacionamento com o cliente, ou simplesmente rejeitam a entrega por terceiros
Recusar que uma empresa alheia opere dentro da minha loja física parece uma escolha razoável
Acho que esse raciocínio também se aplica a serviços digitais
Trata-se de uma questão de escala
A próxima etapa que você descreve provavelmente é
o dia em que pessoas rodarem um bot de pesquisa pessoal para buscar respostas em dezenas de sites e fazer solicitações muito mais rápido que humanos
precisamos pensar até onde isso deve ser aceitável
rastreamento pessoal é aceitável? Ou um bot fica mais esperto, prevendo o que o usuário vai perguntar, e faz crawling com dados atualizados o tempo todo?
Ou, quando escala cresce e começa o crawling em massa para vários usuários, é quando passa a ser problemático?
Eu acho útil separar scraping em massa e agentes de usuário com os termos "crawler" e "fetcher"
Venho participando do desenvolvimento de ferramentas para detecção de AI agents (leia: https://stytch.com/blog/introducing-is-agent/), e acho que faz sentido o operador de site poder identificar AI agents e sugerir métodos de acesso restritos
Já crawlers, por outro lado, podem se passar por crawlers renomados, ignorando robots.txt e se comportando mal
A solução padrão, por ora, é reverse DNS lookup de IP, o que também é um incômodo para o dono do site
Acho mais eficiente bloquear todo acesso incomum
Concordo que o modelo de publicidade em si tem muitos problemas
mas não é a internet que quero ver no futuro, em que empresas de IA separam criadores de conteúdo de usuários
por exemplo, alguém roda uma newsletter paga, libera parte dela de graça para atrair visitantes interessados, depois converte parte em pagantes
esse criador espera que "ver conteúdo e fazer upsell" aconteça juntos
se um crawler de IA pula esse processo e só extrai o conteúdo mais importante, não faz sentido publicar nada de graça na web
se os crawlers de IA vencerem, no fim todos perdem
Há muita página no mundo que não é só publicidade
motores de busca tradicionais tinham um contrato implícito: 'nós permitimos crawl, você nos traz tráfego'
crawlers de IA para modelos proprietários quebram esse contrato
com os dados, constroem um modelo e adicionam função de QA (perguntas e respostas), e empresas de LLM lucram bilhões com esse conhecimento obtido por crawlers do site, mas não devolvem nada para ele
mesmo que seja só para responder usuários, o provedor da LLM fica com a maior parte da receita e o autor do conteúdo nem recebe visitas
se a Perplexity pode pegar páginas ignorando robots.txt e bloqueios para pedidos de usuários, é difícil acreditar que isso não será usado para treino depois
Achei interessante ver as mudanças rápidas
A web ficar 'mundial' e concentrada em comunidades menores (socialmente, não necessariamente geograficamente) pode ser até melhor
construir sua própria comunidade e tornar o espaço mais privado vai ficar cada vez mais importante
a web mais aberta do passado tende a virar espaço para máquinas
a gente antes odiava "bolha" (espaço próprio), mas bolha é natural e faz sentido quando não for solitária
quando a web ficar lotada de máquina e conteúdo de máquina, as pessoas vão ter de reaprender a se conectar novamente
Sobre o teste que fiz com Perplexity AI, em que ele detalhou conteúdo de domínio bloqueado
Sinto que isso termina em um artigo de marketing criticando uma empresa específica (Perplexity), sem conclusão clara
Não fica claro se a Perplexity fez crawling direto (varrendo sistematicamente todas as páginas) ou se só buscou uma vez por solicitação do usuário
A maioria das pessoas vê isso de forma diferente e acha o segundo caso bem mais aceitável
Parece propaganda da Perplexity
De novo, aparece a Cloudflare no papel de "boa" e Perplexity no de "má", mas a própria Cloudflare também faz marketing agressivo de que vai salvar a web
A base é frágil e, com as duas em choque como gigantes, talvez isso até saia no PR da Perplexity
Buscar páginas em vez de usuários pode ser permitido em princípio, mas, se a gente olhar para empresas de IA já ignorando direitos autorais e outras normas, não dá pra descartar a chance de o conteúdo ser armazenado para treino futuro ou crawling extra
Até na especificação HTTP isso aparece indiretamente
Há separação concreta no conceito e no nome de “user agent”
Se a IA cachear ou arquivar resultados e muita gente usar, no fim isso vira scraper
basta treinar com os dados em cache
é uma forma de intermediar, pegar conteúdo importante e ainda capturar sinais de valor dos dados
Segundo resposta que a Perplexity mandou para a TechCrunch
o post do blog da Cloudflare é só “venda agressiva”
além disso, o screenshot do blog diz que "nenhum conteúdo foi acessado"
e acrescenta que o bot citado no blog não é deles
A própria Perplexity bloqueia crawlers
mesmo mascarando com user agent de navegador, também é bloqueada
parece que usam um método bem sofisticado de detecção de crawler
Alguém já fez essa pergunta ao CEO https://x.com/AravSrinivas/status/1819610286036488625
Engraçado: a Perplexity também usa Cloudflare
Sempre vão vencer os crawlers stealth
Ao criar scraper com ferramentas de automação de navegador (W3C WebDriver2, Chrome DevTools Protocol), a detecção fica quase impossível
Dá para colocar captcha, mas o desenvolvedor pode inserir fluxo human-in-the-loop para que o atendimento no horário de call center seja feito por pessoas
Há 15 anos, testes de jogos já usavam scraping baseado em raster (imagem de tela), o que hoje vai deixar a fiscalização da internet bem complicada
Acho que a internet precisa de sistema de micropagamento
Se crawlers pagassem ao menos 1 centavo por página, crawling 24h seria bem-vindo
Se eu pagar 1 centavo para ver conteúdo diretamente, não precisaria conviver com clickbait ou regras estranhas de anúncio
acesso gratuito não precisa ser bloqueado o tempo todo (na prática vai ser bloqueado, mas isso também importa)
Por exemplo, imagino a Reddit cobrando taxa alta e reembolsando bom conteúdo para melhorar qualidade
um sistema novo de “depósito-cobrança-penalidade” também é possível: você coloca um depósito na inscrição, se for banido ele é perdido, se operar normalmente ele é reembolsado. Isso simplifica trabalho de moderação e eleva qualidade
essa ideia é necessária porque a internet está ficando cada vez mais cheia de lixo
Outra ideia: pagar 1 centavo por busca no Google e similares, e reembolsar se o resultado não agradar
O AI do Google mediria satisfação; se a busca não for boa, mostraria só resultados populares cheios de anúncio
assim o usuário passa a confiar dinheiro para outro buscador
Se alguém ameaça a confiabilidade da rede ao rastrear a página de modo indiscriminado, é positivo que uma instituição respeitada como Cloudflare critique publicamente scraping fraudulento
O fato de essa controvérsia acender o debate por si só já é significativo
no fim, os grandes players precisam voltar para uma era de busca em que, como antes, pelo menos as regras mínimas eram seguidas
Dá para construir um buscador pessoal com bastante do que Perplexity faz
Em comparação com colegas, recebi quase empate de preferência entre meu buscador e Perplexity
O mecanismo consegue baixar páginas para pesquisa
Mas se bater captcha ou bloqueio, eu paro no primeiro obstáculo
Já as big techs, com bilhões de venture capital por trás, acham que podem fazer qualquer coisa, e isso me deixa irritado
Afirmam que "mais de 2,5 milhões de sites escolheram bloquear o treinamento de IA inteiro com Cloudflare managed robots.txt e regras de bloqueio de AI crawler"
mas na prática, o CEO da Cloudflare aplicou esse recurso como padrão para todos os clientes
se uma empresa quer recomendação de IA ou valoriza tráfego, precisa desligar isso para evitar dano financeiro
"Aplicação padrão" é mentira
Eu mesmo verifiquei sites da Cloudflare: sem configuração alguma, esse recurso não fica aplicado por padrão
Se não há robots.txt, aparece só "considere ativar Cloudflare managed robots.txt"
Se já existe arquivo, ele permanece, e o aviso de tráfego de IA também fica manualmente desligado
Sobre a ideia de que “se quiser recomendação de IA, tem de desligar a configuração”
Marketing de conteúdo, SEO gamificado e excesso de publicidade degradaram bastante a qualidade de busca do Google
já os LLMs ainda não mostram muita dessa ‘gamificação’
pode ser que um dia os LLMs também estraguem como busca, mas espero que OpenAI e Anthropic percebam que essa queda de qualidade de busca seja a origem da queda de tráfego no Google
A alegação de “aplicação por padrão” é totalmente falsa
Na prática, sem nenhuma configuração, essa função não é automaticamente "associada"
Nem mesmo no período em que essa ideia parecia correta isso permanece hoje; originalmente já era diferente