Questa è una versione PDF del contenuto. Per la versione completa e aggiornata, visita:
https://blog.tuttosemplice.com/pt/otimizacao-avif-para-wordpress-guia-e-plugin-personalizado/
Verrai reindirizzato automaticamente...
A otimização de imagens AVIF no WordPress tornou-se uma prioridade máxima para desenvolvedores e administradores de sistemas que buscam o máximo desempenho web . Em um ecossistema onde a velocidade de carregamento dita as regras de posicionamento nos mecanismos de busca e a experiência do usuário, depender de formatos de imagem obsoletos representa um gargalo inaceitável. Este guia técnico explora o impacto do formato AVIF e fornece uma solução programática pronta para uso para automatizar a conversão em seu servidor.
Durante décadas, a web baseou-se num duopólio: JPEG para fotografias e PNG para imagens com transparência. Embora o formato WebP tenha representado um excelente avanço nos últimos anos, a evolução dos codecs de vídeo levou a um novo padrão de referência.
O AVIF (AV1 Image File Format) deriva do codec de vídeo de código aberto AV1. As vantagens técnicas em relação aos seus antecessores são drásticas:
As imagens representam, em média, mais de 60% da carga útil de uma página da web. Otimizá-las significa atuar diretamente nas métricas que o Google utiliza para avaliar a experiência da página.
A correlação entre AVIF e SEO manifesta-se principalmente no Largest Contentful Paint (LCP) . Como o elemento LCP é frequentemente uma imagem hero ou um banner, reduzir o seu peso em 50% significa antecipar drasticamente o momento em que o navegador conclui a sua renderização.
Reduzir o payload das imagens através de codecs de nova geração é a intervenção arquitetónica com o maior ROI para a otimização do desempenho da web e para superar os Core Web Vitals.
Além disso, o problema da compatibilidade está superado. Atualmente, o suporte dos navegadores é universal: Chrome, Firefox, Safari (a partir do iOS 16/macOS Ventura) e Edge suportam nativamente a renderização de arquivos .avif, tornando desnecessários os complexos sistemas de fallback com a tag <picture> na maioria dos cenários modernos.
A partir da versão 6.5, o WordPress introduziu suporte nativo para AVIF. Isso significa que você pode carregar um arquivo .avif na Biblioteca de Mídia e o CMS gerará corretamente os tamanhos intermediários (thumbnail, medium, large) no mesmo formato.
No entanto, existe um problema crucial: o WordPress não converte automaticamente arquivos JPEG ou PNG para AVIF no momento do upload. Se um editor de conteúdo carregar um JPEG pesado, ele permanecerá como JPEG.
Além disso, a geração de imagens depende das bibliotecas gráficas instaladas no servidor (ImageMagick ou GD). Se o seu stack de servidor (por exemplo, um contêiner Docker ou uma VPS desatualizada) tiver uma versão do ImageMagick compilada sem suporte a libheif , o WordPress falhará silenciosamente no gerenciamento do AVIF.
Para resolver o problema na raiz, a melhor prática é interceptar o upload do arquivo, verificar a capacidade do servidor e forçar a conversão programática para AVIF antes que o WordPress gere os metadados e os tamanhos intermediários.
Aqui está o código-fonte completo, seguro e comentado para um plugin personalizado ( wp-custom-avif-converter.php ):
<?php /** * Plugin Name: WP Custom AVIF Converter * Description: Intercetta l'upload di JPEG/PNG e li converte automaticamente in AVIF. * Version: 1.0.0 * Author: Senior Web Performance Optimizer */ // 1. Controllo iniziale di sicurezza defined('ABSPATH') || exit; // 2. Hook per intercettare il file appena caricato add_filter('wp_handle_upload', 'wp_custom_convert_to_avif_on_upload'); function wp_custom_convert_to_avif_on_upload($upload) { // Verifica che l'upload sia andato a buon fine if (isset($upload['error']) || empty($upload['file'])) { return $upload; } $file_path = $upload['file']; $mime_type = $upload['type']; // 3. Intercetta solo i formati standard da convertire if (!in_array($mime_type, ['image/jpeg', 'image/png'])) { return $upload; } // 4. Verifica la presenza delle librerie di sistema if (!function_exists('wp_get_image_editor')) { return $upload; } $editor = wp_get_image_editor($file_path); if (is_wp_error($editor)) { return $upload; } // 5. Verifica se ImageMagick o GD supportano la codifica AVIF if (!wp_image_editor_supports(['mime_type' => 'image/avif'])) { error_log('WP AVIF Converter: Il server non supporta la codifica AVIF (richiesto ImageMagick con libheif o GD aggiornato).'); return $upload; } // 6. Genera il nuovo percorso file con estensione .avif $avif_path = preg_replace('/.(jpg|jpeg|png)$/i', '.avif', $file_path); // 7. Esegue la conversione $editor->set_quality(75); // Qualità ottimale per AVIF $saved = $editor->save($avif_path, 'image/avif'); if (!is_wp_error($saved)) { // Rimuove il file originale pesante @unlink($file_path); // Aggiorna l'array di upload affinché WP processi il nuovo file AVIF // per generare tutte le dimensioni intermedie nativamente $upload['file'] = $avif_path; $upload['url'] = preg_replace('/.(jpg|jpeg|png)$/i', '.avif', $upload['url']); $upload['type'] = 'image/avif'; } else { // 8. Gestione pulita degli errori error_log('WP AVIF Converter: Fallimento conversione - ' . $saved->get_error_message()); } return $upload; }#<?php /** * Plugin Name: WP Custom AVIF Converter * Description: Intercetta l'upload di JPEG/PNG e li converte automaticamente in AVIF. * Version: 1.0.0 * Author: Senior Web Performance Optimizer */ // 1. Controllo iniziale di sicurezza defined('ABSPATH') || exit; // 2. Hook per intercettare il file appena caricato add_filter('wp_handle_upload', 'wp_custom_convert_to_avif_on_upload'); function wp_custom_convert_to_avif_on_upload($upload) { // Verifica che l'upload sia andato a buon fine if (isset($upload['error']) || empty($upload['file'])) { return $upload; } $file_path = $upload['file']; $mime_type = $upload['type']; // 3. Intercetta solo i formati standard da convertire if (!in_array($mime_type, ['image/jpeg', 'image/png'])) { return $upload; } // 4. Verifica la presenza delle librerie di sistema if (!function_exists('wp_get_image_editor')) { return $upload; } $editor = wp_get_image_editor($file_path); if (is_wp_error($editor)) { return $upload; } // 5. Verifica se ImageMagick o GD supportano la codifica AVIF if (!wp_image_editor_supports(['mime_type' => 'image/avif'])) { error_log('WP AVIF Converter: Il server non supporta la codifica AVIF (richiesto ImageMagick con libheif o GD aggiornato).'); return $upload; } // 6. Genera il nuovo percorso file con estensione .avif $avif_path = preg_replace('/.(jpg|jpeg|png)$/i', '.avif', $file_path); // 7. Esegue la conversione $editor->set_quality(75); // Qualità ottimale per AVIF $saved = $editor->save($avif_path, 'image/avif'); if (!is_wp_error($saved)) { // Rimuove il file originale pesante @unlink($file_path); // Aggiorna l'array di upload affinché WP processi il nuovo file AVIF // per generare tutte le dimensioni intermedie nativamente $upload['file'] = $avif_path; $upload['url'] = preg_replace('/.(jpg|jpeg|png)$/i', '.avif', $upload['url']); $upload['type'] = 'image/avif'; } else { // 8. Gestione pulita degli errori error_log('WP AVIF Converter: Fallimento conversione - ' . $saved->get_error_message()); } return $upload; }
Insira o peso médio das suas imagens atuais para calcular a economia estimada no servidor.
A implementação desta solução é extremamente rápida e não requer configurações no banco de dados:
wp-custom-avif-converter dentro de /wp-content/plugins/ . Salve o código fornecido em um arquivo wp-custom-avif-converter.php dentro da pasta. Alternativamente, você pode carregar o arquivo diretamente no diretório /wp-content/mu-plugins/ (Must-Use Plugins) para torná-lo inativável por usuários padrão. Para verificar o funcionamento, abra as Ferramentas do Desenvolvedor do seu navegador (F12), vá para a aba Rede e filtre por "Img". Recarregue a página onde você inseriu a imagem: você deverá ver que a coluna "Tipo" mostra image/avif e o tamanho do arquivo foi drasticamente reduzido. Por fim, execute um teste no PageSpeed Insights para medir a melhoria real na métrica LCP.
A integração do formato AVIF no WordPress através de um plugin personalizado representa uma solução elegante e definitiva para reduzir o peso das páginas web. Ao automatizar a conversão no lado do servidor, elimina-se o erro humano na fase de edição de conteúdo, garantindo que cada recurso multimédia servido aos utilizadores seja otimizado para os mais altos padrões de desempenho exigidos pelos Core Web Vitals.
O formato AVIF deriva do codec de vídeo de código aberto AV1 e representa o novo padrão para imagens na web. Em comparação com o WebP, oferece uma redução de peso de até 50% com a mesma qualidade visual, além de gerenciar melhor a transparência e as cores. Essa redução de peso melhora drasticamente os tempos de carregamento e as métricas fundamentais para o posicionamento nos mecanismos de busca.
Para automatizar a conversão, você pode criar um plugin personalizado em PHP que intercepte o carregamento de arquivos de mídia. Esse script verifica os recursos do servidor e transforma os arquivos JPEG ou PNG em AVIF antes que o sistema gere as miniaturas. Dessa forma, você elimina o trabalho manual e garante que cada recurso seja otimizado para o máximo desempenho.
Para processar corretamente este formato de nova geração, seu espaço de hospedagem precisa ter bibliotecas gráficas atualizadas. Especificamente, é necessária uma versão do ImageMagick compilada com suporte a libheif ou uma biblioteca GD recente. Sem esses requisitos técnicos no servidor, o sistema falhará na conversão e manterá os formatos originais mais pesados.
Embora as versões recentes do CMS suportem nativamente este formato, o sistema limita-se a gerar os tamanhos intermédios mantendo o tipo de ficheiro original. Se carregar uma fotografia em formato JPEG, o software criará as miniaturas sempre em JPEG, sem as otimizar. Para forçar a mudança de formato durante o carregamento, é necessário recorrer a uma solução programática dedicada.
Atualmente, a compatibilidade deste formato tornou-se universal e abrange todos os principais navegadores modernos. Os usuários podem visualizar essas imagens sem problemas no Chrome, Firefox, Edge e Safari, a partir dos sistemas operacionais iOS 16 e macOS Ventura. Portanto, não é mais necessário implementar complexos sistemas de fallback no código HTML para garantir a exibição correta.