Skip to content

Estate SEO

On singular estate pages, the plugin can emit schema.org JSON-LD and Open Graph tags from the wpis_* meta already stored on the post. Nothing extra is fetched from ImmoSync at request time.

This runs only when estate import is enabled (enableImportSystem), including when estates are imported into a custom post type.

Configuration → SEO (next to Slugs):

  • Activer le SEO des biens — master switch. Off: no JSON-LD, no Open Graph, no robots override.
  • JSON-LD (schema.org) — independent; disabled unless SEO is on.
  • Open Graph — independent; disabled unless SEO is on.
  • noindex des biens vendus — default on (wpis_status_id = 3).
  • noindex des biens retirés (soft-delete) — default on (wpis_soft_deleted).

Keys present in the theme wpis-settings.json lock the matching admin fields. See Theme settings.

A single application/ld+json script is printed in wp_head:

  • @type: RealEstateListing
  • offers.@type: Offer (price, currency, availability, businessFunction)
  • offers.itemOffered.@type: Place (PostalAddress, optional GeoCoordinates)
Output Source
name wpis_name, else the post title
description wpis_description_short, then long, then base (HTML stripped)
url Permalink
image Featured image (full)
datePosted / dateModified WordPress post dates
Offer.price / priceCurrency wpis_finance_price / wpis_finance_currency unless wpis_finance_hidden
Offer.availability Sell/rent → InStock; sold → SoldOut; other statuses → OutOfStock
Offer.businessFunction Purpose 1 → Sell; purpose 2 → LeaseOut
Place.address wpis_address_*. If wpis_address_hidden, street/number/box and geo are omitted; city/zip/country stay

Filter: wpis_estate_jsonld ($graph, $data).

When Open Graph is on (including on noindex pages, for share previews):

  • og:type, og:title, og:description, og:url, og:locale, og:image
  • product:price:amount / product:price:currency when the price is public
  • product:availability and og:availability (instock, sold out, out of stock)

If Yoast SEO or Rank Math is active, the plugin does not print duplicate og:* tags. It still fills their title, description, URL, and image filters, and still prints product:* tags. JSON-LD is always independent of those plugins.

Filter: wpis_estate_opengraph_tags ($tags, $data).

When SEO is on, sold and/or soft-deleted singles get noindex, follow through wp_robots, plus Yoast (wpseo_robots) and Rank Math (rank_math/frontend/robots) so those UIs cannot re-index the page.

Rented listings (wpis_status_id = 4) stay indexable. The URL itself is unchanged.

Filter: wpis_estate_seo_should_noindex ($noindex, $data, $settings).

  • Theme settings — enableEstateSeo, enableEstateJsonLd, enableEstateOpenGraph, noindexSoldEstates, noindexSoftDeletedEstates
  • Supported fields — wpis_* meta used in the markup