MLS Import Documentation Dec 29, 2019 · 12 min read

How the hourly auto update works

B
Benjamin Levy
Contributor · MLSimport

Imported listings update once every hour. Each hour, MLS Import asks your approved MLS feed which listings changed since its last check, then updates price, status, description, photos and any other field you import on the matching WordPress property posts. A new listing usually shows up within an hour or two of going live in your MLS. That needs three things: auto update turned on for the task, a WordPress schedule that runs on time, and an MLS that has sent the listing to your feed. Removing homes that left your MLS is a separate daily cleanup, which runs only if you turn it on.

It is enabled per import task, with the Enable Auto Update every hour switch. A task with the switch off is imported once and never updated again.

To pull only your brokerage’s listings, set an office filter before the first import. The office listings setup guide shows how to find the right office code and get those listings updating on your site.

Can I trust the auto update without checking my site against the MLS every week?

Yes, once four things are set up right: every import task has Enable Auto Update every hour turned on, a real server cron runs the WordPress schedule, both MLS connection banners are green, and your Select Status and Protected Statuses lists match what your board lets you show. After that a short monthly look, described under Checking it is working, replaces the weekly hunt. Your board cares about this too: NAR’s IDX policy says displays must refresh at least every 12 hours, and your MLS can be stricter. An hourly update on a working schedule is well inside that; a check by hand every week is not.

Turning it on

  1. Open the task under Import Tasks.
  2. Turn on Enable Auto Update every hour, near the top of the task screen.
  3. Click Update.
  4. Check the Auto Update Enabled column in the Import Tasks list. It reads yes for every task on the schedule.

What each run does

  1. It stops immediately if a previous run is still going, so two syncs never process the same listings at once.
  2. It stops if the MLS connection is not valid, rather than repeatedly failing against a dead token.
  3. It collects every import task with auto update switched on and works through them one at a time.
  4. For each task it asks the MLS for listings that match the task’s filters and were modified since its last check.
  5. Anything returned is written: existing properties are updated in place, and listings newly matching the filters are added.

The plugin stores the time of its last check, so each run picks up everything changed since then, including a listing changed right at a run boundary. On a Canadian REALTOR.ca site, an hourly run is well inside CREA’s 24-hour rule; see how to sync REALTOR.ca listings to WordPress.

Pro Tip

The sync only runs on a task that has already completed an import. A brand new task is skipped until you run it manually once, and a task whose manual import was killed part way through stays skipped until you run it again and let it finish. That is the usual reason one task stops updating while the others carry on.

What the sync does not do

  1. It does not fetch listings that have not changed. A listing missing because an initial import stopped early is not picked up by the sync unless the MLS modifies it again.
  2. It does not delete sold homes or listings that have left the MLS. That is the daily cleanup (reconciliation), a separate pass that runs once a day when you turn it on. See how the daily cleanup removes sold listings.
  3. It does not rebuild titles. Title format is applied when a property is imported.

How often do imported listings update, and how fast do sold or withdrawn homes come off?

Imported listings update once an hour, and sold or withdrawn homes come off at the next daily cleanup, if you have turned it on. A home that goes live in your MLS at 10:05 is usually on your site by about 11:00. Hourly is the check schedule, not a promise of an instant change after an agent edits the MLS. The hourly update changes a sold home’s status first; the daily cleanup (reconciliation) then removes it, unless your settings tell it to keep that status.

What happened in the MLS What your site does When, and what can hold it up
Price, status, text or photos changed The hourly update writes the new values Within about an hour. A late feed, auto update switched off, an unfinished first import or a stopped schedule can hold it up
Home is still in the feed but moved to a status you do not import (like Closed) The daily cleanup removes it Next daily pass. A protected status or a cleanup that is off can hold it up
Home left the feed (often withdrawn or expired) The daily cleanup removes it, unless its status is protected Next daily pass. The cleanup stops without deleting anything if the feed request fails, comes back empty or returns less than 80% of what your site holds
Home left the feed but still says Active on your site It stays, because new setups protect Active, Active Under Contract, Coming Soon and Pending Until you remove it or change Protected Statuses

Are sold listings removed from my site automatically?

Yes, once the daily cleanup is on, unless you told the import task to keep them. A home that moved to Closed is removed when Closed is not in the task’s Select Status list. A home that left your MLS completely is removed unless its status is in Protected Statuses. A task made in the setup wizard keeps Active listings only and protects Active, Active Under Contract, Coming Soon and Pending. Want a page of past sales? Add Closed to both lists, after asking your board; see closed and off-market listings. Want sold homes gone? Leave Closed out of both lists; see protected statuses.

Why can a change, a new home or a sold home show up late?

  • Your MLS has not sent it yet. Your site can’t be newer than your MLS, and some listings are never released for public websites. See why a listing is on Zillow but not on your website.
  • Your site is quiet, so WordPress runs its schedule late; see the cron tip under Checking it is working.
  • The listing doesn’t match the task. Check its status, location and property filters against the task’s.
  • A status is protected, so the daily cleanup keeps the home.
  • A saved copy of the page. Your cache plugin or host cache can show old pages. A site search that shows only Active homes can also drop a sold home before its page is removed.

