Compartilhe:

Facebook
X
LinkedIn
WhatsApp

Core Web Vitals WordPress para Portais de Notícias: Guia Técnico Completo

Você abriu o Google Search Console hoje cedo, foi até o relatório de Experiência na Página e encontrou aquela notificação vermelha: “URLs com desempenho ruim“. Os Core Web Vitals do seu portal de notícias estão reprovando e você sabe que isso afeta diretamente o tráfego orgânico, a posição no Google News, Google Discover e, por consequência, a receita de ads.

Não é um problema isolado. Portais de notícias em WordPress enfrentam um desafio único: precisam carregar rápido mesmo publicando dezenas de artigos por dia, exibindo anúncios programáticos em múltiplos slots, carregando widgets sociais e ainda servindo imagens em alta resolução para matérias de impacto. É o ambiente mais hostil para performance que existe.

A boa notícia é que os problemas têm solução. Neste guia, o mais completo disponível em PT-BR sobre o tema, você vai entender exatamente o que o Google mede, por que portais de notícias têm dificuldades específicas com LCP, INP e CLS, e como resolver cada um deles com ações práticas e priorizadas.

Se você é editor, gestor técnico ou desenvolvedor de um portal WordPress e precisa de um plano real para passar nos Core Web Vitals, este artigo foi escrito para você.

Nota rápida: se você também quer entender como a performance impacta a receita de ads do seu portal e como aparecer no Google News e performance, temos artigos específicos no blog. O SEO técnico completo do portal também está em SEO técnico do portal.

O que são Core Web Vitals no WordPress para portais de notícias?

Core Web Vitals são três métricas de experiência do usuário usadas pelo Google como fator de ranqueamento: LCP (velocidade de carregamento do maior elemento visível, meta: <2,5 s), INP (tempo de resposta a interações, meta: <200 ms) e CLS (estabilidade visual da página, meta: <0,1). Para portais de notícias WordPress, a aprovação exige otimização de imagens, eliminação de JavaScript bloqueante, cache avançado e controle rigoroso de ad slots para evitar saltos de layout.

O que são Core Web Vitals e por que portais de notícias precisam priorizá-los

Os Core Web Vitals são um subconjunto das métricas de experiência na página (Page Experience) que o Google usa para avaliar a qualidade real da navegação em um site. Diferente de métricas tradicionais de “velocidade”, como o tempo total de carregamento, os CWV medem o que o usuário sente: quando o conteúdo aparece, quando ele pode clicar em algo e se a página “pula” enquanto carrega.

Desde 2021, esses sinais fazem parte do algoritmo de ranqueamento do Google, com peso maior em disputas acirradas (quando dois conteúdos são igualmente relevantes, o que tem CWV melhores tende a rankear acima). Em março de 2024, o Google substituiu o FID (First Input Delay) pelo INP (Interaction to Next Paint), tornando o sinal de interatividade ainda mais rigoroso.

As três métricas e seus benchmarks

MétricaO que medeBomPrecisa melhorarRuim
LCPVelocidade de carregamento do maior elemento visível (imagem ou bloco de texto)< 2,5 s2,5 s – 4,0 s4,0 s
INPLatência de resposta a qualquer interação do usuário (cliques, toques, teclas)< 200 ms200 ms – 500 ms500 ms
CLSDeslocamento acumulado de elementos visuais durante o carregamento< 0,10,1 – 0,250,25

Por que portais de notícias são diferentes

Um blog pessoal com 5 posts e sem anúncios consegue bons CWV com relativa facilidade. Um portal de notícias enfrenta uma combinação de fatores que tornain isso exponencialmente mais difícil:

  1. Volume de publicação: dezenas de posts por dia significa variação constante de imagens, embeds e estrutura de página.
  2. Anúncios programáticos: slots de header bidding (Google Ad Manager, Taboola, Outbrain) inserem scripts pesados e elementos dinâmicos que destroem o CLS e atrasam o LCP.
  3. Tráfego mobile alto: portais de notícias têm 70-85% do tráfego em mobile, onde as redes são mais lentas e os dispositivos têm menos poder de processamento.
  4. Widgets e redes sociais: embeds do Twitter/X, YouTube, Instagram adicionam JavaScript de terceiros que impacta o INP.
  5. Imagens de alta resolução: fotojornalismo exige qualidade, mas sem compressão e lazy load corretos, essas imagens destroem o LCP.

