MLS / IDX Resources Jul 24, 2026 · 37 min read

Are IDX Listings Indexable on WordPress?

B
Benjamin Levy
Contributor · MLSimport

Last updated: June 14, 2026

You pay for IDX every month, and the search value of your listings goes to someone else. That is the trap of iframe IDX: your listings load inside a small window that points to a vendor’s server, so even when Google reads them, it credits that content to the vendor’s domain, not yours. Indexable IDX listings work the opposite way. An iframe is a window into someone else’s house; an imported post is a room in yours. When you import MLS data into WordPress, each property becomes a native post with its own URL on your primary domain, and Google reads the address, price, beds, and baths straight from the page HTML before any JavaScript runs. No iframe, no remote widget. You can do this across 800+ RESO-certified MLS markets in the U.S. and Canada, on themes like WpResidence, WpEstate, Houzez, and Real Homes. One honest caveat up front: indexable does not mean ranked. Importing gets you into the game. Content, internal links, and authority win it.

If you run a small brokerage and the site gets almost no visits even with agents sending buyers your way, read why buyers who “look you up” never land on your brokerage website. The iframe is only one of the leaks.

How do I stop my website from sending visitors to another site to see property details?

You move the property pages onto your own domain. Most of the time, your IDX vendor holds the listing pages. So when a buyer clicks a home, your site sends them to the vendor’s domain, to a subdomain, or into a frame. A setting can sometimes fix the link. The lasting fix is a setup where each listing is a page on your own site.

One agent put the goal well: “I wanted the MLS listings on my own website without sending visitors to a separate IDX page or subdomain.”

Step 1. Click a listing and read the address bar.

If it jumps to another domain (the vendor, Zillow, Realtor.com) or a subdomain, or never changes (the listing sits in a frame, a window showing another company’s page), the page is not on your site. The four setups in the next section explain each one.

Step 2. Try the quick checks.

  • Look in your theme or plugin settings for a link option, like “open listing in new window” or “external link”. Point it at your own property page.
  • Ask your IDX vendor: “Can listing detail pages live on my main domain?” Some vendors can do it. Some charge more for it. Those pages can rank under your domain, but you still can’t edit the listings in WordPress, and they go away if you cancel.
  • Check the buttons on the page. A “more info” or “virtual tour” button can still send buyers away.

Step 3. Put the listings on your own site.

An import plugin such as MLS Import saves each home as a property post at an address like yoursite.com/property/123-main-street. See “Where MLS Import fits” in the next section for what it needs (your broker often signs the MLS approval) and what it costs.

Step 4. Plan for the old links.

When you switch, the old vendor pages go away. Set up redirects where you can; the migration guide shows what you keep and what you lose when you leave a vendor.

Pro Tip

Test it on your phone, too. Open your site, tap a home, then tap every button on the page. If any tap lands on another domain, that is the leak to fix.

What is the difference between framed IDX and indexable IDX for a brokerage website?

The difference is where the listing pages live. Framed IDX shows listings that live on the vendor’s server, inside a window (an iframe) or on a vendor subdomain. Indexable IDX puts each listing on your own domain as a real page Google can read. That one choice decides who gets the Google credit, who controls the design, and what you keep if you leave.

One agent said it plainly: “There are two types of IDX; frame-in and indexable. Frame-in is not visible to Google.” Google can read inside a frame. But it credits that content to the vendor’s site, not yours. So for your brokerage, the result is close to the same.

There are really four setups, not two:

Setup Where the listing page lives Who gets the SEO juice What you keep if you cancel
Framed (iframe) The vendor’s server, shown in a window on your page The vendor Nothing. The listings leave with the vendor
Vendor subdomain Something like search.yourbrokerage.com, run by the vendor The subdomain, kept apart from your main site Nothing
Vendor pages on your domain Your address, but built on the fly from the vendor’s data Your domain gets the page The pages stop. The data stays with the vendor
Imported into WordPress Your own database, like yourbrokerage.com/property/123-main-street Your domain The listing pages stay in WordPress. Updates stop

What each one costs you:

  • Framed: quick and often cheap. You get the vendor’s design, the vendor’s lead forms, and no listing pages of your own.
  • Subdomain: looks like your site. But it builds trust for the subdomain, not for yourbrokerage.com.
  • Vendor pages on your domain: these can rank. You still can’t edit the listings in WordPress.
  • Imported: you get the most control. Your hosting carries the load, because every listing is a page in your database.

