Winkels met grote productcatalogi (10.000 of meer producten) hebben vaak te maken met trage feedgeneratie, time-outs of geheugentekorten bij het maken van productfeeds. De AdTribes Product Feed-plugin is gebouwd om een onbeperkt aantal producten te verwerken, maar u moet deze correct configureren voor uw serveromgeving en catalogusgrootte.
Deze gids legt uit hoe u de prestaties van de feedgeneratie voor grote catalogi kunt verbeteren. U leert over batchverwerking, serverlimieten, geplande generatie, het filteren van onnodige producten en andere prestatieoverwegingen.
Waarom grote feeds anders zijn
Wanneer u 10.000+ producten heeft, kan het genereren van een feed in één enkele aanvraag het volgende overschrijden:
- PHP-geheugenlimieten – Elk product laadt gegevens (afbeeldingen, attributen, categorieën) in het geheugen
- Maximale uitvoeringstijd – PHP-scripts lopen vaak vast na 30-60 seconden
- Serverbronnen – Gedeelde hosting kan langlopende processen beperken
De plugin gebruikt batchverwerking om de feedgeneratie op te splitsen in kleinere delen. Elke batch wordt afzonderlijk uitgevoerd, zodat u time-outs en geheugenuitputting vermijdt. Bovendien kunt u het aantal producten in uw feed verminderen door items te filteren die u niet nodig hebt voor advertenties.
Hoe batchverwerking werkt
De plugin verwerkt feeds in batches. Elke batch verwerkt een vast aantal producten (de batchgrootte). Wanneer één batch is voltooid, wordt de volgende automatisch gepland. Deze aanpak vermindert het geheugengebruik en voorkomt PHP-time-outs.
Product Feed Pro 13.5.7 en latere versies passen de batchgrootte zelf aan in plaats van een vaste tabel-lookup te gebruiken. Elke batch wordt getimed en het geheugengebruik wordt gemeten; de grootte van de volgende batch wordt afgeleid van wat de host zojuist heeft bewezen te kunnen verwerken, en de geleerde grootte wordt per feed opgeslagen, zodat latere uitvoeringen dicht bij het optimum beginnen. Dit is een kernfunctie van Product Feed Pro, dus het is van toepassing, ongeacht of Product Feed Elite actief is. Zie Adaptieve batchgroottes hieronder.
In eerdere versies gebruikte de plugin in plaats daarvan standaard vaste batchgroottes op basis van uw totale productaantal:
| Aantal Producten | Batchgrootte |
|---|---|
| Minder dan 1.000 | 200 producten per batch |
| 1,000-5,000 | 300 producten per batch |
| 5,000-10,000 | 500 producten per batch |
| 10,000-50,000 | 1.000 producten per batch |
| 50,000+ | 1.500 producten per batch |
Deze standaardwaarden zijn ontworpen voor betrouwbaarheid. Kleinere batches gebruiken minder geheugen en raken minder snel de limieten voor uitvoeringstijd.
Adaptieve batchgrootte
Vanaf Product Feed Pro 13.5.7 kiest de feedgeneratie niet langer één vaste batchgrootte per uitvoering uit een tabel met productaantallen. In plaats daarvan meet de controller de tijd van elke batch en het geheugengebruik, en bepaalt vervolgens de grootte van de volgende batch op basis van wat de host zojuist heeft bewezen te kunnen verwerken. De geleerde grootte wordt per feed opgeslagen, zodat volgende uitvoeringen vanaf de eerste batch dicht bij het optimum beginnen.
Benchmarkresultaten: Op een Google Shopping XML-feed met 18.201 producten, waarbij elke batch een echte WordPress-bootstrap betaalt (zoals in productie gebeurt), was adaptieve batchgroottes ongeveer 19% sneller bij een eerste uitvoering en 24% sneller bij een warme uitvoering, met bevestigde output-pariteit, identieke productaantallen in elk scenario.
Waarom de winst belangrijker is dan de benchmark suggereert: De snelheidsverbetering komt voort uit het elimineren van round trips per batch, niet uit snellere verwerking per product. De pure verwerkingstijd per product blijft ongewijzigd. Elke batch betaalt een volledige WordPress-plus-plugin bootstrap en een Action Scheduler wacht, dus het terugbrengen van een run van 19 batches naar 2 verwijdert 17 bootstraps en 17 wachttijden. Dit is het belangrijkst op winkels met weinig verkeer: waar WP-Cron alleen wordt geactiveerd bij bezoekershits, domineert de wachttijd tussen batches de totale feedtijd, dus de reductie van het aantal batches is in de praktijk aanzienlijk meer waard dan de benchmarkcijfers alleen suggereren, een nuttige combinatie voor winkels met een grote catalogus die ook weinig verkeer hebben.
Graceful degradation op beperkte hosts: Als de host geheugenbeperkt is (bijvoorbeeld een limiet van 128 MB), wordt de batchgrootte verkleind totdat de batches passen, en de feed wordt langzaam voltooid in plaats van bij elke run te mislukken. Voorheen was het kleinst beschikbare niveau 200 producten per batch, dus hosts die zelfs dat formaat niet konden verwerken, voltooiden nooit een feed.
Configureer aangepaste batchgrootte
Als uw feed vastloopt of een time-out krijgt, probeer dan de batchgrootte te verkleinen. Omgekeerd, als u een krachtige server heeft en snellere generatie wilt, kunt u deze vergroten.
Hoe de batchgrootte te wijzigen
- Ga naar Product Feed → Instellingen → Algemeen
- Schakel Producten per batchnummer wijzigen in
- Voer een waarde in bij Voer batchgrootte in: (bijv. 500 of 250)
- Uw instellingen opslaan

