Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🖼 Como servir imagens WebP no WordPress: 3 métodos

🖼 Como servir imagens WebP no WordPress: 3 métodos

PageSpeed Insights mostra a recomendação «Sirva imagens em formatos de próxima geração», mas as imagens no seu site ainda estão em JPEG. Converter tudo para WebP é simples. O desafio é outro: uma pequena percentagem de visitantes com navegadores mais antigos verá imagens partidas se simplesmente substituir o formato no servidor.

A tarefa não é a conversão, é a distribuição seletiva: WebP para quem o suporta e o original para todos os outros. Em WordPress isto resolve-se de três formas diferentes, cada uma para uma stack e orçamento específicos.

💡 Visão geral rápida:

  • Compreender o que é o WebP e porque é melhor do que o JPEG
  • Conhecer as duas abordagens para servir WebP
  • Escolher um dos três métodos para a sua stack e orçamento
  • Configurar o plugin e verificar o resultado nas Chrome DevTools

O que é o WebP e porque precisa dele

WebP é um formato de imagem da Google que comprime melhor do que JPEG e PNG com a mesma qualidade visual. Uma imagem que pesa 100 KB em WebP pesa 55-75 KB. Não há magia: apenas um algoritmo de compressão mais eficiente.

Recomendação do Google PageSpeed Insights para usar o formato WebP

O formato não é novo. A especificação foi publicada pela Google em 2010. Desde então, o WebP passou de experiência a padrão: compressão com e sem perdas, transparência, animação. Essencialmente, combina as capacidades do JPEG, PNG e GIF num único contentor.

Comparação rápida com os formatos tradicionais:

JPEG

GIF

PNG

SVG

WebP

Vetorial

Raster

Transparência

Animação

Compressão com perdas

Compressão sem perdas

Comparação do tamanho do ficheiro WebP com JPEG e PNG com a mesma qualidade

A diferença de tamanho é notória. Para um site com cinquenta imagens por página, mudar para WebP reduz o peso total por múltiplos. O impacto nas Core Web Vitals e nos rankings de pesquisa é direto.

Porque não pode simplesmente ativar o WebP em todo o lado

A resposta resume-se à compatibilidade. Hoje, o WebP é suportado por mais de 96% dos navegadores: Chrome, Firefox, Safari (a partir do iOS 14), Edge. Mas permanece uma pequena percentagem de dispositivos antigos que não compreendem o formato.

Diagrama de compatibilidade do WebP nos principais navegadores

Se simplesmente substituir todos os JPEG por WebP no servidor, essa pequena percentagem de visitantes verá imagens partidas. Para um site comercial ou loja online, esta perda de utilizadores é inaceitável.

Portanto, a tarefa não se resume a «converter imagens», mas a «servir WebP a quem o suporta e o original a todos os outros».

Duas abordagens básicas para servir WebP

Antes de avançar para os métodos para WordPress, vale a pena perceber como o navegador e o servidor negoceiam o formato. Existem apenas dois mecanismos.

Abordagem 1: tag

É oferecida ao navegador uma escolha entre WebP e o original diretamente na marcação HTML:

1<picture>
2 <source srcset="img.webp" type="image/webp">
3 <source srcset="img.jpg" type="image/jpeg">
4 <img src="img.jpg" alt="Image description">
5</picture>

Um navegador com suporte para WebP carregará o primeiro <source>. Os restantes ignorarão a fonte WebP e carregarão o JPEG do <img>.

Vantagem: funciona sem configuração do servidor e com qualquer CDN. Desvantagem: não funciona com imagens de fundo em CSS e altera a estrutura HTML. Alguns plugins de cache e lazy loading tropeçam no <picture>.

Abordagem 2: resposta variada

No HTML permanece um <img src="img.jpg"> normal, mas o servidor devolve conteúdo diferente para o mesmo URL: um ficheiro WebP para navegadores com suporte para WebP, o original para todos os outros.