Where MLS Import fits: it is the imported kind. It pulls your approved MLS feed into WordPress as property posts, updates them every hour and removes homes that leave the MLS in a daily pass. It works with WpResidence, WpEstate, Houzez and Real Homes, or in Standalone mode on any theme. Photos stay on the MLS image servers. It costs $49 a month or $504 a year, with one MLS feed per site and a 30-day free trial. Your board’s own fee is separate. You still need your MLS approval and hosting that can handle the import. See the requirements before you buy, and for the long version of the four setups, read how MLS websites work: import vs live IDX.

Do imported listing pages on our own domain get more buyers to search on our site instead of Zillow?

No, not by themselves. Imported listing pages rarely pull new buyers away from Zillow on Google. Every agent on your MLS has the same homes, Zillow is huge, and buyers go back to the app that already holds their saved homes and alerts. What your own pages can do is keep the buyers who already know you. They get a real search on your site, saved searches and alerts that come from you. They won’t beat Zillow for most address searches, bring strangers to your site with no other work, or replace a fast reply from a real person.

Buyers search online, but they still pick a person. In NAR’s 2025 Profile of Home Buyers and Sellers, 52% of buyers found their home online and 43% found their agent through a referral. That referred buyer is the one your site can keep.

To be honest, we found no study that measures how many buyers move their search from Zillow to an agent’s site. What agents tell us sounds like this:

> “Within a month of moving, we had clients actually using the search on our site and not zillow.”

What brings her search back to you:

  1. Set her up on your site at the first meeting, on her phone.
  2. Let her see homes and photos without a sign-up form.
  3. Offer a saved search, so new homes reach her by email from you.
  4. Write area pages in your own words, with current homes on them.
  5. Answer fast when she reaches out.

In MLS Import standalone mode, a buyer can save a search with just a name and email, and no account is needed. She clicks a confirmation email first, and then gets at most one email a day, only when a matching home is new or changed. See saved searches belong on your own real estate website.

Pro Tip

Count saved searches, repeat visits and buyers who text you a home from your own site. Those numbers tell you if buyers stopped going back to Zillow. For the local side, read how an independent brokerage competes with Zillow and Redfin in its own town.

Do imported MLS listings help a brokerage rank in Google, or is that a myth?

It’s half true. Imported listings on your own domain can be found by Google, but the feed alone rarely puts a brokerage on page one. Every agent on your MLS gets the same remarks and photos, and so do Zillow, Realtor.com and Redfin. What ranks is the local stuff only you can write, with your listings on the page to back it up.

Here is the honest split:

What the feed does by itself What you add so a page can rank
Puts each listing on its own page on your site, like yourdomain.com/property/123-main-street A page for each neighborhood, subdivision or condo building, in your own words
Lets Google read the address, price, beds and baths right in the page Your take on prices, HOA fees, commute and the area
Updates every hour, so buyers don’t call about homes that already sold Longer write-ups, video and your own photos on your office’s own listings
Gives buyers a reason to keep searching on your site, not Zillow Reviews, your Google Business Profile and links from local sites

Where imported listings have the best shot at showing up:

  • Address searches in smaller markets, where the portals and big brokerages don’t cover the area deeply.
  • Very specific searches, like “homes with a pool in [subdivision]”, when you have a page built for that search.
  • Your own office listings, because you can add to them and the other sites can’t.

One agent said it plainly: “IDX isn’t there for traffic but I think it’s essential to appear like a real estate website.” For a framed feed, that’s the whole story. With imported listings, the pages live on your domain, so the area pages you write link to your own listings and build your own site, not a vendor’s.

What MLS Import does here, and what it leaves to you:

  • It does put each listing on your domain as a normal WordPress page that your SEO plugin controls.
  • It does turn values like city and subdivision into pages of their own. See which plugin auto-generates neighborhood pages.
  • It does not write your titles, meta descriptions or sitemap. Your SEO plugin does.
  • It does not make listing text unique. Shared listing text isn’t a penalty, but it won’t set you apart either.

Start with a farm area you know well, and check local facts such as condo fees or commute options before you publish them. A property page may get visits from address searches, while an area guide may bring buyers who are still choosing where to live, so track those page types on their own (see “Check whether your listings bring buyers from Google” below).

Why doesn’t Google show our brokerage when people search a property address?

Most of the time, Google can see your page. It just picks another copy to show. Zillow, Realtor.com, Redfin and every agent site on your MLS have the same listing text and photos. Google shows one or a few of those copies, and the big portals usually win. Sometimes the cause is on your side: an iframe, a vendor subdomain, a blocked page, or an address the seller chose to hide.

