# Mixed content no WordPress: Os 3 tipos e como corrigir

<strong>Mixed content</strong> ocorre quando uma página HTTPS do WordPress carrega algum recurso via HTTP. Segundo a <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content">MDN Web Docs</a> (2024), navegadores bloqueiam recurso ativo via HTTP por padrão. Isso quebra o cadeado e some com scripts. Diagnosticar no console e reescrever as URLs resolve.

Mixed content no WordPress é um erro de protocolo: a página principal carrega por HTTPS, mas chama imagens, scripts ou folhas de estilo por HTTP antigo. O navegador então marca o site como não totalmente seguro, remove o cadeado fechado e, em muitos casos, bloqueia o recurso sem avisar o administrador. Nos tickets de SSL que chegam ao suporte da FULL, esse problema aparece quase sempre depois de uma migração para HTTPS feita sem reescrever o banco de dados. O certificado fica no host; a FULL entra como complementar, com os plugins que limpam as URLs. Este guia mostra os 3 tipos, as causas reais e como corrigir, usando os <a href="https://full.services/seo-wordpress/">conteúdos de SEO WordPress da FULL</a> como referência.

---

## Diagnóstico rápido: Sintomas e causa do mixed content

Mixed content tem uma assinatura clara no navegador: o cadeado da barra de endereço aparece aberto ou com um aviso, e o console do Google Chrome lista cada recurso bloqueado em vermelho. Identificar qual recurso usa HTTP é o primeiro passo da correção, e o problema se manifesta em 3 sintomas distintos que mudam a urgência do reparo.

A <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content">MDN Web Docs</a> confirma que o navegador trata recurso ativo (script, iframe, folha de estilo) de forma diferente do recurso passivo (imagem, vídeo), bloqueando o primeiro por padrão. A tabela abaixo cruza cada sintoma com a causa raiz e a ação corretiva imediata, o caminho que a gente segue no suporte da FULL antes de mexer no tema.

<table id="diagnostico-mixed-content-wordpress">
  <caption>Mixed content no WordPress: sintomas, causa raiz e correção</caption>
  <thead>
    <tr>
      <th scope="col">Sintoma no navegador</th>
      <th scope="col">Causa raiz</th>
      <th scope="col">Ação corretiva</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Cadeado aberto, mas a página abre</th>
      <td>Imagem ou vídeo via HTTP (mixed content passivo)</td>
      <td>Reescrever a URL para HTTPS no banco de dados</td>
    </tr>
    <tr>
      <th scope="row">Script ou layout some sem erro visível</th>
      <td>Recurso ativo via HTTP bloqueado pelo navegador</td>
      <td>Trocar o protocolo do recurso no tema ou plugin</td>
    </tr>
    <tr>
      <th scope="row">Aviso aparece só após a migração SSL</th>
      <td>URLs HTTP antigas hardcoded no postmeta</td>
      <td>Rodar search-replace serializado no banco</td>
    </tr>
  </tbody>
</table>

<p class="wp-caption-text">Legenda: o console do navegador mostra exatamente qual recurso HTTP gera o mixed content e quebra o cadeado.</p>

---

## Os 3 tipos de mixed content no WordPress

Existem 3 tipos de mixed content no WordPress, e identificar o certo evita corrigir o sintoma errado. O primeiro é o passivo: imagem, áudio ou vídeo via HTTP, que o navegador exibe com cadeado degradado. O segundo é o ativo: script, iframe ou CSS via HTTP, bloqueado pelo Google Chrome desde a versão 80.

O terceiro tipo é o hardcoded: URLs HTTP gravadas direto no banco de dados após uma migração mal feita, que reaparecem mesmo com o certificado ativo.

Em <time datetime="2026-03">março de 2026</time>, a maioria dos sites que chegaram ao suporte da FULL com cadeado quebrado tinha o terceiro tipo, gerado por migração sem reescrita de URLs. O ponto comum é sempre o protocolo: um único recurso em HTTP basta para o navegador degradar a página inteira. Ferramentas como o Why No Padlock e o próprio DevTools do Chrome revelam o recurso exato em segundos, listando a URL que ainda usa HTTP.

---

## Por que o mixed content quebra o cadeado e derruba a confiança

