
Descubra como melhorar a pontuação do LCP no WordPress, caso você esteja enfrentando dificuldades com a velocidade no seu site WordPress. Uma pontuação de LCP baixa pode impactar negativamente a experiência do usuário e o desempenho geral do seu site. Aprenda aqui como identificar e resolver os problemas que afetam negativamente o LCP, permitindo que você entregue um conteúdo mais rápido e responsivo aos seus visitantes. Aprenda neste guia abrangente diversas técnicas e estratégias comprovadas para melhorar significativamente a pontuação do LCP no WordPress, garantindo um site mais rápido, agradável e bem ranqueado nos mecanismos de busca.
A Maior Exibição de Conteúdo (Largest Contentful Paint – LCP) é uma métrica de desempenho web do Core Web Vitals que mede o tempo necessário para que o maior elemento de conteúdo visível (como uma imagem, vídeo ou bloco de texto) na janela de visualização seja completamente renderizado. Um LCP baixo é crucial para uma boa experiência do usuário, pois indica a rapidez com que o conteúdo principal da página é exibido.
Como configurar políticas para melhorar a pontuação do LCP no WordPress
Melhorar o LCP envolve otimizar o carregamento de recursos críticos, reduzir o tempo de resposta do servidor e minimizar bloqueios de renderização. Abaixo estão estratégias específicas para WordPress, incluindo configurações para reduzir o impacto de clickjacking (conforme mencionado anteriormente) sem prejudicar o LCP.
1. Otimizar o tempo de resposta do servidor
- Use um bom hosting: Escolha um provedor de hospedagem com servidores rápidos e suporte a HTTP/2 ou HTTP/3. Ex.: SiteGround, WP Engine ou Cloudways.
- Habilite cache:
- Instale plugins como WP Rocket, W3 Total Cache ou LiteSpeed Cache para cache de página.
- Configure cache no servidor (ex.: Varnish ou Redis) se disponível.
- CDN: Use uma Content Delivery Network (como Cloudflare ou BunnyCDN) para reduzir a latência ao entregar recursos estáticos.
2. Otimizar o carregamento de CSS
- Minifique e combine arquivos CSS:
- Use plugins como Autoptimize ou WP Rocket para minificar CSS e remover CSS não utilizado.
- Exemplo de código para
functions.php
para minificar inline CSS (se necessário):php add_filter('wp_get_custom_css', function ($css) { $css = preg_replace('/\s+/', ' ', $css); // Remove espaços extras return $css; });
- Carregue CSS de forma assíncrona:
- Use plugins como AsyncCSS ou adicione
media="print" onload="this.media='all'"
aos links CSS. - Exemplo:
php add_filter('style_loader_tag', function ($html, $handle) { return str_replace("media='all'", "media='print' onload=\"this.media='all'\"", $html); }, 10, 2);
- Inline CSS crítico: Extraia o CSS necessário para renderizar o conteúdo acima da dobra (above the fold) e adicione diretamente no
<head>
.
3. Otimizar o carregamento de JS
- Mover JS para o rodapé: Como mencionado no seu pedido anterior, mover scripts para o rodapé reduz o bloqueio de renderização. Use o código fornecido:
function move_scripts_to_footer() {
wp_scripts()->add_data('jquery', 'group', 1);
wp_scripts()->add_data('jquery-core', 'group', 1);
wp_scripts()->add_data('jquery-migrate', 'group', 1);
add_filter('script_loader_tag', function ($tag, $handle, $src) {
if (!is_admin() && !in_array($handle, ['jquery', 'jquery-core', 'jquery-migrate'])) {
wp_scripts()->add_data($handle, 'group', 1);
}
return $tag;
}, 10, 3);
}
add_action('wp_enqueue_scripts', 'move_scripts_to_footer');
- Adiar ou carregar JS assincronamente:
- Use
defer
ouasync
nos scripts. Exemplo com filtro:php add_filter('script_loader_tag', function ($tag, $handle, $src) { if (!is_admin()) { return str_replace('<script', '<script defer', $tag); } return $tag; }, 10, 3);
- Plugins como WP Rocket ou Async JavaScript podem automatizar isso.
4. Otimizar imagens
- Use formatos modernos: Converta imagens para WebP ou AVIF usando plugins como ShortPixel ou Imagify.
- Lazy loading: Habilite o carregamento preguiçoso (lazy loading) para imagens fora da janela inicial. No WordPress 5.5+, isso é nativo, mas você pode usar plugins como Smush ou WP Rocket para maior controle.
- Defina tamanhos corretos: Use imagens com dimensões adequadas e adicione atributos
width
eheight
para evitar CLS (Cumulative Layout Shift).
add_filter('wp_get_attachment_image_attributes', function ($attr) {
if (isset($attr['sizes'])) {
$attr['sizes'] = '100vw';
}
return $attr;
});
5. Configurar cabeçalhos de segurança sem impactar LCP
Conforme sua pergunta anterior sobre clickjacking, os cabeçalhos X-Frame-Options
e Content-Security-Policy
(CSP) não afetam diretamente o LCP, mas é importante garantir que a implementação não introduza atrasos. Use a abordagem mais leve:
- X-Frame-Options (preferível para simplicidade):
function add_x_frame_options_header() {
header('X-Frame-Options: DENY');
}
add_action('send_headers', 'add_x_frame_options_header');
- Evite CSP complexo: Um CSP muito restritivo pode bloquear recursos críticos (ex.: fontes ou scripts externos). Se usar CSP, comece com
frame-ancestors 'self'
:
function add_csp_header() {
header("Content-Security-Policy: frame-ancestors 'self'");
}
add_action('send_headers', 'add_csp_header');
- Teste o impacto: Use ferramentas como Lighthouse ou PageSpeed Insights para verificar se os cabeçalhos afetam o carregamento.
6. Outras otimizações
- Fontes otimizadas: Use
font-display: swap
para fontes web e evite carregar fontes desnecessárias.
add_action('wp_head', function () {
echo '<style>@font-face {font-display: swap;}</style>';
});
- Pré-carregamento de recursos críticos:
add_action('wp_head', function () {
echo '<link rel="preload" href="/caminho/para/recurso.css" as="style">';
echo '<link rel="preload" href="/caminho/para/recurso.js" as="script">';
}, 1);
- Evite plugins pesados: Desative plugins que adicionam scripts ou estilos desnecessários.
Testando o LCP
- Ferramentas:
- Google PageSpeed Insights: Fornece o valor do LCP e sugestões de melhoria.
- Lighthouse (no Chrome DevTools): Detalha elementos que contribuem para o LCP.
- WebPageTest: Mostra o tempo de renderização de elementos.
- Meta ideal: LCP deve ser menor que 2,5 segundos para uma boa experiência (conforme Core Web Vitals).
Considerações
- Teste após cada mudança: Alterações como mover JS para o rodapé ou adicionar cabeçalhos de segurança podem quebrar funcionalidades. Teste em um ambiente de staging.
- Priorize o conteúdo acima da dobra: Foque na otimização de elementos visíveis imediatamente.
- Monitore continuamente: Use ferramentas como Google Search Console para acompanhar o desempenho do Core Web Vitals.
Se precisar de ajuda com um plugin específico, análise de um site ou mais detalhes sobre alguma etapa, me avise!
Mais opções para melhorar a pontuação do Largest Contentful Paint (LCP) no WordPress

1. Otimizar o tempo de resposta do servidor (TTFB)
O Time to First Byte (TTFB) é um componente crítico do LCP, pois atrasos no servidor aumentam o tempo de renderização.
- Use um provedor de hospedagem rápido:
- Escolha hospedagens otimizadas para WordPress (ex.: SiteGround, Kinsta, WP Engine) com suporte a HTTP/2 ou HTTP/3.
- Considere servidores com PHP 8.x e cache no lado do servidor (ex.: LiteSpeed ou Redis).
- Habilite cache de página:
- Instale um plugin como WP Rocket, W3 Total Cache ou LiteSpeed Cache.
- Exemplo de configuração básica com WP Rocket (no painel do plugin):
- Ative cache de página e minificação de HTML, CSS e JS.
- Habilite cache para usuários logados, se necessário.
- Use uma CDN:
- Configure uma CDN como Cloudflare ou BunnyCDN para reduzir a latência.
- No WordPress, use plugins como WP Rocket ou CDN Enabler para integrar a CDN.
- Otimize o banco de dados:
- Use plugins como WP-Optimize ou WP-Sweep para limpar revisões, transients e tabelas desnecessárias.
- Exemplo de script para limpar revisões automaticamente:
php function clean_post_revisions() { global $wpdb; $wpdb->query("DELETE FROM $wpdb->posts WHERE post_type = 'revision'"); } add_action('wp_scheduled_delete', 'clean_post_revisions');
2. Otimizar o carregamento de CSS
CSS bloqueante pode atrasar a renderização do conteúdo principal.
- Minifique e remova CSS não utilizado:
- Use WP Rocket ou Autoptimize para minificar e combinar arquivos CSS.
- Para remover CSS não utilizado, use Asset CleanUp ou Perfmatters.
- Exemplo de filtro para minificar CSS inline:
php add_filter('wp_get_custom_css', function ($css) { $css = preg_replace('/\s+/', ' ', trim($css)); return $css; });
- Carregue CSS crítico inline:
- Extraia o CSS necessário para o conteúdo acima da dobra (above the fold) e adicione ao
<head>
. - Use ferramentas como CriticalCSS ou o recurso de CSS crítico do WP Rocket.
- Exemplo manual:
php add_action('wp_head', function () { echo '<style>.hero, .main-content { /* CSS crítico aqui */ }</style>'; }, 1);
- Adiar CSS não crítico:
- Carregue CSS não essencial de forma assíncrona com
media="print" onload="this.media='all'"
. - Exemplo:
php add_filter('style_loader_tag', function ($html, $handle) { if (!is_admin()) { return str_replace("media='all'", "media='print' onload=\"this.media='all'\"", $html); } return $html; }, 10, 2);
3. Otimizar o carregamento de JavaScript
Scripts JS que bloqueiam a renderização podem aumentar o LCP.
- Mover JS para o rodapé:
- Use o script fornecido anteriormente para mover scripts para o rodapé:
php function move_scripts_to_footer() { wp_scripts()->add_data('jquery', 'group', 1); wp_scripts()->add_data('jquery-core', 'group', 1); wp_scripts()->add_data('jquery-migrate', 'group', 1); add_filter('script_loader_tag', function ($tag, $handle, $src) { if (!is_admin() && !in_array($handle, ['jquery', 'jquery-core', 'jquery-migrate'])) { wp_scripts()->add_data($handle, 'group', 1); } return $tag; }, 10, 3); } add_action('wp_enqueue_scripts', 'move_scripts_to_footer');
- Adiar ou carregar JS assincronamente:
- Adicione o atributo
defer
ouasync
aos scripts. - Exemplo:
php add_filter('script_loader_tag', function ($tag, $handle, $src) { if (!is_admin()) { return str_replace('<script', '<script defer', $tag); } return $tag; }, 10, 3);
- Ou use plugins como Async JavaScript.
- Pré-carregue scripts críticos:
- Se um script for essencial para o LCP (ex.: slider no hero), use
rel="preload"
:php add_action('wp_head', function () { echo '<link rel="preload" href="/caminho/para/script.js" as="script">'; }, 1);
4. Otimizar imagens
Imagens grandes frequentemente são o maior elemento de conteúdo (LCP).
- Use formatos modernos:
- Converta imagens para WebP ou AVIF com plugins como ShortPixel, Imagify ou EWWW Image Optimizer.
- Exemplo de conversão automática com ShortPixel (configurado no painel do plugin).
- Habilite lazy loading:
- O WordPress 5.5+ suporta lazy loading nativo (
loading="lazy"
). - Para maior controle, use WP Rocket ou Smush.
- Exemplo manual:
php add_filter('wp_get_attachment_image_attributes', function ($attr) { $attr['loading'] = 'lazy'; return $attr; });
- Defina dimensões corretas:
- Adicione
width
eheight
às imagens para evitar CLS e melhorar LCP. - Exemplo:
php add_filter('wp_get_attachment_image_attributes', function ($attr) { if (!isset($attr['width']) || !isset($attr['height'])) { $attr['width'] = '100%'; $attr['height'] = 'auto'; } return $attr; });
- Pré-carregue imagens do LCP:
- Identifique a imagem principal (ex.: imagem de destaque ou hero) e adicione
rel="preload"
:php add_action('wp_head', function () { echo '<link rel="preload" href="/caminho/para/imagem-principal.webp" as="image">'; }, 1);
5. Otimizar fontes
Fontes personalizadas podem atrasar a renderização do texto, que muitas vezes é o elemento LCP.
- Use
font-display: swap
: - Permite que o navegador use uma fonte alternativa enquanto a fonte personalizada carrega.
- Exemplo:
php add_action('wp_head', function () { echo '<style>@font-face { font-family: "SuaFonte"; src: url("/caminho/para/fonte.woff2") format("woff2"); font-display: swap; }</style>'; }, 1);
- Pré-carregue fontes:
- Adicione
rel="preload"
para fontes usadas no conteúdo principal:php add_action('wp_head', function () { echo '<link rel="preload" href="/caminho/para/fonte.woff2" as="font" type="font/woff2" crossorigin>'; }, 1);
- Evite fontes desnecessárias:
- Limite o número de fontes e pesos (ex.: apenas regular e bold).
6. Garantir que cabeçalhos de segurança não impactem o LCP
Conforme sua pergunta anterior sobre clickjacking, os cabeçalhos X-Frame-Options
e Content-Security-Policy
(CSP) não afetam diretamente o LCP, mas configurações incorretas de CSP podem bloquear recursos críticos. Use implementações leves:
- X-Frame-Options:
function add_x_frame_options_header() { header('X-Frame-Options: DENY'); } add_action('send_headers', 'add_x_frame_options_header');
- CSP minimalista:
function add_csp_header() {
header("Content-Security-Policy: frame-ancestors 'self'");
}
add_action('send_headers', 'add_csp_header');
- Teste o impacto: Use Lighthouse para verificar se o CSP bloqueia recursos essenciais (ex.: imagens ou scripts).
7. Outras otimizações
- Reduza plugins pesados:
- Desative plugins que adicionam scripts ou estilos desnecessários. Use Query Monitor para identificar plugins que aumentam o TTFB ou LCP.
- Priorize o conteúdo acima da dobra:
- Certifique-se de que o elemento LCP (ex.: título principal, imagem de destaque) seja carregado primeiro.
- Use ferramentas como Lighthouse para identificar o elemento LCP da página.
- Habilite compressão:
- Ative Gzip ou Brotli no servidor. Para Apache, adicione ao
.htaccess
:apache <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript </IfModule>
8. Testando e monitorando o LCP
- Ferramentas:
- Google PageSpeed Insights: Mostra o LCP e sugere melhorias.
- Lighthouse (Chrome DevTools): Identifica o elemento LCP e gargalos.
- WebPageTest: Detalha o tempo de renderização.
- Google Search Console (relatório Core Web Vitals): Monitora o LCP em várias páginas.
- Meta: LCP ≤ 2,5 segundos (bom), 2,5–4 segundos (precisa melhorar), >4 segundos (ruim).
- Teste após cada mudança: Use um ambiente de staging para evitar quebras no site ativo.
Exemplo de implementação combinada no functions.php
// Melhorias para LCP
function optimize_lcp() {
// Pré-carregar imagem principal
echo '<link rel="preload" href="/caminho/para/imagem-principal.webp" as="image">';
// Pré-carregar fonte
echo '<link rel="preload" href="/caminho/para/fonte.woff2" as="font" type="font/woff2" crossorigin>';
// CSS crítico inline
echo '<style>.hero, .main-content { /* CSS crítico aqui */ }</style>';
// Font-display: swap
echo '<style>@font-face { font-family: "SuaFonte"; src: url("/caminho/para/fonte.woff2") format("woff2"); font-display: swap; }</style>';
}
add_action('wp_head', 'optimize_lcp', 1);
// Mover JS para o rodapé
function move_scripts_to_footer() {
wp_scripts()->add_data('jquery', 'group', 1);
wp_scripts()->add_data('jquery-core', 'group', 1);
wp_scripts()->add_data('jquery-migrate', 'group', 1);
add_filter('script_loader_tag', function ($tag, $handle, $src) {
if (!is_admin() && !in_array($handle, ['jquery', 'jquery-core', 'jquery-migrate'])) {
wp_scripts()->add_data($handle, 'group', 1);
}
return $tag;
}, 10, 3);
}
add_action('wp_enqueue_scripts', 'move_scripts_to_footer');
// Adiar CSS não crítico
add_filter('style_loader_tag', function ($html, $handle) {
if (!is_admin()) {
return str_replace("media='all'", "media='print' onload=\"this.media='all'\"", $html);
}
return $html;
}, 10, 2);
// X-Frame-Options para segurança
function add_x_frame_options_header() {
header('X-Frame-Options: DENY');
}
add_action('send_headers', 'add_x_frame_options_header');
Considerações finais
- Teste incremental: Implemente uma mudança de cada vez e verifique o impacto no LCP com Lighthouse ou PageSpeed Insights.
- Compatibilidade: Alguns scripts (ex.: jQuery em temas antigos) podem não funcionar se movidos para o rodapé. Use Query Monitor para identificar dependências.
- Manutenção: Monitore regularmente o desempenho com Google Search Console e ajuste conforme necessário.
Se precisar de ajuda com um plugin específico, análise de uma página ou mais detalhes sobre alguma técnica, me avise com o URL da página ou contexto adicional!