One agent put it this way: “when I google ‘site:…’ I’m not getting the IDX indexed back to my site.” Here is how to find out which cause is yours.

What is going on How you can tell What to do
Google picked another site’s copy Search Console says “Crawled, currently not indexed” or “Duplicate” Build your own page for your office’s listings and link to them from your area pages
Your IDX is frame-in (an iframe) View Page Source shows an iframe tag, not the street address Put listings on your own domain as real pages
Listings sit on a vendor subdomain The page address is on the vendor’s domain, like yourbrokerage.idxvendor.com, or on a subdomain like search.yoursite.com that points to the vendor Put listings on your own domain as real pages
The page is blocked URL Inspection says the page is excluded by noindex or blocked by robots.txt Check your SEO plugin settings for the property pages
The listing sold and the page is gone The old page shows “page not found” Decide whether sold pages redirect to an area page
The seller hid the address The address display flag on the MLS record is set to no Nothing is broken. It is the seller’s choice.
The listing is brand new It went live in the last few days Link to it from your home page and ask Google to index it in Search Console

How to check in 10 minutes

Type `site:yourdomain.com “123 Main St”` into Google. If nothing comes back, Google does not have the page. Then run the View Source and URL Inspection checks in “How to tell if your IDX is SEO-friendly” below. URL Inspection also tells you which page Google chose as the main copy, and whether a noindex setting is in the way. A live test shows whether Google can reach the page now. It does not prove that the page appears for the address search. Google explains how to request another crawl, and why a request does not guarantee a place in search.

Pro Tip

Your own office listings are where you can win. Build a page for each one with your own write-up, video and photos, and link it to the listing page. The portals can’t copy what only you know. For hidden addresses, read MLS display rules.

What proof should we ask for before changing our IDX?

Ask for a working listing page and a clear account of what the page check found. A demo shows how listings work. It does not prove your brokerage will get more Google visits.

Ask your website team for What it helps you check
One current listing link on your own site Whether buyers can open a page for that home
Google’s saved page record and live test Whether Google has the page and can read it now
The full address in Google’s view of the page Whether the home facts reach Google
Any setting that keeps the page out of search Whether your site asks Google to leave it out
Visits from address searches over a stated period Whether the page gets clicks, not just whether it exists

Keep a copy of the results before a change. Check the same pages afterward. A change in visits can have more than one cause, so note listing status changes and other website work too.

Does our absence from Google mean the property is not for sale?

No. Google search results do not prove a home’s current status or who holds the listing. Buyers should confirm those facts with the listing brokerage. Your office should check its own page and MLS record before treating a missing Google result as a feed problem.

What this guide covers

  1. Why iframe IDX costs you the SEO value of your listings
  2. SEO-friendly URLs and permalink structure
  3. Meta tags and property schema: who does what
  4. Won’t everyone’s listings look the same?
  5. Site speed for heavy MLS data
  6. Neighborhood and feature landing pages
  7. Sold and expired listings
  8. Plugin compatibility
  9. Data portability and migration
  10. Frequently asked questions

Why iframe IDX costs you the SEO value of your listings

Here’s the thing: an iframe is a small box on your page that displays another website. The property address, the price, the description, the photos, all of it lives on the vendor’s server, not on your domain. Google can render an iframe and read what’s inside (Google explains how embedded content can be indexed), so a frame alone does not tell you which page will show in search. But that content is tied to the source URL in the frame, so it gets associated with the vendor’s domain, not yours. And whether Google connects it back to your page at all is never guaranteed, because both pages are valid HTML on their own. The net effect is the same either way: you can have a thousand listings on your site and earn almost none of the search value from them.

Importing flips that. MLSImport pulls MLS data through the RESO Web API (and CREA DDF for Canada) into your WordPress database as a custom post type. Each property becomes a real post with its own URL on your primary domain, rendered as plain HTML by your theme. Address, price, beds, baths, the listing remarks, the features, all of it sits in the page DOM before any JavaScript fires. The script only enhances the gallery and the map. Everything Google cares about is already in the HTML.

