Como funciona o detector da RevealTheme
Quando você insere uma URL em um dos nossos detectores, muita coisa acontece nos dois segundos antes de você ver os resultados. Aqui está o passo a passo técnico para os curiosos, incluindo as limitações que não conseguimos resolver com engenharia.
Passo 1: Obter o HTML público
Quando você envia uma URL, nosso servidor obtém a página web pública dessa URL usando um User-Agent de navegador padrão. É o mesmo HTML que o seu navegador receberia se você visitasse o site diretamente. Não contornamos paywalls, não extraímos conteúdo protegido por login nem usamos qualquer autenticação.
A obtenção usa um tempo limite de 20 segundos. Seguimos até 10 redirecionamentos (o que cobre os redirecionamentos HTTP → HTTPS, www → sem-www e os redirecionamentos por país). Se o site retornar uma resposta 4xx ou 5xx, ou não responder dentro da janela de tempo limite, retornamos um erro claro de «não foi possível acessar» em vez de adivinhar.
Passo 2: Detectar a plataforma
Antes de tentar identificar um tema específico, verificamos qual CMS o site executa. Procuramos impressões digitais das 7 plataformas compatíveis —WordPress, Shopify, Magento, Joomla, Drupal, Moodle e PrestaShop— e escolhemos a correspondência mais forte.
Se você enviar uma URL do Shopify para o nosso detector de WordPress (ou vice-versa), nós avisamos e fornecemos o link para o detector correto. Sem adivinhações, sem falsos positivos.
Passo 3: Detecção do tema
Para o WordPress em específico, as referências ao tema costumam aparecer no HTML da página em caminhos como wp-content/themes/NOME_DO_TEMA/style.css. Extraímos cada uma dessas referências de qualquer parte do documento: tags link, tags script, JavaScript inline, blocos JSON-LD e até o conteúdo de texto. Isso detecta temas que sites muito otimizados ocultaram das ferramentas de detecção padrão.
Para cada tema detectado, tentamos obter o arquivo style.css do tema. O cabeçalho desse arquivo contém o nome oficial do tema, o autor, a versão, a URI e a descrição, diretamente do desenvolvedor do tema. Essa é a fonte das ricas informações do tema que exibimos junto ao resultado da detecção.
Passo 4: Detecção de plugins
A detecção de plugins usa duas abordagens paralelas. Primeiro, extraímos qualquer caminho de arquivo que corresponda a wp-content/plugins/NOME_DO_PLUGIN/. Segundo, executamos dezenas de verificações baseadas em assinaturas: procuramos estruturas HTML específicas, nomes de classe CSS, variáveis JavaScript inline e cabeçalhos de resposta HTTP que identificam de forma única plugins populares como Elementor, Yoast SEO, WPForms, WooCommerce, Wordfence e outros.
O design de dupla abordagem detecta plugins que ocultam seus caminhos de arquivo (por meio de cache ou agrupamento de recursos), mas que ainda assim deixam assinaturas distintivas. Para cada plugin detectado, nós o procuramos no Diretório de Plugins do WordPress.org para enriquecer o resultado com o nome oficial do plugin, a descrição, o autor e as capturas de tela.
Passo 5: Buscas de hospedagem + DNS
Para identificar o provedor de hospedagem, fazemos uma busca de DNS no domínio e inspecionamos o endereço IP, o ASN e o DNS reverso. Cruzamos isso com um banco de dados de faixas de IP conhecidas de provedores de hospedagem para identificar o provedor. A precisão é alta para as hospedagens principais (AWS, Cloudflare, Hostinger, SiteGround, etc.) e menor para os provedores de nicho.
O que não podemos fazer
Alguns casos em que a detecção não vai funcionar, por melhor que seja o nosso código:
- Desafio de bots da Cloudflare. Os sites com proteção rigorosa contra bots da Cloudflare (a tela «Realizando verificação de segurança...») bloqueiam o nosso obtentor da mesma forma que bloqueariam qualquer requisição automatizada. Não há uma maneira limpa de contornar isso.
- Temas personalizados intensos. Se um tema foi tão modificado a ponto de remover do HTML cada referência ao nome original do tema, não temos nada para detectar.
- Cache agressivo com caminhos de recursos reescritos. Plugins como LiteSpeed Cache, WP Rocket e o Rocket Loader da Cloudflare às vezes reescrevem as URLs dos recursos para ocultar a fonte. Nossa detecção baseada em assinaturas detecta a maioria deles, mas não todos.
- Sites de exportação estática. Um site WordPress que foi exportado para HTML estático perde a maioria das assinaturas de tempo de execução que tornam a detecção possível.
O que não fazemos
Já nos perguntaram. As respostas são não:
- Não armazenamos as URLs que você envia
- Não registramos endereços IP para fins de marketing
- Não compartilhamos dados de detecção com provedores
- Não contornamos a autenticação, o robots.txt nem outros controles de acesso
- Não executamos o detector em IPs internos/privados (127.0.0.1, 10.x.x.x, etc.) por motivos de segurança
Os detalhes completos de privacidade estão na nossa Política de Privacidade.
Acesso à API
Atualmente não oferecemos uma API pública, mas há acesso programático limitado disponível mediante solicitação para agências e pesquisadores. Escreva para hello@revealtheme.com com o seu caso de uso e o volume de requisições previsto.
Por que não é de código aberto?
As regras de detecção são o núcleo do produto, e nós as atualizamos com frequência à medida que os temas e plugins evoluem. Abrir o código delas reduziria a nossa cadência de atualização. Dito isso, publicamos posts detalhados sobre técnicas de detecção no nosso blog: busque por «detecção» para encontrá-los.
Pronto para experimentar?
Use o detector que corresponde ao site que você quer inspecionar: