Como libertar espaço no PrestaShop: limpar cache, imagens órfãs e base de dados sem riscos
Com os anos, o PrestaShop acumula caches, imagens de produtos que já não existem, cópias esquecidas e milhões de linhas de estatísticas. Explicamos o que se pode apagar, o que não, como fazê-lo com segurança e como o Limpeza da loja mede e limpa tudo com uma quarentena que pode restaurar.
O problema: o PrestaShop nunca deita nada fora
Uma loja com alguns anos costuma ocupar várias vezes o que precisa. O PrestaShop não apaga o que deixa de usar:
- Caches compiladas do Smarty e pastas
var/cachede outros ambientes. - Miniaturas de tipos de imagem que eliminou e imagens de produtos, categorias ou marcas que já não existem.
- Cópias de segurança do back office e do módulo de atualização.
- Estatísticas de visitas, ligações e pesquisas de há anos: milhões de linhas.
- Carrinhos abandonados, convidados sem encomendas, logs e registos de e-mails antigos.
Tudo isso encarece o alojamento, torna as cópias de segurança mais lentas e complica atualizações e migrações. E guardar dados de pessoas sem motivo choca com a minimização de dados do RGPD.
A solução: medir, separar por risco e limpar com rede
1. Faça primeiro uma cópia completa
Ficheiros e base de dados. É a regra número um antes de qualquer limpeza.
2. Meça antes de mexer
Descubra que pastas e tabelas ocupam mais. Por SSH, du -sh nas pastas img, var e cache; na base de dados, o tamanho das tabelas em information_schema. As candidatas habituais são ps_connections, ps_guest, ps_pagenotfound, ps_cart e ps_log.
3. Distinga o que se regenera do que não se regenera
- Regenera-se: caches, ficheiros temporários e CSS/JS combinados. Podem apagar-se; o PrestaShop volta a criá-los.
- Não se regenera: imagens, cópias, módulos, clientes e produtos. Antes de os apagar, garanta que não são mesmo usados e que os consegue recuperar.
4. Apague registos com o método do PrestaShop
Um DELETE direto na tabela de clientes ou produtos deixa órfãs as tabelas relacionadas e não avisa os outros módulos. Se apagar registos, faça-o através do PrestaShop.
5. Otimize as tabelas e repita de tempos a tempos
Depois de apagar muitas linhas, otimizar as tabelas devolve espaço ao disco. E convém repetir a limpeza: o lixo volta a acumular-se.
Tudo isto pode fazer-se à mão por FTP e com SQL, mas um ficheiro errado basta para estragar a loja.
Como o Limpeza da loja o ajuda
Limpeza da loja (Shop Cleaner) é o nosso módulo para PrestaShop 1.6.1 a 9.2 (PHP 7.1 a 8.5) que mede tudo, mostra onde vai o espaço e limpa quando decidir:
| Necessidade | O que faz o módulo |
|---|---|
| Medir | Uma análise que só lê e um painel com gráficos: espaço recuperável, disco por pasta, tabelas maiores e espaço recuperado mês a mês. |
| Ficheiros | Caches obsoletas, temporários, logs, miniaturas de tipos eliminados, imagens órfãs e cópias de segurança antigas. |
| Base de dados | Estatísticas, páginas não encontradas e pesquisas antigas, carrinhos abandonados, convidados anónimos, logs e otimização de tabelas. |
| Registos e módulos | Clientes sem encomendas, produtos desativados, regras de carrinho e preços específicos caducados segundo os seus prazos, apagados com o método do PrestaShop; pastas de módulos não instalados. |
| Segurança | O que não se regenera passa por uma quarentena que repõe cada ficheiro e cada linha no seu lugar (purga aos 30 dias, configurável). Nada se limpa sem a sua confirmação. |
| Lojas grandes | Limpezas por lotes de cerca de 20 segundos, sem esgotar o tempo do servidor. |
| Acompanhamento | Cron semanal opcional que analisa e purga a quarentena caducada, aviso no back office e histórico do que foi limpo. |
Instala, analisa e decide: cada categoria diz-lhe o que limpa, o seu risco e quanto liberta.