On WP Engine an import typically imports a different number of listings every time it runs: 111 of 280 on one attempt, a different figure on the next. That pattern is a platform execution limit, not a fault in the listing data.
WP Engine caps how long a PHP process may run at the platform level. The value can be lowered from your side but not raised, so the setting MLSImport recommends for larger imports cannot be applied there.
Why the count changes each run
An import task runs inside one background process that pages through the results 25 at a time. When the platform stops that process, everything written up to that moment stays and the rest never runs.
How far it gets depends on how fast the MLS answered, how many photos each listing carried and what else the server was doing. That is why the number moves between attempts while the cause stays the same.
The scheduled action behaves the same way each time: it sits in progress until the queue notices it is gone, then it is recorded as failed.
Before blaming the data, run the same task twice and compare the two counts. Two different numbers means a time limit. The same number twice means something reproducible, such as one listing the run cannot process, and that is worth sending to us with its MLS number.
What to do about it
- Split the feed into several import tasks. Use filters that produce stable groups, such as city, property type or status, and size each task so it finishes inside the platform ceiling.
- Import the backlog first, then let the sync keep up. Once the listings exist, the hourly sync only has changed listings to write, which is a much smaller job than the first full import.
- Test the same site on a platform without the ceiling. A staging copy on a trial account tells you in an afternoon whether the limit is the whole story.
Expected result after splitting: every task completes and is marked complete rather than failed, and the total across the tasks matches the feed.
Splitting works because it divides the result set. Setting a smaller number in the task’s “how many properties to import” field does not, because the next run starts again from the beginning of the same result set rather than continuing past where it stopped. Use that field as a probe to find your ceiling, and filters to do the actual dividing.
If it does not work
- Even a small task fails. Check the MLS connection first. A task that returns nothing looks similar to a task that was stopped.
- Tasks complete but the site is missing listings. The filters across your tasks leave a gap. Compare each task’s found count against what you expect from the MLS.
- The hourly sync still fails while manual imports pass. The sync runs every flagged task in one process, so it is a bigger job than any single manual import. Take some tasks off auto update, or move.
- The PHP error log shows nothing. That is expected. A process stopped by the platform does not raise a PHP error.
Frequently asked questions
Can the execution limit be raised on a higher WP Engine plan?
Ask them directly, because it is their platform setting rather than ours. From what we have seen in support cases, it is enforced above the PHP configuration and only lowered from the customer side.
Is this specific to WP Engine?
The mechanism is not. Any host that caps process run time produces the same symptom. WP Engine gets its own page because the cap is a platform rule rather than a setting you can change.
Would fewer photos per listing help?
Photos are not downloaded into your media library, so they are not the weight you might expect. The time goes on requesting listings and writing their fields.
Can you set up the split tasks for us?
Yes. Open a ticket with your MLS, your listing count and wp-admin access, and we will build the task set with you.
Related
- Imports that stop at 25 listings
- Memory, batch size and large imports
- Hosting requirements and recommendations
- Controlling which listings are imported
- Avoiding overlapping import tasks
Send us your listing count and we will tell you how many tasks it should be split into.