Otimizar o desempenho do site AEM

Descrição description

Ambiente
Adobe Experience Manager

Problema/Sintomas
Este artigo se concentra em maneiras de melhorar o desempenho do site. Destacamos os vários aspectos de aplicativos e arquiteturas Adobe Experience Manager (AEM) que causaram mais problemas de desempenho. Ao implementar as otimizações listadas aqui, você pode evitar esses problemas comuns.

Resolução resolution

Desempenho do site

  1. Executar manutenção regular.
  2. Torne as chamadas de serviço de back-end tolerante a falhas - consulte este artigo para obter detalhes.
  3. Tenha cuidado ao usar estruturas de interface de usuário de terceiros - vimos vários clientes usando ou criando bibliotecas que criam uma camada inteira sobre a estrutura da Web AEM/Sling. Observe que não estamos nos referindo a utilitários que direcionam uma funcionalidade específica na interface do usuário (por exemplo, ACS Commons), mas estruturas que mudam basicamente a forma como você implementa o aplicativo no AEM. Embora esses quadros possam reduzir um pouco o tempo de desenvolvimento, muitas vezes vimos que podem ter um impacto negativo no desempenho.
    Estruturas de terceiros não são suportadas ou testadas pelo Adobe. Ao usar ou implementar essas estruturas, carregue e teste seu aplicativo completamente com tráfego real.

Desempenho do lado do cliente

  • Use e otimize bibliotecas de cliente AEM - as bibliotecas de clientes são uma maneira fácil de centralizar o gerenciamento e a otimização do código CSS e JavaScript no seu site.

    • Incorporar bibliotecas clientes para consolidá-las em menos arquivos.
    • Minify as bibliotecas.
  • Coloque CSS na tag de cabeçalho de HTML - para evitar oscilações e a reimpressão da página após o carregamento.

  • Coloque as inclusões de script JavaScript no final da tag body ou adicione o atributo de script assíncrono - permite que o navegador carregue arquivos JavaScript em paralelo enquanto a página está sendo renderizada.

  • Implemente a fragmentação de domínio - por padrão, os navegadores da Web limitam o número máximo de solicitações paralelas por domínio durante o carregamento da página. Isso pode causar atrasos no carregamento da página se você tiver muitos recursos, como CSS, JavaScript, etc. que precisam ser carregados antes da renderização da página. A fragmentação de domínio é uma solução que ajuda a solucionar esse problema. A fragmentação de domínio é uma forma de incluir arquivos como CSS e JavaScript no site por meio de vários subdomínios.

    • Por exemplo:

      code language-none
      script src="//includes1.yoursite.com/etc/clientlibs/test.js"/script
      
      code language-none
      script src="//includes2.yoursite.com/etc/clientlibs/test2.js"/script
      
    • Uso ACS Commons - Static Reference Rewriter para implementar a fragmentação de domínio.

  • Armazene em cache JavaScript e CSS por longos períodos - para permitir o armazenamento em cache de javascript e css por longos períodos, utilize ACS Commons - Versioned Clientlibs.

  • Consulte a Documentação das regras do Google PageSpeed para obter mais informações sobre como otimizar seu site.

  • Veja isto Sessão AEM Gems para obter mais informações sobre otimizações de site.

Desempenho de edição de instância do autor

  1. Executar manutenção regular.
  2. Reduza o total de componentes na página - Quando há centenas de componentes editáveis individuais carregados em uma página AEM em uma instância do autor, o desempenho da interface do editor é muito afetado. Ao projetar seu aplicativo, use os componentes mais específicos do site e fáceis de usar pelos editores em vez dos componentes genéricos que têm muitos subcomponentes.
  3. Evite aninhar muitos níveis de componentes do container (sistema de parágrafo, grade responsiva, fragmentos de experiência) - Evite aninhar muitos níveis de componentes do container. O aninhamento de sistemas de parágrafo ou grades responsivas faz com que a página /editor.html seja carregada mais lentamente. Isso ocorre especialmente quando o sistema de parágrafo ou a grade responsiva inclui uma longa lista de conteúdo. Em vez de aninhar sistemas de parágrafo, crie o aplicativo para fazer referência ao conteúdo de outras páginas. Se você optar por usar fragmentos de experiência, evite aninhá-los ou use elementos. Os fragmentos de experiência aninhados são afetados pelas mesmas limitações de desempenho.

Otimização do cache

Em uma arquitetura comum de site de AEM, a solicitação HTTP passa por vários caches antes de chegar às instâncias de publicação do AEM. Uma das maneiras mais fáceis de melhorar o desempenho do site é otimizar a capacidade de armazenamento em cache do site.

Consulte este artigo para obter etapas detalhadas sobre como otimizar o armazenamento em cache no seu site.

Otimizar índices para consultas JCR personalizadas

Outra otimização que pode ser feita para melhorar o desempenho é configurar e otimizar Índices Oak para queries JCR personalizados. Se você estiver usando queries JCR no seu aplicativo, essa tarefa geralmente é obrigatória.

Consulte a documentação oficial (1 e 2) para saber como implementar índices Oak para queries de aplicativo personalizados.:

QueryBuilder guessTotal

Se você estiver usando o Construtor de consultas AEM e esperar que a consulta retorne muitos resultados, sempre defina a propriedade guessTotal no PredicateGroup raiz, pois o uso da memória será reduzida. Consulte a documentação oficial para obter detalhes: API do Construtor de consulta

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f