O Google avalia os CWV usando dados reais de usuários (Chrome UX Report – CrUX), não apenas dados de laboratório. Isso significa que não adianta otimizar a homepage se as páginas de artigo, onde está 80% do tráfego de um portal, estiverem ruins.

Portais que passam nos Core Web Vitals consistentemente relatam ganhos de 10-25% no tráfego orgânico após a aprovação, além de melhora direta na taxa de rejeição e no RPM de anúncios (usuários que ficam mais tempo na página veem mais ads).

LCP (Largest Contentful Paint): como diagnosticar e corrigir em portais WordPress

O LCP mede o tempo até que o maior elemento visível da viewport seja renderizado. Em portais de notícias, esse elemento quase sempre é a imagem de destaque (featured image) do artigo, aquela foto de impacto no topo de cada matéria.

Como o Google identifica o elemento LCP

O navegador analisa todos os elementos renderizados acima da dobra e identifica o maior (por área). Em portais, a ordem de prevalência é:

  1. Imagem de destaque ( <img> ou imagem de background em CSS)
  2. Imagem em carousel/slider do topo
  3. Bloco de texto grande (título + lide) quando não há imagem acima da dobra

Causas comuns de LCP ruim em portais WordPress

1. Imagens sem preload e sem formatos modernos

A imagem de destaque de um artigo frequentemente é carregada via CSS ou como <img> sem prioridade, fazendo o navegador esperá-la na fila. Além disso, imagens JPEG pesadas de 500 KB – 2 MB são comuns em portais sem pipeline de otimização.

Solução:

  • Converter imagens para WebP ou AVIF (30–50% menor que JPEG equivalente)
  • Adicionar fetchpriority=”high” na tag <img> da featured image
  • Usar <link rel=”preload” as=”image”> no <head> para a imagem hero
  • Plugins: Imagify, ShortPixel ou Cloudflare Image Resizing fazem a conversão automaticamente

2. Render-blocking resources (CSS e JS bloqueantes)

Scripts e estilos carregados no <head> sem async ou defer travam a renderização. Em portais com muitos plugins (SEO, ads, social, comentários), é comum ter 10–20 recursos bloqueantes.

Solução:

  • Usar WP Rocket ou FlyingPress para defer de JS não-crítico
  • Inline do CSS crítico (above-the-fold) e defer do restante
  • Auditar com PageSpeed Insights, aba “Diagnóstico” mostra exatamente quais recursos estão bloqueando

3. Servidor lento (TTFB alto)

Se o Time to First Byte (TTFB) for maior que 600 ms, o LCP quase nunca passa — o navegador nem começou a renderizar enquanto o servidor ainda está respondendo.

Solução:

  • Cache de página full-page (WP Rocket, W3 Total Cache, LiteSpeed Cache)
  • Object cache com Redis ou Memcached para queries do banco de dados
  • Upgrade de hosting: portais sérios precisam de VPS/Cloud (Google Cloud Plataform, AWS, DigitalOcean, Cloudways). Hospedagem compartilhada é inviável acima de 50k pageviews/mês
  • CDN com edge caching: Cloudflare (plano gratuito já ajuda; Enterprise tem APO)

4. Lazy load aplicado na imagem hero

Lazy load é excelente para imagens abaixo da dobra, mas se aplicado na featured image (que está acima da dobra), ele atrasa o LCP. É um erro clássico de configuração.

Solução:

  • No WP Rocket: em “Mídia > Lazy Load”, ative a opção de excluir a imagem de destaque
  • Via código: adicione loading=”eager” e fetchpriority=”high” na featured image
  • No tema: identifique qual função gera a featured image e adicione os atributos corretos

Checklist LCP para portais WordPress

  • TTFB < 600 ms (verificar com WebPageTest)
  • Imagens de destaque em WebP/AVIF
  • Featured image com fetchpriority=”high” e sem lazy load
  • CSS crítico inline; restante deferido
  • JavaScript não-crítico com defer ou async
  • CDN configurado com cache de borda

INP (Interaction to Next Paint): o novo sinal que substituiu o FID

Em março de 2024, o Google substituiu o FID (First Input Delay) pelo INP (Interaction to Next Paint). A mudança foi significativa: enquanto o FID media apenas o delay da primeira interação, o INP mede a latência de todas as interações do usuário durante a sessão, cliques, toques, pressionamentos de tecla e reporta o pior percentil.

Por que o INP é mais difícil de passar