Aanbevelingen:
- Time-outs: Gebruik een kleinere batchgrootte (bijv. 250-500) zodat elke batch eindigt voordat de maximale uitvoeringstijd van uw server is bereikt
- Geheugenfouten: Verklein de batchgrootte verder (bijv. 100-200) om het geheugengebruik per batch te verlagen
- Stabiele servers: U kunt grotere batches proberen (bijv. 1.000-1.500) voor snellere totale generatie, maar alleen als uw server deze zonder fouten verwerkt
Meer specifiek:
| Servertype | Voorgestelde batchgrootte |
|---|---|
| Gedeelde hosting | 200-300 |
| VPS of Cloud | 500-1000 |
| Toegewijde server | 1000-1500 |
Test altijd na het wijzigen van de batchgrootte. Als de feed nog steeds vastloopt, verklein deze dan verder. Zie voor meer details Batchgrootte configuratie productfeed.
Controleer en pas serverlimieten aan
Uw hostingomgeving legt limieten op aan de PHP-uitvoeringstijd en het geheugen. Deze hebben directe invloed op de feedgeneratie.
max_execution_time
Elke batch wordt uitgevoerd binnen PHP's max_execution_time. Als deze te laag is (bijv. 30 of 60 seconden), kunnen batches worden afgekapt voordat ze voltooid zijn.
- Aanbevolen: Minimaal 300 seconden (5 minuten) voor grote catalogi
- Hoe te controleren: Ga naar WP Admin → WooCommerce → Status en zoek de waarde PHP Time Limit in de Server Environment.
- Hoe te repareren: Verhoog de limiet in uw serverconfiguratie door
set_time_limit(300)toe te voegen aan hetwp-config.php-bestand, of neem contact op met uw hostingprovider

memory_limit
Feedgeneratie laadt productgegevens in het geheugen. Bij het verwerken van duizenden producten per batch kan een lage geheugenlimiet leiden tot fatale fouten of onvolledige feeds.
- Aanbevolen: 256 MB of hoger voor 10.000+ producten
- Hoe te controleren: Ga naar WP Admin → WooCommerce → Status en zoek de waarde WordPress Memory Limit onder WordPress Environment.
- Hoe te repareren: Verhoog de geheugenlimiet in
wp-config.phpdoordefine('WP_MEMORY_LIMIT', '256M');toe te voegen of vraag uw hostingprovider om de limiet te verhogen.

De plugin logt een waarschuwing wanneer het beschikbare geheugen minder dan 128 MB is voordat een batch wordt uitgevoerd (indien logging is ingeschakeld). Dit item verschijnt onder logbron woo-product-feed-pro in WooCommerce → Status → Logs. Gebruik dit om potentiële problemen te signaleren.
Gebruik geplande generatie in plaats van handmatige vernieuwing
Vermijd voor grote catalogi het vertrouwen op handmatig vernieuwen vanuit de browser. Browserverzoeken kunnen verlopen of de verbinding verbreken voordat alle batches zijn voltooid. Gebruik in plaats daarvan geplande generatie.
Vernieuwingsinterval
- Bewerk uw feed en ga naar het tabblad Algemeen
- Stel Vernieuwingsinterval in op Uurlijks, Dagelijks of Twee keer per dag (Product Feed Elite ondersteunt ook aangepaste intervallen)
- Sla de feed op
De plugin gebruikt Action Scheduler om de feedgeneratie op de achtergrond uit te voeren met het gekozen interval. Dit is betrouwbaarder dan handmatig vernieuwen voor grote feeds.
Server cron (geavanceerd)
Voor precieze controle of winkels met veel verkeer kunt u een server cronjob gebruiken in plaats van de ingebouwde scheduler. Dit is vooral nuttig wanneer:
- U wilt dat feeds op specifieke tijden worden uitgevoerd (bijv. buiten piekuren)
- Uw site heeft weinig verkeer en WP cron wordt mogelijk niet vaak genoeg uitgevoerd
- U moet meerdere grote feeds spreiden
Zie voor stapsgewijze instructies Hoe productfeed te vernieuwen met cronjobs.
HTTP-verzoeken voor feedgeneratie uitschakelen
Wanneer u op Vernieuwen klikt op de pagina Beheren Feeds, kan de plugin de feedgeneratie via HTTP-verzoeken starten. Op grote winkels of beperkte hosting kan dit leiden tot time-outs of onvolledige feeds.
HTTP-feedgeneratieverzoeken uitschakelen dwingt feedgeneratie om alleen via Action Scheduler (of server cron) te worden uitgevoerd. Er worden geen HTTP-verzoeken gebruikt om batches te starten of voort te zetten.
Hoe in te schakelen
- Ga naar Product Feed → Instellingen → Algemeen
- Schakel HTTP-feedgeneratieverzoeken uitschakelen in
- Uw instellingen opslaan

