Il negozio va veloce, ma il back office no: le schede prodotto ci mettono una vita ad aprirsi, il salvataggio sembra non finire mai, la lista ordini si blocca. È una delle segnalazioni più frequenti che riceviamo dai negozi PrestaShop, e quasi sempre la causa non è dove la si cerca. Vediamo le cause tipiche e cosa fare, partendo da qualche caso reale.
Prima regola: capire dove si perde il tempo
«Lento» può voler dire cose molto diverse:
- il server impiega molto a preparare la pagina: lo schermo resta bianco a lungo;
- la pagina arriva subito ma è enorme: il browser fatica a disegnarla, scorre a scatti, i pulsanti rispondono in ritardo;
- una singola operazione è lenta: ad esempio il salvataggio, mentre la navigazione è normale;
- è tutto lento a tratti, solo in certe ore o quando lavorano più persone.
Gli strumenti per sviluppatori del browser (tasto F12, scheda «Rete») ti dicono quanto pesa la pagina e quanto ha atteso il server. Se ci apri un ticket, queste informazioni, insieme all’orario e alla pagina, ci fanno risparmiare molto tempo.
Caso 1: la scheda prodotto pesa diversi megabyte
Ci è capitato un negozio con migliaia di valori di attributo (colori, misure, confezioni): la scheda prodotto del back office veniva generata dal server in meno di mezzo secondo, ma pesava diversi megabyte, perché la pagina delle combinazioni elencava una casella per ogni singolo valore di ogni attributo. Il tempo non era sul server ma nel browser, che doveva disegnare decine di migliaia di elementi.
Cosa fare in questi casi:
- controlla quanti valori hanno i tuoi gruppi di attributi ed elimina quelli che non usi più;
- evita di creare un valore di attributo per ogni sfumatura o ogni prodotto: spesso una caratteristica è più adatta;
- se i valori servono davvero, si può intervenire sul modo in cui la pagina li carica: è un lavoro da sviluppatore, ma risolve.
Caso 2: salvare un prodotto con molte combinazioni
Quando salvi un prodotto, PrestaShop ripete diverse operazioni per ogni combinazione: aggiornamento dei dati, delle quantità, dei prezzi. Con poche varianti non te ne accorgi; con decine o centinaia, il salvataggio può durare molti secondi, e il tempo cresce con il numero di combinazioni.
In un caso che abbiamo analizzato, il cliente pensava che la colpa fosse della cache: misurando, il modulo di cache pesava una parte minima del salvataggio, il resto era il lavoro di PrestaShop sulle combinazioni. Le strade utili:
- aggiornare PrestaShop: le versioni più recenti gestiscono meglio prodotti e combinazioni;
- per modifiche di massa (prezzi, quantità) usare l’importazione o un gestionale invece di salvare a mano prodotto per prodotto;
- valutare se tutte quelle combinazioni servono davvero.
Caso 3: un modulo che moltiplica le richieste
Un altro negozio aveva la lista ordini del back office lentissima e, nelle stesse ore, rallentamenti sull’intero negozio. Il colpevole era un modulo di campi personalizzati che, aprendo la lista, inviava una richiesta separata al server per ogni riga della tabella: decine di richieste nello stesso secondo, ciascuna impegnativa per il database. Bastava che qualcuno dello staff aprisse la lista ordini perché il database si saturasse.
La lezione: quando il back office rallenta solo su una pagina precisa, guarda nella scheda «Rete» del browser quante richieste parte da quella pagina. Se sono tantissime e tutte uguali, il problema è quasi sempre un modulo. Trovi un metodo per scoprirlo nell’articolo sui moduli che rallentano il negozio.
Caso 4: vieni rimandato al login di continuo
Non è lentezza in senso stretto, ma è frustrante: salvi una scheda e ti ritrovi alla pagina di accesso. PrestaShop, per sicurezza, può legare la sessione dell’amministratore all’indirizzo IP: se l’indirizzo con cui ti vede cambia durante il lavoro, ti considera un’altra persona e ti fa uscire. Può succedere con connessioni mobili, VPN o quando il traffico passa da più punti di rete.
Se ti succede spesso, apri un ticket: verifichiamo che il server veda correttamente il tuo indirizzo. Disattivare il controllo dell’IP nelle impostazioni di amministrazione è possibile, ma riduce la protezione della sessione: va considerato solo dopo aver capito la causa.
Le impostazioni da controllare sempre
| Impostazione | Su un negozio in produzione |
|---|---|
| Modalità debug | spenta: rallenta tutto, anche il back office |
| Ricompilazione dei template | non a ogni visita: solo quando i file cambiano, o mai |
| Moduli del pannello di controllo (dashboard) | tieni solo i riquadri che guardi davvero: ognuno fa le sue interrogazioni al database |
| Statistiche | le tabelle di visite e connessioni crescono senza sosta; se non usi le statistiche interne, valuta di disattivare i moduli che le raccolgono e di pulire i dati vecchi |
| Versione di PHP | una versione recente e supportata dalla tua versione di PrestaShop |
Lento solo in certe ore?
Se il back office rallenta a tratti, chiediti cosa succede in quei momenti: sincronizzazioni con il gestionale o con i marketplace, importazioni di catalogo, invio di newsletter, più persone che lavorano insieme. Anche i bot che bersagliano i filtri del catalogo possono appesantire il server: le protezioni come Security Intelligence e la cache della rete iWebLab Edge tolgono gran parte di questo carico. Il back office, invece, non passa mai dalla cache: lì contano codice, moduli e database.
Quando chiederci aiuto
Se hai controllato le impostazioni e il problema resta, apri un ticket dall’area clienti con:
- la pagina del back office (indirizzo completo, senza la tua password);
- l’orario in cui hai notato la lentezza;
- cosa stavi facendo (aprire, salvare, filtrare).
Con queste informazioni possiamo guardare i log del sito e capire se il tempo si perde sul server, nel database o nel browser. È il primo passo per non correggere la cosa sbagliata.