MLS Import Documentation Aug 5, 2026 · 5 min read

How many listings can you import

One import task tops out at 10,000 listings. Your server sets the other limit. How to find it and how to split a large market across tasks.

B
Benjamin Levy
Contributor · MLSimport

There is no overall maximum on how many listings can live on your site. There is a maximum on how many a single import task will bring in, and there is a practical ceiling set by your hosting. The first number is fixed at 10,000. The second one you have to find by testing.

This page covers both, and how to split a large market so neither one stops you.

The limit inside the plugin

One import task imports at most 10,000 listings per run. If your filters match more than that, the task takes the first 10,000 and the rest are not imported. Nothing fails and no error appears, so it is worth knowing before you build a task over a large city.

Listings are requested from the MLS in pages of 25 and processed page by page, which is what keeps memory use flat during a long import. A 5,000 listing task is 200 requests, not one large one.

When you save an import task’s filters, the form reports how many listings matched, and the How Many to import field decides how many of them to take. Setting it to 0 means all listings found, still subject to the 10,000 ceiling.

Pro Tip

Set How Many to import to 25 for the first run of any new task. A short run proves the filters return the listings you expected and that your server completes a job, and it costs a minute instead of an hour.

The limit set by your server

The plugin’s limit is fixed. Yours is not. Imports run as a WordPress background job, and the job is subject to whatever your host allows a long running PHP process to do. Two sites on the same MLS with the same filters can behave completely differently.

Three settings decide most of it.

  1. Memory limit. At least 256MB. The plugin warns in the admin when it is lower.
  2. max_execution_time. 0 for unlimited is what the plugin asks for. It warns in the admin on any positive value under 600 seconds, because an import that hits the limit stops part way through a page.
  3. Your host’s own background process limits. These are not PHP settings and not visible from WordPress. Some shared hosts kill long jobs regardless of what your PHP configuration says.

In practice, some servers complete tasks of a few thousand listings and others stall above a few hundred. The only reliable way to find yours is to increase task size gradually and watch where runs stop finishing.

Where to look when an import stops early

Imports are queued through Action Scheduler, which ships with the plugin and has its own screen in WordPress at Tools → Scheduled Actions.

  1. Open Tools → Scheduled Actions on your site.
  2. Look for the mlsimport_background_process_per_item action.
  3. Check which list it is in. Pending means queued and waiting, In-progress means running now, Failed means it stopped.
  4. Open a failed action to read its message. That message names the limit that was hit, whether that was execution time, memory, or a database error.

That message is the useful part. An import that stalls looks the same from the outside no matter what caused it, and the failed action is where the cause is written down.

Splitting a large market into tasks

Whenever a single task would exceed 10,000 listings, or exceeds what your server finishes reliably, split it by a filter that divides the market cleanly.

  1. By city or county. The most common split, and the one that maps to how visitors search.
  2. By property type. Residential in one task, residential lease in another, land in a third.
  3. By status. Active listings in their own task, sold or closed in another, so the volume that changes least is separated from the volume that changes most.
  4. By price band. The fallback when one city is still too large after the other splits.

Build every task you need first, then run them one at a time. Tasks that are already running or already imported should not be edited afterwards, because changing a task’s filters after it has imported can break syncing for the listings it created. Create a new task instead.

Pro Tip

Choose your import fields before the first large import. Field selection applies to newly imported properties, so discovering a missing field after 8,000 listings have arrived means re-importing them rather than adding the field.

Frequently asked questions

Does a bigger server let me import more?

It lets you import more per task and finish more reliably, up to the fixed 10,000 per task. Beyond that the answer is more tasks, not a bigger server. Hosting decides how smoothly you reach the ceiling, not where the ceiling sits.

Do tens of thousands of listings slow the site down for visitors?

The heavy load is during import and sync, not during browsing. Front end performance depends on your theme’s queries and your caching more than on row count. Since no photo files are stored on your server, disk and backup size stay modest even at high listing counts.

Can I import the entire MLS?

No, and it is not the intended use. MLSs hold hundreds of thousands to millions of listings, and importing every one into WordPress would fail on volume and would rarely be permitted by your MLS agreement. Import the market you actually serve.

An import ran and imported fewer listings than the form said it found. Why?

Three usual causes, in order of likelihood. The run hit the 10,000 per task ceiling. The background job stopped on a server limit, which the failed action in Tools → Scheduled Actions will confirm. Or some matched listings were already on your site from an earlier task and were updated rather than created again.

  1. Requirements before you buy
  2. Memory, batch size and large imports
  3. Hosting requirements and recommendations
  4. What MLSImport is and how it works

If a failed action shows a message you cannot place, send us that message in a support ticket and we will tell you which limit it points to.

B
About the author
Benjamin Levy
Writes about MLS feeds, IDX compliance, and running real-estate websites on WordPress at scale.
All posts by Benjamin