<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <!-- Static pages (tools, features, learn, legal, etc.) -->
  <!--
    No <lastmod> on the children: it claimed 2026-05-13 for a file materially
    regenerated through August, and a stale lastmod is a worse signal than none
    (it tells a crawler not to bother re-reading). Omitting it is valid — the
    child sitemaps carry their own per-URL lastmod.
  -->
  <sitemap>
    <loc>https://propperly.com.au/sitemap-pages.xml</loc>
  </sitemap>
  <!--
    Dynamic suburb investment analysis pages (2,472) — WITHDRAWN 2026-08-29.

    Measured in Search Console the same day: 2,117 URLs sat in "Discovered –
    currently not indexed" with `Last crawled: N/A`, i.e. never fetched once.
    That bucket was 97% of all non-indexed pages and included /about,
    /features, every /tools/* page and most of /learn/* — the pages we
    actually need ranking were queued behind ~2,400 suburb URLs.

    Cause: the suburb pages served byte-identical HTML apart from <link
    canonical> and og:url. They had no registry entry of their own, so
    getPageMeta's longest-prefix match handed all 2,472 the /invest hub's
    title and description, and the suburb data itself is client-rendered.
    Googlebot saw 2,472 copies of one page and throttled the whole site.

    Re-add ONLY when a spot-check of two suburbs shows genuinely different
    server-rendered HTML — not just different meta. Nothing is lost meanwhile:
    these URLs were never indexed, and they remain reachable and linked.
  -->
  <!-- Dynamic learn article pages -->
  <sitemap>
    <loc>https://propperly.com.au/api/learn/sitemap.xml</loc>
  </sitemap>
</sitemapindex>
