Large catalogs can make Product Feed Pro generation slow, or push it past your server’s time and memory limits. To avoid that, the plugin splits feed generation into batches and processes one batch at a time. This article covers how the plugin picks a batch size automatically, how it self-tunes as your feed runs, and how to set a manual batch size if you ever need a fixed value.
How the plugin picks a batch size
Before any run, Product Feed Pro estimates a starting batch size from your store’s published product count:
| Published products | Starting batch size |
|---|---|
| Up to 1,000 | 200 products per batch |
| 1,001 to 5,000 | 300 products per batch |
| 5,001 to 10,000 | 500 products per batch |
| 10,001 to 50,000 | 1,000 products per batch |
| Over 50,000 | 1,500 products per batch |
Adaptive batch sizing (Product Feed Pro 13.5.7+)
Starting with Product Feed Pro 13.5.7, feed generation no longer sticks to one fixed batch size for the whole run. Every batch is timed and its peak memory use measured, and the next batch is sized from what your host just proved it can handle. This is a Product Feed Pro core feature, so it applies whether or not Product Feed Elite is active.
Time budget: Each batch targets 60% of a time budget calculated from your server’s own limits, so a slow host still makes steady progress instead of timing out.
Growth and memory: The batch size can grow by up to 2x per step, but shrinks as much as needed. If a batch’s peak memory use gets close to your host’s memory limit, the next batch is cut in half immediately, regardless of timing.
Learning across runs: Once a batch completes fully within its time budget, the plugin saves that size for the feed. The next run starts near that learned size instead of back at the table above, so repeated runs on the same host keep getting more efficient.
Crash recovery: If a batch crashes (times out or exhausts memory), the plugin halves the batch size and sets a temporary ceiling so future batches don’t retry at the size that just failed. Each fully completed run afterward raises that ceiling by 25%, so it recovers gradually rather than jumping straight back to the old size.
Benchmark: On an 18,201-product Google Shopping feed, adaptive batch sizing cut a first run from 19 batches down to 5 or 6, and a warm-started run down to 2, for roughly 19% to 24% faster generation. The gain comes from removing repeated WordPress bootstraps between batches, not from faster per-product processing, so the benefit is largest on low-traffic stores where each batch already waits on WP-Cron. For the full picture on large catalogs, see Ultimate guide to scaling feeds for 10K+ products.
Set a manual batch size
Adaptive sizing works well for most stores. Set a manual batch size only if you already know your host has a hard constraint, for example, a shared host with a strict memory cap that you want to stay well under.
- Go to Product Feed → Settings.
- On the General tab, enable Change products per batch number.
- Enter your desired value in the Insert batch size: field that appears.
- Save your settings.

The new value is saved automatically and used starting with the next refresh, manual or scheduled.
Choosing a value: Start lower (100-300) if your feed times out or hits a memory error, and raise it (1,000+) only once you’ve confirmed your server handles the current size without errors. Always test again after changing it.
Feeds parked after repeated crashes
If a feed’s scheduled generation crashes 3 times in a row, Product Feed Pro pauses that feed’s automatic runs and shows an admin notice in wp-admin so it doesn’t keep failing silently in the background. This only pauses scheduled (cron) generation, not a manual refresh you trigger from the Manage Feeds page.
To recover, either lower the batch size manually (above) or simply trigger a manual refresh. A single fully completed run clears the crash count, removes the admin notice, and lets scheduled generation resume.
Checking batch decisions in the logs
Product Feed Pro writes two different kinds of entries to WooCommerce → Status → Logs under the woo-product-feed-pro source:
- Crash and parked-feed warnings appear unconditionally. You don’t need to turn anything on to see them.
- Per-batch sizing decisions (the size chosen for each batch, and why) only appear if you’ve turned on Enable logging in the plugin’s settings.
If a feed keeps getting parked, check WooCommerce → Status → Logs even if you haven’t enabled logging. Turn logging on only if you need the batch-by-batch detail.
Troubleshooting
max_execution_time and memory limit are high enough for your catalog. See Help, my feed won’t update or is stuck processing! for the full diagnosis steps.FAQ
Need more help?
If you’re on Product Feed Elite, open a support ticket, and our support team will help you tune batch size for your setup.
If you’re using the free Product Feed Pro plugin, open a new topic in the WordPress.org support forum.

