---
type: Reference
title: "Método de Inspeção GEO em 8 Camadas"
description: "Método auditável que verifica, do servidor até a citação por IA, se um site é recebido, entendido, indexado e recomendado por buscadores, assistentes e agentes de IA."
resource: https://felipecferreira.com.br/documentacao/metodo-de-inspecao-geo/
generated: { by: process:okf-bridge, at: 2026-10-17T17:40:39Z }
status: stable
sources:
  - id: canonical-html
    resource: https://felipecferreira.com.br/documentacao/metodo-de-inspecao-geo/
    title: "Página oficial em HTML"
    last_modified: 2026-10-17T17:40:38Z
---

![Felipe Carvalho Ferreira](https://secure.gravatar.com/avatar/473c11684b1b0b3b3673a14a126ecef3ab3d5509c406dfa6f11ce045cdf00f30?s=64&d=mm&r=g)

Autor do documento

[Felipe Carvalho Ferreira](https://felipecferreira.com.br/sobre/)

Bac.Engenharia, Autor, Professor, Consultor

[Pilar 02 · Busca e Autoridade](https://felipecferreira.com.br/biblioteca/categoria/busca-e-autoridade/)

Método

# Método de Inspeção GEO em 8 Camadas

Método auditável que verifica, do servidor até a citação por IA, se um site é recebido, entendido, indexado e recomendado por buscadores, assistentes e agentes de IA.

Desenvolvido em 17/10/2026 49 min de leitura CódigoMET-BA-GEO8-001 Versão3.1.0 SituaçãoVigente Vigência17/10/2026 Próxima revisão17/04/2027

![Método de Inspeção GEO em 8 Camadas](https://felipecferreira.com.br/wp-content/uploads/2026/10/capa-metodo-de-inspecao-geo-8-camadas-felipecferreira-1024x576.jpg)

***NOTA TÉCNICA**: Todas as informações contidas aqui retratam a minha experiência e o meu método de trabalho, você é o total responsável por alterações no seu site ou no site de seus clientes. Nos responsabilizamos exclusivamente em parcerias formalizadas por contratos. Em dúvida, visite o [Aviso Legal](https://felipecferreira.com.br/aviso-legal/).*

**O Método de Inspeção GEO em 8 Camadas, de Felipe C. Ferreira, é um método auditável que verifica, do servidor até a citação por IA, se um site é recebido, entendido, indexado e recomendado por buscadores, assistentes e agentes de IA, com critério, fonte, limite e evidência datada em cada camada.**

Ele junta SEO (otimização para buscadores), GEO (otimização para motores generativos, os assistentes que respondem com IA) e AEO (otimização para respostas). Cobre o SEO técnico de sempre (servidor, HTML, metadados) e o que passou a pesar com a IA: schema e entidades, grafo interno, acesso de agentes e citação em respostas. Uso a mesma régua no meu site e nas consultorias.

## Para Quem Este Método Serve

Serve para o dono de empresa, o gestor de marketing e o time técnico que precisam responder a uma pergunta simples:

*O meu site está sendo lido, entendido e citado, ou eu estou pagando por conteúdo que nenhuma máquina recebe?*

Também serve para quem presta o serviço. Cada camada traz o passo a passo da inspeção, com o que conferir, a ferramenta, o limite e a evidência a guardar. Outra pessoa consegue repetir a inspeção e chegar ao mesmo status.

Este documento não é checklist de plugin e não promete posição no Google nem citação garantida em nenhum assistente. Ele mede o que dá para medir, com data, e mostra o que ainda está pendente.

## Por Que o Trabalho É Organizado em Camadas

O robô (de busca ou de IA) passa pela camada de baixo antes de chegar à de cima. Se a CDN ou o servidor barram a requisição, não importa o quão bom é o schema: a página não chegou.

Por isso a ordem é fixa, do servidor até a resposta da IA. **C quer dizer camada: C1 a C8 são os códigos deste método e não se confundem com os códigos L0 a L7 do Protocolo.**

| Código | Camada | Peso | O que responde |
| --- | --- | --- | --- |
| C1 | CDN e firewall | 15 (trava) | O robô recebe a página? |
| C2 | Servidor e desempenho | 10 | Recebe rápido e com cache? |
| C3 | HTML e acessibilidade | 10 | O que chega está bem estruturado? |
| C4 | Metadados | 10 | Title, description, canonical e og contam a mesma história? |
| C5 | Schema e entidades | 15 | A máquina entende quem é o autor, o negócio e a oferta? |
| C6 | Grafo e links internos | 15 | As páginas se ligam e o robô alcança todas? |
| C7 | Acesso por agentes de IA | 10 | robots.txt, llms.txt e OKF liberam e respondem? |
| C8 | Indexação e citação por IA | 15 (10 + 5) | Está no índice e aparece nas respostas? |

Na prática, eu começo de baixo. Inspecionar C5 antes de saber se o C1 está aberto é gastar hora técnica no lugar errado. E hora técnica no lugar errado é a conta que não fecha..

**Este método se apoia no [Protocolo L0 : L7](https://felipecferreira.com.br/documentacao/l0-l7/), que é a setorização da nossa operação.** O Protocolo diz em qual camada técnica o problema mora (negócio, infraestrutura, entrega, dados, aplicação, interface, operação e segurança). O Método de Inspeção mede a visibilidade em busca e IA. São documentos separados, com códigos próprios.

**Atenção aos códigos:** no Protocolo, L1 é “Infraestrutura e Ambiente”. Neste método, C1 é “CDN e firewall”. Por isso os códigos são diferentes.

## Quem Acessa o Seu Site: os Tipos de Acesso por Máquina

Antes das camadas, uma pergunta que muda a leitura de todo o resto: **quem, exatamente, está pedindo as suas páginas?** Não é um robô só. São tipos diferentes de acesso, e cada um enxerga uma coisa.

| Tipo de acesso | Exemplos | O que recebe e executa | O que muda no método |
| --- | --- | --- | --- |
| **Crawler** (índice, busca ou treino) | GPTBot, ClaudeBot, OAI-SearchBot, PerplexityBot | O HTML que o servidor entrega. Numa medição da Vercel (dez/2024), os robôs da OpenAI, da Anthropic, da Meta, da ByteDance e da Perplexity não renderizaram JavaScript | C1 (chegam sem bloqueio?), C3 (conteúdo no HTML do servidor), C7 (robots.txt, llms.txt) |
| **Fetcher acionado pelo usuário** | ChatGPT-User, Claude-User, Perplexity-User | Uma página pedida na hora, porque alguém perguntou algo ao assistente. Na mesma medição, o ChatGPT-User também não renderizou JavaScript | C1 e C3; aparecem nos logs da CDN, não no GA4 |
| **Robô de busca que renderiza** | Googlebot; Bingbot | O Googlebot põe na fila de renderização as páginas com status 200 e roda o JavaScript quando há recurso, o que pode levar de segundos a mais tempo. O Bing diz que conteúdo que não renderiza de forma confiável pode não ser indexado | C3 (status correto e conteúdo no HTML continuam valendo), C4, C8 |
| **Agente com navegador** | O navegador na nuvem do ChatGPT (antigo ChatGPT agent), que assina as requisições | Um navegador de verdade: carrega a página, roda o JavaScript e interage com botões e formulários | C3: HTML semântico e acessibilidade ajudam o agente a achar o que clicar (recomendação minha, de engenharia); C1: o firewall não pode barrar o agente assinado |
| **Automação headless** | Scripts com navegador sem interface, ferramentas de teste e de coleta | Depende de quem programou: pode ou não rodar JavaScript e pode ou não se identificar | C1 (bots falsos filtrados na borda); nunca conta como bot verificado |
| **Clique humano vindo de uma resposta de IA** | Uma pessoa clica no link citado pelo ChatGPT, pelo Perplexity ou pelo Copilot | A página completa, num navegador comum | Consequência, não causa: sinal complementar no GA4, fora da nota |

**O que isso decide no método:**

* **O critério sem JavaScript da C3 fica.** Crawlers e fetchers leem o HTML do servidor. A versão para máquina da C7 complementa, não substitui.
* **HTML semântico e acessibilidade (C3) importam também para agentes com navegador.** Um agente que opera a página precisa de botões, rótulos e estrutura claros. Isso é recomendação minha, de engenharia; não há métrica pública de quanto pesa.
* **O GA4 fica fora da nota.** Ele mede por uma tag JavaScript no navegador: crawlers e fetchers que não executam JavaScript não disparam a tag, e por isso não aparecem. O filtro de bots conhecidos do GA4 usa pesquisa do Google e a lista internacional de robôs do IAB, e não dá para ver quanto foi excluído. **Dizer que esse filtro deixa passar agentes com navegador, contando-os como pessoas, é inferência minha**, não afirmação da documentação.
* **Limitação dos agentes assinados.** No plano Free da Cloudflare, desde 01/07/2026, agentes assinados entram na mesma contagem dos bots verificados, e separar exige o plano Enterprise. A régua mede a contagem conjunta e não promete separar.
* **User-agent sozinho não prova nada.** Só conta como robô verificado o que a CDN (ou o DNS reverso nos logs) confirmou. Por isso as camadas C1, C6 e C7 usam bots verificados.

## Como Usar Este Documento

Cada camada segue sempre a mesma estrutura de 7 partes:

1. **O que inspecionamos:** o escopo da camada.
2. **Por que importa para o negócio:** onde isso pesa no caixa.
3. **Como medimos:** fonte, métrica, limite e o passo a passo reproduzível.
4. **Critérios:** o que é Aprovado, Parcial e Pendente.
5. **Como está no nosso site:** status, data e o que mudou (com registro no histórico de versões).
6. **Evidência autoral:** o que eu construí para medir ou corrigir. Sempre projeto proprietário, não comercializado e sem código público.
7. **Conteúdos que aplicam esta camada:** posts e documentos do site.

Para auditar um site, siga as camadas na ordem, registre cada critério no modelo de evidência abaixo e só depois calcule a nota.

### Modelo de registro de evidência

Todo critério inspecionado gera um registro com estes campos. Sem registro, o critério não entra na nota.

| Campo | O que preencher |
| --- | --- |
| Critério | Camada e nome do critério (ex.: C1, crawlers de IA verificados sem 429) |
| Data e hora | Com fuso (ex.: 13/10/2026 09:30 BRT) |
| Janela | Período dos dados (ex.: 28 dias fechados) |
| Fonte | Ferramenta ou base (CDN, crawl dos sitemaps, Search Console etc.) |
| Origem do dado | Coletado por nós na fonte, ou “enviada pelo cliente” |
| Método | Consulta, comando ou teste usado, copiado na íntegra |
| Resultado bruto | Arquivo ou print guardado, com nome e data |
| Valor | Número medido, com numerador e denominador |
| Status | Aprovado, Parcial ou Pendente, pelo limite da camada |
| Ressalva | Amostragem, cota, bloqueio, o que não foi possível medir |
| Quem inspecionou | Nome ou função |

### Critério pela função, não pela marca

Cada critério mede uma função, não um fornecedor. “CDN e firewall” é uma camada fundamental com qualquer fornecedor. A Cloudflare é o que eu uso, é a boa prática que eu recomendo e é o meu estudo de caso. Outra CDN, outro firewall ou os logs do próprio servidor com o mesmo dado valem igual.

Quem não tem a função, ou não libera o acesso a ela, fica com o critério em Pendente (0), exibido como “a medir”. Não existe “não se aplica”: um site sem CDN não está dispensado da camada, está sem a proteção que ela mede. Nesse caso, eu recomendo, ajudo a configurar ou executo a configuração da Cloudflare.

### Como eu acesso os dados do cliente

A régua é a mesma do meu site. O que muda é o acesso, e são dois modelos:

* **Preferido:** um usuário provisório, só de leitura, com o meu e-mail, nas plataformas do cliente (Search Console, CDN, hospedagem, WordPress e o que mais a inspeção pedir). Eu coleto na fonte.
* **Alternativo:** um colaborador autorizado do cliente me envia os dados brutos (exportação CSV ou JSON com data, no formato que eu passo). Print e resumo não valem. Essa evidência é marcada como “enviada pelo cliente”, e eu deixo claro: não respondo pela idoneidade de um dado que eu não coletei na origem, porque ele pode chegar recortado ou enviesado.

Todo acesso é combinado por escrito: escopo só leitura, prazo de retenção, LGPD e permissão para testes de simulação de robôs.

### Inspeção só com dado público é outro produto

Sem acesso às contas do cliente, eu consigo medir uma parte das camadas com dado público. Isso não é este método: é um diagnóstico inicial de prospecção, com nome próprio e com a cobertura declarada ao lado do resultado. A inspeção profissional é a que tem acesso às fontes.

## Como Funciona a Nota

Resumo curto. A atribuição completa da nota (fórmula, pesos, percentuais, limites de cada critério e de onde eles vieram) está na página [Como a Nota do Método de Inspeção GEO é Atribuída](https://felipecferreira.com.br/documentacao/nota-metodo-de-inspecao-geo/).

* **Status do critério:** Aprovado vale 100, Parcial vale 50 e Pendente vale 0. Critério ainda sem medição conta como Pendente (0) e aparece como “a medir”.
* **Nota da camada:** média dos critérios da camada. Cada critério tem o mesmo peso dentro da camada, e eu publico quantos pontos ele vale na nota global.
* **Nota global:** soma de (peso da camada × nota da camada), dividida por 100. Pesos: C1 15, C2 10, C3 10, C4 10, C5 15, C6 15, C7 10 e C8 15 (indexação 10 + citação por IA 5). Somam 100.
* **Critérios por camada (36 no total) e pontos efetivos de cada um na nota global:**

| Camada | Peso | Critérios | Pontos por critério |
| --- | --- | --- | --- |
| C1 | 15 | 5 | 3,00 |
| C2 | 10 | 3 | 3,33 |
| C3 | 10 | 4 | 2,50 |
| C4 | 10 | 5 | 2,00 |
| C5 | 15 | 7 | 2,14 |
| C6 | 15 | 6 | 2,50 |
| C7 | 10 | 4 | 2,50 |
| C8 indexação | 10 | 1 | 10,00 |
| C8 citação por IA | 5 | 1 | 5,00 |

* **O que fica fora da nota:** o GA4 e o desempenho orgânico. A nota mede se as máquinas acessam, entendem, indexam e citam o site. O GA4 mede a visita humana, que é consequência, não causa. Os dois entram como sinal complementar e como recomendação.
* **Sem dupla contagem:** redirecionamentos aparecem na C3 (a URL publicada no sitemap) e na C6 (o link do corpo que aponta para ela). São objetos diferentes, e não existe critério de redirecionamento separado. O “status 200” das URLs do sitemap fica só na C3; a C4 olha só noindex e canonical.
* **Trava do C1:** enquanto o INS-01 estiver aberto, a nota global fica limitada a 70, mesmo que a conta dê mais. Uma nota alta com o C1 bloqueado venderia uma visibilidade que não acontece.

**Exemplo com número real (C5, linha de base de 12/10/2026):** 7 critérios, 2 Aprovados e 5 Parciais. (2 × 100 + 5 × 50) ÷ 7 = 64,3. Com peso 15, a C5 contribui com 9,6 pontos na nota global.

**Esta régua não é universal.** Ela nasceu de documentação de referência, de conhecimento técnico e da minha visão de engenharia, como responsável pelo método. Não é validada pelo Google nem por nenhuma outra big tech.

**Regra de ouro:** nenhum número sai sem fonte medida. Não uso estimativa. Contagem pequena (menos de 10 eventos) sai com a ressalva de margem alta. A inspeção completa e a nota saem uma vez por mês, com a data à vista. Como a Cloudflare no plano Free guarda 31 dias de histórico (e consulta no máximo 30 por vez), a coleta roda semanalmente e é acumulada, e a nota mensal sai sobre o acumulado. No meu site, essa coleta semanal roda sem falha desde 08/09/2026. A citação por IA é mensal.

Só a nota do nosso site é pública. Ela vai ficar no KG Map FCF, de Felipe C. Ferreira, que está em construção, com os pontos a melhorar, a versão da régua e a data, e com acesso pelo ícone do rodapé e por links internos. A nota de cliente é privada e só sai com autorização dele.

Para o cliente, a entrega planejada é uma página online interativa na minha plataforma, com login: nós, entidades e `@id` do schema, independente da tecnologia do site dele, noindex e isolada por cliente, dentro da LGPD. É item de roteiro, ainda sem prazo.

## C1 · CDN e Firewall

Peso 15. Camada trava.

### 1. O que inspecionamos

Se os robôs de busca e de IA recebem a página de verdade. Olho a CDN (rede de entrega de conteúdo), o firewall, a proteção anti-bot do servidor de origem, o DNS e o certificado, e as respostas para os arquivos de descoberta: `robots.txt`, `llms.txt`, sitemaps e o bundle OKF.

A camada vale para qualquer fornecedor. No meu caso, a Cloudflare fica na frente e a origem é a Hostinger, com servidor LiteSpeed. E o meu caso mostra uma coisa importante: o bloqueio do INS-01 acontece na origem, não na CDN. **Ter CDN não resolve sozinho se a origem barra os robôs.** A Hostinger oferece CDN própria em alguns planos, mas ela não está ativa no meu site e não roda junto com a Cloudflare.

### 2. Por que importa para o negócio

Conteúdo que o robô não recebe não entra no índice, não entra no treino e não é citado. Todo o investimento em texto, schema e links depende desta camada.

*Quanto eu já paguei em conteúdo que o GPTBot nunca conseguiu ler?*

Essa é a pergunta de caixa do C1. E por isso ele trava a nota.

### 3. Como medimos

* **Fonte:** logs da CDN, só bots verificados (identificados por IP e assinatura, não pelo texto do user-agent), por URL e por robô. Equivalente: logs do servidor com DNS reverso. Os comandos abaixo usam a Cloudflare porque é o meu caso.
* **Fonte do DNS e TLS:** verificação pública do certificado e dos redirecionamentos.
* **Métrica principal:** % das requisições de bots de IA verificados com 429 (ou 403), separando erro gerado na borda de erro gerado na origem.
* **Janela:** 28 dias fechados na rotina; mínimo de 7 dias para avaliar uma correção.

**Passo a passo da inspeção**

| Passo | O que conferir | Como (ferramenta ou comando) | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | Configuração de bots na CDN | Painel ou API da Cloudflare: Bot Fight Mode, Block AI bots, AI Crawl Control, regras de WAF e rate limiting | Nenhuma regra barrando bot verificado | Print ou JSON da configuração, com data |
| 2 | 429 e 403 por robô verificado | Cloudflare GraphQL `httpRequestsAdaptiveGroups`, filtro `verifiedBotCategory` não vazio e `userAgent_like` por robô | ≤1% Aprovado; ≤10% Parcial; >10% Pendente | Totais por robô (req., 429, %) e o JSON bruto |
| 3 | Quem gera o erro | Mesma consulta, dimensões `edgeResponseStatus` × `originResponseStatus` | Erro de origem e de borda separados | Tabela com as duas colunas |
| 4 | Arquivos de descoberta | Mesma consulta, por `clientRequestPath` (`/`, `/robots.txt`, `/llms.txt`, sitemaps, `/okf/*`) | 0 não-2xx Aprovado; ≤5% Parcial; >5% Pendente | Tabela por caminho e por robô |
| 5 | Cache e data center | Dimensões `cacheStatus` e `coloCode`; ler a configuração de Tiered Cache | Erro nunca servido do cache | HIT por data center; nº de erros em HIT (deve ser 0) |
| 6 | Bots falsos na origem | Mesma base, user-agents de IA não verificados que chegam à origem | ≤10% Aprovado; ≤50% Parcial; >50% Pendente | % e amostra de URLs pedidas |
| 7 | 5xx na borda | Cloudflare `httpRequests1dGroups` | ≤0,1% Aprovado; ≤1% Parcial; >1% Pendente | % de 5xx no período |
| 8 | DNS e TLS | `openssl s_client -servername <host> -connect <host>:443` para a validade do certificado; `curl -sI` em `http://`, `http://www.` e `https://www.` | Certificado válido por mais de 14 dias; as três variantes chegam à versão canônica HTTPS em 1 salto; sem conteúdo misto | Data de expiração, emissor, cadeia de redirecionamento |
| 9 | Controle | Mesma consulta na janela imediatamente anterior | Comparação no mesmo tamanho de janela | Tabela antes e depois |

Exemplo de consulta (Cloudflare GraphQL, só leitura; ajuste zona, datas e robô):

```
query {
  viewer {
    zones(filter: { zoneTag: "<ZONA>" }) {
      httpRequestsAdaptiveGroups(
        limit: 1000
        filter: {
          datetime_geq: "2026-10-06T21:21:00Z"
          datetime_lt: "2026-10-13T12:20:00Z"
          verifiedBotCategory_neq: ""
          userAgent_like: "%GPTBot%"
        }
      ) {
        count
        dimensions {
          clientRequestPath
          edgeResponseStatus
          originResponseStatus
          cacheStatus
          coloCode
        }
      }
    }
  }
}
```

**Limitação do plano Free da Cloudflare:** desde 01/07/2026, agentes que assinam as próprias requisições (Web Bot Auth), como os do ChatGPT, entram na mesma contagem dos bots verificados. Separar uma categoria da outra exige o plano Enterprise com Bot Management. No meu plano, eu não meço agentes assinados nem agentes com navegador à parte, e não prometo essa medição a cliente com o mesmo plano.

**Nota complementar:** no plano Free, a Cloudflare amostra esses dados. Eu confiro o total de 429 contra a base diária sem amostragem (`httpRequests1dGroups`) e declaro a amostragem no registro.

Teste com user-agent declarado (útil para reproduzir um sintoma, nunca para dar nota), espaçado em uma requisição a cada 3 s ou mais:

```
curl -s -A "<user-agent do robô>" -D cabecalhos.txt -o corpo.html \
  -w '%{http_code}\t%{size_download}\t%{time_starttransfer}\n' \
  https://exemplo.com.br/robots.txt
```

Um teste com user-agent declarado não é o robô verdadeiro. Ele mostra o que um leitor identificado como aquele robô recebeu, naquela data, daquela origem. Eu não converto esse teste em “aprovado” de log real.

**Por que o `robots.txt` pesa tanto?** Pelo RFC 9309, se o `robots.txt` responde erro de servidor (5xx), o crawler deve assumir bloqueio total. O Google trata o 429 no `robots.txt` como erro de servidor, conforme a documentação dele. *Ponto de observação: a política de cada crawler de IA para o 429 no `robots.txt` ainda está sendo conferida, um por um. Até lá, vale só o que o RFC 9309 e o Google documentam, e esta parte será atualizada na próxima inspeção mensal.*

### 4. Critérios

| Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- |
| Crawlers de IA verificados sem 429 ou 403 | ≤1% | ≤10% | >10% |
| Arquivos de descoberta sem erro para bots verificados | 0 | ≤5% | >5% |
| Bots falsos filtrados antes da origem | ≤10% chega à origem | ≤50% | >50% |
| 5xx na borda | ≤0,1% | ≤1% | >1% |
| DNS e TLS: certificado válido, HTTP e com/sem www para a versão canônica HTTPS em 1 salto, sem conteúdo misto | Tudo conforme | Certificado válido, mas redirecionamento em mais de 1 salto ou conteúdo misto | Certificado inválido ou a vencer em menos de 14 dias, ou variante sem redirecionamento |

### 5. Como está no nosso site

**Status: Pendente.** INS-01 aberto. A trava de 70 na nota global continua.

**DNS e TLS (conferido em 16/10/2026):** certificado válido até 21/12/2026, emitido por Google Trust Services; `https://www.` redireciona com 301 para `https://felipecferreira.com.br/` em 1 salto. O redirecionamento de HTTP para HTTPS fica “a medir” até um teste de outra origem. *Ponto de observação: o teste de HTTP para HTTPS será refeito de outra origem, e o resultado entra aqui com a data.*

O caso, com números e datas:

* **Linha de base (30 dias até 06/10/2026, Cloudflare, bots verificados):** o GPTBot recebeu 429 em 767 de 901 requisições (85,1%) e o meta-externalagent em 4.221 de 6.462 (65,3%). Googlebot, Bingbot, ClaudeBot, OAI-SearchBot e ChatGPT-User: zero 429.
* **Arquivos de descoberta (GPTBot, mesma janela):** `/llms.txt` com 5 de 5 em 429; `/sitemap_index.xml` com 29 de 31; home com 36 de 51.
* **Quem gera:** 100% dos 429 vieram da origem (servidor LiteSpeed da Hostinger), zero da Cloudflare. A CDN não bloqueava; a origem, sim. O suporte da Hostinger confirmou nos logs, atribuiu a limites automáticos do servidor e informou que não abre exceção por user-agent, caminho ou faixa de IP.
* **Leitura real (12/09 a 11/10/2026):** o Googlebot verificado leu 126 de 145 URLs do sitemap; o GPTBot verificado, 30.

**O que já foi feito.** Em 06/10/2026, entrou uma regra de cache na Cloudflare que guarda na borda, por 4 h, só as respostas 200 da home, `robots.txt`, `llms.txt`, sitemaps e OKF. Erro nunca entra no cache.

**Remedição de 7 dias (13/10/2026):** o GPTBot recebeu 429 em 568 de 630 requisições (90,2%), igual aos 7 dias anteriores à regra (90,3%). A regra funciona para o tráfego geral e zero erro foi servido do cache. Mas 628 das 630 requisições do GPTBot passaram por um único data center (Atlanta), em rajada de madrugada, onde a cópia em cache quase nunca estava válida. O resultado de 48 h (50%) era ruído de amostra pequena: 6 requisições.

Achado novo da mesma remedição: o Amazonbot verificado recebeu 403 da origem em 14 de 35 requisições.

**Próximos passos, em ordem de custo e risco:** cache em camadas da Cloudflare (Smart Tiered Cache) e TTL maior nos arquivos de descoberta, com remedição de 7 dias; depois, cache dos posts; e, como solução estrutural, uma hospedagem sem limitador automático por crawler. *Ponto de observação: os dois primeiros passos entraram na Cloudflare em 14/10/2026, e este dado será atualizado na remedição programada de 21/10/2026.*

### 6. Evidência autoral

O caminho de diagnóstico que eu uso aqui é replicável: bots verificados × erro de borda × erro de origem × status de cache × data center, com janela de controle e escopo separado. Cinco cortes que transformam “acho que a hospedagem bloqueia IA” em evidência.

As consultas e os registros do caso INS-01 ficam no nosso acervo interno de dados. A regra de cache foi desenhada para nunca guardar erro (TTL por status, sem armazenamento para 4xx e 5xx).

### 7. Conteúdos que aplicam esta camada

* [Bots ou Agentes de IA?](https://felipecferreira.com.br/biblioteca/bots-ou-agentes-de-ia/), para separar robô de agente antes de olhar os logs.
* [VPS para Automação com IA](https://felipecferreira.com.br/biblioteca/vps-para-automacao-com-ia/), que entra quando a decisão é trocar de hospedagem.
* O estudo de caso completo do INS-01 ainda não está publicado.

## C2 · Servidor e Desempenho

Peso 10.

### 1. O que inspecionamos

Tempo de resposta da origem, Core Web Vitals, cache na borda, compressão, protocolo e cache de arquivos estáticos.

### 2. Por que importa para o negócio

Robô e cliente desistem de página lenta. Para o robô, servidor lento é orçamento de rastreio gasto com espera. Para o cliente, é anúncio pago que cai numa tela branca.

*Cada segundo de espera é custo de aquisição que eu pago e não vejo na planilha.*

### 3. Como medimos

* **Fonte:** PageSpeed Insights API (dados de campo do CrUX quando houver; senão, laboratório, declarado) e Cloudflare (`originResponseDuration`, `cacheStatus`).
* **Métrica:** TTFB (tempo até o primeiro byte) p75; LCP, INP e CLS p75 por template; % de HIT na borda.

**Passo a passo da inspeção**

| Passo | O que conferir | Como | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | Amostra de templates | Escolher home, hub de pilar, listagem, post e documento | 1 URL por template, no mínimo | Lista de URLs com data |
| 2 | TTFB da origem | PSI API (`runPagespeed`, mobile) com chave própria + Cloudflare `originResponseDuration` | ≤800 ms Aprovado; ≤1.800 ms Parcial; >1.800 ms Pendente | JSON da PSI e p75 da Cloudflare |
| 3 | Core Web Vitals | PSI API (campo CrUX; senão laboratório) | “Bom” nos 3 Aprovado; 1 ou 2 bons Parcial; nenhum Pendente | Valores de LCP, INP e CLS e a origem do dado (campo ou lab) |
| 4 | Cache na borda | Cloudflare GraphQL por `cacheStatus` | ≥60% HIT Aprovado; ≥30% Parcial; <30% Pendente | % HIT de HTML e de estáticos, separados |
| 5 | Compressão e protocolo | `curl -s -H 'Accept-Encoding: br' -w '%{http_version} %{size_download} %{time_starttransfer}' -o /dev/null <URL>` | br ou gzip ativo; HTTP/2 ou superior | Saída do comando por URL |
| 6 | Cache de estáticos | `curl -sI <URL do CSS ou imagem>` | `cache-control` com `max-age` longo | Cabeçalhos copiados |

Os limites de TTFB e de Core Web Vitals seguem as faixas publicadas pelo Google em web.dev (ver Referências).

**Nota complementar:** site com pouco tráfego pode não ter dado de campo no CrUX. Aí uso laboratório e escrevo isso no registro. Laboratório não é experiência real de usuário.

### 4. Critérios

| Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- |
| TTFB da origem (p75) | ≤800 ms | ≤1.800 ms | >1.800 ms |
| Core Web Vitals (p75 por template) | Bom nos 3 | 1 ou 2 bons | Nenhum |
| Cache na borda | ≥60% HIT | ≥30% | <30% |

### 5. Como está no nosso site

**Status: a medir.**

O que já sei (inspeção de 06/10/2026, a partir de um servidor externo): br e gzip ativos, HTTP/2, estáticos com `max-age` de 7 dias e HIT na Cloudflare. O HTML não é cacheado pela Cloudflare (DYNAMIC). TTFB em amostra única, com hit no cache do LiteSpeed, entre 0,193 s e 0,218 s em quatro URLs.

O Lighthouse não rodou: a PSI sem chave devolveu 429 de cota e o Lighthouse local levou 403 do próprio INS-01. Não há nota de Core Web Vitals nesta rodada.

### 6. Evidência autoral

A higienização do WordPress (pastas, banco e filas) e o tema que roda o site, o ASC Theme, são projetos meus, proprietários, não comercializados e sem código público. A inspeção de 06/10 apontou o que ainda pesa nele: `main.css` com 110 KB em todas as páginas, mais 17 a 49 KB de CSS inline por página, e imagens majoritariamente em PNG.

### 7. Conteúdos que aplicam esta camada

* [Higienização de WordPress: Pastas, Banco e Filas](https://felipecferreira.com.br/biblioteca/higienizacao-wordpress-pastas-banco-filas/).
* [Arquitetura do WordPress](https://felipecferreira.com.br/biblioteca/arquitetura-do-wordpress/).

## C3 · HTML e Acessibilidade

Peso 10.

### 1. O que inspecionamos

Se o HTML que chega ao robô está íntegro: um H1 por página, hierarquia de headings, blocos fechados, HTML sem lixo de editor, `lang`, texto alternativo (`alt`) nas imagens, landmarks e status HTTP das URLs do sitemap. E se o conteúdo principal já vem no HTML que o servidor entrega, sem depender de JavaScript.

### 2. Por que importa para o negócio

HTML quebrado faz o robô e o leitor verem a página errada. Uma seção duplicada ou um título fora de ordem confundem quem resume a página, seja um buscador, seja um assistente de IA.

E tem um ponto que pouca gente olha: a maioria dos robôs de IA não executa JavaScript. O próprio Google lembra que nem todo robô consegue rodar JavaScript; o Googlebot renderiza as páginas com status 200 numa fila, que pode levar de segundos a mais tempo. Uma medição da Vercel publicada em dezembro de 2024 não encontrou renderização de JavaScript nos robôs da OpenAI, da Anthropic, da Meta, da ByteDance e da Perplexity (Gemini, pela infraestrutura do Googlebot, e Applebot renderizam). Se o texto da página só aparece depois que o navegador roda um script, para esses robôs a página está vazia.

### 3. Como medimos

* **Fonte:** rastreamento (crawl) do HTML público a partir dos sitemaps, mais Lighthouse Acessibilidade pela PSI API.
* **Métrica:** % de URLs conformes por critério.

**Passo a passo da inspeção**

| Passo | O que conferir | Como | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | Lista de URLs | Ler `sitemap_index.xml` e cada sub-sitemap ao vivo | Todas as URLs do sitemap | Lista com data e total |
| 2 | Status HTTP | GET espaçado em cada URL (1,5 s ou mais entre requisições); pedir também uma URL inexistente (deve dar 404, não 200) e seguir os 301 até o fim (não pode terminar em 404) | 100% com 200 sem redirecionamento Aprovado; ≥95% Parcial; <95% Pendente | Tabela URL, status, destino |
| 3 | H1 e hierarquia | Parser sobre o HTML: contar `<h1>`, verificar saltos de nível | ≥95% conformes Aprovado; ≥80% Parcial; <80% Pendente | Lista de URLs não conformes |
| 4 | Blocos e seções duplicadas | Parser: cada H2 aparece uma vez; blocos abertos e fechados | Nenhuma duplicata | URL e trecho duplicado |
| 5 | `alt` e acessibilidade | Parser (% de `<img>` de conteúdo com `alt`) + Lighthouse Acessibilidade | ≥90 Aprovado; ≥70 Parcial; <70 Pendente | % de `alt` e score por template |
| 6 | IDs duplicados | Parser: atributos `id` repetidos na mesma página | Zero | URL e ID |
| 7 | Conteúdo sem JavaScript | Baixar o HTML bruto (`curl`) e o HTML renderizado (navegador sem interface); comparar o texto principal | Texto principal presente no HTML bruto em ≥95% das URLs Aprovado; ≥80% Parcial; <80% Pendente | URL, % do texto presente no HTML bruto |

### 4. Critérios

| Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- |
| Um H1 por página e hierarquia correta | ≥95% | ≥80% | <80% |
| HTML semântico e acessibilidade | ≥90 | ≥70 | <70 |
| Status HTTP das URLs do sitemap: 200 sem redirecionamento, sem soft 404 (página inexistente respondendo 200) e sem 301 que termina em 404 | 100% conformes | ≥95% | <95% |
| Conteúdo principal no HTML do servidor, sem depender de JavaScript | ≥95% | ≥80% | <80% |

### 5. Como está no nosso site

**Status: a medir.** O crawl de 12/10/2026 cobriu 145 URLs, mas os headings ainda não foram pontuados. O critério de conteúdo sem JavaScript nunca foi medido.

Conferido em 16/10/2026: uma URL inexistente do nosso site responde 404, como deve. Remedido em 17/10/2026: a URL antiga `/blog/como-criar-imagens-com-inteligencia-artificial/` faz 301 para um endereço que responde 404. Foi esse caso, ligado ao tema do post 635, que motivou a ampliação do critério.

**Sem JavaScript na C3, versão para máquina na C7.** O nosso bundle OKF oferece às máquinas uma versão em texto limpo de cada página (ver C7). Isso não substitui o critério desta camada: os buscadores e a maioria dos robôs de IA leem a página HTML, e não há evidência pública de que todos usem `llms.txt` ou versões em Markdown. Por isso são dois critérios.

Caso real: em 12/10/2026, a página 7805 “Tráfego e Dados” exibiu uma seção duplicada por causa de dois fechamentos de bloco ausentes. Corrigi no mesmo dia, e cada H2 voltou a aparecer uma vez.

Pendências medidas na inspeção de 06/10/2026: 261 anexos sem `alt` no banco e 128 páginas com `<img alt="">` fora do logo; 1 post com `id="h-"` duplicado.

### 6. Evidência autoral

O ASC Theme gera a estrutura das páginas (H1 único pelo título, painel de perguntas frequentes, blocos do Resumo). É projeto proprietário, não comercializado e sem código público.

### 7. Conteúdos que aplicam esta camada

* [O que é o WordPress](https://felipecferreira.com.br/biblioteca/o-que-e-o-wordpress/), para quem precisa entender onde o HTML é gerado.

## C4 · Metadados

Peso 10.

### 1. O que inspecionamos

Title, meta description, canonical, og:title e og:description, a coerência entre eles, e se o que o sitemap promete bate com o que a página declara sobre indexação.

### 2. Por que importa para o negócio

O title e a description são a vitrine no resultado de busca e o primeiro resumo que a máquina lê. Quando o og:title diz uma coisa e o title diz outra, o site manda dois recados diferentes sobre a mesma página.

### 3. Como medimos

* **Fonte:** crawl do HTML público; no nosso site, leitura dos campos do Yoast pelo servidor (WP-CLI, só leitura).
* **Métrica:** % de URLs conformes.

**Passo a passo da inspeção**

| Passo | O que conferir | Como | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | Title e description presentes e únicos | Parser no crawl: `<title>` e `meta name="description"`; agrupar duplicatas | ≥95% Aprovado; ≥80% Parcial; <80% Pendente | Lista de ausentes e de duplicados |
| 2 | Coerência do og | Parser: comparar `og:title` com `<title>` e `og:description` com a description | 100% coerentes Aprovado; ≥90% Parcial; <90% Pendente | Pares divergentes, URL por URL |
| 3 | Canonical | Parser: `link rel="canonical"` auto-referente, sem parâmetro | 100% Aprovado; ≥95% Parcial; <95% Pendente | URLs com canonical inválido |
| 4 | Campos de origem (site próprio) | `wp post meta get <ID> _yoast_wpseo_title` e `_yoast_wpseo_metadesc` | Preenchidos à mão, sem template automático | Saída do comando por ID |
| 5 | Indexabilidade coerente | Parser no crawl: `meta name="robots"` e cabeçalho `X-Robots-Tag` de cada URL do sitemap; comparar a URL com o canonical declarado | Nenhuma URL do sitemap com noindex e todas auto-canônicas Aprovado; ≤5% fora Parcial; >5% Pendente | URLs com noindex ou canonical apontando para outra URL |
| 6 | Datas honestas | Listar `dateModified` de todos os posts (WP-CLI ou JSON-LD) e agrupar por data; comparar cada grupo grande com o histórico de revisões para separar edição real de atualização técnica em massa | ≥95% dos posts com data coerente Aprovado; ≥80% Parcial; <80% Pendente (limites provisórios, em validação) | Grupos de posts com a mesma data e a origem da mudança |

**Nota sobre WordPress com Yoast SEO.** No meu site, a gestão do sitemap é feita pelo Yoast SEO, que é a escolha de stack do site, e não uma regra geral. Quando eu marco uma página como noindex, o Yoast tira essa URL do sitemap automaticamente na atualização seguinte. Segundo a documentação oficial do Yoast, o mesmo vale para a página cujo canonical aponta para outra URL. Por isso, num site em que tudo passa pelo Yoast, este critério tende a ser aprovado, e a inspeção se concentra no que o plugin não enxerga: noindex enviado no cabeçalho X-Robots-Tag pelo servidor ou pela CDN, noindex colocado pelo tema ou por outro plugin, URL que segue no sitemap com o canonical apontando para outra página, um segundo sitemap ativo (como o nativo do WordPress) e sitemap desatualizado em cache. Se o site usa outro plugin de SEO, WordPress sem o Yoast ou outra stack ou tecnologia, eu verifico como aquela ferramenta faz a gestão do sitemap e da indexabilidade, e confiro o critério URL por URL, sem presumir essa exclusão automática.

### 4. Critérios

| Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- |
| Title e meta description presentes e únicos | ≥95% | ≥80% | <80% |
| og:title e og:description coerentes com o title | 100% | ≥90% | <90% |
| Canonical correto | 100% | ≥95% | <95% |
| Indexabilidade coerente: nenhuma URL do sitemap com noindex (meta robots ou X-Robots-Tag) e o sitemap lista só URLs canônicas | 100% | ≥95% | <95% |
| Datas honestas: o “Atualizado em” e o `dateModified` mudam só com edição real de conteúdo, nunca por atualização técnica em massa (limites provisórios, em validação) | ≥95% | ≥80% | <80% |

O status 200 das URLs do sitemap não entra aqui: ele já é medido na C3. A C4 olha só noindex e coerência de canonical, para não contar o mesmo problema duas vezes.

Critério oficial desde 16/10/2026 (decisão 15): datas honestas. Atualização técnica em massa não deve mudar o “Atualizado em” nem o `dateModified`. Caso real (inspeção de 06/10/2026): uma edição programática em 27 e 28/07/2026 mudou o `dateModified` de 84 posts, inclusive notícias de 2024 que passaram a exibir “Atualizado em 28/07/2026”.

### 5. Como está no nosso site

**Status: a medir.**

Pendência conhecida, conferida de novo em 16/10/2026: na 7805 “Tráfego e Dados”, o title é “Tráfego e Dados: Investimento com Mensuração” e o og:title é “Tráfego e Dados: verba que sabe quando escalar”.

### 6. Evidência autoral

O padrão de metadados (title escrito à mão, description de 120 a 156 caracteres, sem travessão) é regra do meu método de produção de conteúdo, aplicado em cada revisão de post.

### 7. Conteúdos que aplicam esta camada

* [JSON-LD como infraestrutura de dados para SEO, GEO e AEO](https://felipecferreira.com.br/biblioteca/json-ld-seo-geo-aeo-guia-completo/), na parte de auditoria de metadados e dados estruturados.

## C5 · Schema e Entidades

Peso 15.

### 1. O que inspecionamos

JSON-LD (dados estruturados) válido, `@id` estáveis, autor ligado à Person pelo `@id`, Organization e Person com `sameAs` limpo, campos obrigatórios por tipo, entidades duplicadas e ofertas (Service, Offer, Book) completas.

### 2. Por que importa para o negócio

É assim que a máquina entende quem é o autor, o que a empresa faz e o que ela vende. Sem isso, a IA pode até ler a página, mas não liga o conteúdo à pessoa nem à oferta.

*Se um assistente de IA não sabe que o especialista do post é a mesma pessoa que vende a consultoria, quem ganha a recomendação?*

### 3. Como medimos

* **Fonte:** extração dos blocos `application/ld+json` de todas as URLs do sitemap, parser estrutural, validator.schema.org e Rich Results Test (manual, por amostra).
* **Métrica:** % de URLs conformes por critério.

**Passo a passo da inspeção**

| Passo | O que conferir | Como | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | JSON-LD presente e parseável | Extrair todos os blocos `ld+json` do crawl e fazer `json.loads` | 100% Aprovado; ≥90% Parcial; <90% Pendente | URLs sem bloco ou com erro de parse |
| 2 | Uma Person e uma Organization | Contar `@id` distintos de Person e Organization em todas as páginas; ler `sameAs` | 1 Person + 1 Organization e `sameAs` limpo Aprovado; ids ok e `sameAs` com falha Parcial; ids divergentes Pendente | Lista de `@id` e de `sameAs` |
| 3 | Autor ligado por `@id` | Em todo Article e TechArticle, conferir `author.@id` = `@id` da Person | 100% Aprovado; ≥80% Parcial; <80% Pendente | Contagem e exceções |
| 4 | BreadcrumbList válido | Posições sequenciais, `name` e `item` | 100% Aprovado; ≥90% Parcial; <90% Pendente | Exceções |
| 5 | Entidades duplicadas | Mesmo objeto (ex.: vídeo do YouTube) com mais de um `@id` | 0 Aprovado; ≤2 Parcial; >2 Pendente | Objeto e `@id` envolvidos |
| 6 | Campos obrigatórios por tipo | Article: `headline`, `datePublished`, `author`, `image` | 100% Aprovado; ≥90% Parcial; <90% Pendente | URLs sem campo |
| 7 | Ofertas completas | Service, Offer e Book com campos obrigatórios; preço idêntico ao texto visível | Todos Aprovado; falta 1 tipo Parcial; mais Pendente | Tipo e campo faltante |
| 8 | Validação externa | validator.schema.org e Rich Results Test em 1 URL por template | Sem erro | Print com data |

Exemplo rápido para conferir o autor de uma página (só leitura):

```
curl -s https://exemplo.com.br/<url-do-post>/ \
  | python3 -c "import sys,re,json; [print(n.get('@type'), n.get('author')) for b in re.findall(r'application/ld\+json[^>]*>(.*?)</script>', sys.stdin.read(), re.S) for n in json.loads(b).get('@graph', [])]"
```

### 4. Critérios

| Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- |
| JSON-LD presente e parseável | 100% | ≥90% | <90% |
| Person e Organization com `@id` único e `sameAs` limpo | Ambos ok | ids ok, `sameAs` com falha | ids divergentes |
| Autor ligado por `@id` | 100% | ≥80% | <80% |
| BreadcrumbList válido | 100% | ≥90% | <90% |
| Entidades duplicadas | 0 | ≤2 | >2 |
| Campos obrigatórios por tipo | 100% | ≥90% | <90% |
| Offers e Service completos | Todos | Falta 1 tipo | Mais |

### 5. Como está no nosso site

**Status: Parcial. Nota 64,3 na linha de base de 12/10/2026** (145 URLs do sitemap, pelo servidor, só leitura).

* **Aprovado, autor por `@id` (KG-02):** 114 de 114 artigos (111 Article e 3 TechArticle). Conferido por amostra ao vivo em 16/10/2026 (Protocolo L0 : L7 e um post da Biblioteca).
* **Aprovado, BreadcrumbList:** 144 de 144 estruturalmente válidos.
* **Parcial, JSON-LD presente:** 144 de 145. A exceção é o `/mapa/`, sem nenhum bloco.
* **Parcial, identidade:** uma Person e uma Organization em todas as páginas, mas a Organization sai sem `sameAs` (KG-06) e a Person com perfis antigos ou com parâmetro (KG-08). Conferido em 16/10/2026.
* **Parcial, duplicatas:** 2 de 7 vídeos com mais de um `@id`.
* **Parcial, campos obrigatórios:** 110 de 114. Quatro documentos ou posts sem `image`, entre eles o próprio Protocolo L0 : L7.
* **Parcial, ofertas:** 8 Service com provider ligado à Organization; o Book do livro tem Offer, mas sem preço nem moeda (conferido em 16/10/2026).

Limitação declarada: na linha de base, a validação foi estrutural. Rich Results Test e validator.schema.org ainda não rodaram.

### 6. Evidência autoral

O schema do site sai de uma fonte única da verdade, no ASC Theme e no plugin de núcleo do site, os dois proprietários, não comercializados e sem código público. A correção do KG-02 foi feita ali. O POP de implementação e homologação de JSON-LD é o procedimento que eu sigo antes de publicar qualquer bloco novo.

### 7. Conteúdos que aplicam esta camada

* [JSON-LD como infraestrutura de dados para SEO, GEO e AEO](https://felipecferreira.com.br/biblioteca/json-ld-seo-geo-aeo-guia-completo/).
* [POP: Implementação e homologação de JSON-LD](https://felipecferreira.com.br/documentacao/pop-implementacao-homologacao-json-ld/).
* [O que É um Knowledge Graph e Como Ele Funciona na Prática?](https://felipecferreira.com.br/biblioteca/o-que-e-um-knowledge-graph/)

## C6 · Grafo e Links Internos

Peso 15.

### 1. O que inspecionamos

Como as páginas se ligam: posts órfãos (sem link de corpo vindo de outro post), ligação dos posts com a página do pilar, links internos quebrados, profundidade de clique a partir da home, URLs com parâmetro no grafo e quantas páginas os robôs verificados de fato leram.

### 2. Por que importa para o negócio

Página que ninguém linka é página que o robô demora a achar, ou nunca acha. E o link interno é o que diz para a máquina “este post faz parte deste assunto, e este assunto é o que eu vendo”.

**Grafo interno bem ligado é o que transforma uma pilha de posts em autoridade num tema.**

### 3. Como medimos

* **Fonte:** crawl de todas as URLs do sitemap (no nosso site, executado no próprio servidor), grafo de links do corpo do post e logs da CDN para a leitura por robôs.
* **Métrica:** contagens e percentuais por critério.

**Passo a passo da inspeção**

| Passo | O que conferir | Como | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | Grafo de links | Parser no HTML de cada URL: links do corpo (área de conteúdo) e da página inteira, separados | Todas as URLs do sitemap | Arquivo do grafo com data |
| 2 | Órfãos | Posts sem link de corpo vindo de outro post | 0 Aprovado; ≤5 Parcial; >5 Pendente | Lista de órfãos com ID e título |
| 3 | Cluster ligado ao pilar | % de posts com link de corpo para a página do seu pilar | ≥90% Aprovado; ≥60% Parcial; <60% Pendente | Lista de posts sem o link |
| 4 | Links quebrados | Links de corpo para 404 (e cadeias de 301) | 0 Aprovado; ≤5 Parcial; >5 Pendente | Origem, destino e status |
| 5 | Profundidade | Busca em largura a partir da home, só URLs do sitemap | ≥90% a até 3 cliques Aprovado; ≥70% Parcial; <70% Pendente | Distribuição por nível e não alcançadas |
| 6 | Parâmetros no grafo | Links internos e `sameAs` com query string | 0 Aprovado; ≤3 Parcial; >3 Pendente | Lista |
| 7 | Nós lidos por robôs | URLs do sitemap com pelo menos um 2xx de robô verificado (pior entre GPTBot e Googlebot) | ≥90% Aprovado; ≥60% Parcial; <60% Pendente | Contagem por robô, com janela |

### 4. Critérios

| Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- |
| Posts órfãos | 0 | ≤5 | >5 |
| Cluster ligado ao hub do pilar | ≥90% | ≥60% | <60% |
| Links internos quebrados e cadeias de 301 | 0 | ≤5 | >5 |
| Profundidade de clique (≤3) | ≥90% | ≥70% | <70% |
| URLs sem parâmetro no grafo | 0 | ≤3 | >3 |
| Nós lidos por bots verificados | ≥90% | ≥60% | <60% |

### 5. Como está no nosso site

**Status: Pendente. Nota 25,0 na linha de base de 12/10/2026.**

* **Pendente, órfãos:** 53 de 111 posts.
* **Pendente, ligação com o pilar:** 11 de 111 posts (9,9%) linkavam a página do seu pilar.
* **Pendente, leitura por robôs:** GPTBot leu 30 de 145 URLs (20,7%); Googlebot, 126 (86,9%). Dos 53 órfãos, o GPTBot leu só 8.
* **Parcial, links quebrados:** 3 PDFs em 404 e 7 links de corpo passando por 301 antigos.
* **Parcial, profundidade:** 108 de 145 URLs (74,5%) a até 3 cliques; 29 não alcançadas pela home.
* **Parcial, parâmetros:** zero no corpo, mas o `sameAs` da Person ainda leva `?sub_confirmation=1`.

Desde 13/10, estou revisando posts com link para o pilar e links de entrada para os órfãos. *Ponto de observação: os números desta camada são da linha de base de 12/10/2026. A remedição com o mesmo script entra na próxima inspeção mensal, com a data, e atualiza esta seção e a Transparência.*

### 6. Evidência autoral

O KG Map FCF, de Felipe C. Ferreira, é o plugin que lê os dados internos do nosso site (posts, termos, schema e `@id`) e projeta o grafo para humanos. É projeto proprietário, não comercializado e sem código público. Ele não é crawler externo nem motor de nota: a nota vem da régua deste documento.

### 7. Conteúdos que aplicam esta camada

* [O que É um Knowledge Graph e Como Ele Funciona na Prática?](https://felipecferreira.com.br/biblioteca/o-que-e-um-knowledge-graph/)

## C7 · Acesso por Agentes de IA

Peso 10.

### 1. O que inspecionamos

Se o site libera e entrega os arquivos que agentes e crawlers de IA procuram: `robots.txt` com permissão explícita, `llms.txt` presente e acessível, uma versão de cada página para máquina (no nosso caso, o bundle OKF, Open Knowledge Format, em Markdown) e se os robôs de IA estão, de fato, rastreando.

### 2. Por que importa para o negócio

Agente de IA não navega como gente. Ele procura a porta de entrada: robots.txt, llms.txt, sitemap e versões legíveis por máquina. Se a porta existe mas responde erro, o efeito é igual a não ter porta.

E aqui tem uma diferença que vale dinheiro: **liberar no robots.txt não garante acesso.** O meu próprio site libera todos os principais robôs e, mesmo assim, o GPTBot levou 429 no llms.txt.

### 3. Como medimos

* **Fonte:** `robots.txt`, `llms.txt` e versão para máquina públicos, e logs da CDN ou do servidor (bots verificados). Sem log, o público confirma só que o `llms.txt` existe, e o critério fica no máximo Parcial.
* **Métrica:** permissão declarada e resposta 200 real para bots verificados.

**Passo a passo da inspeção**

| Passo | O que conferir | Como | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | robots.txt | `curl -s https://exemplo.com.br/robots.txt`; ler grupos por user-agent | Allow para GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot e demais principais | Cópia do arquivo com data |
| 2 | Estrutura do robots.txt | Conferir se regras soltas caem no grupo errado e se os grupos de bots herdam o que precisam | Sem regra órfã | Linhas problemáticas |
| 3 | llms.txt presente | `curl -s -o /dev/null -w '%{http_code}' https://exemplo.com.br/llms.txt` | 200, conteúdo coerente com o site | Status e cópia |
| 4 | llms.txt para bots verificados | Logs da CDN, caminho `/llms.txt`, bots verificados | 100% em 200 Aprovado; ≥80% Parcial; <80% Pendente | Tabela por robô |
| 5 | Versão para máquina | Amostra de páginas: existe versão em texto limpo? O cabeçalho aponta o canonical para o HTML? A rota está declarada no `llms.txt`? | Todas as condições em ≥95% das páginas da amostra Aprovado; versão existe, mas falta canonical ou rota Parcial; sem versão Pendente | URL do HTML, URL da versão, cabeçalho copiado |
| 6 | Robôs rastreando | Logs da CDN: requisições 2xx por semana de GPTBot, ClaudeBot, OAI-SearchBot, PerplexityBot | Todos >0 Aprovado; alguns Parcial; nenhum Pendente | Contagem por robô |

### 4. Critérios

| Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- |
| robots.txt permite crawlers de IA | Todos os principais | Maioria | Bloqueio |
| llms.txt presente e acessível para bots verificados | 100% | ≥80% | <80% |
| Bots de IA efetivamente rastreando | Todos >0 | Alguns | Nenhum |
| Versão para máquina com canonical para o HTML e rota no llms.txt | Completa | Incompleta | Ausente |

O acesso real dos bots verificados a `/okf/*` já é medido na C1 (arquivos de descoberta), por isso não vira critério separado aqui.

### 5. Como está no nosso site

* **robots.txt: Aprovado.** Conferido em 16/10/2026: Allow explícito para robôs de treino (GPTBot, Google-Extended, ClaudeBot e outros), de busca (OAI-SearchBot, Googlebot, bingbot, PerplexityBot e outros) e de acesso a pedido do usuário (ChatGPT-User, Claude-User, Perplexity-User e outros).
* **llms.txt: Pendente.** Responde 200 para um leitor comum (16/10/2026), mas o GPTBot verificado levou 429 em 5 de 5 requisições nos 30 dias até 06/10 e em 8 de 9 na remedição de 13/10. Depende do INS-01.
* **Versão para máquina: a medir na amostra completa.** Conferido ao vivo em 16/10/2026: o `llms.txt` aponta as representações OKF em `/okf/*.md` e diz que o HTML permanece a fonte canônica; o arquivo OKF do pilar Busca e Autoridade traz no cabeçalho `resource` e `sources.canonical-html` apontando para a página HTML; o `robots.txt` cita o `llms.txt` e o índice OKF em comentário e tem `Allow: /okf/`. Por isso não há conteúdo duplicado: a máquina sabe qual é a origem.
* **Acesso ao OKF (lido na C1):** o GPTBot levou 429 em 42 de 42 requisições a `/okf/*` na remedição de 13/10.
* **Robôs rastreando (30 dias até 06/10):** ClaudeBot 1.350 requisições, OAI-SearchBot 482, ChatGPT-User 260; GPTBot só 65 com 2xx. *Ponto de observação: o status deste critério sai no primeiro ciclo mensal completo de medição.*

Pendência de estrutura (inspeção de 06/10): o `Allow: /okf/` do bloco OKF fica solto e acaba anexado ao grupo `*`.

### 6. Evidência autoral

O OKF Manager (OKF Bundle Manager) gera o bundle `/okf/`, com o canonical de cada arquivo, e o `llms.txt` do site. A política de crawlers de IA do robots.txt sai do ASC Theme. Os dois são projetos proprietários, não comercializados e sem código público.

### 7. Conteúdos que aplicam esta camada

* [OKF Bundle Manager: Machine Discoverability no WordPress](https://felipecferreira.com.br/documentacao/okf-bundle-manager/).
* [O que são Agentes de IA?](https://felipecferreira.com.br/biblioteca/o-que-sao-agentes-de-ia/)
* [Bots ou Agentes de IA?](https://felipecferreira.com.br/biblioteca/bots-ou-agentes-de-ia/)

## C8 · Indexação e Citação por IA

Peso 15: indexação 10 e citação por IA 5.

### 1. O que inspecionamos

Duas coisas diferentes, medidas separadas:

* **Indexação:** quantas URLs do sitemap estão de fato no índice do Google.
* **Citação por IA:** se o site ou a marca aparecem nas respostas de assistentes de IA para um conjunto fixo de perguntas.

### 2. Por que importa para o negócio

É aqui que o trabalho das outras sete camadas vira visita e contato. Mas eu separo as duas medidas de propósito: **nota técnica alta não garante citação.** Quem promete citação a partir de checklist técnico está vendendo o que não mede.

*Quando o meu cliente pergunta ao ChatGPT quem resolve o problema dele, o meu nome aparece?*

### 3. Como medimos

**Indexação (peso 10)**

* **Fonte:** Search Console, API de Inspeção de URL (em rodízio, pela cota diária) e Search Analytics com dados finais.
* **Métrica:** % de URLs “Enviada e indexada”.
* **Sinal complementar, sem nota:** cliques, impressões e posição em 28 dias. Fica fora da nota até termos 3 meses de dado limpo.

**Citação por IA (peso 5)**

* **Fonte:** teste manual datado, com prompts fixos, em ChatGPT, Gemini, Perplexity, AI Overviews e Copilot. No meu site, uso a lista de exemplo publicada logo abaixo. Para cliente, na contratação, os prompts são escritos de forma personalizada.
* **Métrica:** % de respostas em que a marca ou o site são citados, sobre o total de respostas da rodada (prompt × assistente × dia). Com a lista de exemplo, são 6 prompts em 5 assistentes e em 2 dias: 60 respostas por rodada.
* **Sinal complementar, sem nota:** sessões vindas de assistentes de IA no GA4 (canal de assistentes de IA e referrers como chatgpt.com, copilot.com e perplexity.ai). O GA4 fica fora da nota porque mede a visita humana, que é consequência; a nota mede se a máquina acessa, entende, indexa e cita.

**Passo a passo da inspeção**

| Passo | O que conferir | Como | Limite | Evidência a registrar |
| --- | --- | --- | --- | --- |
| 1 | Indexação por URL | API de Inspeção de URL do Search Console, em rodízio | ≥90% indexadas Aprovado; ≥60% Parcial; <60% Pendente | Resultado por URL com data |
| 2 | Sitemap no Search Console | Relatório de sitemaps | Sem erro nem aviso | Print com data |
| 3 | Desempenho orgânico (sem nota) | Search Analytics, 28 dias fechados, contra os 28 anteriores | Só acompanhamento | Cliques, impressões, posição |
| 4 | Conjunto de prompts | Lista fixa por intenção de busca: no meu site, a lista de exemplo desta página; para cliente, prompts personalizados na contratação | Mesma lista em todas as rodadas | Lista versionada, com data |
| 5 | Teste de citação | Rodar cada prompt em cada assistente, em 2 dias diferentes, sessão sem histórico | ≥50% das respostas com citação Aprovado; ≥20% Parcial; <20% ou sem teste Pendente | Resposta literal, fontes citadas, data, assistente |
| 6 | Visitas de IA (sem nota) | GA4, canal de assistentes de IA e referrers | Só acompanhamento | Sessões em 28 dias |

**Nota complementar:** o campo de URLs indexadas da API de sitemaps do Search Console é obsoleto. Para indexação, uso a Inspeção de URL.

**Prompts de exemplo do teste de citação (lista 1, do meu site)**

Estas são as perguntas que eu uso para medir a citação do meu próprio site. Elas cobrem o que eu de fato faço: SEO e GEO, autoridade, tecnologia aplicada, tráfego e dados e consultoria. Nenhuma cita o meu nome nem o domínio, para não induzir a resposta.

| # | Intenção | Prompt |
| --- | --- | --- |
| 1 | Conceito (SEO e GEO) | O que é GEO (otimização para motores generativos) e o que muda em relação ao SEO para o site de uma empresa no Brasil? |
| 2 | Técnica (acesso de robôs) | Como saber se os robôs de IA, como o GPTBot, conseguem acessar o site da minha empresa, e o que pode estar bloqueando esse acesso? |
| 3 | Autoridade (schema e entidades) | Como usar JSON-LD e Schema.org para que o Google e os assistentes de IA entendam quem é a empresa, quem é o autor e quais serviços o site oferece? |
| 4 | Tecnologia aplicada (WordPress) | Como preparar um site em WordPress para ser lido por agentes de IA, com llms.txt e uma versão em texto limpo das páginas, sem perder o HTML como versão principal? |
| 5 | Tráfego e dados (mensuração) | Como medir no GA4 as visitas que chegam do ChatGPT, do Copilot e do Perplexity, e ligar essas visitas a contatos e vendas? |
| 6 | Contratação (consultoria) | Quem faz consultoria de SEO e GEO no Brasil para preparar o site de uma empresa para buscadores e assistentes de IA? |

**Como cada rodada é feita e registrada.** Cada prompt é rodado em cada um dos 5 assistentes (ChatGPT, Gemini, Perplexity, AI Overviews e Copilot), em 2 dias diferentes, sempre em sessão sem histórico (sem login ou em janela anônima). Para cada resposta, eu registro a data, o assistente, a resposta literal, as fontes citadas e o resultado: **Citado**, quando a resposta menciona Felipe C. Ferreira ou traz o felipecferreira.com.br entre as fontes, ou **Não citado**. A porcentagem da C8 é calculada sobre o total de respostas da rodada, e não sobre os prompts: cada combinação de prompt, assistente e dia conta como uma resposta. Assim, a nota mostra a diferença entre os assistentes, em vez de dar o prompt inteiro como citado porque um assistente citou uma vez. A citação é medida uma vez por mês.

A lista é versionada. A redação não muda entre as rodadas, e qualquer troca de pergunta vira uma lista nova, com data e registro no histórico de versões. Esta é a lista 1, válida a partir da publicação desta página. Até hoje, nenhum teste foi rodado com ela.

Para cliente, a regra é outra: na contratação, os prompts são escritos de forma personalizada, a partir do negócio, da oferta e do público dele, e seguem o mesmo registro datado. Como a nota, o resultado do cliente é privado.

### 4. Critérios

| Bloco | Critério | Aprovado | Parcial | Pendente |
| --- | --- | --- | --- | --- |
| Indexação (10) | URLs do sitemap indexadas | ≥90% | ≥60% | <60% |
| Citação (5) | Respostas com citação da marca ou do site (sobre o total de respostas da rodada) | ≥50% | ≥20% | <20% ou sem teste |

Recomendação, fora da nota (decisão do Felipe, 16/10/2026): resposta direta e citabilidade (todo H1 em forma de pergunta respondido no primeiro parágrafo). Caso real (inspeção de 06/10/2026): 9 de 22 posts com H1 em pergunta não respondiam no primeiro parágrafo.

### 5. Como está no nosso site

* **Indexação: a medir.** O snapshot de 06/10/2026 foi parcial. Na remedição de 13/10, 6 inspeções de URL passaram com rastreio bem-sucedido, e o sitemap estava sem erros nem avisos.
* **Desempenho orgânico (sem nota):** 28 dias até 04/10/2026, 7 cliques, 1.010 impressões e posição média 7,5. Na semana de 05 a 11/10, 1 clique e 208 impressões, com a posição média indo de 7,2 para 12,8.
* **Citação por IA: Pendente.** Nenhum teste rodado até hoje.
* **Visitas de assistentes (sem nota):** 28 dias até 11/10/2026, 1 sessão de chatgpt.com e 7 de copilot.com.

### 6. Evidência autoral

O plugin de diagnóstico SEO/GEO que eu uso no laboratório é proprietário, não comercializado e sem código público. O registro de uma rodada dele no site ao vivo está publicado na Biblioteca.

### 7. Conteúdos que aplicam esta camada

* [Registro: diagnóstico SEO/GEO no live felipecferreira.com.br (plugin 1.1.x, 08/08/2026)](https://felipecferreira.com.br/biblioteca/registro-diagnostico-seo-geo-live-plugin-2026-08-08/).
* [Plano de Mensuração de Eventos: o que Medir e em que Ordem](https://felipecferreira.com.br/biblioteca/plano-de-mensuracao-de-eventos/), para ligar visita vinda de IA a contato e venda.

## Transparência: o que Ainda Não Resolvemos

Antes de auditar o seu site, eu mostro o meu. Hoje, estas são as pendências abertas:

* **INS-01 (C1):** a origem (LiteSpeed da Hostinger, atrás da Cloudflare) devolve 429 ao GPTBot e ao meta-externalagent verificados, sem exceção possível. A trava de 70 segue ativa.
* **Grafo (C6):** linha de base de 25,0, com 53 órfãos e só 11 posts ligados ao pilar em 12/10. Estou corrigindo em lotes.
* **Identidade (C5):** Organization sem `sameAs` e Person com perfis antigos no `sameAs`.
* **Ofertas (C5):** o Book do livro sem preço nem moeda na Offer.
* **`/mapa/` (C5 e C6):** no sitemap, sem JSON-LD e fora do alcance pela home. Vai virar o KG Map FCF.
* **Metadados (C4):** og:title da 7805 diferente do title.
* **Desempenho (C2):** sem Lighthouse nem Core Web Vitals medidos, por cota e pelo próprio INS-01.
* **Citação (C8):** nenhum teste rodado ainda.
* **Critérios novos (C1, C3, C4, C7):** HTTP para HTTPS, conteúdo sem JavaScript, indexabilidade coerente e versão para máquina na amostra completa ainda estão “a medir”.
* **Agentes assinados:** no plano Free, eles entram na contagem dos bots verificados desde 01/07/2026, e eu não consigo separá-los.
* **Dados:** a Cloudflare no plano Free amostra os números, e eu declaro isso ao lado de cada leitura.

**Quando a nota global sai.** Ela é publicada assim que esta documentação estiver fechada e todos os dados que o modelo de cálculo exige estiverem disponíveis. No mesmo dia, ficam públicos a nota, esta documentação e a página que explica como o cálculo é feito. A nota pode não ser alta, e vários pontos de melhoria vão ficar à vista. Isso faz parte do método: ela é auditável por qualquer pessoa. Até lá, publico as notas por camada que já têm linha de base e deixo o resto como “a medir”.

## Histórico de Versões

As versões anteriores foram de testes internos e de laboratório. Esta documentação vale a partir da versão 3.1.0.

* **v3.1.0 (16/10/2026):** primeira versão pública da documentação. Nova seção “Quem Acessa o Seu Site: os Tipos de Acesso por Máquina” (crawler, fetcher acionado pelo usuário, Googlebot e Bingbot que renderizam, agente com navegador, automação headless e clique humano vindo de resposta de IA), com o efeito de cada um no método: C3 sem JavaScript mantido, HTML semântico para agentes com navegador, GA4 fora da nota (com a inferência sobre agentes com navegador declarada como tal) e a limitação dos agentes assinados no plano Free; limitação dos agentes assinados no plano Free da Cloudflare; retenção de 31 dias e nota mensal sobre a coleta semanal acumulada (desde 08/09/2026); CDN da Hostinger inativa no nosso site e incompatível com a Cloudflare. Fonte da afirmação sobre JavaScript na C3 (Google e Vercel) e da limitação de agentes assinados (Cloudflare) adicionadas às Referências. Datas honestas entrou na nota como critério da C4, e indexabilidade coerente foi confirmada nela (5 critérios, 2,00 pontos cada; 36 critérios no total), com a ressalva de que, no meu site, a gestão do sitemap é do Yoast SEO; resposta direta ficou como recomendação fora da nota. Teste de citação da C8 com a lista de exemplo de 6 prompts do meu site e prompts personalizados para cliente, na contratação; a porcentagem da citação é calculada sobre o total de respostas da rodada (prompt × assistente × dia). Schema: `isBasedOn` → Protocolo L0 : L7 (8178); `citation` → fontes externas da Referências.
* **v3 (16/10/2026, testes internos e de laboratório):** critérios definidos pela função, não pela marca; Cloudflare como caso e recomendação; critérios novos de DNS e TLS (C1), conteúdo sem JavaScript (C3), indexabilidade coerente (C4, proposto) e versão para máquina (C7); status ampliado na C3 (soft 404 e 301 que termina em 404); desempenho orgânico e GA4 fora da nota; recurso ausente vale 0; modelos de acesso; inspeção só com dado público tratada como outro produto; cadência mensal; nota de cliente privada; entrega ao cliente em página interativa (roteiro). 35 critérios.
* **v2 (16/10/2026, testes internos e de laboratório):** nome “Método de Inspeção GEO em 8 Camadas”; camadas com códigos C1 a C8 (C = camada), separados dos códigos L0 a L7 do Protocolo; C7 confirmada como Acesso por agentes de IA; critério sem medição conta como Pendente (0) e aparece como “a medir”; a atribuição da nota passa para uma página própria; chamada final reescrita.
* **v1 (16/10/2026, testes internos e de laboratório):** primeiro texto completo das 8 camadas, com estrutura fixa de 7 partes, passo a passo reproduzível, critérios e limites por camada, modelo de registro de evidência, explicação da nota e da trava do C1. KG-02 registrado como resolvido (114 de 114 artigos em 12/10, conferido por amostra ao vivo em 16/10). Remedição de 7 dias do INS-01 (13/10) incorporada.
* **v0 (12/10/2026, testes internos e de laboratório):** índice, texto da primeira camada e versão enxuta das camadas 2 a 8 (ainda com códigos L1 a L8). Decisões do Felipe: URL, formato, pesos, pontuação, trava de 70 e Protocolo L0 : L7 como base, sem redirecionamento.

## Vamos Conversar?

Bom, espero que tenha ficado claro o que eu meço, como eu meço e por quê.

Se você chegou até aqui, este convite é para você. Pode ser para o seu próprio projeto, para a empresa onde você trabalha (como gestor ou como colaborador que precisa levar esse assunto para dentro de casa) ou, eventualmente, para outro profissional do mercado que quer trocar sobre método e evidência.

Se o seu site recebe visitas, mas você não sabe se o GPTBot consegue ler a página que te traz cliente, a conta começa por aí. Pense sempre no médio e longo prazo.

Quer entender como eu trabalho busca e autoridade, do Google às respostas de IA? Comece pelo pilar [Busca e Autoridade](https://felipecferreira.com.br/busca-e-autoridade/).

E se quiser conversar direto comigo, [me chame no WhatsApp](https://wa.me/5511971109987?text=Ol%C3%A1%2C%20vim%20pelo%20site.%20Quero%20saber%20mais%20sobre%20os%20servi%C3%A7os%20de%20Capta%C3%A7%C3%A3o%20de%20Clientes%20Online). Vai ser um prazer falar contigo.

## Referências

[Microsoft Bing, Webmaster Guidelines. Rastreamento e renderização eficientes; conteúdo que não renderiza de forma confiável pode não ser indexado.](https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a)

[OpenAI Help Center, ChatGPT Work’s Cloud browser allowlisting. Assinatura das requisições com Web Bot Auth (RFC 9421).](https://help.openai.com/en/articles/11845367-chatgpt-works-cloud-browser-allowlisting)

[Ajuda do Google Analytics, exclusão de tráfego de bots conhecidos.](https://support.google.com/analytics/answer/9888366?hl=en)

[Google Search Central, noções básicas de SEO para JavaScript. Fila de renderização para páginas com status 200 e aviso de que nem todo robô executa JavaScript.](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)

[Vercel, The rise of the AI crawler (dezembro de 2024). Medição de renderização de JavaScript por robôs de IA.](https://vercel.com/blog/the-rise-of-the-ai-crawler)

[Cloudflare, Verified bots (atualizada em 08/10/2026). Agentes assinados tratados como verificados desde 01/07/2026.](https://developers.cloudflare.com/bots/concepts/bot/verified-bots/)

[IETF, RFC 9309: Robots Exclusion Protocol. Comportamento do crawler para robots.txt indisponível (4xx) e inalcançável (5xx).](https://www.rfc-editor.org/rfc/rfc9309.html)

[Google, especificação do robots.txt. Tratamento do 429 como erro de servidor.](https://developers.google.com/crawling/docs/robots-txt/robots-txt-spec)

[Google Search Central, práticas recomendadas para links rastreáveis.](https://developers.google.com/search/docs/crawling-indexing/links-crawlable)

[Google Search Central, introdução aos dados estruturados.](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)

[Google, Search Console API: Inspeção de URL.](https://developers.google.com/webmaster-tools/v1/urlInspection.index/inspect)

[Google, PageSpeed Insights API v5.](https://developers.google.com/speed/docs/insights/v5/get-started)

[web.dev, Time to First Byte (TTFB). Faixas de referência.](https://web.dev/articles/ttfb)

[web.dev, Core Web Vitals (LCP, INP e CLS). Faixas de referência.](https://web.dev/articles/vitals)

[W3C, Web Content Accessibility Guidelines (WCAG).](https://www.w3.org/WAI/standards-guidelines/wcag/)

[Cloudflare, Verified Bots.](https://developers.cloudflare.com/bots/concepts/bot/verified-bots/)

[Cloudflare, GraphQL Analytics API.](https://developers.cloudflare.com/analytics/graphql-api/)

[Cloudflare, Tiered Cache.](https://developers.cloudflare.com/cache/how-to/tiered-cache/)

[OpenAI, documentação dos crawlers (GPTBot, OAI-SearchBot e ChatGPT-User).](https://platform.openai.com/docs/bots)

[llmstxt.org, proposta do arquivo llms.txt.](https://llmstxt.org/)

[Schema.org, TechArticle.](https://schema.org/TechArticle)

[Schema.org, DefinedTermSet.](https://schema.org/DefinedTermSet)

[Schema.org, Schema Markup Validator.](https://validator.schema.org/)

[Google, Teste de pesquisa aprimorada (Rich Results Test).](https://search.google.com/test/rich-results)

Experiência do autor: inspeções e medições no felipecferreira.com.br entre 06/10 e 16/10/2026.

## Controle de versão

Primeira versão pública do Método de Inspeção GEO em 8 Camadas: 8 camadas, 36 critérios, passo a passo reproduzível, nota e trava do C1.

[Voltar ao topo](#top)

## Documentos relacionados

POP

### [POP: Implementação e homologação de JSON-LD](https://felipecferreira.com.br/documentacao/pop-implementacao-homologacao-json-ld/)

Procedimento para planejar, implementar, validar, publicar e operar JSON-LD com critérios de aceite, evidências de homologação e rollback.

CódigoPOP-BA-JSONLD-001 Versão1.0.0 Revisão prevista02/02/2027

[Consultar documento](https://felipecferreira.com.br/documentacao/pop-implementacao-homologacao-json-ld/)

## Consulte outros protocolos e métodos

Explore a documentação técnica organizada pelas quatro áreas de trabalho.

[Ver toda a documentação](https://felipecferreira.com.br/documentacao/)
