{# Public per-postcode SEO page (issue #41). Self-contained HTML so a search-engine crawler can index the full payload without needing JS or external CSS. Inline CSS is deliberate — keeps the rendered byte count tight (one HTTP response, no extra round trips) and dodges Whitenoise versioning surprises for crawlers that don't follow asset URLs. No personalisation: every visitor sees the same render, which is why the view sits under @cache_page(24h). Authenticated users get a "View in app" link out to /app for the ranked, personalised view. Section order follows the issue body: hero → demographics → schools → recent sales → transit → crime → outbound REA/Domain → footer (privacy / terms / data sources). #} {# Canonical title. None is best-effort (sourced from schools in the postcode); falls back to just "Postcode 3000" when no school references the postcode. #} Postcode 6158 — nestfinder {# Meta description: <=160 chars is the Google sweet spot. We compose from concrete numbers (median income, mean sale price) so the snippet is informative even when truncated. #} {# Canonical + OG hostnames come from settings.SITE_DOMAIN (env-driven) so staging / preview / prod each render their own absolute URLs without template forks. Default is live.marzuki.co. #} {# Open Graph tags so a paste into Slack/Twitter renders a useful preview card. og:image is the SVG logo until the per-postcode map screenshot pipeline lands (out of scope per the issue). The SVG ships in client/public and is served by the SPA container — a 1.2k-line vector that previews cleanly on Slack/Twitter cards while we build the proper raster og-image generator (follow-up). #}

Postcode 6158

Greater Perth · Independent suburb profile from nestfinder. Updated monthly from public data sources.

View ranked suburbs in the app

Demographics

Median age
44 years
Median family income
$3,178/week
Median personal income
$1,075/week
Median mortgage
$2,600/month
Median rent
$420/week
Mean household size
2.5 people
Owner-occupied
76%
Unemployment
4.2%

Top schools

No schools registered in this postcode.

Recent sales

Mean sale price
$1,735,000
Per bedroom
$517,083
Mean bedrooms
3.7
Mean bathrooms
2.1
Mean parking
2.2
Mean land area
544 m²

Commute to CBD

By public transit
0.8 hrs
By car
0.5 hrs
By bicycle
1.1 hrs

Crime rates

Break-ins
1,048/yr
Motor vehicle theft
1,699/yr
Violent offences
3,325/yr

Source: state crime statistics agencies. Per-LGA figures allocated to postcodes via population weighting.

{# Outbound REA/Domain links route through the affiliate-redirect endpoint (issue #138) so the click is captured and the upstream URL is augmented with ``utm_source=nestfinder``. The SEO page is the long-tail traffic surface — wiring it direct to REA/Domain would leak the strategy's revenue engine (per-cohort affiliate attribution) to crawler / unauthenticated traffic. No ``profile`` / ``intent`` on this surface: the SEO visitor has no profile (anonymous) and no scoring context (postcode-only page). The redirect view's default campaign is ``postcode_rank``, which is exactly the segment this surface represents. #}

See current listings