# DataFirefly Speed Pack: documentação

> 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,…

- Página: <https://www.datafirefly.com/pt/documentation/datafirefly-speed-pack/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/datafirefly-speed-pack/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-speed-pack/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-speed-pack/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-speed-pack/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-speed-pack/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-speed-pack/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-speed-pack/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

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

1. Carregue o arquivo a partir de **Módulos > Gestor de módulos > Carregar um módulo**, ou copie a pasta `datafireflyspeedpack` para o diretório `modules/`.
2. Clique em **Instalar**.
3. 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:

1. 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 devolve `HIT`.
2. Ative a **minificação** HTML/CSS/JS e o **defer**.
3. Ative o **lazy load** das imagens (protegendo a imagem LCP, ver mais abaixo).
4. Ative o **Critical CSS** e depois o **CSS assíncrono**.
5. Ative o **Delay JS**.
6. 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-nodelay` numa 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.
