SEO Programático · Capítulo 17 de 21 · 31 min
Blindar o acervo contra risco jurídico e de marca
Contrato, termos de uso e dado de pessoa natural definem o que pode ser publicado, mesmo quando a informação está aberta na web.
Este capítulo faz parte do curso gratuito SEO Programático. Para marcar como concluído e salvar o progresso, abra este capítulo na página do curso.
Uma notificação extrajudicial ou um processo por coleta indevida custa mais que o acervo inteiro rendeu, e o risco se decide antes da primeira página publicada. A cena é sempre a mesma. O projeto está pronto, o inventário fecha, o template passa na régua de densidade, e alguém pergunta se pode publicar. A resposta que sai automática é "o dado é público". Essa frase descreve como você conseguiu o dado, e nenhuma das três coisas que decidem o risco: se houve credencial no caminho, se você aceitou algum termo, e se algum campo aponta para uma pessoa.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Comece pelos Estados Unidos, porque é de lá que vem quase toda a citação errada do mercado brasileiro.
Em Meta v. Bright Data (Northern District of California, 23/01/2024, juiz Edward Chen), a sentença sumária foi favorável ao coletor, com dois pontos de efeito prático. Primeiro: os termos de uso da Meta só alcançariam a Bright Data se houvesse prova de coleta feita logada, e essa prova não veio. Segundo: a cláusula de sobrevivência, que pretendia proibir a extração em perpetuidade depois do encerramento da conta, foi considerada inexequível. A Meta desistiu do processo em fevereiro de 2024.
O que isso desenha para o seu projeto: conteúdo servido a qualquer visitante, sem conta e sem termo aceito, está numa posição jurídica muito diferente de conteúdo atrás de autenticação. A diferença não está no dado, está no caminho até ele.
A pergunta que abre o parecer de qualquer coleta: para chegar neste dado, alguém precisou de credencial? Se a resposta for sim, você está do lado direito da figura. A discussão deixa de ser sobre propriedade intelectual (o direito sobre obra e base de dados) e passa a ser sobre acesso autorizado e sobre um contrato que alguém aceitou. Se for não, siga para a segunda pergunta, que é a de pessoa natural.
Dois casos que o mercado conta errado, e que você vai ouvir de cliente ou de colega.
Ryanair v. Booking.com. Em 18/07/2024 um júri em Delaware decidiu a favor da Ryanair por violação do CFAA no acesso à área myRyanair, com dano fixado em US$ 5.000. A Ryanair divulgou como vitória histórica. Entre janeiro e março de 2025 o juízo derrubou o veredicto ao conceder *judgment as a matter of law*: a Ryanair não provou os US$ 5.000 mínimos de prejuízo que o CFAA exige, porque custos de atendimento ao cliente não contam como *loss* e apenas US$ 2.457,72 gastos com antibot foram aceitos. O caso subiu para o Terceiro Circuito, com *amicus briefs* de EFF e Reporters Committee. Em julho de 2026 o ponto seguia sem pacificação.
hiQ Labs v. LinkedIn. Quem cita como prova de que "scraping é legal" está citando a decisão interlocutória. O desfecho foi acordo desfavorável ao hiQ: injunção permanente proibindo a coleta no LinkedIn, obrigação de deletar dados e algoritmos derivados, US$ 500 mil ao LinkedIn e estipulação de responsabilidade sob CFAA pelo acesso a páginas protegidas por senha com contas falsas.
18/07/2024 jurado decide pela Ryanair (CFAA, area myRyanair)
dano fixado em US$ 5.000
|
v
jan-mar/2025 juizo concede judgment as a matter of law
atendimento ao cliente nao conta como loss
so US$ 2.457,72 de antibot foram aceitos
resultado: veredicto derrubado
|
v
jul/2025 caso no Terceiro Circuito
amicus briefs de EFF e Reporters Committee
|
v
jul/2026 EM ABERTO. quem cita o veredicto de 2024
como estado atual esta um ano e meio atrasadoO ponto contraintuitivo da União Europeia é o que mais interessa a quem monta agregador, e ele inverte a intuição de todo mundo.
No caso Ryanair julgado pela CJEU, os dados de voo não receberam proteção por direito autoral nem pelo direito sui generis de banco de dados. Como as exceções da Diretiva 96/9/CE, que garantem certos usos legítimos, existem dentro desses regimes, elas também deixaram de se aplicar. Sobrou o contrato, sozinho, sem os limites que a lei de propriedade intelectual imporia. Uma base desprotegida acabou mais blindada que uma protegida.
A consequência operacional é curta: "esse dado não tem direito autoral" não é defesa. É apenas a informação de que você perdeu as exceções que poderiam te socorrer.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
No Brasil, o caso mais citado é Curriculum contra Catho, decisão de primeira instância da 33ª Vara Cível de São Paulo, juiz Luiz Mario Galbetti, com condenação de R$ 21.828.250,00. O cálculo é o que vale como aula: valor mensal cobrado pela Catho por currículo (R$ 50,00) multiplicado por 436.595 currículos obtidos ilegalmente. Os fundamentos foram concorrência desleal, violação de sistemas, enriquecimento ilícito e abuso de direito.
Guarde o raciocínio de dano, que é preço unitário multiplicado por volume raspado. Ele é o que aparece quando alguém precisa transformar uma coleta em cifra, e ele independe do resultado daquele processo específico.
Ressalvas obrigatórias sobre o caso Curriculum contra Catho, e diga isso em voz alta se for citá-lo para um cliente: os fatos são de 2002, a decisão é de primeira instância, o desfecho em grau de recurso não foi confirmado, e o valor de R$ 63 milhões com juros que circula em artigos não foi confirmado de forma independente. O valor didático está no método de cálculo do dano, não na jurisprudência.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
A ANPD, a autoridade nacional de proteção de dados, tratou de raspagem de dados (coleta automática de páginas por robô) no Radar Tecnológico nº 3, publicado em novembro de 2024, cujo tema central é IA generativa. Cite o PDF original, listado nas fontes ao fim deste módulo, porque as análises secundárias que circulam parafraseiam sem reproduzir o texto original, e você vai acabar defendendo uma frase que a autoridade não escreveu.
A regra prática para o seu projeto cabe em uma linha: se a página programática exibe dado que identifica pessoa natural (nome de profissional, avaliação com autoria, currículo, telefone), a lei brasileira de proteção de dados pessoais entra independentemente de o dado ser público. "Estava público" descreve a origem e não é base legal.
Exemplo resolvido: o parecer do Radar de Preço de Combustível.
O Radar publica uma página por município e por tipo de combustível, com o preço médio praticado naquela semana e a série histórica. A fonte é a série da ANP, cruzada com a base de localidades do IBGE. Nenhum campo publicado aponta para uma pessoa. A coleta é de arquivo aberto, sem conta e sem termo aceito, então o projeto está do lado esquerdo da primeira figura.
A decisão de projeto aparece quando alguém propõe descer ao registro por posto, com razão social e endereço. Isso muda a natureza do dado, porque revenda constituída como firma individual ou MEI carrega o nome do titular na razão social. O parecer abaixo é o artefato que registra essa decisão, e ele roda como verificação antes do build.
// scripts/parecer-radar.ts
// Roda com: npx tsx scripts/parecer-radar.ts
// Sai com codigo 1 se algum campo marcado como pessoa natural estiver publicado
// sem base legal declarada. Prende o parecer ao build, em vez de deixa-lo num PDF.
type Campo = {
nome: string;
origem: string;
licenca: string;
identificaPessoaNatural: boolean;
publicadoNaPagina: boolean;
baseLegal?: string;
nota?: string;
};
const CAMPOS: Campo[] = [
{
nome: "municipio",
origem: "IBGE, API de Localidades",
licenca: "dado aberto governamental, atribuicao no rodape",
identificaPessoaNatural: false,
publicadoNaPagina: true,
},
{
nome: "produto",
origem: "ANP, série histórica de preços de combustíveis",
licenca: "dado aberto governamental, atribuicao no rodape",
identificaPessoaNatural: false,
publicadoNaPagina: true,
},
{
nome: "preco_medio_revenda",
origem: "ANP, série histórica de preços de combustíveis",
licenca: "dado aberto governamental, atribuicao no rodape",
identificaPessoaNatural: false,
publicadoNaPagina: true,
},
{
nome: "semana_de_coleta",
origem: "ANP, série histórica de preços de combustíveis",
licenca: "dado aberto governamental, atribuicao no rodape",
identificaPessoaNatural: false,
publicadoNaPagina: true,
},
{
nome: "razao_social_revenda",
origem: "ANP, série histórica de preços de combustíveis",
licenca: "dado aberto governamental, atribuicao no rodape",
identificaPessoaNatural: true,
publicadoNaPagina: false,
nota: "revenda constituida como firma individual ou MEI leva o nome do titular na razao social",
},
{
nome: "endereco_revenda",
origem: "ANP, série histórica de preços de combustíveis",
licenca: "dado aberto governamental, atribuicao no rodape",
identificaPessoaNatural: true,
publicadoNaPagina: false,
nota: "combinado com a razao social, localiza uma pessoa em um endereco",
},
];
function auditar(campos: Campo[]): { pendencias: string[]; publicados: number } {
const pendencias: string[] = [];
for (const c of campos) {
if (!c.origem || !c.licenca) {
pendencias.push(`campo "${c.nome}": sem origem ou sem licenca declarada`);
}
if (c.publicadoNaPagina && c.identificaPessoaNatural && !c.baseLegal) {
pendencias.push(
`campo "${c.nome}": identifica pessoa natural e esta publicado sem base legal declarada`,
);
}
}
return { pendencias, publicados: campos.filter((c) => c.publicadoNaPagina).length };
}
const { pendencias, publicados } = auditar(CAMPOS);
console.log(`campos no esquema: ${CAMPOS.length} | publicados na pagina: ${publicados}`);
if (pendencias.length > 0) {
console.error("parecer reprovado:");
for (const p of pendencias) console.error(` - ${p}`);
process.exitCode = 1;
} else {
console.log("parecer aprovado: nenhum campo de pessoa natural publicado sem base legal");
}Repare no que o script faz e no que ele não faz.
Ele não decide se você pode publicar. Ele reprova o build quando alguém, daqui a seis meses, virar publicadoNaPagina para true num campo marcado como pessoa natural sem escrever a base legal ao lado. É a diferença entre um parecer que envelhece numa pasta e um parecer que participa do deploy. A decisão continua sendo humana, o que muda é que ela passa a ser explícita e datada.
A atribuição da ANP no rodapé, que você definiu no módulo de fontes brasileiras, é o outro lado desse mesmo artefato: ela declara para o leitor a mesma origem que o script exige do desenvolvedor.
O risco de marca não aparece em processo e destrói projeto. Página programática que nomeia marca de terceiro em massa e sem curadoria ("alternativas ao X", "X vs Y") gera exposição de uso de marca e eventual denigração, e o primeiro efeito não vem do buscador: vem da notificação extrajudicial, que chega antes de qualquer avaliação de qualidade. O caso Causal mostra a outra metade, que é o dano reputacional puro: a cobertura negativa (Futurism, Daily Dot) associou o nome da empresa cliente a uma tática predatória de forma permanente e indexada. O tráfego voltou à linha de base em quatro meses. As matérias continuam lá.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Se o projeto precisa mesmo comparar produtos de terceiros, o que reduz risco é curadoria com evidência: comparação escrita a partir de teste ou de documentação pública citada, com data, e sem afirmação sobre defeito que você não consegue demonstrar. O que aumenta risco é a matriz combinatória de marcas gerada sem que ninguém leia o resultado. A diferença entre as duas é exatamente a mesma que separa acervo de doorway, e reaparece aqui em outra jurisdição.
Peça ao responsável pelo projeto o parecer de risco do Radar, no formato do script acima mais um parágrafo em prosa. Ele está pronto quando cumpre cinco condições:
- Cada campo do registro tem origem e licença declaradas, com o link da fonte.
- Cada campo tem o veredito de pessoa natural, com a nota que justifica o veredito quando ele for sim.
- A atribuição da ANP está no rodapé das páginas geradas, e o parecer aponta para onde ela está no código.
- A decisão sobre publicar ou não nome e endereço de posto individual está escrita, datada e assinada por você, com a razão. Decidir não publicar também é decisão, e precisa estar registrada igual.
- O script sai com código 1 quando você inverte, de propósito, um
publicadoNaPaginapara testar o gate.
Submeta as quatro coletas abaixo ao jurídico e ao time de dados na mesma reunião. Cada uma recebe duas classificações: posição na fronteira (deslogado ou logado) e veredito sobre a lei de dados pessoais (entra ou não entra), justificado pelo mecanismo: (1) Você baixa o CSV semanal da ANP no portal de dados abertos e publica o preço médio por município. (2) Você cria uma conta gratuita num marketplace de serviços e, logado, coleta nome, telefone e nota de avaliação de prestadores para montar uma página por cidade. (3) Você raspa, sem conta nenhuma, um diretório público de profissionais que exibe nome completo, especialidade e endereço de atendimento, e republica tudo em páginas por bairro. (4) Você coleta, sem conta, a tabela de preços de passagens de uma companhia aérea cujos termos de uso proíbem extração automatizada, e monta um comparador. Feche a reunião com duas respostas registradas: em qual dessas coletas o dado é público e a lei de dados pessoais entra assim mesmo, e por que a resposta do caso (4) não muda mesmo que a base de preços não tenha proteção de propriedade intelectual.
O guia abaixo é para o executivo que assina a liberação do acervo e precisa de um parecer que sobreviva à troca de equipe. Ele destrava uma decisão só: publicar, ajustar ou vetar cada campo do registro antes que ele vire página.
Guia de implementação: montar o parecer de risco do acervo
Cinco passos que transformam "o dado é público" num documento com dono, data e verificação automática.
Passo 1: Mapear o caminho de cada fonte até o dado
Para cada fonte, registre se houve conta, senha ou termo aceito no caminho da coleta.
Deu certo quando: Toda fonte aparece como deslogada ou logada, com a data e a conta usada quando houver.
Erro comum: Tratar o painel de um parceiro, acessado com login da empresa, como se fosse dado aberto.
Passo 2: Ler os termos de uso e a licença de cada fonte
Anote cláusula de proibição de extração, exigência de atribuição e restrição de uso comercial.
Deu certo quando: Cada fonte tem a cláusula relevante citada literalmente, com link e data de leitura.
Erro comum: Concluir que base sem direito autoral é base livre; o caso Ryanair mostra o contrário.
Passo 3: Rodar a árvore de pessoa natural campo a campo
Nome, telefone, avaliação com autoria e razão social de firma individual acendem o alerta.
Deu certo quando: Todo campo tem veredito escrito, e os que identificam pessoa têm base legal declarada ou ficam fora da página.
Erro comum: Decidir por página, e não por campo, e deixar passar a coluna que identifica alguém.
Passo 4: Prender o parecer ao build
O script do exemplo reprova a publicação quando alguém liga um campo sensível sem base legal.
Deu certo quando: Inverter de propósito um campo sensível faz o build falhar com mensagem que nomeia o campo.
Erro comum: Guardar o parecer num PDF que ninguém consulta quando o esquema muda.
Passo 5: Revisar o risco de marca nas páginas comparativas
Toda afirmação sobre produto de terceiro precisa de evidência datada ou sai da página.
Deu certo quando: Amostra de 20 páginas comparativas sem nenhuma afirmação sem lastro.
Erro comum: Gerar a matriz "X contra Y" para todas as marcas do setor sem que ninguém leia o resultado.
No fim você tem: um parecer campo a campo, assinado pelo jurídico, que reprova o build sozinho quando alguém tenta publicar o que não devia.
Quem faz, quanto custa, como conferir
| Etapa | Quem faz | Prazo e esforço | Como conferir |
|---|---|---|---|
| Caminho de cada fonte | Engenheiro de dados | Meio dia por fonte | Planilha com deslogado ou logado, conta e data |
| Termos e licenças | Jurídico, com o dono do dado | 1 a 2 dias para até cinco fontes | Cláusulas citadas literalmente, com link |
| Árvore de pessoa natural | Jurídico e analista de dados juntos | 1 dia; sem custo de licença | Veredito escrito para cada campo do registro |
| Parecer no build | Desenvolvedor | Meio dia para adaptar o script | Build falha no teste proposital com um campo sensível |
| Risco de marca | Analista de conteúdo; jurídico revisa | 1 dia por lote de 20 páginas comparativas | Nenhuma afirmação sem evidência na amostra |
Encomende o parecer ao jurídico nesta semana, com prazo de 15 dias e o script de verificação ligado ao build. Considere a tarefa concluída quando o build falhar no teste proposital com um campo sensível e o documento trouxer, para cada fonte, a cláusula de termos lida e a data da leitura.
Perguntas frequentes deste capítulo
Posso usar robots.txt e termos de uso como prova de que a coleta era permitida?
Meu projeto usa só dado aberto governamental. Preciso mesmo de parecer?
O que muda se eu publicar preço por posto em vez de média por município?
Se me notificarem por uma página que cita marca de terceiro, o que fazer primeiro?
Posso citar hiQ v. LinkedIn para tranquilizar um cliente sobre coleta?
Seu caderno neste capítulo
Abrir o caderno completoSelecione um trecho do capítulo para destacar ou anotar. Nos vídeos e áudios, use Anotar este momento. No teclado, selecione com Shift e as setas e use Alt+Shift+D para destacar ou Alt+Shift+N para anotar.
Salvo neste navegador. Entre na sua conta para levar o caderno a outros aparelhos.
Entre na sua conta para compartilhar o que aprendeu e convidar alguém para estudar com você.
Conexões deste capítulo
Explore os conceitos e compare abordagens em outros cursos. As conexões indicam assuntos relacionados; a sequência de estudo continua no índice do curso.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- GEO Intent MappingQuando a IA mente sobre a sua empresa, quem respondeExaminar conexões de Quando a IA mente sobre a sua empresa, quem responde
- GEO e Knowledge GraphO que a máquina pode dizer errado sobre você, e quem pode ler o seu conteúdoExaminar conexões de O que a máquina pode dizer errado sobre você, e quem pode ler o seu conteúdo
- Gestão de Projetos GEOConferir as obrigações aplicáveis no BrasilExaminar conexões de Conferir as obrigações aplicáveis no Brasil
Voltar ao capítulo anterior: Proteger o acervo nas atualizações de spam de 2026
Capítulos vizinhos em SEO Programático
- 15Ler a política de spam e responder à ação manual
- 16Proteger o acervo nas atualizações de spam de 2026
- 17Blindar o acervo contra risco jurídico e de marca
- 18Decidir em comitê entre escalar, podar ou parar
- 19Escolher quando cada página nasce no Next.js 16