Finché il negozio ha qualche decina di prodotti, quasi tutto funziona. Quando il catalogo arriva a migliaia di articoli, ognuno con taglie, colori e materiali, le cose cambiano: le categorie si aprono più lentamente, i filtri diventano pesanti, il back office rallenta e i motori di ricerca si perdono tra le combinazioni. In questa guida vediamo come organizzare un catalogo grande perché resti veloce.
Prodotti variabili: potenti, ma con un costo
Un prodotto variabile di WooCommerce ha un prodotto «padre» e tante variazioni, ognuna con prezzo, scorta e immagine propri. Per il database ogni variazione è un elemento a sé. Una maglietta in cinque taglie e otto colori sono quaranta variazioni: moltiplicato per centinaia di modelli, il conto sale in fretta.
Buone pratiche per le varianti
- crea solo le combinazioni che vendi davvero: se un colore non esiste in una taglia, non generare quella variazione;
- usa attributi globali (definiti in Prodotti > Attributi) invece di attributi personalizzati scritti a mano su ogni prodotto: sono più ordinati e i filtri li gestiscono meglio;
- evita prodotti con centinaia di variazioni: se superi un certo numero, la pagina prodotto deve caricare dati per tutte e il selettore delle varianti diventa lento. Valuta di dividere il prodotto in più schede, per esempio per modello o per linea;
- immagini per variazione solo dove servono: il colore sì, la taglia di solito no.
Filtri: comodi per i clienti, costosi per il server
I filtri per taglia, colore, prezzo, marca e disponibilità sono indispensabili in un catalogo grande. Ma ogni combinazione di filtri è un indirizzo diverso, e ognuno, se non è in cache, va calcolato da zero. Un catalogo con qualche filtro genera facilmente migliaia di combinazioni.
Due casi reali
Ci è capitato un negozio i cui filtri, scritti su misura nel tema, per calcolare i conteggi caricavano ogni volta tutti i prodotti della categoria, uno per uno, e ripetevano il lavoro per ogni gruppo di filtri. In una categoria con quasi tutto il catalogo, una singola pagina filtrata impegnava tutta la memoria del sito e lo rallentava per tutti. A peggiorare le cose, gran parte delle richieste ai filtri arrivava da programmi automatici, non da clienti.
In un altro negozio, un motore di ricerca passava gran parte del tempo sui parametri di visualizzazione del tema: prodotti per riga, vista a griglia o a elenco, numero di prodotti per pagina. Pagine identiche per contenuto, ma per il server ognuna era nuova e andava costruita da capo.
Cosa fare
- limita i filtri a quelli davvero utili: se nessuno filtra per materiale della suola, toglilo;
- scegli un plugin di filtri che usi tabelle o indici dedicati, invece di ricalcolare tutto a ogni richiesta, e verifica come si comporta con il tuo numero di prodotti;
- non fare indicizzare le pagine filtrate: con il tuo plugin SEO imposta il canonical verso la categoria e il noindex dove serve;
- escludi dal crawling i parametri inutili con il
robots.txt, per esempio quelli di visualizzazione del tema e di ordinamento; - controlla chi usa i filtri: con SEO Log Intelligence vedi come i motori di ricerca esplorano il negozio.
Le pagine di categoria
- non mostrare troppi prodotti per pagina: ogni prodotto in più significa più dati, più immagini, più lavoro;
- attenzione all’ordinamento per «più venduti» o «popolarità» su cataloghi molto grandi: alcuni plugin lo calcolano in modo pesante;
- il conteggio dei prodotti accanto alle categorie e i badge «ultimi pezzi» sono comodi, ma ognuno è una query in più: tienili se servono.
La ricerca interna
La ricerca predefinita di WordPress cerca nei titoli e nei testi in modo semplice, e su migliaia di prodotti può diventare lenta e poco precisa. Se i clienti cercano molto per codice articolo o marca, valuta un plugin di ricerca dedicato ai prodotti, che costruisce un proprio indice. Anche qui: prova prima su una copia e misura.
Il database di un catalogo grande
Prodotti, variazioni, attributi e ordini finiscono nel database. Qualche abitudine utile:
- tieni WooCommerce aggiornato: le versioni recenti migliorano il modo in cui gestisce ordini e ricerche;
- valuta l’archiviazione degli ordini ad alte prestazioni (HPOS), dopo aver verificato la compatibilità dei plugin;
- attiva Redis come cache degli oggetti;
- con Database Intelligence individua le query che pesano di più;
- pulisci periodicamente revisioni, dati temporanei scaduti e prodotti eliminati da tempo, dopo un backup.
Importazioni e sincronizzazioni
Con un catalogo grande, prezzi e scorte arrivano spesso da un gestionale o da un fornitore. Le importazioni massive sono tra le operazioni più pesanti per il negozio:
- programmale nelle ore con meno visite;
- aggiorna solo ciò che è cambiato invece di reimportare tutto ogni volta;
- dividi i file molto grandi in più parti;
- controlla che non si sovrappongano: due importazioni insieme raddoppiano il carico e possono lasciare dati incoerenti.
Il ruolo della cache
In un catalogo grande la cache è ancora più importante: con iWebLab Cache categorie e schede prodotto vengono servite già pronte dalla rete iWebLab Edge, e la cache si rinnova da sola quando cambi un prodotto o un prezzo. Con la versione Pro, Sentinella serve dalla cache anche i bot utili, così i motori di ricerca leggono il catalogo senza pesare sul negozio.
Quando il catalogo supera il piano
Se hai seguito queste indicazioni e il negozio fatica comunque, probabilmente le risorse non bastano più: per i cataloghi ampi è pensato l’hosting cloud, con CPU e memoria riservate. Prima di decidere, apri un ticket: guardiamo insieme dove va il tempo del server e ti diciamo se serve più potenza o se c’è uno spreco da togliere.