O FID era relativamente fácil de passar porque media apenas a primeira interação, que geralmente ocorre antes que scripts pesados terminem de carregar. O INP pega o usuário no meio da navegação, quando todos os scripts já carregaram e estão competindo pela thread principal do navegador.

Meta: INP < 200 ms (bom) | 200–500 ms (precisa melhorar) | > 500 ms (ruim)

Causas comuns de INP alto em portais WordPress

1. JavaScript de terceiros pesado

Scripts de anúncios (Google Publisher Tag, header bidding), analytics (GA4, Hotjar, Clarity), widgets sociais e comentários ficam todos na main thread. Quando o usuário clica em alguma coisa, esses scripts podem estar bloqueando a resposta.

Solução:

  • Carregar scripts de terceiros via async ou defer
  • Usar Partytown (integrado ao plugin WP Offload Scripts) para mover scripts de terceiros para web workers
  • Eliminar scripts desnecessários — auditar com a aba Coverage do Chrome DevTools

2. Temas com JavaScript pesado

Temas de portais de notícias frequentemente incluem mega menus, carrosséis, tabs e acordeons com jQuery ou vanilla JS complexo. Cada interação com esses elementos gera INP ruim.

Solução:

  • Migrar para temas otimizados para performance (GeneratePress, Kadence, Blocksy) ou temas específicos para portais
  • Substituir jQuery por vanilla JS quando possível
  • Dividir bundles JS com code splitting

3. Long Tasks no carregamento da página

“Long Tasks” são tarefas que bloqueiam a main thread por mais de 50 ms. Portais com muitos plugins têm dezenas delas durante o carregamento, aumentando o INP mesmo antes de qualquer interação.

Como identificar:

  • Abra Chrome DevTools > aba Performance
  • Grave uma interação com a página
  • Procure blocos vermelhos na track “Main”, esses são Long Tasks
  • Identifique o script responsável e avalie se pode ser diferido, removido ou otimizado

4. Layouts com reflow intenso

Cliques que acionam mudanças de layout grandes (expandir menu, abrir modal, carregar mais notícias via AJAX) forçam o navegador a recalcular toda a geometria da página — operação cara que aumenta o INP.

Solução:

  • Usar transform e opacity para animações (não width, height, top, left)
  • Aplicar content-visibility: auto em seções abaixo da dobra
  • Lazy load de widgets e comentários (carregar apenas quando o usuário chegar na seção)

CLS (Cumulative Layout Shift): o vilão silencioso dos portais com ads

O CLS mede a soma dos deslocamentos inesperados de elementos visuais durante o carregamento da página. O usuário está lendo o lide de uma matéria, a página ainda está carregando ads, e de repente o texto sobe 200px, o usuário clica no link errado. Isso é CLS alto.

Meta: CLS < 0,1 (bom) | 0,1–0,25 (precisa melhorar) | > 0,25 (ruim)

Como o CLS é calculado

O score CLS é a soma dos Layout Shift Scores individuais. Cada shift score = Impact Fraction × Distance Fraction. Em termos práticos: quanto maior o elemento que se move e maior a distância que ele percorre, pior o score.

Causas de CLS em portais de notícias

1. Imagens sem dimensões definidas

Quando o navegador não sabe o tamanho de uma imagem antes de baixá-la, ele não reserva espaço e quando a imagem carrega, empurra o conteúdo abaixo para baixo.

Solução:

A partir do WordPress 5.5+ é adicionado width/height automaticamente para imagens do Media Library. Verifique se seu tema não está removendo esses atributos.

2. Fontes web causando FOUT/FOIT

Quando fontes personalizadas carregam após o texto já ter sido renderizado com fallback font, o reflow de texto causa CLS. Portais que usam Google Fonts via @import no CSS são especialmente afetados.

Solução:

  • font-display: swap para evitar FOIT (Flash of Invisible Text)
  • Hospedar fontes localmente (plugin OMGF ou manualmente)
  • <link rel=”preload”> para a fonte principal do corpo do texto

3. Banners e embeds sem dimensões reservadas

Embeds do YouTube, Twitter e iframes de formulários sem height definida causam CLS quando carregam.

Solução:

  • YouTube: usar wrapper com padding-bottom: 56.25% (aspect ratio 16:9)
  • Twitter/Instagram: usar Embedly ou versão lite (Lite YouTube Embed)
  • Iframes: sempre definir height mínimo

Foto de Marcelo Berwanger

Marcelo Berwanger