A few details make this work cleanly. MLSImport does not set a canonical tag (the tag that tells Google which copy of a page is the main one). Your SEO plugin sets it, the same way it does for your blog posts. With most SEO plugins, that means each listing page points to itself, on your own domain, never to a vendor. And your listings flow into your XML sitemap through your SEO plugin with one checkbox to include the property post type. The custom post type and templates work out of the box on WpResidence, WpEstate, Houzez, and Real Homes, across 800+ RESO-certified MLS markets in the U.S. and Canada.

The iframe model is common and plenty of real agents use it without realizing the cost. It is not a rookie mistake. It is just a layout choice that hands the search value of your listings to the vendor instead of building it on your own domain. And remember the caveat: getting your pages into the HTML makes them crawlable, not automatically ranked. Crawlable is the price of admission.

How to tell if your IDX is SEO-friendly

Three quick checks give you a definitive answer. Run them on your current site before you change a thing.

  1. GSC URL Inspection (the one that settles it). In Google Search Console, paste the listing URL into the URL Inspection tool, click “Test Live URL,” then open the “More info” tab and check the rendered HTML. Rendering, not raw source, is what decides whether Google can index the content and on whose domain it lands. If the property details are missing or point at a vendor URL in the rendered view, that is your answer.
  2. View Source (a fast first pass). Open a listing page in your browser, right-click, choose View Page Source, then hit Ctrl+F and search for the property street address. If the address is in the raw HTML, you are in good shape. If all you see is an iframe tag pointing at a vendor domain, that is a strong warning sign. One caveat: some IDX widgets inject listings with JavaScript into your own domain, so they can look empty in View Source yet still render and index fine. That is exactly why the URL Inspection check above is the one that settles it.
  3. PageSpeed Insights. Run the listing page through Google PageSpeed Insights. An LCP above 3 seconds, or a slow mobile result, means that even when the content is indexable, Google is burning crawl budget on slow pages and may push them down.
Pro Tip

View Source is a quick gut check, but GSC URL Inspection is the test that settles it. Rendering, not raw HTML, is what decides whether Google indexes your listing content and on whose domain it counts.

Get started today: Run that View Source check on three of your busiest listing pages. If all three are iframes, you’ve just found why those listings pull traffic on the portals but almost none on your own site.

Is it bad for SEO if our property search runs on the IDX vendor’s subdomain?

Yes, if the address is on the vendor’s domain, like yourbrokerage.idxvendor.com. Google gives the credit for those pages to the vendor, and you lose them when you leave, with no way to redirect them. If the address is your own subdomain, like search.yourbrokerage.com, pointed at the vendor, it is less bad. You keep the name, but the pages and the listing data still live with the vendor. The word “subdomain” covers both setups, so check the address bar on one of your listing pages to see which one you have. The four setups above compare them with a vendor frame and an import.

IDX Broker’s own help article says it plainly: until you set up a custom subdomain, any indexed IDX pages “will return SEO credit back to our website, idxbroker.com, instead of yours.” A custom subdomain is a real step up. It still builds trust for search.yourbrokerage.com, not for the main site your blog and area pages live on.

To check your setup, run the checks in “How to tell if your IDX is SEO-friendly” above. Then try to add the listing address in Google Search Console; if you can’t verify it, you can’t see how it performs. And ask your vendor in writing: “If we cancel, what happens to these listing addresses, and can we redirect them?” If you leave a vendor subdomain, list your old listing and search addresses first so you can redirect each one, as in “Migrating from another IDX plugin” below.

SEO-friendly URLs: what they look like and why they matter

A good listing URL does three things: it contains the property address, it lives on your primary domain, and it does not change when the listing status changes.

Imported listings follow your standard WordPress permalink settings, so you get clean slugs like yourdomain.com/property/123-main-street instead of query strings like ?listing_id=ABC123 or a vendor subdomain path. With a real estate theme you can fold taxonomies right into the path: /city/miami/area/brickell/123-main-st, or /toronto/condos/123-main-st. Each city or type segment becomes its own crawlable taxonomy archive, which is exactly where the local search traffic lives.

Because every URL stays on your primary domain, your crawl budget and your link equity stay in one place. You are not splitting authority between a vendor subdomain and your main site. Everything you build points back to the same domain.

URL stability matters more than agents expect. A status change from Active to Pending to Sold does not change the listing slug unless you manually edit it. That is what protects your link equity when a listing goes under contract. The link you earned three months ago still works.

So pick a stable permalink pattern before your first import and keep it for at least 12 to 24 months. If you change the pattern mid-run, every single listing URL needs a 301 redirect, and the link-equity clock restarts on each one.

Pro Tip

