Immagini WebP e AVIF in PrestaShop 9: formati, qualità e rigenerazione
PrestaShop 9 genera immagini in formati moderni senza moduli aggiuntivi. Ti diciamo come configurarlo e la trappola che può lasciare il tuo negozio in bianco.
Le immagini sono, di gran lunga, ciò che pesa di più in un negozio online. PrestaShop 9 permette di generare le miniature dei prodotti in WebP e AVIF oltre che in JPG, e di servirle con il tag <picture> perché ogni browser scelga il formato migliore che supporta.
Cosa ci guadagni
- WebP: di solito pesa il 25–35 % in meno di un JPG di qualità simile. Lo supportano tutti i browser attuali.
- AVIF: ancora più leggero, soprattutto con le fotografie, ma più lento da generare.
Configurazione
In Aspetto > Impostazioni immagini scegli i formati da generare e la qualità. Internamente si salva nella configurazione PS_IMAGE_FORMAT, per esempio webp,avif,jpg.
La trappola: il server deve saper scrivere il formato
PHP genera le immagini con la libreria GD (o Imagick). Se configuri AVIF e la GD del tuo server non supporta AVIF, la funzione imageavif() non esiste. PrestaShop 9 genera al volo le miniature mancanti, e nel tentativo l'errore interrompe la pagina: il negozio appare bianco, con codice 200 e niente nei log.
Verificalo prima di attivare un formato:
php -r 'var_dump(function_exists("imagewebp"), function_exists("imageavif"));'
Rigenerare le miniature
In Aspetto > Impostazioni immagini > Rigenera miniature. Nei cataloghi grandi può durare molto e interrompersi per il tempo di esecuzione; in quel caso, rigenerale per tipo (prima i prodotti) o con uno script da riga di comando che salti quelle già esistenti.
Qualità
- JPG: 85–90.
- WebP: 80–85.
- AVIF: 60–75 (la sua scala non è paragonabile a quella del JPG).
E inoltre
- Carica immagini originali di dimensioni ragionevoli (2000 px di lato bastano per quasi qualsiasi zoom).
- Definisci le dimensioni d'immagine che il tuo tema usa davvero: ogni dimensione in più moltiplica lo spazio su disco e il tempo di rigenerazione.
- Attiva il caricamento differito (
loading="lazy") negli elenchi, ma non sull'immagine principale della scheda: quella deve caricarsi il prima possibile.