Mixed content derruba a confiança do navegador porque 1 único recurso inseguro contamina toda a página segura. Quando o WordPress serve a página em HTTPS mas chama um script via HTTP, o navegador rebaixa o cadeado e bloqueia o recurso ativo por não garantir a integridade daquele trecho.

O resultado é um site que parece quebrado: formulários que não enviam, mapas que não renderizam e um aviso de segurança que afasta o visitante.

A relação causal é direta: página servida em HTTPS, mais recurso ativo chamado via HTTP hardcoded no banco, mais ausência de redirect forçado, resulta no navegador bloqueando o recurso e quebrando o layout sem mensagem de erro visível ao administrador. Nos tickets da FULL, esse comportamento responde pela maior parte dos chamados de cadeado aberto que a gente vê após uma troca de certificado. O <a href="https://full.services/glossario/https/">HTTPS</a> só protege de fato quando 100% dos recursos seguem o mesmo protocolo.

---

## Como diagnosticar mixed content no navegador

Diagnosticar mixed content começa no console do Google Chrome, aberto com F12 na aba Console. O navegador lista cada recurso bloqueado com a mensagem "Mixed Content" e a URL HTTP completa do arquivo problemático, seja um script, uma imagem ou um iframe. A gente recomenda esse passo antes de qualquer plugin, porque ele aponta o recurso exato em vez de reescrever o banco inteiro às cegas.

A aba Security do DevTools complementa, mostrando se a conexão é segura, parcialmente segura ou insegura, e listando a origem de cada recurso carregado. Ferramentas externas como o Why No Padlock e o SSL Check da JitBit varrem a página e devolvem a lista de URLs HTTP em poucos segundos. A telemetria que importa é a contagem de recursos inseguros: mesmo um <a href="https://full.services/glossario/security-headers/">cabeçalho de segurança HTTP</a> bem configurado não resolve mixed content, porque o problema está na origem do recurso, não no header.

---

## Como corrigir mixed content no WordPress em 4 camadas

Corrigir mixed content significa fazer 100% dos recursos da página carregarem por HTTPS, e isso acontece em 4 camadas independentes. A maioria dos sites resolve a maior parte dos casos só na primeira camada: reescrever as URLs HTTP gravadas no banco. As demais tratam o tema, os recursos externos e o redirect forçado.

### Reescreva as urls no banco de dados
Use o Better Search Replace para trocar `http://seusite.com` por `https://seusite.com` em todas as tabelas. Esse plugin trata campos serializados do postmeta sem corromper o layout de page builders, o que um SQL bruto quebraria. É a correção definitiva do mixed content hardcoded.

### Corrija recursos do tema e plugins
Abra os arquivos do tema e troque qualquer URL HTTP fixa por protocolo relativo (`//`) ou HTTPS. Recursos chamados direto no template, fora do banco, escapam do search-replace e seguem gerando mixed content até a edição manual.

### Force HTTPS em recursos externos
Fontes, mapas e widgets de terceiros via HTTP devem usar o link HTTPS equivalente. Quando o serviço externo não oferece HTTPS, substitua o recurso, porque o navegador vai bloqueá-lo de qualquer forma.

### Force o redirect e a reescrita automática
Ative o Really Simple SSL ou adicione a regra de redirect no <a href="https://full.services/glossario/htaccess/">arquivo .htaccess</a>. Isso garante que toda requisição HTTP vire HTTPS antes de a página montar, fechando a porta de entrada do mixed content.

---

## Mixed content ativo versus passivo: A diferença que muda a urgência

A diferença entre mixed content ativo e passivo está no que o navegador faz com cada um, e ela define a prioridade da correção. O passivo (imagem, áudio, vídeo via HTTP) é exibido, mas degrada o cadeado para 1 aviso amarelo. O ativo (script, iframe, CSS) é bloqueado pelo Google Chrome, derrubando funções do site.

Em termos práticos, o passivo é um problema de reputação e de <a href="https://full.services/glossario/indexacao/">indexação</a>, porque o Google trata HTTPS pleno como sinal de ranqueamento. O ativo é um problema funcional imediato: um carrinho que não fecha ou um formulário que não envia. Por isso a correção do ativo é urgente, enquanto a do passivo pode ser agendada, embora ambos exijam a mesma reescrita de URLs. Quem precisa revisar a base técnica pode seguir o guia de <a href="https://full.services/seo-tecnico-wordpress/">SEO técnico no WordPress</a> em paralelo.