Lock in your permalink pattern before your first import. Changing slugs later forces a 301 redirect for every listing, and link equity clocks restart on every redirected URL.

Get started today: Go to Settings > Permalinks in your WordPress dashboard, confirm your structure uses a clean path like /property/%postname%/, and write that pattern down. Changing it after your first import forces a 301 redirect on every single listing.

Meta tags and property schema: who does what

MLSImport delivers the structured data fields. Your SEO plugin turns them into meta tags and schema markup. That division of labor matters, so let me be blunt about it.

MLSImport does not generate meta tags or schema by itself. It is not “built-in schema.” What it does is import the fields using RESO Data Dictionary standard names, things like “ListPrice,” “BedroomsTotal,” “Latitude,” and “Longitude.” Those names stay consistent no matter which MLS board you connect, which is what makes the next step reliable.

Because your listings are native WordPress posts, Yoast, Rank Math, or All in One SEO can apply meta-title and meta-description templates that pull those mapped fields automatically. Set a title template once, something like “{address} in {city} for Sale,” and it renders as “123 Main St in Miami for Sale” across every listing. Your meta description template might read “{price} | {beds} beds, {baths} baths in {city}.” You set it one time and it applies to hundreds of listings, and you can override any single high-value page by hand.

Schema works the same way. You add it through your SEO plugin’s schema module or a small child-theme snippet. The schema types that matter for property pages are RealEstateListing, Product (so the price carries through an Offer), PostalAddress, and Place with GeoCoordinates, plus open-house events when you have them. The latitude and longitude import whenever the MLS provides them, which powers your map pins and feeds the GeoCoordinates into your schema.

If you have a developer, they can add custom schema snippets through a child theme without touching MLSImport core, because the structured field data already lives in the post and postmeta. The data is there. The SEO plugin is what publishes it as markup. Buy on that understanding, not on a false “automatic schema” promise.

Won’t everyone’s listings look the same?

Yes, partly. Every site importing the same MLS feed shares identical listing remarks. That is real, and you should not let anyone tell you otherwise. Google knows it too, and it tolerates duplicate remarks. The sites that rank are simply the ones that add something beyond the raw feed.

So the duplicate text is normal and unavoidable. Google does not penalize it, but it does reward pages that bring editorial value. The “cookie-cutter” look people complain about comes from somewhere else entirely: vendor iframe templates all look the same because the vendor controls the layout. Import the data instead, and your theme and brand take over every page, the logo, the color palette, the CTAs, the card layouts, the contact forms, the lead-capture widgets. That part is already yours.

Here are four levers that separate a ranking site from a clone:

  1. Unique local copy on area pages. Add a 150 to 400 word neighborhood blurb above or below the listing grid: schools, parks, commute times, micro-market notes, a few local photos or a video. The grid below it might be identical to a competitor’s, but the page is not.
  2. Internal linking. Blog posts, community guides, school-zone pages, and “best of” roundups that link into your listing archives and back to your area and category hubs. This is how you build topical authority across the whole domain instead of one page at a time.
  3. Stronger title and meta templates. When your snippet reads “123 Main St in Miami for Sale | $850,000, 3 Beds, 2 Baths” and the competitor’s reads “Property, IDX Listing,” you win the click even from the same page-one position.
  4. Strategic noindex. Noindex your low-value archive and search-results pages, expired listings, and staging areas. Keep your priority property and neighborhood pages indexable. You are concentrating Google’s crawl on the pages that can actually rank.

You keep full control of robots.txt and noindex directives through your SEO plugin. MLSImport does not hard-code noindex and does not write your robots.txt. Those calls stay yours.

Pro Tip

Will a short neighborhood note make shared listings rank?

No. A word count does not promise a place in Google’s results. Useful local notes can help buyers, but shared listing text still counts as shared text. Add checked facts about the area and answer real buyer questions. Then use Google Search Console, Google’s free search report tool, to track which pages appear in search.

Get started today: Pick your three highest-traffic area pages and draft one 200-word neighborhood blurb for each: schools nearby, the commute downtown, what actually makes that area distinct. That’s the editorial difference that makes your pages count.

For the full answer on duplicate text, noindex and sold listings, see SEO for imported listings.

Site speed: how heavy MLS data can hurt your rankings

Import 20,000 listings and you create hundreds of thousands of database rows. On cheap shared hosting, slow property queries will burn your crawl budget before Google ever reaches your best pages. MLS data is heavy, and pretending otherwise is how agents end up on a host that chokes.

