# Help4 Real-Estate SEO and IndexNow

Help4 Builder Suite 1.3.261 adds first-party real-estate metadata, connected schema, social-image overrides, IndexNow delivery, and indexing diagnostics. The SEO editor remains authoritative per item, while MLS, IDX, and realty plugins can supply or override values through documented WordPress hooks.

## Real-estate editor

Choose **Real Estate Listing** in the Help4 SEO schema field for a property post, page, or custom post type. The editor then accepts:

- Property type: `SingleFamilyResidence`, `Apartment`, or `House`.
- MLS/listing ID, sale or lease action, availability, price, currency, and offer expiration.
- Bedrooms, bathrooms, rooms, year built, floor size, and lot size.
- Street, locality, region, postal code, country, latitude, and longitude.
- One or more HTTP(S) listing-image URLs, including images that are not WordPress attachments.

Public output is one connected JSON-LD graph containing a `RealEstateListing`, the selected residence type, `Offer`, `PostalAddress`, optional `GeoCoordinates`, and `ImageObject` nodes. Floor size uses `QuantitativeValue`; lot size uses an extensible `PropertyValue` because Schema.org does not define a direct `lotSize` property on these residence types.

The direct **Primary Social Image URL** field precedes the featured image and global fallback. **Open Graph Object Type** can be set per item and is no longer forced to `article` for every singular custom object.

## IndexNow

IndexNow is disabled until an administrator enables it under **Help4 > Settings > SEO** and saves a valid key. The key is served from the public site root only while the site is indexable.

- Published URL changes and deletions are stored as independent queue records.
- Requests contain at most 500 URLs.
- HTTP `429` and `5xx` responses remain queued with exponential retry delays.
- Permanent protocol failures are retained separately for diagnostics.
- Known staging hosts and sites with **Discourage search engines** enabled do not queue or submit URLs.
- **Help4 > SEO** shows queue depth, the latest response, retry state, failed items, and full-index progress.
- **Queue Full IndexNow Sweep** walks public content in bounded batches without replacing the change queue.

IndexNow is an optional external service. A submission sends the public site host, verification key and key location, and the affected public URLs to the configured IndexNow endpoint. See the plugin readme for the service disclosure and provider terms.

Help4 does not use Google's retired unauthenticated sitemap-ping endpoint. It also does not send real-estate inventory to Google's Indexing API, which Google documents for job postings and livestream events rather than property listings.

## SEO health

Use **Help4 > SEO > Refresh SEO Health** to record:

- Sitemap URL, HTTP status, and URL count.
- Missing titles, descriptions, effective canonicals, and social images.
- Duplicate titles and descriptions.
- Structured-data coverage grouped by post type.
- IndexNow queue, response, retry, failed-item, and full-sweep state.

WordPress paginated post-type sitemaps that contain URLs are repaired to an HTTP 200 response when a query-state conflict would otherwise leave the response marked 404.

## Integration contract

Realty and MLS integrations may write these normalized post-meta keys or use the filters below. A value edited in Help4 SEO remains the default unless an integration deliberately filters it.

- `_h4_seo_schema_type`: use `realestatelisting` to enable the real-estate graph.
- `_h4_seo_real_estate`: normalized real-estate field array.
- `_h4_seo_og_type`: per-content Open Graph object type.
- `_h4_seo_social_image_url`: direct HTTP(S) primary social image.
- `h4bs_open_graph_type`: filters the effective Open Graph type; receives type, post ID, and schema type.
- `h4bs_primary_social_image_url`: filters the primary image before attachment/global fallbacks; receives URL, post ID, and context.
- `h4bs_social_image_url`: filters the final social image; receives URL, post ID, and context.
- `h4bs_should_render_real_estate_schema`: lets an integration suppress the native graph when it intentionally owns the complete graph.
- `h4bs_real_estate_listing_schema`: filters the listing node.
- `h4bs_real_estate_property_schema`: filters the residence node.
- `h4bs_real_estate_offer_schema`: filters the offer node.
- `h4bs_real_estate_image_schema`: filters all image nodes.
- `h4bs_real_estate_graph`: filters the complete connected graph.
- `h4bs_indexnow_endpoint`: filters the IndexNow API endpoint.
- `h4bs_indexnow_submitted`: fires after an accepted submission with URLs, HTTP status, and remaining queue count.
- `h4bs_seo_health_sitemap_targets`: filters sitemap targets used by the health report.

Realty Core can keep its duplicate-MLS redirects, incoming-title rules, and data import responsibilities while gradually handing metadata, social images, schema, sitemap status, or IndexNow delivery to Help4. During migration, suppress one graph/submission owner so the same property is not emitted or submitted twice.
