Fairquery Website Tech, SEO & AI-Readiness

Pilha de tecnologia, pontuação de SEO, regras de robots.txt para crawlers de IA, llms.txt, sitemap e cabeçalhos de segurança; sete ferramentas gratuitas.

Documentação

Verificação de Tech, SEO e llms.txt de Sites para Agentes

Retorna uma linha por site (stack de tecnologia, pontuação de SEO, regras de crawlers de IA no robots.txt, sitemap e llms.txt) por US$ 1,50 por 1.000 sites. Você paga US$ 0,0015 por linha de site, e linhas de erro são gratuitas. Exemplo: auditar 250 sites de leads custa 250 × US$ 0,0015 = US$ 0,38, mais a taxa de início de Actor da Apify de US$ 0,00005.

Fairquery Apify Actor que retorna uma linha estruturada por site: stack de tecnologia, título/meta/Open Graph/JSON-LD, uma lista de problemas de SEO com pontuação de 0–100, regras de robots.txt para crawlers de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, …), sitemap XML, llms.txt / llms-full.txt, cabeçalhos de segurança e uma pontuação de prontidão para IA de 0–100. HTTP puro (sem navegador), então é rápido e barato.

Quando usar este Actor (seleção de LLM / ferramenta)

Use quando um agente precisar:

  • Enriquecer uma lista de leads/empresas com "sobre o que este site é construído?" (CMS, framework, analytics, chat, pagamentos, CDN, hospedagem)
  • Executar uma verificação rápida de SEO on-page de homepages ou landing pages
  • Responder "este site tem um llms.txt?" / "ele bloqueia GPTBot ou ClaudeBot?"
  • Obter o título, descrição, links sociais, feeds e tipos de dados estruturados de um site antes de resumi-lo

Não use para crawls completos do site, conteúdo renderizado por JS (aplicativos de página única podem mostrar THIN_CONTENT), Core Web Vitals ou dados de backlinks.

Como funciona

Por site (máx. 3 em paralelo): GET /robots.txt → GET <url> → sitemap (de robots Sitemap: ou /sitemap.xml, /sitemap_index.xml) → /llms.txt e /llms-full.txt. Identifica-se como FairqueryBot/1.0; por padrão, pula páginas que o robots.txt desautoriza para crawlers genéricos. A detecção de tecnologia usa ~75 assinaturas de HTML/cabeçalho/cookie/meta-generator de uma única resposta.

Entrada

CampoTipoPadrãoDescrição
urlsstring[]– (obrigatório; 3 sites de exemplo são pré-preenchidos no formulário do Console)Domínios ou URLs
checkRobotsbooltrueMapa de acesso de robots.txt + bots de IA
checkSitemapbooltrueEncontrar sitemap e contar URLs
checkLlmsTxtbooltrueVerificar /llms.txt e /llms-full.txt
respectRobotsTxtbooltruePular URLs desautorizadas para crawlers genéricos
maxSitesint500Limite de segurança por execução
{ "urls": ["stripe.com", "https://www.example.org/pricing"], "checkSitemap": false }

Saída

Cada linha tem schema_version (1.0.0), type (site | error), source_url (URL final buscada), checked_at.

{
  "type": "site", "domain": "vercel.com", "status_code": 200, "https": true, "response_ms": 310,
  "title": "Agentic Infrastructure - Vercel", "meta_description": "…", "canonical": "https://vercel.com/", "lang": "en",
  "h1": ["…"], "word_count": 256, "open_graph": { "title": "…", "image": "…" }, "json_ld_types": ["Organization", "WebSite"],
  "technologies": [{ "name": "Next.js", "category": "JS framework", "evidence": "html \"/_next/static\"" }, { "name": "Vercel", "category": "Hosting", "evidence": "header x-vercel-id" }],
  "security_headers": { "strict_transport_security": true, "content_security_policy": true },
  "robots_txt_found": true, "ai_bots": { "GPTBot": "partial", "ClaudeBot": "partial" },
  "sitemap_found": true, "sitemap_url_count": 8787, "llms_txt_found": true, "llms_txt_title": "Vercel",
  "seo_score": 100, "seo_issues": [], "ai_readiness_score": 85
}
  • ai_bots[bot]: allowed (sem regras), partial (alguns caminhos desautorizados), blocked (raiz desautorizada).
  • seo_issues[]: {code, severity, message}; códigos incluem NO_HTTPS, MISSING_TITLE, TITLE_TOO_LONG, MISSING_META_DESCRIPTION, MISSING_H1, MULTIPLE_H1, MISSING_CANONICAL, MISSING_LANG, MISSING_VIEWPORT, NOINDEX, MISSING_OPEN_GRAPH, MISSING_STRUCTURED_DATA, IMAGES_MISSING_ALT, THIN_CONTENT, MISSING_ROBOTS_TXT, MISSING_SITEMAP. Pontuação = 100 − 15/8/3 por problema alto/médio/baixo.
  • ai_readiness_score: llms.txt 25, llms-full.txt 5, bots de IA permitidos até 20, JSON-LD 15, ≥150 palavras de texto renderizado no servidor 15, sitemap 10, meta descrição 10; −30 se noindex.