Two things cause most of the pain. Most agents never think about database rows. Here’s why you have to once you import at scale. First, postmeta bloat: 10,000 to 20,000 listings means hundreds of thousands to millions of postmeta rows for price, beds, baths, coordinates, and features. That drags property queries and pushes your TTFB up. A slow TTFB wastes crawl budget on the very pages Google is already trying to reach. Second, photo weight: at 1 to 3 MB apiece, a 20-photo gallery can easily clear 20 MB, which pushes your Largest Contentful Paint well past the 2 to 3 second SEO-safe window on mobile and triggers a bounce signal. For key listing and search pages, you want TTFB and LCP under roughly 2 to 2.5 seconds on mobile. (For context, the old RETS approach made this worse, since full nightly re-imports could spike CPU to 100% and slow the whole site right when Google was crawling.)

Here is how MLSImport’s architecture keeps that load down:

  1. Photos served from the MLS CDN, not copied into your media library. Your server sends only the HTML shell, and the image weight hits a CDN edge node instead of your hosting account.
  2. Incremental hourly sync through the RESO Web API. Only the changed listings get touched, not the whole feed, so you get a small, predictable background load instead of a nightly CPU spike.
  3. Import filters. Filter by city, price range, property type, or status so the database only carries the slice you actively sell. 500 filtered listings load far faster than 20,000 undifferentiated ones.
  4. Cache-compatible by design. Listings are standard WordPress custom post types, so full-page caching (WP Rocket, LiteSpeed, Varnish), object caching, an HTML CDN like Cloudflare, and lazy-loaded images all work without special exclusions.

On hosting: past roughly 3,000 to 5,000 active listings, move off low-end shared hosting onto a small VPS or a managed WordPress host. For tens of thousands of listings, target 2 to 4 GB of RAM, SSD-backed MySQL, Nginx or Varnish full-page caching, and a global CDN. The import is the easy part. Sizing the host is the part agents skip and regret.

Pro Tip

Run your key listing page through Google PageSpeed Insights before and after enabling full-page caching. Most agents see a noticeable LCP improvement from caching alone, often before any hosting upgrade.

Get started today: Run your single busiest listing page through Google PageSpeed Insights right now and write down the LCP. That’s your baseline. Re-test after you turn on full-page caching and again if you upgrade hosting.

Building neighborhood and feature landing pages that rank

The pages that rank for “condos for sale in [neighborhood]” are not individual listing detail pages. They are area archive pages with a live listing grid and stable editorial content that survives every individual sale.

Building one is straightforward. Filter the MLS feed, map your MLS fields to your theme’s taxonomies (City, Area, Neighborhood, Property Type), and the theme auto-creates archives like /city/miami/ or /area/downtown-miami/. Then enrich each taxonomy term’s description with real content. Layer 200 to 400 words of original local copy over the auto-updating grid: schools, parks, commute options, micro-market context, a community photo or video. The grid refreshes itself as listings change; your editorial copy stays put and keeps ranking.

Feature pages work the same way and almost nobody builds them. Take MLS property flags like City View, Bay View, Waterfront, or Pool, map them to your theme’s custom fields, and combine them with a filtered grid, for example city equals San Francisco, feature equals View, minimum price $800,000. That is a topical page no national portal bothers to create.

Resist the urge to mass-produce. Hand-craft 15 to 40 key interlinked landing pages rather than publishing hundreds of thin near-duplicates, and prune or merge the weak ones. Quality compounds; thin pages just dilute your crawl. The agents winning local SEO right now are running 20 pages with real content, not 200 with nothing to say.

Boutique agents who build out 15 to 40 well-crafted interlinked neighborhood pages commonly find themselves outranking the big portals for hyperlocal terms. Timelines vary by market, but the pattern holds: editorial depth plus internal linking is what the portals won’t do for your ZIP code. The multiplier is internal linking: your neighborhood guides should link down into individual listing archives and also receive links from your blog posts, community content, and “best schools” pages. Want a deeper walkthrough? See our guide to neighborhood landing pages.

What happens to sold and expired listings?

When a listing closes, you have four options for the URL, and the right choice depends on whether that page ever earned any search traffic.

First, the mechanics. Off-market statuses (Closed, Deleted, Expired, Withdrawn) can trigger removal from your WordPress site, but reliable removal depends on WP-Cron running on schedule and your delete and status settings being configured correctly. And if the MLS API is briefly offline, your site keeps showing the last-synced listings and retries at the next scheduled sync, so your listings stay visible to visitors while the connection is restored.