A chave do mecanismo é o cabeçalho HTTP Accept. O navegador envia-o em cada pedido, o servidor ou a CDN decide o que devolver.

Vantagem: funciona em todo o lado, incluindo imagens de fundo em CSS. O HTML não se altera. Desvantagem: requer configuração do servidor e nem todas as CDN consideram corretamente o Accept na chave de cache.

Vamos comparar:

<picture>

Resposta Variada

Imagens de fundo

Funciona com qualquer CDN

Apenas com suporte para Vary: Accept

Configuração do servidor

❌ não necessária

✅ necessária

Lazy loading

Compatibilidade com plugins de cache

Pode entrar em conflito

Agora vejamos como estas abordagens são aplicadas no WordPress.

Método 1: CDN com conversão WebP on-the-fly

O caminho mais simples. Liga uma CDN que otimiza imagens em tempo real e serve WebP aos navegadores que o suportam. As cópias convertidas não são armazenadas no seu servidor, poupando espaço em disco.

Várias opções funcionais:

  • BunnyCDN com o Bunny Optimizer, comprime e converte imagens em tempo real, suporta WebP na chave de cache. A partir de $0,01/GB.
  • Cloudflare com o Polish (plano Pro, $20/mês), compressão e conversão automáticas para WebP.
  • Cloudinary, um serviço especializado no trabalho com imagens, WebP de raiz.
  • ShortPixel Adaptive Images, um plugin para WordPress que utiliza a CDN bunny.net. Converte e serve WebP automaticamente. Plano gratuito: 500 MB de tráfego por mês.
  • WP Compress, um serviço híbrido: otimização de imagens mais distribuição através da sua própria CDN.
Configurações do Bunny Optimizer para converter imagens para WebP

Quando escolher o método 1: se estiver disposto a pagar por uma CDN e não quiser lidar com a configuração do servidor. Ligou, ativou a otimização, funcionou.

Método 2: resposta variada + CDN

Um método para quem prefere resolver a tarefa ao nível do servidor sem alterar o markup HTML.

A essência: configura o servidor para que, num único URL, devolva WebP ou JPEG/PNG consoante o cabeçalho Accept. Todos os URLs de imagem no código permanecem iguais.

Configuração via WebP Express

A forma mais fácil de implementar a resposta variada no WordPress é o plugin WebP Express. O plugin tem mais de 400 000 instalações ativas, atualizações regulares e suporte ativo do autor. Faz três coisas:

  • Converte as imagens carregadas para WebP.
  • Escreve regras de redirecionamento (.htaccess para Apache/LiteSpeed ou regras Nginx).
  • Ao solicitar uma imagem, verifica o cabeçalho Accept e devolve o formato necessário.
Página de configurações do plugin WebP Express no painel do WordPress

Após a instalação, basta clicar em «Save settings and force new.htaccess rules». O plugin configura o conversor e as regras automaticamente.

Para servidores Nginx

O WebP Express gera regras para .htaccess (Apache/LiteSpeed/OpenLiteSpeed). Se tiver Nginx, precisa de escrever manualmente as regras na configuração:

1&#35;&#35; --- Nginx rules: try WebP first, fallback to converter
2location ~* ^/?wp-content/.*\.(png|jpe?g)$ {
3 add_header Vary Accept;
4 expires 365d;
5 if ($http_accept !~* "webp") {
6 break;
7 }
8 try_files
9 /wp-content/webp-express/webp-images/doc-root/$uri.webp
10 $uri.webp
11 /wp-content/plugins/webp-express/wod/webp-on-demand.php?xsource=$request_filename&wp-content=wp-content
12 ;
13}
14
15&#35;&#35; --- Route missing .webp requests to the realizer
16location ~* ^/?wp-content/.*\.(png|jpe?g)\.webp$ {
17 try_files
18 $uri
19 /wp-content/plugins/webp-express/wod/webp-realizer.php?wp-content=wp-content
20 ;
21}
22&#35;&#35; --- End WebP Express rules