Linhas de erro (legíveis por máquina, nunca cobradas)

{ "type": "error", "code": "BLOCKED_OR_RATE_LIMITED", "message": "GET https://x.com/ returned HTTP 403.", "retryable": false, "status_code": 403, "input": "x.com" }

Códigos: INPUT_EMPTY, INVALID_URL, MAX_SITES_EXCEEDED, ROBOTS_DISALLOWED, FETCH_FAILED, HTTP_ERROR, BLOCKED_OR_RATE_LIMITED.

Resumo da execução

Registro de armazenamento chave-valor RUN_SUMMARY: sites verificados, erros, contagem de solicitações HTTP, pontuações médias de SEO e prontidão para IA, contagem de llms.txt, entrada ecoada.

Preços

EventoPreçoQuando
site-checkedUS$ 0,0015Cada linha de site retornada
apify-actor-startUS$ 0,00005Uma vez por execução, por GB de memória (evento padrão da Apify)

Linhas de erro (FETCH_FAILED, HTTP_ERROR, BLOCKED_OR_RATE_LIMITED, ROBOTS_DISALLOWED, …) são nunca cobradas.

Exemplo prático: 1.000 domínios de uma lista de leads onde 60 não podem ser buscados: 940 × US$ 0,0015 = US$ 1,41, mais US$ 0,00005.

Para limitar gastos, defina um custo máximo por execução nas opções de execução; o Actor para limpo no limite. maxSites limita quantos sites uma execução verifica. Os preços são da aba de preços da Store (outubro de 2026).

Memória / tempo de execução

Executa em 256 MB fixos (padrão e máximo; a verificação é limitada por rede, então mais memória não ajuda), sem navegador, sem proxy. Normalmente 1–3 s por site, 3 sites em paralelo. Sites lentos ou com limitação de taxa demoram mais.

Ferramentas MCP / Apify

Chame de agentes via Apify MCP (https://mcp.apify.com, autenticado com seu token da Apify), Actor fairquery/website-tech-seo-ai-readiness:

{ "actor": "fairquery/website-tech-seo-ai-readiness", "input": { "urls": ["stripe.com"] } }

Leia itens do dataset (type == "site") e RUN_SUMMARY. Um servidor MCP stdio independente está no repositório GitHub sob mcp/.

Servidor MCP stdio local

Este repositório inclui um servidor MCP stdio (TypeScript, @modelcontextprotocol/sdk) sob mcp/ com ferramentas de propósito único. Sete são gratuitas e executam localmente (sem token); uma ferramenta opcional em lote executa este Actor através da API da Apify. initialize e tools/list funcionam sem token.

FerramentaO que fazPaginaçãoCusto
web_quick_check1-20 URLs: status, cadeia de redirecionamento, tempo de resposta, tipo de conteúdo, título–grátis
web_seo_auditUma URL: meta/OG/JSON-LD/cabeçalhos/imagens, seo_issues, seo_score e ai_readiness_score (0-100); a saída é um snapshot reutilizável–grátis
web_ai_crawler_accessRegras de robots.txt por bot de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, ...), llms.txt / llms-full.txt–grátis
web_tech_stackFrameworks, CMS, hospedagem/CDN, analytics com evidências; filtro categorylimit/offsetgrátis
web_sitemap_infoDescoberta de sitemap, índice/filhos, lista de URLs com lastmod; contains, sortlimit/offsetgrátis
web_security_headersHSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-/Permissions-Policy, COOP; pontuação + nota A-F–grátis
web_compare_snapshotsComparar dois snapshots salvos, um snapshot salvo vs uma nova re-auditoria (acompanhamento), ou duas URLs ao vivo–grátis
web_batch_auditAuditoria em lote de até milhares de sites via Apify Actor (anteriormente check_websites)–pague por evento, precisa de APIFY_TOKEN

Erros são códigos nomeados: INVALID_URL, BLOCKED_PRIVATE_ADDRESS, DNS_FAILED, FETCH_FAILED, TIMEOUT, TOO_MANY_REDIRECTS, SITEMAP_NOT_FOUND, INVALID_ARGUMENTS, APIFY_TOKEN_MISSING, APIFY_ACTOR_RUN_FAILED.