Now the four ways to handle a dead URL:

  1. Keep it as a “Sold” page. Label it “Sold, [address]” and leave it live. Good for long-tail address searches and for showing market activity. Consider hiding the price so nobody complains about stale data.
  2. 301 redirect. Send it to the city, area, or neighborhood page that is still live and relevant. This transfers whatever link equity the listing URL had earned.
  3. 410 Gone. Tell Google the listing is permanently gone. This frees crawl budget for living pages and is the right call for deleted or permanently off-market properties.
  4. noindex. Keep the page live for direct visitors but pull it from Google’s index. A useful interim state while you decide on a permanent strategy.

The durable pattern underneath all four: build your top pages as evergreen area topics with listing grids embedded inside them. When one listing closes, the area page keeps its rankings. The individual listing comes and goes; the page persists. Pages built around searches and areas outlive pages built around a single address.

Plugin compatibility: caching, security, and SEO tools

MLSImport listings behave like regular WordPress posts, so there are no known hard conflicts when things are configured normally. But two settings need attention on every setup, and I would rather tell you than let you find out the hard way.

Because the output is server-rendered, there is no fragile front-end JavaScript framework to wrestle. You do not need JS-minification exclusions or deferred-script workarounds. The usual stack just works: WP Rocket, W3 Total Cache, LiteSpeed Cache, and Cloudflare for caching and CDN (pick whichever your host already recommends; they all work the same way here); Wordfence, Sucuri, and iThemes Security for security; Yoast, Rank Math, and All in One SEO for SEO.

The two real watch-outs:

  1. Cache invalidation on listing update. Enable “purge cache on post update” and “purge cache on post delete” in your caching plugin, and make sure the property post type and its taxonomy archives are in the purge logic. Skip this and your hourly price or status changes show stale data to visitors and Googlebot for hours.
  2. Outbound RESO API calls. A strict Cloudflare WAF or an aggressive security plugin rule can block your server’s outbound HTTPS calls to the RESO and MLS endpoints. Whitelist those domains in the WAF and confirm WP-Cron can fire scheduled events.

Data portability, lock-in, and migrating from another IDX

Because your listings are real posts in your WordPress database, your URLs, your internal links, and your Google rankings survive host moves, theme changes, and even vendor changes. You are tied to WordPress, not to any display vendor. That is the whole game when you think in years instead of months.

Compare that to a pure SaaS or iframe IDX, where the content disappears the day you cancel the subscription. No posts, no URLs, no link equity. It all lived on the vendor’s server, so it all leaves with the vendor.

Now the honest version of the MLSImport side, because I am not going to oversell it. If you cancel or pause, your imported posts remain in your WordPress database and stay exportable and portable, but they stop syncing and immediately start going stale. And MLS board compliance rules limit how long you may display stale licensed listing data. That is a real constraint, not a footnote. Keeping the posts does not mean you may show old licensed data forever. You also still need valid, board-approved MLS credentials to run any of this; MLSImport does not replace the board’s approval.

What stays yours regardless is the structure: a host move or a theme switch between WpResidence, Houzez, Real Homes, or WpEstate does not destroy your URL structure, your domain authority, or your internal links. To protect all of that, build a few habits early: a stable permalink pattern, theme-agnostic custom field naming, weekly full-database backups, and a note of any high-traffic listing URLs you may want to redirect later.

Migrating from another IDX plugin

Migration is usually a one-time weekend setup, not a full rebuild. You are wiring a new data source into the theme you already use.

  1. Enter your MLS API credentials in MLSImport, set your import rules, and map fields to your theme’s property post type (already pre-matched for WpResidence, WpEstate, Houzez, and Real Homes).
  2. Match new URLs to old by reusing the same post-type slug base, and 301 redirect any legacy subdomain or iframe paths to the closest matching new property or search page.
  3. During the 30-day free trial, run in parallel: keep new posts in draft mode while your old IDX stays live. Once you are satisfied, publish the new posts, noindex or shut down the old IDX, and resubmit your XML sitemaps.
  4. Watch Google Search Console crawl stats and your keyword rankings for 4 to 8 weeks to confirm the transfer.
  5. Skip the photo work entirely. There is no re-upload or re-optimization, because photos are served from the MLS CDN.

That is genuinely the whole project for most agents. If you want to test it against your current setup, you can start a 30-day free trial and run both side by side before you commit to anything.

