Skip to main content
Voltar ao blog

Guia de SEO Passo 7: Segurança — A Linha de Base que o Google Espera em 2026

·13 min de leitura·por LANGR SEO

Guia de SEO Passo 7: Segurança

Este é o Passo 7 do Guia de SEO de 13 Passos. A segurança não é apenas sobre proteger os usuários — ela impacta diretamente suas classificações nos buscadores. O Google utiliza HTTPS como um sinal de classificação desde 2014, e as expectativas só aumentaram.


A maioria dos proprietários de sites vê a segurança como um binário: "Temos SSL, então estamos seguros." Na realidade, o Google avalia dezenas de sinais de segurança. Sites com cabeçalhos de segurança adequados, certificados válidos e sem conteúdo misto superam sites que possuem apenas um certificado SSL básico — tudo o mais sendo igual.

A boa notícia: a maioria das correções de segurança são configurações únicas. Configure uma vez, e elas protegem suas classificações permanentemente.

Configuração do SSL

SSL (tecnicamente TLS) criptografa a conexão entre seu servidor e os visitantes. Desde 2014, o Google confirmou explicitamente o HTTPS como um sinal de classificação. Em 2026, não ter HTTPS não é apenas um problema de classificação — o Chrome marca sites HTTP como "Não Seguro" na barra de endereços, destruindo a confiança dos usuários.

Requisitos para um SSL adequado:

| Requisito | Por quê | Como Verificar | |-----------|---------|----------------| | Certificado válido | Expirado = aviso do navegador = usuários abandonando o site | Verifique a data de validade | | Cadeia completa | Cadeias incompletas falham em alguns dispositivos | Teste do SSL Labs | | TLS 1.2+ | Versões mais antigas têm vulnerabilidades conhecidas | Teste do SSL Labs | | Sem SHA-1 | Obsoleto, navegadores o rejeitam | Detalhes do certificado | | Cobertura SAN | www e não-www devem estar cobertos | Detalhes do certificado | | Auto-renovação | Previne desastres de expiração | Configuração do Let's Encrypt / provedor |

Pontuação do SSL:

100% = Certificado válido + Cadeia completa + TLS 1.3 + Cifra forte + Auto-renovação
  0% = Certificado expirado ou ausente

Erros comuns de SSL:

  1. Certificado expira sem aviso — Configure monitoramento (Passo 6) no mínimo 30 dias antes da expiração
  2. Cadeia de certificado incompleta — O servidor deve enviar certificados intermediários, não apenas o leaf
  3. Conteúdo misto — Página HTTPS carrega recursos HTTP (imagens, scripts, folhas de estilo)
  4. Loops de redirecionamento — Ciclos HTTP → HTTPS → HTTP causados por CDN/proxy mal configurados
  5. Mismatch entre non-www e www — Certificado cobre um, mas não o outro

Ganho rápido: Execute seu domínio no SSL Labs (ssllabs.com/ssltest). Qualquer coisa abaixo de uma classificação "A" tem problemas que podem ser corrigidos. A maioria dos provedores de hospedagem corrige isso com um clique.

Cabeçalhos de Segurança

Cabeçalhos de segurança são cabeçalhos de resposta HTTP que instruem os navegadores sobre como se comportar ao carregar seu site. Eles previnem categorias inteiras de ataques — e os crawlers do Google os verificam.

Os cabeçalhos de segurança essenciais:

Content-Security-Policy (CSP)

CSP é o cabeçalho de segurança mais poderoso. Ele informa aos navegadores exatamente quais recursos (scripts, estilos, imagens, fontes) são permitidos para carregar em suas páginas.

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.exemplo.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.exemplo.com; frame-ancestors 'none';

O que o CSP previne:

  • Ataques de script entre sites (XSS)
  • Ataques de injeção de dados
  • Clickjacking (via frame-ancestors)
  • Execução não autorizada de scripts (criptominers, injetores de anúncios)

Estratégia de implantação do CSP:

  1. Comece com Content-Security-Policy-Report-Only (registra violações sem bloquear)
  2. Monitore os relatórios por 1-2 semanas
  3. Adicione fontes legítimas à lista de permissões
  4. Mude para o modo de aplicação
  5. Adicione report-uri ou report-to para registro contínuo de violações

X-Frame-Options

Previne que seu site seja incorporado em iframes em outros domínios (proteção contra clickjacking).

X-Frame-Options: DENY

