DataFirefly Speed Pack: documentação
Instalar, configurar e explorar a cache de página, o Critical CSS e a otimização avançada do Speed Pack no PrestaShop 8 e 9.
O DataFirefly Speed Pack reúne num único módulo a cache de página completa, o Critical CSS, a minificação e a combinação dos recursos, o Delay JS, o lazy loading nativo, os resource hints, a reescrita CDN, as diretivas de servidor e a limpeza da base de dados. Este guia cobre a instalação, os primeiros passos e cada separador de configuração.
Pré-requisitos e compatibilidade
- PrestaShop 8.0 a 9.x
- PHP 7.2 a 8.3
- Acesso de escrita à pasta de cache e, para as diretivas de servidor, ao ficheiro htaccess da raiz
- Multiloja e multilingue suportados
O Speed Pack é complementar dos módulos DataFirefly Core Web Vitals e WebP AVIF Pro: não duplica nem a conversão de imagens nem as otimizações já fornecidas por esses módulos.
Instalação
- Carregue o arquivo a partir de Módulos > Gestor de módulos > Carregar um módulo, ou copie a pasta
datafireflyspeedpackpara o diretóriomodules/. - Clique em Instalar.
- Abra a configuração do módulo. É gerado automaticamente um token de pré-carregamento, apresentado no separador Painel.
Primeiros passos
Para um arranque seguro, ative as opções por esta ordem e verifique a renderização a cada passo:
- Ative apenas a Cache de página. Navegue numa página de categoria em modo de navegação privada: o primeiro carregamento devolve o cabeçalho
X-DfSpeedPack-Cache: MISS, o recarregamento devolveHIT. - Ative a minificação HTML/CSS/JS e o defer.
- Ative o lazy load das imagens (protegendo a imagem LCP, ver mais abaixo).
- Ative o Critical CSS e depois o CSS assíncrono.
- Ative o Delay JS.
- Em último lugar, e só depois de verificação visual, ative a combinação CSS/JS.
Em Parâmetros avançados > Desempenho, desative a otimização CSS/JS nativa (CCC) e deixe o Speed Pack gerir a minificação e a combinação. O módulo deteta este conflito e apresenta-o no Painel.
Cache de página
A cache de página serve o HTML em cache muito cedo, através do hook actionDispatcherBefore, antes da instanciação do controlador e das consultas de produtos. A chave de cache varia por loja, idioma, moeda e dispositivo.
Âmbito
Só as páginas de convidados com carrinho vazio são colocadas em cache. A deteção do cliente com sessão iniciada e do carrinho é feita o mais cedo possível através do cookie. Nenhuma página de cliente com sessão iniciada é alguma vez servida a partir da cache.
Controladores cacheáveis
A lista branca dos controladores (um por linha) determina as páginas elegíveis: por exemplo index, category, product, cms, manufacturer. Retire um controlador para o excluir totalmente da cache.
Exclusões
- URLs: subcadeias, uma por linha.
- Cookies: a presença de um destes cookies desativa a colocação em cache.
- User-Agents: agentes excluídos.
- Parâmetros de URL ignorados: os parâmetros de tracking (utm, fbclid, gclid…) são retirados da chave para evitar a fragmentação da cache.
Duração de vida e invalidação
A duração de vida é configurável (0 = até limpeza manual). A invalidação é automática a cada alteração de produto, categoria, página CMS, fabricante, fornecedor ou stock. Pode também esvaziar a cache a qualquer momento a partir do botão dedicado.
CSS
- Minificação do CSS inline e combinado.
- Combinação das folhas locais num ficheiro único, com reescrita dos caminhos relativos nas regras url().
- CSS assíncrono: as folhas são carregadas através de preload e depois onload para eliminar o CSS bloqueante.
Critical CSS
Cole o seu CSS above-the-fold por tipo de página nos campos dedicados. É injetado inline no cabeçalho, enquanto o resto é carregado de forma assíncrona. O campo * serve de reserva para todas as páginas sem regra específica.
Ative o CSS assíncrono com o Critical CSS para evitar qualquer efeito de página sem estilo (FOUC).
JavaScript
- Minificação do JS inline e combinado.
- Combinação dos ficheiros JS locais.
- Defer automático dos scripts.
Delay JS
O Delay JS adia a execução dos scripts até à primeira interação do utilizador (scroll, clique, tecla, movimento do rato ou toque), com uma reserva temporizada. É o ganho mais importante no TBT e na pontuação mobile.
- Incluir apenas: se preenchido, só os scripts que contêm estas palavras-chave são adiados.
- Excluir: palavras-chave dos scripts a nunca adiar (ex.: jquery, core).
- Adicione o atributo
data-df-nodelaynuma tag script para a excluir individualmente.
Media
O lazy loading nativo acrescenta os atributos loading=lazy e decoding=async às imagens, e loading=lazy aos iframes.
Proteja a sua imagem LCP (visual hero, primeira imagem visível) acrescentando-lhe o atributo data-no-lazy ou adicionando-a às exclusões. Caso contrário, o lazy load pode degradar o LCP.
Resource hints
- Preconnect e DNS-prefetch: um URL por linha, para os domínios de terceiros (fontes, analytics, CDN).
- Preload: no formato
url|tipo(ex.:/img/hero.webp|image). Tipos possíveis: image, font, style, script. Pré-carregue a sua imagem LCP e as suas fontes críticas. - font-display swap: injetado nas regras de fontes inline para evitar o texto invisível.
CDN
A reescrita CDN substitui o anfitrião local dos recursos estáticos pelo seu domínio CDN. Preencha o URL do CDN e depois os padrões (expressões regulares) incluídos e excluídos, um por linha. Só os recursos locais que correspondem aos padrões incluídos são reescritos.
Servidor (htaccess)
O Speed Pack pode escrever diretivas de servidor entre marcadores dedicados no ficheiro htaccess da raiz:
- Compressão GZIP / Brotli
- Cache do navegador para os recursos (um ano, immutable)
- Connection Keep-Alive
As diretivas são retiradas automaticamente na desinstalação. Se o ficheiro não estiver acessível para escrita, é apresentado um aviso.
Se o seu servidor já ativa a compressão (por exemplo através da configuração do servidor web), é inútil duplicá-la aqui.
Base de dados
A limpeza elimina os carrinhos abandonados (sem encomenda, para além do número de dias configurado) e as linhas órfãs associadas, as ligações e os convidados antigos, bem como as estatísticas de pesquisa e os registos antigos.
As encomendas nunca são tocadas. Faça no entanto uma cópia de segurança da base de dados antes da primeira limpeza.
Pré-carregamento da cache
O pré-carregamento (warmer) recolhe os URLs a partir do seu sitemap e aquece depois a cache, para que os seus visitantes recebam sempre uma página em HIT.
A partir do back-office
Separador Painel: clique em Recolher os URLs e depois em Pré-carregar. Uma barra de progresso acompanha o avanço por lotes.
Por tarefa CRON
Automatize a recolha e o pré-carregamento após cada limpeza noturna. O token é apresentado no Painel.
curl -s "https://a-sua-loja/module/datafireflyspeedpack/preload?action=collect&token=O_SEU_TOKEN"
curl -s "https://a-sua-loja/module/datafireflyspeedpack/preload?action=warm&token=O_SEU_TOKEN"
Atributos de controlo no tema
data-no-lazy: desativa o lazy load numa imagem ou num iframe (imagem LCP).data-df-nodelay: exclui uma tag script do Delay JS.data-df-nodefer: exclui uma tag script do defer.data-df-nooptim: exclui um bloco ou uma ligação da minificação e da combinação.
Importação / Exportação das definições
A partir do separador Avançado, exporte o conjunto das definições em formato JSON para as replicar noutra loja, ou importe um ficheiro existente.
Resolução de problemas
Uma página fica em MISS
Verifique que navega como convidado (sem sessão iniciada, carrinho vazio), que o controlador está na lista branca, que o URL não está excluído e que não há nenhum cookie de exclusão presente. Os colaboradores com sessão iniciada no back-office nunca recebem uma página em cache.
Uma apresentação quebra após a ativação da combinação
Desative a combinação CSS/JS, ou adicione o ficheiro em causa às exclusões correspondentes. A combinação está deliberadamente desativada por defeito.
Texto sem estilo no carregamento (FOUC)
Ative ou complete o Critical CSS da página em causa, e certifique-se de que o CSS assíncrono está ativo.
Um script deixou de funcionar com o Delay JS
Adicione a sua palavra-chave à lista de exclusão do Delay JS, ou o atributo data-df-nodelay na tag.
Desinstalação
A desinstalação retira as diretivas htaccess, esvazia as caches e elimina as definições e o separador de administração do módulo.