Check whether your listings bring buyers from Google

Check Google visits and buyer leads as separate results. Google Search Console, Google’s free search report, shows clicks to your pages. Your website reports and lead records help you check what buyers did next. A count of pages in Google does not show either result.

  1. Pick a date range. Save the same report each month.
  2. In Search Console, group property pages apart from neighborhood pages and blog posts.
  3. Check searches that do not use your brokerage name. Note address searches on their own.
  4. Track tour requests and contact forms in your website reports. Keep paid ad visits apart from unpaid Google visits.
  5. Note site changes, market shifts, and how many homes were listed during each period.

A rise in clicks after an import is useful to see. It does not prove that the import caused the rise. Better local guides, more homes for sale, or other site changes may also play a part.

Ask any website provider to show the dates, page groups, clicks, and leads behind a traffic claim. With MLS Import, you can use your own site reports to check the result.

Frequently Asked Questions

Does MLSImport create meta tags and schema markup automatically?

No. MLSImport imports the structured data fields (address, price, beds, baths, coordinates) using RESO Data Dictionary field names. Your SEO plugin (Yoast, Rank Math, or All in One SEO) generates the meta title, meta description, and schema markup from those fields. Set a meta-title template in your SEO plugin once, and it applies to every imported listing automatically.

What happens to my listings and SEO if I cancel or pause?

Your imported posts stay in your WordPress database, so your URLs do not disappear and your rankings for area pages hold. But syncing stops immediately and listings go stale. MLS board compliance rules typically require removing or suppressing stale licensed data after a defined period, which varies by board. Your domain authority, internal links, and evergreen area pages remain yours regardless of whether MLSImport is still running.

How fast do new or updated listings get indexed by Google?

MLSImport syncs on a default hourly schedule, with 15 and 30 minute options available too. A new listing is live on your WordPress site within one sync cycle of appearing in the MLS. Google’s indexing timeline then depends on your crawl budget and sitemap setup. Established sites with well-configured XML sitemaps typically see new listings indexed within hours to a few days of going live.

Can I connect more than one MLS to a single WordPress site?

One MLS connection per site is the standard, clean model, with multiple import tasks (price ranges, property types, cities) under that one connection. If you work two distinct markets, the cleanest approach with MLSImport is two separate WordPress sites or subdomains, one connection each.

Where do listing photos live, on my server or the MLS CDN?

Photos are served directly from the MLS CDN image source and are never copied into your WordPress media library. Your server sends only the HTML page shell, and the image weight is delivered from a CDN edge node near the visitor. With MLSImport, that keeps your hosting disk small, your backups lean, and your listing pages fast, so a 20-photo page does not need tens of megabytes of local storage.

How much does MLSImport cost to keep listings syncing?

MLSImport is approximately $49 per month after a 30-day free trial. There is no setup fee, and you can cancel anytime. The plan covers unlimited listings for one MLS on a single WordPress site. The 30-day trial gives you enough time to import a full feed, connect your theme, and verify the setup before you commit a dollar.

Can a small-town agent rank against Zillow and Realtor.com?

Yes, and small-town or boutique agents often have a structural edge. Zillow and Realtor.com optimize for national scale and rarely invest editorial depth in tight local markets. A site running MLSImport with 15 to 40 well-written neighborhood pages, accurate imported data, and real local context (schools, commute, micro-market notes) consistently outranks the portals for hyperlocal terms. They do not know your market the way you do!

Can I test it alongside my current IDX before switching?

Yes. Start the MLSImport 30-day free trial, import your feed, and publish the new posts as drafts while your current IDX stays live. Once you are happy with the import quality and URL structure, publish the posts, noindex or shut down the old IDX, and resubmit your XML sitemaps. Watch Google Search Console for 4 to 8 weeks to confirm rankings transfer to the new pages.

Bringing It All Together

Listings that live in an iframe are invisible, and they vanish the day you stop paying. Listings that live in your WordPress database compound. Every indexed URL, every neighborhood page, every internal link builds on the same domain, and that domain equity is not something you can replicate by switching vendors later. It accumulates on your domain, not on the IDX vendor’s.

So if you want your work to stack up instead of resetting every billing cycle, this is the model built for that. You can start a free 30-day trial, no setup fee and roughly $49 a month after, and import a real feed to see your own listings show up in View Source. And if you do, come tell your fellow agents how it went, drop a comment or join the MLSImport community and share what you learned. This is built for agents who want their work to compound, not disappear when they log out.

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