I negozi con cataloghi di grandi dimensioni (10.000 o più prodotti) spesso riscontrano lentezza nella generazione dei feed, timeout o esaurimento della memoria durante la creazione dei feed di prodotti. Il plugin AdTribes Product Feed è progettato per gestire un numero illimitato di prodotti, ma è necessario configurarlo correttamente per il proprio ambiente server e le dimensioni del catalogo.
Questa guida spiega come migliorare le prestazioni di generazione dei feed per cataloghi di grandi dimensioni. Imparerai il processamento batch, i limiti del server, la generazione pianificata, il filtraggio dei prodotti non necessari e altre considerazioni sulle prestazioni.
Perché i feed di grandi dimensioni sono diversi
Quando hai oltre 10.000 prodotti, la generazione di un feed in una singola richiesta può superare:
- Limiti di memoria PHP – Ogni prodotto carica dati (immagini, attributi, categorie) in memoria
- Tempo massimo di esecuzione – Gli script PHP spesso vanno in timeout dopo 30-60 secondi
- Risorse del server – L'hosting condiviso potrebbe limitare i processi a lunga esecuzione
Il plugin utilizza l'elaborazione batch per suddividere la generazione del feed in blocchi più piccoli. Ogni batch viene eseguito separatamente, evitando così timeout e esaurimento della memoria. Inoltre, è possibile ridurre il numero di prodotti nel feed filtrando gli articoli non necessari per la pubblicità.
Come funziona l'elaborazione batch
Il plugin elabora i feed in batch. Ogni batch gestisce un numero fisso di prodotti (la dimensione del batch). Al termine di un batch, il successivo viene pianificato automaticamente. Questo approccio riduce l'utilizzo della memoria ed evita i timeout PHP.
Product Feed Pro 13.5.7 e versioni successive auto-regolano la dimensione del batch invece di utilizzare una ricerca fissa in tabella. Ogni batch viene temporizzato e il suo utilizzo di memoria misurato; la dimensione del batch successivo viene derivata da ciò che l'host ha appena dimostrato di poter gestire, e la dimensione appresa viene mantenuta per ogni feed in modo che le esecuzioni successive inizino vicino all'ottimale. Questa è una funzionalità principale di Product Feed Pro, quindi si applica indipendentemente dal fatto che Product Feed Elite sia attivo o meno. Vedi Dimensionamento batch adattivo di seguito.
Nelle versioni precedenti, il plugin utilizzava invece dimensioni batch predefinite fisse basate sul tuo numero totale di prodotti:
| Numero di Prodotti | Dimensione Batch |
|---|---|
| Meno di 1.000 | 200 prodotti per batch |
| 1,000-5,000 | 300 prodotti per batch |
| 5,000-10,000 | 500 prodotti per batch |
| 10,000-50,000 | 1.000 prodotti per batch |
| 50,000+ | 1.500 prodotti per batch |
Questi valori predefiniti sono stati progettati per l'affidabilità. Batch più piccoli utilizzano meno memoria e hanno meno probabilità di raggiungere i limiti di esecuzione.
Dimensionamento batch adattivo
A partire da Product Feed Pro 13.5.7, la generazione del feed non seleziona più una singola dimensione batch fissa per esecuzione da una tabella di fasce per numero di prodotti. Invece, il controller temporizza ogni batch e misura il suo utilizzo di memoria, quindi dimensiona il batch successivo in base a ciò che l'host ha appena dimostrato di poter gestire. La dimensione appresa viene salvata per ogni feed, quindi le esecuzioni successive iniziano vicino all'ottimale dal primo batch.
Risultati del benchmark: Su un feed XML Google Shopping da 18.201 prodotti, con ogni batch che paga un vero bootstrap di WordPress (come avviene in produzione), il dimensionamento batch adattivo è stato circa il 19% più veloce alla prima esecuzione e il 24% più veloce a caldo, con parità di output confermata, conteggi di prodotti identici in ogni scenario.
Perché il guadagno è più importante di quanto suggerisca il benchmark: L'accelerazione deriva dall'eliminazione dei viaggi di andata e ritorno per batch, non da un'elaborazione per prodotto più veloce. Il tempo di elaborazione puro per prodotto rimane invariato. Ogni batch comporta un avvio completo di WordPress più plugin e un'attesa di Action Scheduler, quindi ridurre un'esecuzione da 19 a 2 batch elimina 17 avvii e 17 attese. Questo è particolarmente importante nei negozi con traffico ridotto: dove WP-Cron si attiva solo con le visite dei visitatori, l'attesa tra i batch domina il tempo totale del feed, quindi la riduzione del numero di batch è in pratica molto più utile di quanto suggeriscano i soli numeri del benchmark, una combinazione utile per i negozi con cataloghi di grandi dimensioni che hanno anche poco traffico.
Degrado graduale su host con risorse limitate: Se l'host ha limitazioni di memoria (ad esempio, un limite di 128 MB), la dimensione del batch si riduce fino a quando i batch non rientrano nei limiti, e il feed viene completato lentamente invece di fallire ad ogni esecuzione. In precedenza, il livello più piccolo disponibile era di 200 prodotti per batch, quindi gli host che non potevano gestire nemmeno quella dimensione non completavano mai un feed.
Configura dimensione batch personalizzata
Se il tuo feed si blocca o va in timeout, prova a ridurre la dimensione del batch. Al contrario, se hai un server potente e desideri una generazione più veloce, puoi aumentarla.
Come cambiare la dimensione del batch
- Vai su Product Feed → Impostazioni → Generale
- Abilita Prodotti per numero di batch
- Inserisci un valore in Inserisci dimensione batch: (ad esempio, 500 o 250)
- Salva le tue impostazioni

