REALT.cz — Developer Brief (Colorful Classic)

Single-page, colorful UI. Expand sections; use buttons to download templates and code. Put the files next to this index.html.

SEOPress ProWP All Import Pro + JetEngine Permalink Manager ProMapy.cz LiteSpeed / WP RocketBright Data

01 — Plugin Stack

View details
Theme + Builder
WP Residence + Elementor Pro
Data / Listings
JetEngine (meta, taxonomies, listings)
Importer
WP All Import Pro (+ JetEngine add-on)
SEO
SEOPress Pro
Permalinks
Permalink Manager Pro
Redirects
Redirection
Maps
Mapy.cz tiles (with attribution)
Cache
LiteSpeed / WP Rocket

02 — URL Model

Desired path: /byty/praha-4/podoli/<property>/

Permalink JSON

03 — Data Model

Canonical fields

Disposition, ownership, building_type, condition, energy, heating, location slugs…

normalizers.json

04 — Importer (WP All Import Pro)

Post type: estate_propertyUnique Key: source_id

CSV headers

05 — Area Pages

How-to

JetEngine Term Meta + Elementor templates (hero + listing + map). Use taxonomy property_location.

06 — Maps (Mapy.cz)

Notes

Use Mapy.cz tiles with proper attribution. Store gps_lat/gps_lng as post meta; show on detail and term pages.

07 — SEO (SEOPress Pro)

Titles, metas, JSON-LD

Property pages → Offer/Product schema; enable sitemaps; set canonical. Avoid indexing this hub.

08 — Cache & Invalidation

Policy

Short TTL for lists; purge after imports. MU plugin supports LiteSpeed / WP Rocket.

09 — Redirects & 404s

When a listing vanishes

Set post to draft (if source_status = removed/sold); redirect to parent location; track 404 via Redirection.

10 — QA Checklist

  • Permalinks OK (no diacritics)
  • Import updates price/status/photos
  • JSON-LD valid
  • Map tiles visible
  • Cache purges post-import

11 — Ingestion & Bright Data

parser.py — JSON-LD → CSV (outline)
# Outline:
# 1) GET detail page (respect robots.txt / ToS)
# 2) Parse & merge JSON-LD blocks (price, address, geo, images)
# 3) Normalize using normalizers.json
# 4) Export CSV with WP All Import headers
Scrapy + Playwright (settings snippet)
BOT_NAME='scrapy_realt'
SPIDER_MODULES=['scrapy_realt.spiders']
NEWSPIDER_MODULE='scrapy_realt.spiders'
ROBOTSTXT_OBEY=True
CONCURRENT_REQUESTS=8
DOWNLOAD_TIMEOUT=45

Download parser.py requirements.txt

Code (MU Plugins)

realt-wpai-hooks.php — import glue (snippet)
<?php
// Ensures property_location terms (Praha → District → Neighborhood),
// sets draft for removed/sold, refreshes Permalink Manager URIs post-import.
?>
realt-cache-purge.php — cache invalidation
<?php
// Purges LiteSpeed / WP Rocket on post save and after WP All Import completes.
?>
realt-seo-safety.php — noindex for this hub
<?php
// Adds <meta name="robots" content="noindex,nofollow"> to /dev-brief (if used as a subfolder).
?>

Build: • Colorful Classic UI