Aan de slag
Ultieme gids voor het schalen van feeds voor 10K+ producten - AdTribes
  1. Home
  2. Kennisbank
  3. Algemene Feed Tips
  4. Ultieme gids voor het schalen van feeds voor 10K+ producten

Ultieme gids voor het schalen van feeds voor 10K+ producten

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 ProductenBatchgrootte
Minder dan 1.000200 producten per batch
1,000-5,000300 producten per batch
5,000-10,000500 producten per batch
10,000-50,0001.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.

Het instellen van een expliciete batchgrootte (zie Configureer aangepaste batchgrootte hieronder) schakelt adaptieve dimensionering volledig uit voor die feed. Voor catalogi met 10.000+ producten is de betere standaardinstelling om de batchgrootte niet in te stellen en de controller te laten leren. Reserveer een handmatige batchgrootte voor hosts met harde, reeds bekende beperkingen.

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.

Een expliciete batchgrootte schakelt adaptieve dimensionering uit (Product Feed Pro 13.5.7+). Laat voor catalogi met 10.000+ producten deze instelling uitgeschakeld, tenzij uw host een harde beperking heeft die u al begrijpt, en laat de controller in plaats daarvan de optimale grootte leren.

Hoe de batchgrootte te wijzigen

  1. Ga naar Product FeedInstellingenAlgemeen
  2. Schakel Producten per batchnummer wijzigen in
  3. Voer een waarde in bij Voer batchgrootte in: (bijv. 500 of 250)
  4. 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:

ServertypeVoorgestelde batchgrootte
Gedeelde hosting200-300
VPS of Cloud500-1000
Toegewijde server1000-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 het wp-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.php door define('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.

Crash-recovery en geparkeerde feedwaarschuwingen van adaptieve batchgroottes (Product Feed Pro 13.5.7+) worden onvoorwaardelijk gelogd naar dezelfde woo-product-feed-pro logbron, ongeacht de instelling "Logging inschakelen". Als uw feed na herhaaldelijke crashes blijft vastlopen, controleer dan WooCommerce → Status → Logs, zelfs als u geen logging hebt ingeschakeld.

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

  1. Bewerk uw feed en ga naar het tabblad Algemeen
  2. Stel Vernieuwingsinterval in op Uurlijks, Dagelijks of Twee keer per dag (Product Feed Elite ondersteunt ook aangepaste intervallen)
  3. 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

  1. Ga naar Product FeedInstellingenAlgemeen
  2. Schakel HTTP-feedgeneratieverzoeken uitschakelen in
  3. 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

DoelFiltertypeVoorbeeldconditie
Alleen beschikbare producten opnemenOpnemenVoorraadstatus = op voorraad
Producten uit een specifieke categorie opnemenOpnemenCategorie bevat [doelcategorie]
Producten boven een bepaalde prijs opnemenOpnemenPrijs groter dan X
Producten die niet op voorraad zijn uitsluitenUitsluitenVoorraadstatus = nietopvoorraad
Producten zonder afbeeldingen uitsluitenUitsluitenHoofdafbeelding is leeg
Producten met zeer lage prijzen uitsluitenUitsluitenPrijs kleiner dan X
Specifieke categorieën uitsluitenUitsluitenCategorie bevat [categorie naam]
Specifieke merken of tags uitsluitenUitsluitenMerk/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:

Deze opties bevinden zich op het tabblad Algemeen van de feed en kunnen het aantal verwerkte producten aanzienlijk verminderen.

Samenvatting prestatieoverwegingen

FactorAanbeveling voor 10.000+ producten
BatchgrootteLaat 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_time300 seconden of hoger
memory_limit256 MB of hoger
VernieuwingsmethodeGepland (uurlijks/dagelijks) of server cron, niet alleen handmatig
HTTP-generatieUitschakelen als feeds vastlopen of de time-out bereiken
FiltersSluit uit van voorraad, irrelevante categorieën of lage waarde
Variabele productenGebruik "laagst geprijsd" of "standaardvariatie" waar van toepassing

Problemen oplossen met veelvoorkomende problemen

ProbleemOplossing
Feed blijft verwerkenVerklein de batchgrootte; schakel HTTP-feedgeneratie uitschakelen in; controleer Help, mijn feed wordt niet bijgewerkt of blijft verwerken!
Time-outfoutenVerhoog max_execution_time naar 300+; verklein de batchgrootte
Fatale fout / geheugen uitgeputVerhoog memory_limit naar 256MB+; op Product Feed Pro 13.5.7+ degradeert adaptieve dimensionering gracieus in plaats van direct te falen
Minder producten dan verwachtControleer filters en regels; zie Help! Ik heb geen of minder producten in mijn productfeed dan verwacht
ActieplannerfoutenGa 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:

Was dit artikel nuttig?

Gerelateerde artikelen

Voltooi uw aankoop
AdTribes WooCommerce Productfeed

De beste WooCommerce productfeedplugin

  • AdTribes Pty Ltd
    ABN: 40 675 636 816
Product
Bronnen & Info
Partnerwebsites
Rymera