Ou se você precisa permitir o framing de mesma origem:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Previne que os navegadores realizem sniffing de tipo MIME (interpretando arquivos como tipos diferentes dos declarados).

X-Content-Type-Options: nosniff

Esta linha simples previne ataques onde um arquivo .jpg contém JavaScript oculto que o navegador pode executar.

Referrer-Policy

Controla quanta informação de referenciador é enviada quando os usuários clicam em links do seu site.

Referrer-Policy: strict-origin-when-cross-origin

Isso envia a URL completa para solicitações de mesma origem, mas apenas a origem (domínio) para solicitações de diferentes origens. Equilibra as necessidades de análise com a privacidade.

Permissions-Policy

Controla quais recursos do navegador (câmera, microfone, geolocalização, etc.) podem ser usados em seu site.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Desabilitar recursos que você não usa previne scripts de terceiros de abusar deles.

Exemplo de implementação de cabeçalho (Next.js):

// next.config.js
module.exports = {
  async headers() {
    return [{
      source: '/(.*)',
      headers: [
        { key: 'X-Content-Type-Options', value: 'nosniff' },
        { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
        { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
        { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
        { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
      ]
    }]
  }
}

Implementação de cabeçalho (Apache .htaccess):

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Implementação de cabeçalho (Nginx):

add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Ganho rápido: Adicione todos os 5 cabeçalhos acima à configuração do seu servidor. Isso leva 5 minutos e melhora imediatamente sua postura de segurança em qualquer ferramenta de verificação.

HSTS Preload

HTTP Strict Transport Security (HSTS) informa aos navegadores para sempre usar HTTPS para seu domínio — mesmo antes da primeira solicitação. Sem HSTS, a primeira visita ao seu site pode ainda usar HTTP (vulnerável à interceptação) antes do redirecionamento para HTTPS ocorrer.

Cabeçalho HSTS:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

As três diretrizes:

| Diretriz | Significado | |-----------|-------------| | max-age=31536000 | Lembre-se disso por 1 ano (em segundos) | | includeSubDomains | Aplica-se a todos os subdomínios também | | preload | Solicita inclusão nas listas de preload do navegador |

Lista de preload do HSTS:

A proteção HSTS definitiva. Os navegadores vêm com uma lista interna de domínios que devem sempre usar HTTPS. Submeter seu domínio ao hstspreload.org significa:

  • Visitantes de primeira vez obtêm HTTPS imediatamente (sem redirecionamento HTTP → HTTPS)
  • Impossível para atacantes rebaixar conexões
  • Permanente (difícil de remover uma vez submetido)

Requisitos para o preload do HSTS:

  1. Certificado HTTPS válido
  2. Redirecionar todo HTTP para HTTPS (incluindo subdomínios)
  3. Cabeçalho HSTS com max-age >= 31536000
  4. Cabeçalho HSTS inclui includeSubDomains
  5. Cabeçalho HSTS inclui preload
  6. Todos os subdomínios devem suportar HTTPS

Aviso: Submeta ao preload apenas se TODOS os seus subdomínios suportarem HTTPS. A diretriz includeSubDomains significa que qualquer subdomínio somente HTTP se tornará inacessível.

Ganho rápido: Se você já tiver HTTPS em todos os subdomínios, adicione o cabeçalho HSTS completo e submeta ao hstspreload.org. O processamento leva algumas semanas, mas a proteção é permanente.

Varredura de Vulnerabilidades

A varredura de vulnerabilidades automatizada identifica problemas de segurança conhecidos em sua pilha antes que os atacantes os explorem.

O que a varredura de vulnerabilidades verifica:

  • Software desatualizado: WordPress, plugins, bibliotecas JavaScript com CVEs conhecidas
  • Arquivos expostos: .env, .git, wp-config.php, dumps de banco de dados
  • Vazamento de informações: Cabeçalhos de versão do servidor, modo de depuração, rastros de pilha
  • Credenciais padrão: Páginas admin sem autenticação, senhas padrão
  • Portas/serviços abertos: Serviços desnecessários expostos à Internet
  • Pontos de injeção: Formulários sem proteção CSRF, entradas não validadas

Vulnerabilidades comuns por plataforma:

| Plataforma | Principal Vulnerabilidade | Correção | |------------|--------------------------|----------| | WordPress | Plugins desatualizados | Atualização automática + WAF | | Shopify | Permissões de aplicativos de terceiros | Auditoria da lista de aplicativos trimestralmente | | Next.js | Rotas de API expostas | Middleware de autenticação + limitação de taxa | | Sites estáticos | Configuração incorreta do CDN | Revisar regras de cache | | Custom | Injeção SQL | Consultas parametrizadas |

Frequência de varredura:

  • Diário: Varredura de superfície automatizada (SSL, cabeçalhos, arquivos expostos)
  • Semanal: Verificação de vulnerabilidades de dependência (npm audit, scanner de plugins do WordPress)
  • Mensal: Varredura profunda com testes autenticados
  • Após cada deploy: Verificação de regressão

Ganho rápido: Execute npm audit (Node.js) ou verifique sua lista de plugins do CMS em busca de componentes desatualizados. Corrija problemas de gravidade crítica/alta imediatamente.

Conteúdo Misto

Conteúdo misto ocorre quando uma página HTTPS carrega recursos (imagens, scripts, folhas de estilo, iframes) através de HTTP. Isso quebra parcialmente a criptografia e aciona avisos do navegador.

Tipos de conteúdo misto:

| Tipo | Gravidade | Exemplo | Comportamento do Navegador | |---------|-----------|-------------------------------|-----------------------------| | Ativo | Alto | Script HTTP, iframe, CSS | Bloqueado por padrão | | Passivo | Médio | Imagem HTTP, vídeo, áudio | Carregado com aviso |

Conteúdo misto ativo é bloqueado por navegadores modernos — o que significa que seus scripts e estilos simplesmente não carregarão. Conteúdo misto passivo carrega, mas mostra avisos de segurança.

Encontrando conteúdo misto:

  1. Abra o Chrome DevTools → Console
  2. Procure por avisos de "Conteúdo Misto"
  3. Alternativamente, faça uma varredura com um crawler (Screaming Frog, LANGR)

Fontes comuns de conteúdo misto:

  • URLs http:// codificadas no conteúdo (postagens de blog, descrições de produtos)
  • Widgets de terceiros carregando recursos HTTP
  • Conteúdo incorporado (embeds antigos do YouTube, widgets de mídias sociais)
  • CSS background-image com URLs HTTP
  • Fontes carregadas via HTTP

Corrigindo conteúdo misto:

<!-- Ruim -->
<img src="http://exemplo.com/imagem.jpg" />

<!-- Bom -->
<img src="https://exemplo.com/imagem.jpg" />

<!-- Melhor (relativo ao protocolo, adapta-se ao protocolo da página) -->
<img src="//exemplo.com/imagem.jpg" />

Correção de banco de dados (WordPress):

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://seudominio.com', 'https://seudominio.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://seudominio.com', 'https://seudominio.com');

Ganho rápido: Abra sua página inicial no Chrome, pressione F12, verifique a guia Console em busca de avisos de conteúdo misto. Corrija qualquer aviso que aparecer — estes são diretamente visíveis para o Google.

Riscos de Scripts de Terceiros

Cada script externo que você carrega é um potencial passivo de segurança (e desempenho). Scripts de terceiros podem:

  • Ser comprometidos (ataques à cadeia de suprimentos)
  • Rastrear seus usuários sem consentimento (violação do GDPR)
  • Lentificar seu site (bloqueio de renderização, latência de rede)
  • Quebrar funcionalidades (atualizações de versão, indisponibilidades)
  • Injetar conteúdo indesejado (scripts de anúncios com problemas)

Audite seus scripts de terceiros:

| Script | Necessário? | Nível de Risco | Alternativa | |------------------------------|-------------|----------------|------------------------------| | Google Analytics | Muitas vezes sim | Baixo | Rastreamento do lado do servidor | | Widgets de chat | Talvez | Médio | Soluções auto-hospedadas | | Botões de compartilhamento social | Raramente | Médio | Links de compartilhamento estáticos | | Testes A/B | Às vezes | Alto | Testes do lado do servidor | | Pixels de retargeting | Decisão de negócios | Alto | Dados de primeira parte | | CDNs de fontes | Conveniente | Baixo | Fontes auto-hospedadas |

Mitigação de riscos para scripts de terceiros essenciais:

  1. Integridade de Sub-recurso (SRI): Verificação de hash previne que scripts adulterados sejam carregados
<script src="https://cdn.exemplo.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. Restrições de CSP: Permita apenas scripts de domínios conhecidos
  2. Iframes isolados: Isolar widgets de terceiros
  3. Auditorias regulares: Revisão trimestral de todos os recursos externos
  4. Monitoramento: Alerta sobre novos domínios externos aparecendo em suas páginas

Ganho rápido: Liste todas as tags