Desempenho e monitorização

Conselhos para acelerar o PrestaShop e melhorar o seu desempenho

Revisto a 6 min de leitura desempenho PrestaShop

O PrestaShop funciona com agilidade acabado de instalar, mas, à medida que o catálogo e as visitas crescem, pode tornar-se lento. Com alguns ajustes no painel de administração ganha-se muita velocidade e reduz-se o consumo de recursos.

Quase todas as definições estão em Advanced Parameters > Performance (Parâmetros avançados > Desempenho). Depois de cada alteração, navegue pela loja (página inicial, categorias, ficha de produto, carrinho e pagamento) para confirmar que tudo continua a funcionar.

Versão de PHP e OPcache

Use a versão de PHP mais alta que a sua versão do PrestaShop suporte:

PrestaShop PHP recomendado
1.7.8 7.4
8.x 8.1
9.0 8.4
9.1 ou superior 8.5

Altere-a no seletor de PHP do cPanel e, no mesmo ecrã, verifique se a extensão opcache está ativada. Se tiver módulos antigos, confirme que a loja funciona após a alteração; se algo falhar, volte à versão anterior no mesmo seletor.

Smarty: o motor de modelos

O Smarty gera as páginas a partir dos modelos do tema. Uma configuração de desenvolvimento esquecida em produção é uma causa muito habitual de lentidão: obriga a recompilar os modelos em cada visita.

Em Advanced Parameters > Performance, bloco Smarty, deixe-o assim:

  • Template compilation (compilação de modelos): Never recompile template files (nunca recompilar os ficheiros dos modelos).
  • Cache: Yes.
  • Caching type (tipo de cache): File System (sistema de ficheiros).
  • Clear cache (limpar a cache): Never clear cache files (nunca limpar os ficheiros da cache).

Configuração recomendada do Smarty no desempenho do PrestaShop

Com esta configuração, se modificar o tema ou um módulo e não vir a alteração, clique em Clear cache (no canto superior direito da mesma página). Se for fazer muitas alterações de design seguidas, escolha temporariamente Force compilation (forçar a compilação) e volte a Never recompile template files no fim.

CCC: combinação, compressão e cache

No bloco CCC (Combine, Compress and Cache) da mesma página, o PrestaShop combina e comprime os CSS e JavaScript do tema para que a página pese menos e faça menos pedidos:

  • Smart cache for CSS («Smart cache» para as folhas de estilo): Yes.
  • Smart cache for JavaScript («Smart cache» para o código JavaScript): Yes.
  • Apache optimization (otimização do Apache): No. Os nossos servidores usam LiteSpeed e a compressão e a cache do navegador já estão configuradas no servidor.

Opções CCC do PrestaShop com o Smart cache ativado

No PrestaShop 1.6 verá também Move JavaScript to the end (mover o JavaScript para o fim): ative-o também.

O tema e os módulos têm de ser compatíveis com estas opções. Se, depois de as ativar, algo deixar de funcionar (um menu, um filtro, o carrinho), desative-as uma a uma até encontrar a que dá problemas.

Sistema de cache

No bloco Caching:

  • Use cache (utilizar a cache): Yes.
  • Caching system (sistema de cache): CacheApc.

Sistema de cache CacheApc ativado no PrestaShop

Para que o CacheApc funcione, a extensão apcu tem de estar ativada no seletor de PHP. Se a opção aparecer a cinzento ou o PrestaShop mostrar um erro ao guardar, ative-a aí e tente novamente.

Cache de página com o LiteSpeed Cache

Para dar o maior salto de velocidade, instale o módulo LiteSpeed Cache para PrestaShop: guarda as páginas já geradas e serve-as diretamente a partir do servidor web, sem executar PHP em cada visita. Explicamo-lo passo a passo em acelerar o PrestaShop com o LiteSpeed Cache.

Não o combine com outro módulo de cache de página: use apenas um.

CDN para imagens, CSS e JavaScript

Servir os ficheiros estáticos a partir de uma CDN ou de um servidor de multimédia alivia a carga da loja. Tem a explicação em servidores de multimédia e CDN no PrestaShop.

Geolocalização

A geolocalização verifica o país de cada visitante em cada acesso, o que acrescenta trabalho a todas as páginas e pode provocar erros. Se não precisar dela para restringir países ou mostrar preços por zona, desative-a em International > Localization > Geolocation (no PrestaShop 1.6, Preferences > Geolocation).

Temos um artigo sobre um dos problemas que causa: erro 503 Overloaded no PrestaShop.

Módulos de estatísticas

Visits and Visitors (visitas e visitantes) e Visitors online (visitantes online) vêm ativos por predefinição. Registam cada visita na base de dados, que não para de crescer, e a informação que dão é muito básica.

Se usa o Google Analytics, o Matomo ou outra ferramenta externa, desative ambos em Modules > Module Manager: procure cada um pelo nome e escolha Disable no seu menu.

Se continuar lenta

Se, depois destes ajustes, alguma página continuar a demorar, analise-a com o PHP X-Ray: indicará que módulo, função ou consulta SQL consome o tempo. É habitual que seja um único módulo mal programado.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.