MLS / IDX Resources Nov 6, 2026 · 5 min read

Moving a RETS listing site to MLS Import without losing listing URLs

L
laura perez
I’m Laura Perez, your friendly real estate expert with years of hands-on…

Yes, you can move a client’s old RETS listing site to MLS Import and keep most listing URLs working, but the new feed won’t keep them for you. You keep them with three things: a Title Format that rebuilds the old slug, the right theme path, and 301 redirects for everything that still changes. This guide walks a WordPress developer through each step.

RETS is the old way MLSs sent listings to websites, and most MLSs have moved to the RESO Web API, the newer feed that replaced it. MLS Import reads only the RESO Web API and saves each listing as a page on your client’s own domain. Those pages are new pages, so plan the addresses before the first import.

Why do listing URLs change when you leave RETS?

Because the old plugin built the old pages, and MLS Import builds new ones. Three things usually change:

  • The base path. /listing/, /idx/ or /homes-for-sale/ belonged to the old plugin. On the new site, the theme sets it, like /property/.
  • The ID in the address. The new feed carries two IDs: ListingId (the MLS number the public sees) and ListingKey (the system’s own ID). If the old address used an internal RETS ID, it may match neither. Ask the MLS.
  • Spelling. Street and city names can come through differently, like “St” and “Street”.

How do I keep the new address close to the old one?

Set the Title Format on the import task before the first real import. MLS feeds carry no titles, so MLS Import builds one from the fields you name, and on most themes the title becomes the page slug (the last part of the address). The tokens include {ListingId}, {ListingKey}, {Address}, {City}, {PostalCode}, {StreetNumberNumeric} and {StreetName}.

Example: if the old address was /listing/12345678-123-main-st, a format of {ListingId} {Address} builds a slug close to 12345678-123-main-st. Then one pattern redirect handles /listing/ to your theme’s path.

Old address built from Title Format to try What you still need
MLS number plus street {ListingId} {Address} One pattern redirect for the base path
Street address only {Address} {City} A pattern redirect, plus a check for spelling changes
Internal RETS ID {ListingId} {Address} A map of old ID to MLS number, one redirect per listing

Titles are written when a listing is imported. Changing the format later doesn’t rename pages you already have, so get it right on the test. See title format, property status and owner.

Pro Tip

Run the five-listing test import first, then open each test page and compare its address with the same home on the old site. Fixing the format now costs nothing. Fixing it after 5,000 listings means deleting and importing again.

How do I redirect the old listing URLs?

With 301 redirects that you or your developer set up. A 301 tells Google the page moved for good. MLS Import doesn’t create redirects, so use a redirect plugin or server rules.

  1. Export every old listing address from the old sitemap, the database and Google Search Console.
  2. Write down the pattern, like /listing/MLSNUMBER-street-address.
  3. If the new slugs match, write one pattern rule, for example /listing/(.*) to /property/$1.
  4. If the old site used an internal RETS ID, build a map of old ID to MLS number and redirect each one.
  5. After launch, watch Search Console for 404 errors (page not found) for a few weeks.

What about old URLs for sold or expired homes?

They won’t come back from the new feed unless your board lets you show them. MLS Import imports the statuses you pick on the task, and its daily cleanup, once turned on, removes listings that left the MLS. For those old addresses, pick one rule:

  • Redirect to the area or subdivision page the home was in.
  • Return a 410, which tells Google the page is gone for good.
  • Don’t send them all to the home page. Google treats that like a missing page.

If the board allows sold listings, see closed and off-market listings.

Does my client need new MLS credentials?

Usually yes. A RETS login doesn’t carry over. The MLS issues new credentials for the Web API feed, like a token or a client ID and secret, to the agent or broker, not to you. Ask early, because approval can take days or weeks. See who needs to hold the MLS credentials.

Checklist for the move

  1. Have your client ask the MLS for Web API credentials in their name.
  2. Export all old listing URLs and write down the pattern.
  3. Pick the theme mode before the first import; see choosing your theme mode.
  4. Set the Title Format to match the old slug as closely as you can.
  5. Run the test import and compare addresses.
  6. Write the redirect rules.
  7. Run the full import, turn off the old plugin, then turn on the redirects.
  8. Watch Search Console for 404 errors.

Area pages and blog posts are normal WordPress pages, so they keep their addresses. Moving the site to a new domain at the same time? See moving MLS Import to a new domain.

Frequently asked questions

Will MLS Import update the pages my old RETS plugin made?

No, plan for new pages. MLS Import updates the property pages it imported itself. Pages another plugin made belong to that plugin, so remove them once your redirects are in place.

Does MLS Import connect over RETS?

No. It connects through the RESO Web API only. If your MLS still offers only RETS, ask when its Web API feed will be ready. See RESO Web API vs RETS.

Will my client’s rankings drop after the move?

A short dip is normal for any move. Good redirects decide how big it gets. See SEO for imported listings.

Moved a client off RETS already? Tell fellow developers in the comments what worked for your redirects.

L
About the author
laura perez
I’m Laura Perez, your friendly real estate expert with years of hands-on experience and plenty of real-life stories. I’m here to make the world of real estate easy and relatable, mixing practical tips with a dash of humor. Partnering with MLSImport.com, I’ll help you tackle the market confidently—without the confusing jargon.
All posts by laura