Wanneer te gebruiken:
- Uw feed blijft vastlopen of loopt af wanneer u op Vernieuwen klikt
- U gebruikt een aangepaste batchgrootte (batchverwerking schakelt in dat geval standaard HTTP-verwerking uit)
- U voert feeds uit via geplande vernieuwing of server cron
Zie voor meer details Wat doet "HTTP-feedgeneratieverzoeken uitschakelen"?.
Filter onnodige producten uit
Alleen de producten opnemen die u nodig heeft in uw feed vermindert de verwerkingstijd en bestandsgrootte. Gebruik filters om producten uit te sluiten die niet relevant zijn voor uw kanaal.
Veelvoorkomende filterstrategieën
| Doel | Filtertype | Voorbeeldconditie |
|---|---|---|
| Alleen beschikbare producten opnemen | Opnemen | Voorraadstatus = op voorraad |
| Producten uit een specifieke categorie opnemen | Opnemen | Categorie bevat [doelcategorie] |
| Producten boven een bepaalde prijs opnemen | Opnemen | Prijs groter dan X |
| Producten die niet op voorraad zijn uitsluiten | Uitsluiten | Voorraadstatus = nietopvoorraad |
| Producten zonder afbeeldingen uitsluiten | Uitsluiten | Hoofdafbeelding is leeg |
| Producten met zeer lage prijzen uitsluiten | Uitsluiten | Prijs kleiner dan X |
| Specifieke categorieën uitsluiten | Uitsluiten | Categorie bevat [categorie naam] |
| Specifieke merken of tags uitsluiten | Uitsluiten | Merk/Tag bevat [waarde] |
Minder producten betekenen minder batches en snellere feedgeneratie. Zie voor stapsgewijze begeleiding Hoe filters te maken voor uw productfeed.
Variabele producten en variaties
Als je variabele producten gebruikt, overweeg dan:
- En alleen de laagst geprijsde productvariatie(s) opnemen: Eén variatie per product in plaats van alle
- En alleen de standaard productvariatie opnemen: Vermindert het aantal producten verder
Deze opties bevinden zich op het tabblad Algemeen van de feed en kunnen het aantal verwerkte producten aanzienlijk verminderen.
Samenvatting prestatieoverwegingen
| Factor | Aanbeveling voor 10.000+ producten |
|---|---|
| Batchgrootte | Laat oningesteld om adaptieve dimensionering te laten leren (Product Feed Pro 13.5.7+); anders 200-500 op gedeelde hosting, 500-1000 op VPS/dedicated |
| max_execution_time | 300 seconden of hoger |
| memory_limit | 256 MB of hoger |
| Vernieuwingsmethode | Gepland (uurlijks/dagelijks) of server cron, niet alleen handmatig |
| HTTP-generatie | Uitschakelen als feeds vastlopen of de time-out bereiken |
| Filters | Sluit uit van voorraad, irrelevante categorieën of lage waarde |
| Variabele producten | Gebruik "laagst geprijsd" of "standaardvariatie" waar van toepassing |
Problemen oplossen met veelvoorkomende problemen
| Probleem | Oplossing |
|---|---|
| Feed blijft verwerken | Verklein de batchgrootte; schakel HTTP-feedgeneratie uitschakelen in; controleer Help, mijn feed wordt niet bijgewerkt of blijft verwerken! |
| Time-outfouten | Verhoog max_execution_time naar 300+; verklein de batchgrootte |
| Fatale fout / geheugen uitgeput | Verhoog memory_limit naar 256MB+; op Product Feed Pro 13.5.7+ degradeert adaptieve dimensionering gracieus in plaats van direct te falen |
| Minder producten dan verwacht | Controleer filters en regels; zie Help! Ik heb geen of minder producten in mijn productfeed dan verwacht |
| Actieplannerfouten | Ga naar WooCommerce → Status → Geplande acties; controleer het tabblad Mislukt; verhoog serverlimieten |
Verdere hulp nodig?
Als u hulp nodig heeft bij het optimaliseren van de feedgeneratie voor uw grote catalogus:
- Product Feed Elite-gebruikers: Maak een supportticket aan om het AdTribes-supportteam te bereiken.
- Product Feed Pro-gebruikers: Open een onderwerp op het WordPress.org-forum.