Busca respeitosa: User-Agent FairqueryBot ... Fairquery-MCP, timeout de 15 s, limite de 1,5 MB de HTML / 10 MB de sitemap, máx. 5 redirecionamentos e uma proteção SSRF que recusa hosts (incluindo alvos de redirecionamento) que resolvem para endereços privados, loopback, link-local ou reservados. Se você executa atrás de um proxy DNS de IP falso que mapeia todos os hosts para 198.18.0.0/15, defina FAIRQUERY_ALLOW_FAKE_IP_DNS=1.

Mudança significativa na v1.2.0: check_websites → web_batch_audit (mesma entrada, mesma cobrança); check_llms_txt foi removido, use web_ai_crawler_access.

cd mcp && npm install && npm run build
npm run test:live                                    # live test of every free tool, no token
node scripts/smoke-test.mjs                          # initialize + tools/list, no token
APIFY_TOKEN=... node scripts/smoke-test.mjs --call   # real web_batch_audit call
{ "mcpServers": { "fairquery-web": { "command": "node", "args": ["/path/to/website-tech-seo-ai-readiness/mcp/dist/index.js"], "env": { "APIFY_TOKEN": "<optional, only for web_batch_audit>" } } } }

Docker: docker build -t fairquery-web-mcp . (o Dockerfile na raiz do repositório constrói este servidor MCP e é o que o Glama usa; a imagem do Actor da Apify é construída a partir de .actor/Dockerfile). glama.json lista fairquery como mantenedor.

Funciona bem depois de

Solução de problemas

SintomaCausa e correção
A execução falha imediatamente com INPUT_EMPTYurls estava vazio. Os três sites de exemplo no formulário do Console são apenas pré-preenchimento e não são enviados com chamadas de API.
BLOCKED_OR_RATE_LIMITED (HTTP 403/429)O site bloqueia tráfego de datacenter ou bots. Essas linhas são gratuitas; o Actor não usa proxies ou navegadores para contornar bloqueios.
ROBOTS_DISALLOWEDO robots.txt desautoriza a página para crawlers genéricos. Defina respectRobotsTxt para false somente se você tiver o direito de buscar a página.
Pontuação de SEO baixa ou THIN_CONTENT em um site modernoA página renderiza seu conteúdo com JavaScript. O Actor lê apenas o HTML do servidor (sem navegador).
Tecnologia ausente da listaA detecção usa cerca de 75 assinaturas de uma única resposta, então algumas ferramentas (por exemplo, scripts apenas de tag-manager) não são visíveis. A lista é heurística.

FAQ

Ele renderiza JavaScript?

Não. Ele faz solicitações HTTP simples, o que o mantém rápido e barato. Conteúdo injetado por JavaScript não é visto.

O que a pontuação de prontidão para IA mede?

llms.txt (25), llms-full.txt (5), bots de IA permitidos (até 20), JSON-LD (15), pelo menos 150 palavras de texto renderizado no servidor (15), sitemap (10) e meta descrição (10); menos 30 para noindex. É uma heurística, não um fator de classificação.

Quanto custa?

US$ 0,0015 por linha de site (US$ 1,50 por 1.000), mais uma taxa de início de US$ 0,00005. Buscas com falha são gratuitas.

Como limito gastos?

Defina um custo máximo por execução nas opções de execução e/ou reduza maxSites.

Ele rastreia o site inteiro?

Não. Por site, ele busca robots.txt, a URL fornecida, o sitemap e /llms.txt + /llms-full.txt. Use um crawler para auditorias completas do site.

Um agente de IA pode chamá-lo?

Sim, através do Apify MCP com Actor fairquery/website-tech-seo-ai-readiness, ou através do servidor MCP stdio no repositório GitHub, que também tem ferramentas gratuitas de URL única.

Família Fairquery

Outras ferramentas Fairquery na Apify Store. Cada uma retorna linhas estruturadas com códigos de erro legíveis por máquina, e linhas de erro nunca são cobradas:

Todos os Actors Fairquery: https://apify.com/fairquery

Kits e modelos

Guias opcionais da Fairquery para conectar este Actor a agentes e automações (o Actor funciona bem sem eles):

Aviso Legal

A detecção é heurística (solicitação única, sem execução de JS). Apenas arquivos servidos publicamente são lidos; robots.txt é respeitado por padrão.

Links

Desenvolvimento

Notas sobre desenvolvimento local, testes e implantação estão em DEVELOPMENT.md. O README da Apify Store é .actor/README.md.