Skip to content
🔒 Como corrigir conteúdo misto no WordPress: 2 passos

🔒 Como corrigir conteúdo misto no WordPress: 2 passos

Instalou um certificado SSL e configurou o HTTPS, mas o browser continua a mostrar o aviso «ligação não segura». Parece-lhe familiar?

É este o aspeto de um erro de conteúdo misto. O site parece funcionar bem, os visitantes não se queixam, mas o Google deteta o problema e baixa a sua classificação nos resultados de pesquisa. Desde 2018, o Chrome marca como inseguras as páginas com conteúdo misto, e a política torna-se mais rigorosa a cada atualização.

Corrigir isto requer dois passos. Não é necessário um programador, nem editar cada link manualmente, nem correr o risco de estragar o layout.

💡 Visão geral rápida:

  • encontrar a origem do conteúdo misto usando as Chrome DevTools ou ferramentas online
  • instalar um plugin (método automático) ou editar o .htaccess e a base de dados (método manual)
  • verificar o resultado e configurar o redirecionamento HTTPS para o futuro

O que é conteúdo misto e porque é perigoso

Conteúdo misto é uma situação em que uma página carrega por HTTPS, mas elementos individuais nela (imagens, scripts, estilos, tipos de letra) são obtidos através do protocolo inseguro HTTP.

O browser vê isto como uma falha de segurança. Um atacante pode intercetar o pedido HTTP, substituir um script ou imagem e obter acesso aos dados do utilizador. É por isso que o Chrome, o Firefox e o Safari bloqueiam completamente o conteúdo misto «ativo» (scripts, iframes), enquanto o conteúdo «passivo» (imagens, multimédia) aciona um aviso na barra de endereço.

A causa típica é a migração de HTTP para HTTPS. Links antigos no conteúdo, definições do tema, ficheiros CSS e widgets permanecem com o prefixo http://. O WordPress não os altera automaticamente, daí o conflito.

Desde 2020, o Google afirmou explicitamente: o HTTPS é um sinal de classificação. Uma página com conteúdo misto perde o «cadeado verde» e, com ele, a confiança dos visitantes e as posições nos SERP. Precisa de corrigir isto imediatamente após instalar o SSL, sem demora.

Passo 1: Diagnóstico, encontrar a origem do problema

Antes de corrigir seja o que for, precisa de perceber que recursos estão a carregar por HTTP. O método universal são as Chrome DevTools.

Abra o seu site no Chrome, prima F12 (ou Ctrl+Shift+I), vá ao separador Console e atualize a página. Cada linha com um aviso «Mixed Content» mostra o URL exato do ficheiro problemático.

Consola do Chrome DevTools a mostrar erros de conteúdo misto

Ao lado, no separador Security, encontrará um resumo: estado do certificado, lista de pedidos inseguros e recomendações para os corrigir. Isto é suficiente para uma avaliação rápida da situação.

Separador de segurança com lista de pedidos inseguros

Se houver muitos erros e precisar de obter uma lista completa num único relatório, as ferramentas online vêm em seu auxílio.

Painel de ferramentas de programação com filtragem de erros de segurança

O Jitbit SSL Checker é um scanner online gratuito. Introduza o URL e obtenha uma lista de todos os recursos HTTP na página: imagens, scripts, CSS, chamadas externas. A versão gratuita verifica até 200 páginas.

Resultados da verificação SSL no serviço Jitbit

O Why No Padlock é outro serviço gratuito com análise detalhada: que elementos não são seguros, de onde carregam e a que tipo de conteúdo pertencem. Suporta a verificação de páginas que exigem autenticação.

Relatório detalhado Why No Padlock sobre conteúdo misto numa página

O HTTPS Checker é um utilitário de desktop para macOS que analisa o seu site localmente e mostra os erros após cada alteração. Funciona com um limite de 100 páginas e é conveniente para depuração passo a passo.

Assim que tiver a lista de URLs problemáticos à sua frente, prossiga para a correção.

Passo 2: Correção, três métodos funcionais

A escolha do método depende do número de erros e da sua disponibilidade para trabalhar com código. Os plugins resolvem a tarefa em poucos cliques, enquanto o método manual lhe dá controlo total.

Método 1: Really Simple Security, solução automatizada

O Really Simple Security (anteriormente Really Simple SSL) é o plugin de SSL para WordPress mais popular, com 3 milhões de instalações ativas e uma classificação de 4,9/5 no WordPress.org.

Página do plugin Really Simple Security no admin do WordPress

Instale o plugin através de «Plugins → Add New», ative-o e execute o assistente de configuração. O plugin automaticamente:

  • define HTTPS nas definições do WordPress (endereço do site e URL inicial),
  • configura o redirecionamento 301 de HTTP para HTTPS,
  • substitui links HTTP no conteúdo «on the fly» através do buffer de saída,
  • verifica o certificado e alerta sobre a expiração.

Após a instalação, abra o seu site em modo anónimo e certifique-se de que o cadeado na barra de endereço está verde e não existem Avisos de Conteúdo Misto em DevTools → Console. Para a grande maioria dos sites, isto é suficiente.

Método 2: SSL Insecure Content Fixer, níveis de configuração flexíveis

Se o Really Simple Security não funcionou (por exemplo, algum conteúdo é carregado através de APIs de terceiros), instale o SSL Insecure Content Fixer. O plugin tem 100.000 instalações ativas, uma classificação de 4,8/5 e oferece cinco níveis de filtragem:

Definições de nível de filtragem do plugin SSL Insecure Content Fixer
  • Simple é o nível básico para principiantes, corrige links no conteúdo e nas definições;
  • Content verifica adicionalmente widgets de texto e shortcodes;
  • Widgets foca-se no conteúdo dos widgets, incluindo HTML personalizado;
  • Capture interceta a página inteira antes da renderização e substitui todos os http:// por https://. Mais lento, mas mais eficaz;
  • Capture All proporciona a cobertura máxima: scripts, estilos inline, chamadas externas. O modo que mais recursos consome.

