Why are my WordPress listings out of date?

BF

The BrokerFold Team — Product + Engineering

Last reviewed

On this page

Stale listings on a WordPress site come from six causes, and they are worth checking in this order: the scheduled import stopped firing, the feed credentials expired, the plugin was abandoned or broke against an API change, imports are timing out partway, the board changed something upstream, or the data is actually fresh and a cache is serving old pages. The first two account for most cases. Each section below opens with the fastest way to check, so you can walk the list in under an hour.

Symptom Check first
Everything frozen at one date WP-Cron, then credentials
Sold/expired still showing as active Credentials or feed-slice change
Some listings fresh, older ones stale Import timeouts
Fresh in admin, stale on the page Cache
Stopped after a plugin or board update Plugin/API drift

1. The scheduled import stopped firing

Check: your cron-event list (a cron-viewer plugin or WP-CLI) for the import job’s last and next run times. WordPress’s built-in scheduler is a pseudo-cron that only fires when someone visits the site, so low-traffic sites miss schedules, and aggressive full-page caching can starve it entirely — the visit never reaches PHP, so the clock never ticks. The fix is structural, not a retry: disable the pseudo-cron and drive wp-cron.php from a real system scheduler every few minutes. If the job ran and data is still stale, keep walking the list.

2. Feed credentials or the agreement expired

Check: the import log for authentication errors — and note that many importers log a “successful” run with zero records when the feed rejects them, which is how credential failures stay invisible for weeks. Tokens expire, passwords get rotated, IP allowlists change when you switch hosts, and the data agreement behind the credentials has its own renewal cycle through your board. If the log shows zero-row runs, confirm the credentials directly against the feed before touching anything else, and check with your broker that the agreement itself is still in force.

3. Plugin abandonware and API drift

Check: the plugin’s last-updated date and changelog against your board’s current API. Canadian feeds have been a moving target — boards have retired older transport protocols in favour of the RESO Web API, and national-pool formats evolve — so an unmaintained plugin eventually points at an endpoint that no longer answers the way it expects. A plugin more than a year stale in a market whose feeds changed this year is a prime suspect. The Canadian plugin landscape and its two feed lineages are mapped in IDX for WordPress.

4. Imports timing out partway

Check: the import job’s runtime against your PHP max_execution_time, and whether runs overlap. A full-refresh import that grew with your market eventually exceeds the time or memory a shared host allows, dies midway, and leaves a tell-tale pattern: recently-touched listings fresh, everything alphabetically or chronologically later stale. Fixes in ascending order of effort: raise the limits, switch the importer to smaller batched runs, move to delta imports rather than full refreshes. At full-board scale this stops being tunable at all — the arithmetic is in can WordPress handle MLS listing volume.

5. The board changed something upstream

Check: one stale listing against the source of record — your board portal, or the listing brokerage’s own site. Boards revise status vocabularies, rename fields, restructure media delivery, and adjust what your feed class is entitled to see; sellers also opt individual listings out of internet display. If the feed’s shape changed, the importer may be faithfully syncing a slice that no longer means what your templates assume. This is the cause you cannot fix locally: it needs the plugin vendor or developer to track the change, which is worth remembering when choosing the route for getting MLS listings on your site.

6. The cache is serving yesterday’s pages

Check: the same listing logged-in versus logged-out, or with a cache-busting query string. If admin shows fresh data while visitors see stale pages, the sync is fine and your page cache’s TTL or purge rules are not: listing pages need short lifetimes or purge-on-update hooks, and CDN caching stacks a second layer to clear. This is the happiest diagnosis on the list — and the most common false alarm.

If the list keeps repeating

A feed that goes stale monthly is not unlucky; it is telling you that freshness on a self-assembled stack is an operations job with no one staffed to it. The honest alternatives are paying someone to own the checklist or moving to a platform where sync, monitoring, and the 15-minute cadence are the vendor’s problem — first-hand detail on what that operation involves is in TRREB listings on WordPress.

Keep reading

Fold your stack into one.

14 days free. No credit card. Your data stays yours.