O que as regras fazem: adicionam o cabeçalho Vary: Accept (para a CDN não fazer cache do WebP para todos), tentam servir o .webp pronto e, se não existir, enviam o pedido para o conversor.

Crítico: escolher a CDN para o método 2

O erro que estraga todo o método: a CDN faz cache do WebP e serve-o a navegadores sem suporte para o formato. Isto acontece quando a CDN não considera o cabeçalho Accept na chave de cache.

Fornecedores que funcionam corretamente com Vary: Accept:

Bunny CDN, o suporte a resposta variada é ativado nas definições da zona.

Configuração da chave de cache WebP no painel da BunnyCDN
  • KeyCDN, também suporta WebP como parte da chave de cache. Ativado nas definições da zona, secção Cache.
Opção da chave de cache WebP no painel da KeyCDN
  • Google CDN, considera Vary: Accept por predefinição.

No plano gratuito da Cloudflare não há consideração total do Accept na chave de cache. Resultado: o WebP pode ser servido onde não é suportado. Duas saídas: mudar para o plano Pro (20 $/mês) ou usar uma CDN que funcione com Vary: Accept de raiz (BunnyCDN ou KeyCDN).

Combinação WebP Express + CDN em alojamentos populares

O esquema é igual para todos: instalar o WebP Express e depois agir conforme as circunstâncias do ambiente do servidor:

  • Kinsta / WP Engine, contactar o suporte. Os engenheiros adicionam a configuração Nginx para o WebP Express e ativam a chave de cache WebP correta na CDN deles (KeyCDN na Kinsta).
  • Cloudways, um híbrido Apache+Nginx. O WebP Express com gravação do .htaccess costuma ser suficiente. As regras são assumidas automaticamente.
  • SiteGround, pedir ao suporte para adicionar regras Nginx e usar uma CDN compatível.
  • LiteSpeed / OpenLiteSpeed / Apache, apenas WebP Express e regras .htaccess. Escolher uma CDN com suporte a Vary: Accept.
  • VPS próprio com Nginx (LEMP), adicionar manualmente as regras Nginx acima e ligar uma CDN com suporte a Vary: Accept.

Quando escolher o método 2: se fundamentalmente não quiser alterar o markup HTML, tiver imagens de fundo em CSS e estiver disposto a configurar o servidor uma vez.

Método 3: via tag

Uma opção de recurso quando os dois primeiros não se adequam. Não requer configuração do servidor, funciona com qualquer CDN. O plugin substitui as tags <img> padrão por uma construção <picture> e o navegador escolhe o formato por si.

Desvantagens do método:

  • Não funciona com imagens de fundo.
  • Pode entrar em conflito com temas e plugins de cache que modificam a saída de <img>.
  • Altera a estrutura HTML, o que por vezes quebra plugins de lazy loading.

Configuração via WebP Express

O mesmo WebP Express pode funcionar em modo <picture>. Nas definições, selecione o modo «CDN friendly» e ative a opção «Alter HTML». O plugin irá, em tempo real, envolver todos os <img> em <picture> com uma fonte WebP.

Quando escolher o método 3: se não houver acesso à configuração do servidor e a CDN não suportar Vary: Accept. Por exemplo, alojamento barato com limitações estritas ou Cloudflare gratuito.

Vídeo: WebP no WordPress em 10 minutos

Se prefere ver em vez de ler, aqui está um tutorial visual sobre a configuração de WebP via WebP Express:

O vídeo mostra a configuração completa do WebP Express, desde a instalação até à verificação no Chrome DevTools. A conversão para AVIF também é abordada, como o passo seguinte ao WebP.

⁉️🤔 Perguntas frequentes

O WebP é sempre uma redução de tamanho?

