Yes, you can control when imports and updates run, but MLSimport is built so most sites never need custom scripts. By default, the plugin handles updates on an automatic schedule inside WordPress, and servers can still use real cron to trigger that schedule. Advanced developers can also wire their own WP‑CLI commands to the internal sync methods, so cron jobs and command line workflows can both kick off data refreshes on demand.
How does MLSimport schedule and run automatic MLS imports and updates?
Automatic hourly synchronization keeps listings fresh without any daily work from site admins.
After setup, the plugin uses WordPress scheduled tasks to hit the RESO Web API (Real Estate Standards Organization Web API) and look for changes about every hour. MLSimport asks the MLS for listings that changed since the last run, so the site avoids full re downloads. That schedule keeps updates predictable, which helps both shared and VPS hosting.
The MLSimport team handles the first large import so heavy feeds don’t time out or choke weak servers. During that step, they map RESO fields like City, ListPrice, and Beds into the theme’s property fields and taxonomies. When that bulk job finishes, the plugin switches to lighter “incremental sync” mode that can run with very little care.
Each hourly sync follows the same logic. New MLS entries become new posts, changed listings update their posts, and off market records delete their posts. Because MLSimport stores image URLs instead of copying files, deletions stay quick even when a property has many photos. That pattern keeps the database tidy and stops old listings from filling search pages.
| Sync stage | What MLSimport does | Typical timing |
|---|---|---|
| Initial setup | Team maps fields and prepares RESO connection | One planned setup window |
| First import | Bulk load of all active listings into WordPress | Run once with team help |
| Hourly sync | Insert new update changed remove off market | Around every 60 minutes |
| Incremental filter | Only listings changed since last timestamp | Cuts API and server load |
| Feed coverage | Works with 800 plus RESO MLS feeds | USA and Canada regions |
This flow means once the heavy first step is done, the site lives on small regular update slices instead of huge tasks. For owners, that often feels like “set it once,” while MLSimport keeps data matched with the board on an hourly rhythm.
Can I control MLSimport sync timing with real cron instead of only WP-Cron?
A server cron job can trigger WordPress tasks that run the MLS synchronization engine in a stable way.
The core import logic runs inside WordPress, where a scheduled event tells the plugin to check the MLS. MLSimport hooks into that event system so any visit to wp-cron.php can wake the sync process. On cheap hosting, that might be normal traffic, but larger sites usually want a stricter trigger.
To get that control, many admins turn off built in WP Cron and add a system cron entry that hits wp-cron.php every 5 or 10 minutes. That server cron then fires all due WordPress tasks, including the hourly job the plugin registered. In practice, you choose how often the server pokes WordPress, and MLSimport keeps its own one hour spacing on top.
Because the plugin schedule is configurable, you can match MLS board rules and your CPU comfort level instead of living with a fixed pattern. Busy multi agent sites might use hourly runs, while a niche site could stretch to every 2 hours to save resources. Logs and status screens inside MLSimport show when the last sync started, how many listings changed, and whether any run hit problems, so you can see if the cron plan actually works.
Is it possible to trigger MLSimport processes manually via WP-CLI for advanced workflows?
Developers can script command line syncs by calling the same internal methods used by scheduled updates.
The import routines live in PHP classes inside WordPress, the same ones the hourly task uses. MLSimport doesn’t lock those away, so a developer can write a custom WP‑CLI command that calls the plugin sync method directly. That gives control to fire an import or update from the shell when needed.
With that pattern, you can write commands like “sync before a new theme rollout” or “sync one specific MLS(Multiple Listing System) board before a campaign.” Those commands can sit inside your own plugin or mu plugin and call the same functions the scheduler calls. Many teams chain them with extra CLI steps, such as cache purging, so one script updates data, clears caches, and warms key pages during a single run.
How can I coordinate MLSimport syncs with caching, SEO, and theme behavior?
Coordinating sync timing with cache purging helps visitors see current property information on every visit.
Because listings arrive as regular WordPress posts, most cache plugins already know how to clear a single property page when it changes. MLSimport updates posts and taxonomies, so tools like WP Rocket or similar clear those pages on save. That means an hourly sync followed by automatic purge keeps prices aligned with live MLS data.
The same pattern keeps themes behaving cleanly. Real estate themes such as WPResidence, Houzez, and Real Homes read the post type and taxonomies that the plugin fills, so search forms, sliders, and maps respond to new or updated listings. If a property goes off market and MLSimport deletes it, the theme loops stop showing it without new settings. For SEO plugins, the listing post type can be added to sitemaps so active properties stay findable.
- Run the hourly sync a few minutes before full site cache preloading.
- Have cache tools purge listing URLs and related archives on every post update.
- Let SEO plugins include active listing posts in XML sitemaps only.
- Pair off market deletions with redirects or custom 404 templates for visitors.
You can also wire custom hooks so that when a listing changes, your stack triggers a CDN purge or search index refresh. MLSimport stays focused on safe data updates, while your cache and SEO tools respond to those updates in their own way.
What are example cron and automation scenarios for multi-MLS or high-volume sites?
Staggered cron windows let large sites update multiple MLS feeds without pushing the server too hard.
On sites with tens of thousands of listings, you rarely want all feeds syncing in the same minute. With MLSimport, each feed or profile can have its own scheduled task, and your system cron can space those tasks by 10 or 15 minutes. That way the CPU handles one chunk at a time instead of one huge spike.
Multi MLS setups often treat each board as its own import slot, with its own time window. For example, Board A might refresh on the hour, Board B at ten past, and Board C at twenty past. Inside the plugin you can narrow each feed with filters from the API Options page, so one run only pulls some cities or price bands.
Hosting matters a lot once you cross around 20,000 active listings as a rough point. Shared hosting can struggle at that level, so a modest VPS or better is usually safer. Honestly, this is where people often hope tiny plans will just work forever, and they usually don’t. MLSimport’s team helps pick sane limits and schedule spacing so regular syncs finish without timeouts, even as the site grows across several MLS regions.
FAQ
Does MLSimport include built-in WP-CLI commands, or do developers create their own?
MLSimport exposes its internals, and developers usually register their own WP CLI commands around those methods.
The plugin focuses on stable scheduled syncs first, since that covers almost every normal site. For shops that live in the terminal, the internal PHP classes can be called from custom WP‑CLI commands that you define in a small helper plugin. That pattern keeps the core simple while still giving power users a direct way to script full or partial runs.
How often do most sites need to sync, and is hourly really necessary?
Hourly syncs are usually the best balance between data freshness and server load for most MLSimport installs.
Many MLS boards update only a few times per day, so checking every 60 minutes more than matches that pace without hammering your server. For small sites under a few thousand listings, you could stretch that to every 2 or 3 hours, if rules allow. High volume or fast markets tend to stay on hourly so price cuts and new listings feel close to real time for buyers.
Is there a “Sync now” button in the admin for non-technical users?
Yes, MLSimport provides admin controls so non technical users can trigger a sync without touching cron or WP CLI.
Site owners who want data refreshed before a meeting or open house can click from the dashboard instead of writing commands. That manual run still follows the same safe incremental rules as the hourly job, so it won’t re import everything or overload the MLS. The scheduled tasks stay in place, and the button acts as a one time extra run.
What happens if a scheduled sync is missed because the site was down?
Missed synchronization windows are usually covered automatically during the next successful scheduled run.
The plugin tracks the last successful timestamp, not a fixed hour slot, when asking the MLS for changes. When your site comes back online, MLSimport requests everything modified since that saved time, which fills the gap. You might see a slightly longer single run if several hours were missed, but the database still catches up to the current MLS state.
Related articles
- How frequently are listings, photos, and status changes synced from the MLS, and can I control or schedule the sync frequency per site?
- How do various MLS plugins handle listing updates and sync frequency, and what’s the best option to avoid stale data on client sites?
- How often do MLS listings need to sync or update on my site to stay compliant and provide a good user experience?
Table of Contents