Raccomandazioni:
- Timeout: Usa una dimensione di batch più piccola (ad esempio, 250-500) in modo che ogni batch finisca prima del tempo massimo di esecuzione del tuo server
- Errori di memoria: Riduci ulteriormente la dimensione del batch (ad esempio, 100-200) per ridurre l'utilizzo della memoria per batch
- Server stabili: Puoi provare batch più grandi (ad esempio, 1.000-1.500) per una generazione totale più veloce, ma solo se il tuo server li gestisce senza errori
Più specificamente:
| Tipo di server | Dimensione batch suggerita |
|---|---|
| Hosting condiviso | 200-300 |
| VPS o Cloud | 500-1000 |
| Server dedicato | 1000-1500 |
Testa sempre dopo aver modificato la dimensione del batch. Se il feed si blocca ancora, riducila ulteriormente. Per maggiori dettagli, vedi Configurazione dimensione batch product feed.
Controlla e regola i limiti del server
Il tuo ambiente di hosting impone limiti al tempo di esecuzione PHP e alla memoria. Questi influiscono direttamente sulla generazione del feed.
tempo_massima_esecuzione
Ogni batch viene eseguito all'interno di max_execution_time di PHP. Se questo è troppo basso (ad esempio, 30 o 60 secondi), i batch potrebbero essere interrotti prima di finire.
- Consigliato: Almeno 300 secondi (5 minuti) per cataloghi di grandi dimensioni
- Come controllare: Vai su WP Admin → WooCommerce → Stato e trova il valore Limite di tempo PHP nella sezione Ambiente server.
- Come risolvere: Aumenta il limite nella configurazione del tuo server aggiungendo
set_time_limit(300)al filewp-config.php, o contatta il tuo provider di hosting

limite_memoria
La generazione del feed carica i dati dei prodotti in memoria. Quando si elaborano migliaia di prodotti per batch, un limite di memoria basso può causare errori fatali o feed incompleti.
- Consigliato: 256MB o superiore per oltre 10.000 prodotti
- Come controllare: Vai su WP Admin → WooCommerce → Stato e trova il valore Limite di memoria di WordPress nella sezione Ambiente WordPress.
- Come risolvere: Aumenta il limite di memoria in
wp-config.phpaggiungendodefine('WP_MEMORY_LIMIT', '256M');o chiedi al tuo provider di hosting di aumentare il limite.

Il plugin registra un avviso quando la memoria disponibile è inferiore a 128MB prima che venga eseguita una batch (se la registrazione è abilitata). Questa voce appare sotto la sorgente di log woo-product-feed-pro in WooCommerce → Stato → Log. Usala per individuare potenziali problemi.
Usa la generazione pianificata invece dell'aggiornamento manuale
Per cataloghi di grandi dimensioni, evita di fare affidamento sul refresh manuale dal browser. Le richieste del browser possono andare in timeout o disconnettersi prima che tutti i batch vengano completati. Invece, usa la generazione pianificata.
Intervallo di aggiornamento
- Modifica il tuo feed e vai alla scheda Generale
- Imposta Intervallo di aggiornamento su Orario, Giornaliero o Due volte al giorno (Product Feed Elite supporta anche intervalli personalizzati)
- Salva il feed
Il plugin utilizza Action Scheduler per eseguire la generazione del feed in background all'intervallo scelto. Questo è più affidabile del refresh manuale per i feed di grandi dimensioni.
Cron del server (avanzato)
Per un controllo preciso o per negozi con traffico elevato, puoi utilizzare un cron job del server invece dello scheduler integrato. Questo è particolarmente utile quando:
- Vuoi che i feed vengano eseguiti in orari specifici (ad es. ore non di punta)
- Il tuo sito ha poco traffico e il cron di WP potrebbe non essere eseguito abbastanza spesso
- Hai bisogno di scaglionare più feed di grandi dimensioni
Per istruzioni passo passo, consulta Come aggiornare il feed dei prodotti utilizzando i cron job.
Disabilita le richieste di generazione del feed HTTP
Quando fai clic su Aggiorna nella pagina Gestisci feed, il plugin può attivare la generazione del feed tramite richieste HTTP. Su store di grandi dimensioni o hosting limitato, questo può causare timeout o feed incompleti.
Disabilita richieste di generazione feed HTTP forza la generazione del feed a essere eseguita solo tramite Action Scheduler (o cron del server). Nessuna richiesta HTTP viene utilizzata per avviare o continuare le batch.
Come abilitare
- Vai su Product Feed → Impostazioni → Generale
- Abilita Disabilita richieste di generazione feed HTTP
- Salva le tue impostazioni