---

## Ferramentas que detectam mixed content no WordPress

Quatro ferramentas detectam mixed content em camadas diferentes, e cada uma compete por uma dimensão. O Google Chrome DevTools controla o diagnóstico do recurso exato bloqueado e mostra a URL HTTP no console. O Why No Padlock varre a página pública e devolve a lista de recursos inseguros sem precisar de acesso ao admin.

O Really Simple SSL atua na correção automática, reescrevendo URLs na saída via filtro do WordPress, enquanto o Better Search Replace faz a reescrita definitiva no banco de dados. Em <time datetime="2026-04">abril de 2026</time>, a combinação DevTools mais Better Search Replace cobriu praticamente todos os casos de mixed content nos sites que passaram pelo suporte da FULL. Para confirmar que o certificado em si está válido, o guia de <a href="https://full.services/como-obter-certificado-ssl-gratuito-site-wordpress/">como obter um certificado SSL gratuito</a> evita tratar como mixed content um problema que era de certificado.

<aside aria-label="Metodologia dos Testes">
<h2 id="metodologia-dos-testes">Metodologia dos testes</h2>
<p>As observações deste guia vêm da triagem de tickets de SSL no suporte da FULL entre <time datetime="2026-01">janeiro</time> e <time datetime="2026-04">abril de 2026</time>, em sites WordPress rodando PHP 8.2 e versões recentes do core, com certificados Let's Encrypt e Cloudflare. Cada caso de mixed content foi confirmado no console do Google Chrome, abrindo a aba Console e a aba Security para listar os recursos servidos via HTTP. O mapeamento de URLs inseguras foi cruzado com varredura externa do Why No Padlock. As correções de reescrita de banco foram aplicadas com Better Search Replace e validadas após limpar o cache, recarregando a página com o console aberto para medir a queda de recursos bloqueados antes e depois de cada camada.</p>
</aside>

---

## Quando o cadeado quebrado não é mixed content

Nem todo cadeado quebrado é mixed content, e tratar a causa errada desperdiça tempo. Em alguns cenários, o aviso de "não seguro" vem de 1 certificado SSL expirado, emitido para outro domínio ou com cadeia de certificação incompleta, problemas que nascem no host, não na página.

A árvore abaixo ajuda a decidir o caminho antes de mexer no banco, com base nos casos que a gente tria no suporte da FULL.

<ul class="arvore-decisao" style="margin-bottom:1.5rem">
  <li><strong>Se o console mostra recursos HTTP bloqueados</strong> → reescreva as URLs no banco com Better Search Replace.</li>
  <li><strong>Se o aviso é de certificado inválido ou expirado</strong> → renove o certificado no host, não é mixed content.</li>
  <li><strong>Se só um script externo aparece em HTTP</strong> → troque o recurso pela versão HTTPS ou remova-o.</li>
  <li><strong>Se o cadeado fecha após limpar o cache</strong> → era cache antigo servindo a página HTTP, sem mixed content real.</li>
</ul>

---

## Resolva o mixed content com Rank Math PRO no bundle da FULL

Controlar canonical, redirects e reescrita de URLs em centenas de páginas fica viável com o conjunto certo sem custo avulso. O plano PRO da FULL sai por R$849,90 e inclui 17 plugins premium, entre eles o Rank Math PRO, que gerencia canonical e redirects 301 e reforça o HTTPS pleno depois de você limpar o mixed content.

Como o PRO cobre até 10 sites, o custo cai para cerca de R$85 por site, contra a licença avulsa de cada plugin. A gente vê no suporte da FULL que ter as ferramentas no bundle resolve a parte de SEO da migração sem o cliente comprar plugin por plugin. Vale lembrar que o certificado SSL fica no host: a FULL é complementar, não hospedagem. Conheça as condições em <a href="https://full.services/planos">FULL.services/planos</a> ou veja os detalhes na <a href="https://full.services/solucoes/rank-math-pro">página do Rank Math PRO</a>.

---

