Se a sua automação sempre cai nos desafios de imagem mais difíceis do reCAPTCHA, o culpado raramente é o site — é o estado dos cookies do navegador. O Google usa os cookies gravados em .google.com como um dos principais sinais de risco: um perfil com histórico normal de navegação costuma passar só no clique da caixa de seleção, enquanto um navegador "zerado" cai direto em desafios de várias rodadas. Este guia mostra exatamente quais cookies o reCAPTCHA grava e lê, como eles mudam a dificuldade do desafio e o que vale a pena preservar nas suas sessões de automação para melhorar a taxa de resolução.
Por que os cookies mudam a dificuldade do desafio reCAPTCHA
O mecanismo de risco do reCAPTCHA não olha só para o clique na caixa de seleção — ele cruza vários sinais, e os cookies do Google pesam bastante nessa conta:
| Estado do cookie | Dificuldade do desafio | Por quê |
|---|---|---|
| Logado em uma conta do Google | Mais baixa | Sinal de identidade forte |
| Cookies do Google presentes (sem login) | Baixa a média | Mostra histórico de navegação normal |
| Navegador novo, sem cookies do Google | Média a alta | Sem histórico para avaliar o risco |
| Cookies bloqueados ou removidos | Alta | Padrão suspeito — navegadores normais têm cookies |
| Modo anônimo/privado | Alta | Sem identidade persistente |
O impacto na prática
Na prática, o resultado se resume a três cenários:
- Melhor cenário: o navegador carrega os cookies
SID,HSIDeNIDde uma sessão do Google já autenticada → o desafio quase sempre passa só com o clique na caixa de seleção. - Cenário intermediário: o navegador tem
NIDe1P_JARvindos de navegação normal, sem login → desafios de imagem mais simples ou passagem direta pela caixa de seleção. - Pior cenário: sessão nova, sem nenhum cookie do Google → desafios de imagem em múltiplas rodadas.
Quais cookies o reCAPTCHA grava e lê
Cookies de domínio do Google
Gravados em .google.com e lidos pelo iframe do reCAPTCHA:
| Cookie | Domínio | Finalidade | Validade |
|---|---|---|---|
NID |
.google.com |
Preferências do Google e ID único | 6 meses |
SID/HSID/SSID |
.google.com |
Sessão da conta do Google (se estiver logado) | 2 anos |
APISID / SAPISID |
.google.com |
Autenticação da API do Google | 2 anos |
1P_JAR |
.google.com |
Personalização de anúncios do Google | 1 mês |
CONSENT |
.google.com |
Preferência de consentimento de cookies | 17 anos |
Cookies específicos do reCAPTCHA
| Cookie | Domínio | Finalidade | Validade |
|---|---|---|---|
_GRECAPTCHA |
.google.com / .recaptcha.net |
Rastreamento da sessão reCAPTCHA | Sessão |
rc::a |
localStorage | Dados de análise de risco | Persistente |
rc::b |
localStorage | Registro de data e hora | Sessão |
rc::c |
localStorage | Dados específicos do desafio | Sessão |
rc::d-<id> |
localStorage | Dados por widget | Sessão |
Cookies do site que hospeda o reCAPTCHA
O próprio site onde o widget está embutido também pode usar cookies para sessão e proteção CSRF:
- ID de sessão (
PHPSESSID,session_id): vincula a resolução do CAPTCHA à sessão do usuário. - Token CSRF (
csrf_token,_token): necessário para o envio do formulário. - Rastreamento personalizado (específico do site): pode influenciar quando o CAPTCHA é acionado.
Como preservar cookies do reCAPTCHA na automação
Com automação de navegador (Playwright/Puppeteer)
A automação com navegador real já lida com cookies naturalmente. Para preservá-los entre execuções:
# Save cookies after session
cookies = page.context.cookies()
import json
with open("cookies.json", "w") as f:
json.dump(cookies, f)
# Restore cookies in next session
with open("cookies.json") as f:
cookies = json.load(f)
page.context.add_cookies(cookies)
Um time de QA que testa staging.example.com a partir de um worker na região sa-east-1 da AWS ganha ao manter o mesmo perfil de navegador entre execuções: o histórico de cookies do Google se acumula em vez de zerar a cada pipeline, reduzindo desafios difíceis. Cuidado de LGPD: evite logar cookies de sessão em texto claro nos relatórios — grave só o necessário para depuração.
Com a API da CaptchaAI (resolução sem navegador)
Ao usar a CaptchaAI sem navegador, os cookies não afetam diretamente a resolução — a CaptchaAI gerencia o próprio ambiente de resolução. Ainda assim, você pode enviar cookies se o site de destino precisar deles para manter a continuidade da sessão:
POST https://ocr.captchaai.com/in.php
key=YOUR_API_KEY
&method=userrecaptcha
&googlekey=SITE_KEY
&pageurl=https://staging.example.com/qa-login
&cookies=NID=12345;1P_JAR=2026-04-04-12
O parâmetro cookies é opcional e serve apenas para enviar contexto adicional à CaptchaAI durante a resolução.
Dados em localStorage: o complemento dos cookies rc::
O reCAPTCHA também guarda dados de avaliação de risco no localStorage, sob chaves com o prefixo rc:::
| Padrão de chave | Dados |
|---|---|
rc::a |
Carga codificada de análise de risco |
rc::b |
Data e hora do último desafio |
rc::c |
Dados da sessão de desafio atual |
rc::d-<hash> |
Dados de instância por widget |
Essas entradas ajudam o reCAPTCHA a manter o estado entre carregamentos de página sem depender de cookies de terceiros. Preservar o localStorage, junto com os cookies, costuma reduzir a dificuldade do próximo desafio:
# Save localStorage
storage = page.evaluate("() => JSON.stringify(localStorage)")
with open("localstorage.json", "w") as f:
f.write(storage)
# Restore localStorage
with open("localstorage.json") as f:
storage = f.read()
page.evaluate(f"Object.entries(JSON.parse('{storage}')).forEach(([k,v]) => localStorage.setItem(k,v))")
Restrições de cookies entre domínios
O widget do reCAPTCHA carrega dentro de um iframe servido por google.com, e os navegadores modernos aplicam políticas cada vez mais rígidas de cookies:
- SameSite=Lax (padrão): os cookies do Google não são enviados no iframe do reCAPTCHA por padrão.
- Bloqueio de cookies de terceiros: o reCAPTCHA recorre a
recaptcha.netou ao modo first-party. - ITP (Safari): os cookies do Google expiram mais rápido, e desafios difíceis ficam mais frequentes.
Diante dessas restrições, o próprio Google usa recaptcha.net como domínio alternativo, mantém os dados rc::* no localStorage como estado do lado do cliente e oferece opções de carregamento first-party para clientes Enterprise.
Boas práticas para manter os cookies "quentes"
- Persista perfis de navegador entre execuções — constrói histórico de navegação, o que reduz a dificuldade dos desafios.
- Não limpe cookies entre tarefas — mantém a continuidade da avaliação de risco do Google.
- Use
recaptcha.netquandogoogle.comestiver bloqueado — mesmo serviço, domínio alternativo. - Preserve as entradas
rc::do localStorage — mantém o estado da sessão do reCAPTCHA. - Visite propriedades do Google de vez em quando — renova a validade dos cookies.
Solução de problemas comuns
| Problema | Causa provável | Correção |
|---|---|---|
| Sempre cai em desafios de imagem difíceis | Sem cookies / perfil novo | Construa um perfil de navegador com cookies do Google acumulados |
| reCAPTCHA mostra erro de "cookies necessários" | Cookies de terceiros bloqueados | Habilite cookies para google.com ou use recaptcha.net |
| Token válido, mas sessão não bate | Cookie do site (PHPSESSID) não foi mantido |
Salve e restaure todos os cookies, não só os do Google |
| Loop de desafio — continua pedindo mais imagens | localStorage foi limpo entre tentativas | Preserve as entradas rc::* do localStorage |
Perguntas frequentes
Rodar o navegador em modo headless muda como o reCAPTCHA lê os cookies?
Não pelo mecanismo em si — cookies e localStorage funcionam igual em modo headless. O que muda é a chance de o site tratar o headless como sinal de risco adicional, à parte do estado dos cookies.
A CaptchaAI precisa dos cookies do meu navegador para resolver o reCAPTCHA?
Não. A CaptchaAI resolve o reCAPTCHA de forma independente, usando a própria infraestrutura de resolução. Enviar cookies é opcional e serve só como contexto extra para o site de destino.
Por causa da LGPD, preciso anonimizar os cookies antes de registrar os testes?
Se os relatórios guardam cookies de sessão real (não fictícios), trate como dado sensível: não persista o valor bruto em logs de longo prazo e restrinja o acesso a cookies.json. Em testes com dados fictícios isso não se aplica.
O modo anônimo/privado prejudica a resolução do reCAPTCHA?
Sim. O modo anônimo limpa todos os cookies e o localStorage a cada sessão, o que deixa os desafios do reCAPTCHA mais difíceis. Para automação de navegador, um perfil persistente tende a gerar desafios mais fáceis.
Quais cookies eu devo priorizar ao restaurar uma sessão entre execuções?
Priorize NID, 1P_JAR e as entradas rc:: do localStorage — pesam mais na avaliação de risco e perdem validade mais rápido (o 1P_JAR dura cerca de 1 mês).
Artigos relacionados
- Como resolver o callback do reCAPTCHA v2 pela API
- reCAPTCHA v2 e Turnstile no mesmo site
- Mecanismo de callback do reCAPTCHA v2
Próximos passos
Melhore suas taxas de resolução de reCAPTCHA — obtenha sua chave de API da CaptchaAI e gerencie os cookies corretamente nos seus fluxos de automação.