Quando usarlo:
- Il tuo feed continua a bloccarsi o va in timeout quando fai clic su Aggiorna
- Utilizzi una dimensione batch personalizzata (l'elaborazione batch disabilita l'elaborazione HTTP per impostazione predefinita in quel caso)
- Esegui i feed tramite aggiornamento pianificato o cron del server
Per maggiori dettagli, consulta Cosa fa "Disabilita richieste di generazione feed HTTP"?.
Filtra i prodotti non necessari
Includere solo i prodotti di cui hai bisogno nel tuo feed riduce il tempo di elaborazione e le dimensioni del file. Utilizza i filtri per escludere i prodotti non pertinenti per il tuo canale.
Strategie di filtraggio comuni
| Obiettivo | Tipo di filtro | Condizione di esempio |
|---|---|---|
| Includi solo i prodotti disponibili | Includi | Stato scorte = in stock |
| Includi prodotti da una categoria specifica | Includi | Categoria contiene [categoria di destinazione] |
| Includi prodotti sopra un certo prezzo | Includi | Prezzo maggiore di X |
| Escludi prodotti non in stock | Escludi | Stato scorte = esaurito |
| Escludi prodotti senza immagini | Escludi | Immagine principale vuota |
| Escludi prodotti a prezzo molto basso | Escludi | Prezzo minore di X |
| Escludi categorie specifiche | Escludi | La categoria contiene [nome categoria] |
| Escludi marchi o tag specifici | Escludi | Marchio/Tag contiene [valore] |
Meno prodotti significano meno batch e una generazione del feed più rapida. Per una guida passo passo, consulta Come creare filtri per il tuo feed di prodotti.
Prodotti variabili e variazioni
Se utilizzi prodotti variabili, considera:
- E includi solo le variazioni di prodotto al prezzo più basso: Una variazione per prodotto invece di tutte
- E includi solo la variazione di prodotto predefinita: Riduce ulteriormente il numero di prodotti
Queste opzioni si trovano nella scheda Generale del feed e possono ridurre significativamente il numero di prodotti elaborati.
Riepilogo delle considerazioni sulle prestazioni
| Fattore | Raccomandazione per oltre 10.000 prodotti |
|---|---|
| Dimensione del batch | Lascia non impostato per consentire al ridimensionamento adattivo di apprendere (Product Feed Pro 13.5.7+); altrimenti 200-500 su hosting condiviso, 500-1000 su VPS/dedicato |
| tempo_massima_esecuzione | 300 secondi o più |
| limite_memoria | 256 MB o più |
| Metodo di aggiornamento | Pianificato (orario/giornaliero) o cron del server, non solo manuale |
| Generazione HTTP | Disabilita se i feed si bloccano o vanno in timeout |
| Filtri | Escludi prodotti esauriti, categorie irrilevanti o di basso valore |
| Prodotti variabili | Utilizza "prezzo più basso" o "variante predefinita" quando appropriato |
Risoluzione dei problemi comuni
| Problema | Soluzione |
|---|---|
| Feed bloccato durante l'elaborazione | Riduci le dimensioni del batch; abilita Disabilita generazione feed HTTP; controlla Aiuto, il mio feed non si aggiorna o è bloccato in elaborazione! |
| Errori di timeout | Aumenta max_execution_time a 300+; riduci le dimensioni del batch |
| Errore fatale / memoria esaurita | Aumenta memory_limit a 256MB+; su Product Feed Pro 13.5.7+, il ridimensionamento adattivo degrada con grazia invece di fallire completamente |
| Meno prodotti del previsto | Controlla filtri e regole; vedi Aiuto! Ho meno prodotti del previsto nel mio feed di prodotti |
| Errori di Action Scheduler | Vai su WooCommerce → Stato → Azioni pianificate; controlla la scheda Errori; aumenta i limiti del server |
Serve ulteriore assistenza?
Se hai bisogno di aiuto per ottimizzare la generazione del feed per il tuo catalogo di grandi dimensioni:
- Utenti di Product Feed Elite: Crea un ticket di supporto per contattare il team di supporto di AdTribes.
- Utenti di Product Feed Pro: Apri un argomento nel forum di WordPress.org.