<aside aria-label="Resumo Tecnico">
<h2 id="resumo-tecnico">Resumo técnico</h2>
<ul style="margin-bottom:1.5rem">
  <li><strong>Melhor cenário:</strong> 100% dos recursos carregando por HTTPS, URLs reescritas no banco com Better Search Replace e redirect forçado ativo, mantendo o cadeado fechado em todas as páginas.</li>
  <li><strong>Pior cenário:</strong> site migrado de HTTP para HTTPS sem reescrever o banco, com page builders gravando URLs HTTP em campos serializados que quebram no search-replace bruto.</li>
  <li><strong>Principal causa:</strong> um recurso ativo (script, iframe ou CSS) chamado via HTTP em página HTTPS, bloqueado pelo navegador sem aviso visível.</li>
  <li><strong>Melhor alternativa gratuita:</strong> Really Simple SSL na versão free, que reescreve URLs na saída via filtro do WordPress sem tocar no banco.</li>
  <li><strong>Em uma frase:</strong> o cadeado fecha quando todo recurso da página segue o mesmo protocolo HTTPS.</li>
</ul>
</aside>

<h2 id="faq">Perguntas frequentes sobre mixed content</h2>

<details>
  <summary>Por que o mixed content quebra o cadeado de segurança no navegador?</summary>
  <p>Porque um único recurso via HTTP contamina toda a página HTTPS. O navegador não garante que aquele trecho não foi interceptado, então rebaixa o cadeado e bloqueia recursos ativos como scripts. Basta uma imagem ou um arquivo CSS em HTTP para o Google Chrome exibir o aviso de "não totalmente seguro" na barra de endereço.</p>
</details>

<details>
  <summary>É possível corrigir mixed content sem editar o código do tema?</summary>
  <p>Sim, na maioria dos casos dá para corrigir sem tocar no tema. O Better Search Replace reescreve as URLs HTTP gravadas no banco, e o Really Simple SSL força a saída em HTTPS via filtro do WordPress. Só quando o recurso está hardcoded direto no arquivo do template é que a edição manual do código se torna necessária para eliminar o mixed content.</p>
</details>

<details>
  <summary>Qual a diferença entre mixed content ativo e passivo?</summary>
  <p>Mixed content passivo é imagem, áudio ou vídeo via HTTP: o navegador exibe, mas degrada o cadeado para um aviso. O ativo é script, iframe ou CSS via HTTP, bloqueado por padrão pelo Google Chrome desde a versão 80. O ativo quebra funções do site na hora; o passivo é mais um problema de reputação e de indexação.</p>
</details>

<details>
  <summary>Quanto tempo o navegador leva para reconhecer o cadeado após corrigir o mixed content?</summary>
  <p>O navegador reconhece o cadeado fechado assim que a página é recarregada sem recursos HTTP, geralmente em segundos. O atraso costuma vir do cache: limpe o cache do plugin e do CDN antes de testar. Nos sites do suporte da FULL, o cadeado volta a fechar no mesmo dia na maioria dos casos após a reescrita das URLs.</p>
</details>

<details>
  <summary>O que causa mixed content depois de migrar o WordPress para HTTPS?</summary>
  <p>A causa é a migração sem reescrever as URLs gravadas no banco de dados. Posts, imagens e configurações de page builders guardam o endereço HTTP antigo, que continua sendo servido mesmo com o certificado ativo. Rodar o Better Search Replace para trocar HTTP por HTTPS em todas as tabelas elimina esse mixed content residual da migração.</p>
</details>

---

## Próximos passos para fechar o cadeado do site

Eliminar o mixed content é, no fundo, uma questão de consistência de protocolo: cada recurso da página precisa seguir o mesmo HTTPS. Comece diagnosticando no console do Google Chrome, depois reescreva as URLs no banco, corrija o tema e force o redirect, sempre recarregando a página entre cada camada. Para fortalecer a base, o guia de <a href="https://full.services/https-e-wordpress-voce-realmente-precisa-disso/">HTTPS no WordPress e por que você precisa dele</a> e as <a href="https://full.services/guias/guia-de-seo-para-wordpress">trilhas do guia de SEO para WordPress</a> mostram o passo seguinte. Para aprofundar o tema, o <a href="https://full.services/academy/">FULL Academy</a> reúne tutoriais, guias e reviews de SEO em um só lugar.