To find where a change stopped, compare the MLS timestamp with the feed and the WordPress post before blaming the cache; the outdated-listings guide has the fix for each cause. A website’s Active label alone can’t confirm a home is still available, so buyers should ask an agent to check the MLS before booking a tour.

Pro Tip

Removal is daily, so ask your board how fast off-market homes must come down. Then check that Protected Statuses doesn’t keep homes your board wants gone. See MLS/IDX compliance rules.

Will the hourly update overwrite the description and edits I made to a property?

It depends on the field. If the plugin imports a field, the plugin owns that field; everything else on the property is yours. The hourly update writes every field you ticked on the Select Import fields tab, and on most sites the description is one of them, so a rewrite of an imported field is put back the next time that listing changes at the MLS, such as a price drop or a new photo. That can take days, so a week of survival is not proof you are safe. Running the import task by hand writes the same fields and replaces the same edits right away. See which listing edits survive the hourly update.

You changed this on the property page What the next update does to it
Description (the agent’s public remarks) Replaced with the MLS text, if that field is ticked for import
Price, status, beds, baths, size, photos Replaced with the MLS values, the next time the MLS changes that listing
Any other field ticked on Select Import fields Replaced, even when it is marked Hidden from Public
Property title Stays. The title is set once, at import
Page address (the slug) Stays
Featured flag, layout, agent, map zoom (set on first import only) Stays
A custom field the plugin does not write, such as an ACF field Stays
SEO title and meta description in your SEO plugin Stays. MLS Import does not write them
Theme labels such as Hot, Reduced, Hot Offer or Open House (standalone mode) Stays
Properties you added by hand Stays. The update only touches properties that carry an MLS number

How do I keep my own description on an imported listing?

  1. Run your import first, so every property arrives with its MLS text.
  2. Open MLS Import Settings, then the Select Import fields tab.
  3. Search for the public remarks field. Its MLS field name is usually PublicRemarks.
  4. Untick Import it? for that field. The screen saves on its own.
  5. Rewrite the descriptions you want to change, on the property page in WordPress.

Know what that changes first. Field choices are one setting for every import task, so there is no switch that freezes the description on one listing only. Properties you already imported keep the text they have. New listings that arrive later come with no MLS description, so you write those yourself. And a delete and re-import from the Tools tab brings the MLS text back, so keep a copy of anything you wrote.

Where can I add my own text so it is never replaced?

Put it where MLS Import does not write: a custom field such as “Our take on this home”, added through your theme or a custom fields plugin and shown on the property page, your SEO plugin’s title and description, or the property title after import. The MLS description then stays current right next to your words. See how to keep neighborhood text when listings update, and for neighborhood or building pages, SEO for imported listings. Before you rewrite remarks, check your board’s rules: some MLSs want the agent’s remarks shown the way the feed sends them. See MLS display rules: attribution, internet flags and protected data.

Checking it is working

The Last Action column in the Import Tasks list shows when a run last found new or edited listings for that task. It moves when there was something to do, so on a quiet task it can be a few days old while the schedule is perfectly healthy.

For proof that properties are actually changing, open Import History and read the Source column. Every add, edit and delete is recorded there with a timestamp, and a scheduled run is labelled Automatically while a run you started by hand is labelled Manual. The screen filters by search term, by action and by import task, so narrow it to one task and read the sources down the column.

Two more signals need no MLS login: administrators see an activity notice across wp-admin with how many homes were added, edited and deleted in the last 24 hours, and the daily listing changes email arrives on days with changes. If your market is busy and it stops for a few days, check the schedule.

Once a month, about ten minutes is enough on a healthy schedule. Pick 2 or 3 homes you know went pending or sold this month and search their MLS numbers in Import History; each should show an edit, or a delete if it left the feed. Compare the number of active homes on your site with your MLS count for the same search; a count that keeps going up means old homes are not being removed, so check Protected Statuses on the task first. Check again right after a plugin update, a new MLS password or token, or a feed change your MLS announces.

Pro Tip

Hourly means hourly on a site with visitors. WordPress fires its schedule when someone loads a page, so a quiet site can drift well behind. If your listings must be current at a fixed time, run the schedule from a real server cron.

Frequently asked questions

Can I make the sync run more often than hourly?

No. Hourly is the schedule, and it matches how often most MLS feeds are worth polling. Running more often adds load without adding accuracy, since your feed does not update faster.

Should auto update be on for every task?

Yes for anything you want kept current, which is normally all of them. The exception is a task built for a one time historical import that you do not want touched again.

Does the sync count against an MLS request limit?

It makes one query per enabled task per hour, plus a request for each batch of listings it has to write. Boards that impose a limit set it far above that, but if yours has a strict cap, reduce the number of tasks with auto update on.

My prices are stale but statuses are current. Is that possible?

Only if the price field is not among your imported fields. The sync writes every field you selected, so a field that is never updated is usually a field that was never selected on the Select Import fields tab.

  1. Checking that auto update is running
  2. How daily reconciliation works
  3. Setting up a real server cron
  4. Cron not working: a checklist

If a task is enabled and its Last Action has not moved in days, send us the task name and we will check what the feed is returning for it.

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