Inizia
Guida definitiva per la scalabilità dei feed per oltre 10.000 prodotti - AdTribes
  1. Casa
  2. Knowledge Base
  3. Suggerimenti generali per il feed
  4. Guida definitiva per scalare i feed per oltre 10.000 prodotti

Guida definitiva per scalare i feed per oltre 10.000 prodotti

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 ProdottiDimensione Batch
Meno di 1.000200 prodotti per batch
1,000-5,000300 prodotti per batch
5,000-10,000500 prodotti per batch
10,000-50,0001.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.

L'impostazione di una dimensione di batch esplicita (vedi Configura dimensione batch personalizzata di seguito) disabilita completamente il ridimensionamento adattivo per quel feed. Per cataloghi di oltre 10.000 prodotti, l'impostazione predefinita migliore è lasciare non impostata la dimensione del batch e lasciare che il controller impari. Riserva una dimensione di batch manuale per gli host con vincoli rigidi e già noti.

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.

Una dimensione di batch esplicita disabilita il ridimensionamento adattivo (Product Feed Pro 13.5.7+). Per cataloghi di oltre 10.000 prodotti, lascia questa impostazione non impostata a meno che il tuo host non abbia un vincolo rigido che già comprendi, e lascia che il controller impari la dimensione ottimale.

Come cambiare la dimensione del batch

  1. Vai su Product FeedImpostazioniGenerale
  2. Abilita Prodotti per numero di batch
  3. Inserisci un valore in Inserisci dimensione batch: (ad esempio, 500 o 250)
  4. 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 serverDimensione batch suggerita
Hosting condiviso200-300
VPS o Cloud500-1000
Server dedicato1000-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 file wp-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.php aggiungendo define('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.

Avvisi di ripristino da crash e feed parcheggiati dal ridimensionamento adattivo delle batch (Product Feed Pro 13.5.7+) vengono registrati in modo incondizionato nella stessa sorgente di log woo-product-feed-pro, indipendentemente dall'impostazione “Abilita registrazione”. Se il tuo feed continua a essere parcheggiato dopo ripetuti crash, controlla WooCommerce → Stato → Log anche se non hai abilitato la registrazione.

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

  1. Modifica il tuo feed e vai alla scheda Generale
  2. Imposta Intervallo di aggiornamento su Orario, Giornaliero o Due volte al giorno (Product Feed Elite supporta anche intervalli personalizzati)
  3. 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

  1. Vai su Product FeedImpostazioniGenerale
  2. Abilita Disabilita richieste di generazione feed HTTP
  3. 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

ObiettivoTipo di filtroCondizione di esempio
Includi solo i prodotti disponibiliIncludiStato scorte = in stock
Includi prodotti da una categoria specificaIncludiCategoria contiene [categoria di destinazione]
Includi prodotti sopra un certo prezzoIncludiPrezzo maggiore di X
Escludi prodotti non in stockEscludiStato scorte = esaurito
Escludi prodotti senza immaginiEscludiImmagine principale vuota
Escludi prodotti a prezzo molto bassoEscludiPrezzo minore di X
Escludi categorie specificheEscludiLa categoria contiene [nome categoria]
Escludi marchi o tag specificiEscludiMarchio/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:

Queste opzioni si trovano nella scheda Generale del feed e possono ridurre significativamente il numero di prodotti elaborati.

Riepilogo delle considerazioni sulle prestazioni

FattoreRaccomandazione per oltre 10.000 prodotti
Dimensione del batchLascia 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_esecuzione300 secondi o più
limite_memoria256 MB o più
Metodo di aggiornamentoPianificato (orario/giornaliero) o cron del server, non solo manuale
Generazione HTTPDisabilita se i feed si bloccano o vanno in timeout
FiltriEscludi prodotti esauriti, categorie irrilevanti o di basso valore
Prodotti variabiliUtilizza "prezzo più basso" o "variante predefinita" quando appropriato

Risoluzione dei problemi comuni

ProblemaSoluzione
Feed bloccato durante l'elaborazioneRiduci le dimensioni del batch; abilita Disabilita generazione feed HTTP; controlla Aiuto, il mio feed non si aggiorna o è bloccato in elaborazione!
Errori di timeoutAumenta max_execution_time a 300+; riduci le dimensioni del batch
Errore fatale / memoria esauritaAumenta memory_limit a 256MB+; su Product Feed Pro 13.5.7+, il ridimensionamento adattivo degrada con grazia invece di fallire completamente
Meno prodotti del previstoControlla filtri e regole; vedi Aiuto! Ho meno prodotti del previsto nel mio feed di prodotti
Errori di Action SchedulerVai 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:

Questo articolo è stato utile?

Articoli Correlati

Completa il tuo acquisto
Feed Prodotti WooCommerce AdTribes

Il miglior plugin per i feed di prodotti WooCommerce

  • AdTribes Pty Ltd
    ABN: 40 675 636 816
Prodotto
Risorse e Informazioni
Siti Partner
Rymera