Nem sempre, mas na maioria dos casos. Para fotos e capturas de ecrã, a poupança é de 25 a 50%, segundo os programadores da Google. Para imagens com texto ou cores planas, o WebP pode até ser mais pesado do que o PNG-8. Para imagens de conteúdo, o WebP quase sempre representa um ganho. Para ícones e gráficos simples, o SVG ou o PNG otimizado são mais adequados. Plugins como o WebP Express convertem tudo; o resultado depende do formato de origem.

É possível usar WebP sem plugins no WordPress?

A partir do WordPress 5.8, sim. O núcleo aceita ficheiros .webp ao carregar para a biblioteca de multimédia. Mas não há conversão automática de imagens antigas, nem substituição de formato para o navegador. Se carregar apenas imagens novas em WebP e não se importar com a ausência de alternativa para uma pequena percentagem de navegadores antigos, os plugins não são obrigatórios. Para uma implementação completa num site já existente, não pode prescindir de um plugin: precisa de conversão em lote e de um mecanismo de substituição de formato.

Como verificar se o WebP está a ser servido corretamente?

Abra o site no Chrome, prima F12, separador Rede (Network), filtre por Img. Na coluna Tipo (Type) deve aparecer webp. Em alternativa: na resposta do servidor, procure o cabeçalho X-WebP-Express (se estiver a usar o WebP Express) ou content-type: image/webp. As Chrome DevTools são a forma mais fiável: filtre por imagens e observe a coluna Tipo. Se disser webp, está tudo a funcionar.

O que fazer se a CDN armazenar o WebP em cache de forma incorreta?

Sintoma: alguns utilizadores veem imagens partidas, embora tudo esteja ativo nas definições. Solução: certifique-se de que a CDN considera os cabeçalhos Accept e Vary na chave de cache. Nos painéis da BunnyCDN e da KeyCDN existem opções explícitas para isto. Se o Accept não estiver na chave de cache, o primeiro pedido do Chrome criará uma cópia WebP, e todos os utilizadores subsequentes, incluindo o Safari sem WebP, receberão exatamente essa cópia. Na Cloudflare não há solução gratuita: ou o plano Pro ou mudar de CDN.

WebP ou AVIF, o que escolher em 2026?

O AVIF oferece uma compressão ainda melhor (20 a 30% mais pequeno do que o WebP com a mesma qualidade), mas o suporte dos navegadores ainda está atrasado: cerca de 92% contra 96% para o WebP. Em 2026, o WebP continua a ser o padrão de facto para a web. O AVIF está a recuperar, mas a diferença no suporte dos navegadores ainda é crítica para projetos comerciais. Uma estratégia prática: WebP agora, AVIF quando o suporte ultrapassar os 95%.

Que método escolher para a sua tarefa: resumo final

A escolha do método não depende de qual é «melhor em abstrato», mas da sua stack específica e da disponibilidade para gastar tempo ou dinheiro:

  • Disposto a pagar por uma CDN e não mexer no servidor, método 1 com a BunnyCDN (a partir de $0,01/GB) ou Cloudflare Pro ($20/mês). Configure em cinco minutos e esqueça o assunto.
  • Tem acesso ao servidor e quer resolver de uma vez, método 2 com o WebP Express e uma CDN que suporte Vary: Accept. Funciona com imagens de fundo, não mexe no HTML.
  • Sem acesso ao servidor e orçamento limitado, método 3 com o WebP Express em modo <picture>. Não é o ideal, mas é melhor do que não ter WebP de todo.

Teste o método escolhido em staging. Verifique os cabeçalhos de resposta e a coluna Tipo nas Chrome DevTools. Certifique-se de que os navegadores antigos recebem JPEG, e não links partidos. E só depois implemente em produção.

Experimente o WebP Express, o plugin cobre ambos os métodos de servidor de origem e é gratuito. Escreva nos comentários qual a abordagem que escolheu e que dificuldades encontrou.