Image Prioritizer

Descrição

Este plugin otimiza o carregamento de imagens (e vídeos) com priorização para melhorar a métrica Maior exibição de conteúdo (LCP), carregamento diferido e a seleção de tamanhos de imagem mais precisa.

No momento, as otimizações incluem:

  1. Adiciona links de pré-carga fetchpriority=high específicos para pontos de quebra (como elementos LINK[rel=preload] e cabeçalhos de resposta link) nos URLs de imagens de elementos LCP (maior tempo de carga):
    1. Um elemento IMG, incluindo os atributos srcset/sizes fornecidos como imagesrcset/imagesizes no LINK.
    2. O primeiro elemento SOURCE com um atributo type num elemento PICTURE. (Não são suportados elementos PICTURE com direção de arte através de “media queries”.)
    3. Um elemento com background-image aplicado via atributo style em linha.
    4. Um elemento com background-image aplicada com uma folha de estilo (quando a imagem é de origem autorizada).
    5. Uma imagem poster de um elemento VIDEO
  2. Garante que fetchpriority=high só é adicionado a um IMG quando for o elemento LCP em todos os pontos de quebra.
  3. Adiciona fetchpriority=low às tags IMG que aparecem na viewport inicial, mas não são visíveis, como quando são slides subsequentes de um carrossel.
  4. Carregamento diferido:
    1. Aplica o carregamento diferido aos elementos IMG de acordo com sua presença ou não na janela inicial em qualquer ponto de quebra.
    2. Implementa o carregamento diferido de imagens de fundo adicionadas através de atributos style de CSS em linha.
    3. Carrega a posteriori os elementos VIDEO através dos atributos adequados com base na sua presença na janela inicial. Se um VIDEO for o elemento LCP, tem preload=auto. Se estiver na janela inicial, mantém-se o valor por padrão preload=metadata. Se não estiver na janela inicial, recebe preload=none. Os vídeos carregados tardiamente também terão os atributos iniciais preload, autoplay e poster repostos quando o VIDEO entrar na janela.
  5. Tamanhos de imagem responsivos:
    1. Calcula o atributo sizes usando as larguras de uma imagem coletada de URL Metrics para cada ponto de quebra (quando não carregado de forma tardia, pois neste caso é tratado com sizes=auto).
    2. Garante que sizes=auto está definido nos elementos IMG após definir corretamente o carregamento diferido (acima).
  6. Reduz o tamanho da imagem poster de um VIDEO do tamanho completo para um tamanho adequado à largura máxima do vídeo (em telas maiores).

Este plugin depende do plugin Optimization Detective. Consulte a documentação desse plugin para obter informações adicionais sobre como ele funciona, bem como opções adicionais para desenvolvedores.

👉 Atenção: Este plugin otimiza as páginas para visitantes reais e depende destes para as otimizações. Por isto, você não verá as otimizações aplicadas imediatamente após a ativação do plugin. Aguarde as URL Metrics serem colhidas, tanto para visitas em dispositivos móveis como para computadores. E, como normalmente os administradores não são visitantes comuns, por padrão, estas otimizações não são aplicadas a estes usuários.

Seu site deve ter a API REST acessível para visitantes não-autenticados, pois é assim que são coletadas as métricas sobre como uma página deve ser otimizada. Atualmente, não existem configurações extras e nenhuma interface de usuário para este plugin, pois ele foi projetado para funcionar sem a necessidade de nenhum ajuste.

Instalação

Instalação a partir do WordPress

  1. Acesse o menu Plugins > Adicionar plugin
  2. Procure por Image Prioritizer.
  3. Instale e ative o plugin Image Prioritizer.

Instalação manual

  1. Envie a pasta image-prioritizer para o diretório /wp-content/plugins/.
  2. Vá para Plugins.
  3. Ative o plugin Image Prioritizer.

Perguntas frequentes

Onde posso enviar os meus comentários sobre o plugin?