Comece com Simple. Se os erros persistirem, mude para um nível superior e verifique novamente o seu site. Não salte diretamente para Capture All sem necessidade: sobrecarrega o servidor e pode entrar em conflito com plugins de cache.

Método 3: Correção manual,.htaccess e base de dados

Se é fundamentalmente contra plugins extra ou o erro é isolado, este é o caminho direto.

Passo A. Forçar o redirecionamento HTTPS no.htaccess. Adicione o seguinte ao início do ficheiro (antes de # BEGIN WordPress):

1RewriteEngine On
2RewriteCond %{HTTPS} off
3RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Guarde e verifique se a página inicial e todos os URLs internos redirecionam para HTTPS. Antes de editar, faça uma cópia de segurança do.htaccess: um erro de digitação pode quebrar o seu site.

Passo B. Substituir links HTTP na base de dados. Os URLs antigos dentro de artigos, campos meta e definições ainda contêm http://. Alterá-los com uma consulta SQL direta é arriscado porque os dados PHP serializados se quebram. Utilize:

  • WP-CLI: wp search-replace 'http://example.com' 'https://example.com' --dry-run (primeiro sem --dry-run para ver o número de substituições);
  • o plugin Better Search Replace, que faz o mesmo através do painel de administração com pré-visualização.

Após a substituição, limpe a cache do seu navegador (Ctrl+Shift+Del), a cache do plugin (WP Rocket, LiteSpeed) e verifique o seu site em modo anónimo.

Vídeo útil sobre o tema

O autor do canal GoTechWizard demonstra o processo de correção de conteúdo misto, do diagnóstico ao HTTPS limpo, sem uma única linha de código:

⁉️🤔 Perguntas frequentes

Porque é que o site continua a mostrar "não seguro" depois de instalar o SSL?

O certificado SSL está ativo no servidor, mas alguns conteúdos carregam por HTTP. O certificado protege a ligação entre o browser e o servidor, enquanto os links HTTP dentro da página o contornam. O browser deteta a mistura de protocolos e alerta o utilizador. Há três causas principais: links antigos para imagens em artigos (inseridos antes da instalação do SSL), URLs HTTP fixas no tema ou plugins e recursos externos (Google Fonts, scripts de CDN) a carregar via http:// em vez de https://. Faça o diagnóstico através de DevTools → Consola e siga os passos deste artigo.

Preciso de comprar um certificado SSL ou um gratuito é suficiente?

Para a grande maioria dos sites, um SSL gratuito da Let's Encrypt é suficiente. É reconhecido por todos os browsers e motores de busca. Os certificados pagos (OV, EV) fazem sentido para lojas online, bancos e sites com formulários de pagamento: exigem verificação da empresa e mostram o nome da organização na barra de endereço. Para um blogue, portefólio ou site corporativo, o Let's Encrypt é o padrão. A maioria dos fornecedores de alojamento (Timeweb, Beget, Hostinger) emite-o automaticamente quando cria um site.

O conteúdo misto pode ser corrigido sem plugins e alterações de código?

Em alguns fornecedores de alojamento, sim. A Cloudflare inclui a opção Automatic HTTPS Rewrites no seu plano gratuito: corrige links HTTP para HTTPS em tempo real para todo o tráfego que passa pela CDN. No entanto, isto é uma meia-solução: o problema permanece ao nível do servidor e, quando desativar a Cloudflare, os erros voltam. É melhor eliminar a causa, substituindo os links HTTP na base de dados e configurando um redirecionamento no.htaccess. Assim, o seu site ficará limpo, independentemente do método de entrega de tráfego.

SSL Insecure Content Fixer](/orig_post/8-best-wordpress-ssl-plugins-2022-free-amp-paid) ou Really Simple Security: qual escolher?*

Depende da tarefa. O Really Simple Security é uma solução de "configurar e esquecer": adequado para um site WordPress típico, sem integrações complexas. O SSL Insecure Content Fixer é uma ferramenta com níveis graduados para ajustes finos. Se os erros persistirem após ativar o Really Simple Security (isto acontece com estruturas de tema não padronizadas, endpoints personalizados ou plugins com chamadas HTTP diretas), mude para o SSL Insecure Content Fixer e aumente o nível de filtragem. A prática mostra: o primeiro plugin cobre a maioria dos casos, o segundo resolve os restantes.

É seguro usar o modo Capture All no SSL Insecure Content Fixer?

O Capture All interceta e reescreve cada byte da página antes de a enviar para o browser. Isto é fiável, mas aumenta a carga do CPU. Em alojamentos fracos ou sites com muito tráfego, pode haver um atraso na resposta de 100 a 300 ms. Plugins de cache (WP Rocket) atenuam este efeito: a página é gerada uma vez e servida a partir da cache. Antes de ativar o Capture All, certifique-se de que os níveis mais suaves não resolveram o problema e crie uma cópia de segurança.

Corrigi o conteúdo misto, e agora?

Um erro de conteúdo misto não é uma sentença de morte. Após os dois passos deste artigo, fica completamente resolvido e, regra geral, não volta. O segredo não é silenciar os avisos do browser, mas eliminar a causa: migrar todos os recursos para HTTPS.

Consolide o seu resultado: configure a verificação automática do SSL (o UptimeRobot ou a monitorização do alojamento enviam uma notificação 30 dias antes da expiração do certificado) e adote como regra inserir novos links com https:// desde o início. Alguns minutos de prevenção agora poupam horas de depuração mais tarde.