Comentários e sugestões são encorajados e muito apreciados, especialmente porque este plugin pode conter futuras funcionalidades para o núcleo do WordPress. Se tiver sugestões ou pedidos de novas funcionalidades, pode submetê-los como um issue no repositório GitHub da Equipe de desempenho do WordPress. Se precisar de ajuda para resolver problemas ou tiver uma pergunta sobre o plugin, crie um novo tópico no nosso fórum de suporte.

Onde posso relatar erros de segurança?

A equipe de desempenho e a comunidade WordPress levam as brechas de segurança a sério. Apreciamos os seus esforços para divulgar de forma responsável as suas descobertas e faremos nosso melhor para reconhecer as suas contribuições.

Para relatar um problema de segurança, visite o programa WordPress HackerOne.

Como eu posso contribuir com o plugin?

Contribuições são sempre bem-vindas! Saiba mais sobre como se envolver com o projeto, consulte o Manual da equipe de desempenho do WordPress

O código-fonte do plugin está localizado no repositório WordPress/performance no GitHub.

Avaliações

Não há avaliações para este plugin.

Colaboradores e desenvolvedores

“Image Prioritizer” é um programa de código aberto. As seguintes pessoas contribuíram para este plugin.

Colaboradores

Image Prioritizer” foi traduzido para 8 localidades. Agradecemos aos tradutores por suas contribuições.

Traduzir o “Image Prioritizer” para seu idioma.

Interessado no desenvolvimento?

Navegue pelo código, consulte o repositório SVN ou assine o registro de desenvolvimento por RSS.

Registro de alterações

1.0.0-beta2

Melhorias

  • Atualiza OD_HTML_Tag_Processor::next_tag() para permitir a passagem do argumento $query e prepara para pular os visiting tag closers por padrão. (1872)
  • Expõe as funções de acesso ao admin às extensões do lado do cliente e contabiliza automaticamente o valor de isDebug. (1895)

Correções de erros

  • Corrige a codificação de URL no cabeçalho de resposta HTTP Link. (1907)
  • Corrige um problema de um elemento LCP imprevisível ser identificado em um URL Metric Group. (1903)

1.0.0-beta1

Melhorias

  • Incrementa a versão para 1.0.0-beta1 para indicar uma graduação de ser experimental. Consulte 1846.
  • Calcula o atributo sizes responsivo com base em width do boundingClientRect dos URL Metrics capturados. (1840)

0.3.1

Correções de erros

  • Remove a conferência errônea do tipo de iniciador de recurso ao considerar se deve enviar uma imagem de fundo LCP. (1760)

0.3.0

Melhorias

  • Adiciona links para pré-carga em elementos PICTURE de conteúdos LCP. (1707)
  • Reforça a validação do URL de uma imagem de fundo LCP enviada pelo usuário. (1713)
  • Implementado o carregamento diferido de imagens de fundo adicionadas via atributos style em linha. (1708)
  • Carrega antecipadamente URLs de elementos LCP com imagens de fundo externas. (1697)
  • Serve scripts não-minificados quando o SCRIPT_DEBUG está ativado. (1643)

0.2.0

Melhorias

  • Carregamento diferido de vídeos e respectivos pôsteres. (1596)
  • Prioriza a carga de imagens pôster de elementos LCP de vídeo. (1498)
  • Escolhe um tamanho menor de imagem de pôster do vídeo com base nas dimensões reais. (1595)
  • Adiciona fetchpriority=low a imagens ocluídas da viewport inicial (por exemplo, imagens em slides ocultos de um carrossel). (1482)
  • Evita fazer o carregamento diferido de imagens e incorporações, a menos que existam URL Metrics para “mobile” e “desktop”. (1604)

0.1.4

Melhorias

  • Movida a lógica Auto Sizes do Enhanced Responsive Images para o Image Prioritizer. (1476)

0.1.3

Correções de erros

  • Corrige o tratamento da priorização de imagens quando apenas alguns grupos de viewports são populados. (1404)

0.1.2

  • Atualiza a lógica do PHP para levar em conta as alterações na API Optimization Detective. (1302)

0.1.1

  • Corrige um erro em Image_Prioritizer_Background_Image_Styled_Tag_Visitor. (1288)

0.1.0

  • Lançamento inicial.