<?xml version="1.0" encoding="UTF-8"?>
<!--
  sitemap.xml — the launch-ready list of REAL, index-worthy pages. Hand-maintained
  (small, precise, no dependency): it lists ONLY pages meant to be found in search.

  ⚠ ONE EXCEPTION, ADDED 2026-08-05 (OI-66): the <lastmod> values are GENERATED.
  `scripts/build-redirects.mjs` rewrites them on every build from the last git commit
  that touched each page's own source file, and leaves everything else in this file —
  the comment, the URL list, every <priority> — byte-for-byte alone. Do NOT hand-edit
  a <lastmod>; it will be overwritten, and a date you typed is a date nobody can
  verify. The URLs and priorities stay hand-maintained: which pages belong here, and
  how they rank against each other, are judgements. A date is a fact.
  Check any one of them with:  git log -1 --format=%cs -- src/pages/<page>.astro
  Deliberately excluded: /thank-you and /404 (both noindex forever).
  Inert until submitted in Search Console on launch day — see
  project-docs/LAUNCH-CHECKLIST.md.

  ⚠ KEEP IN SYNC. `scripts/build-redirects.mjs` runs on every build and FAILS if a
  live page is missing from this list or a listed URL isn't a real page — that check
  exists because 7 pages (including /water-damage-restoration, the single
  highest-demand URL on the old site at 10,014 impressions) were built and silently
  never added here. Found in the 2026-07-30 redirect-map pass.

  ⚠ TRAILING SLASHES ARE REQUIRED. Astro builds in `directory` format, so Cloudflare
  serves every page at its slash form and 308-redirects the slash-less form onto it.
  A sitemap URL without the slash is a redirect, not a destination, and disagrees
  with the page's own <link rel="canonical">. All 18 entries were wrong until
  2026-07-30.

  /quote INCLUDED 2026-07-30 (was excluded as /quote.html). It is now a real page
  with genuine commercial intent — "carpet cleaning quote/prices auckland" — and
  transparent instant pricing is the one thing no audited NZ competitor offers, so
  it is the wedge, not a utility screen. Flagged for a §6/§8 content depth check in
  the first post-launch audit pass: the tool carries the page, and a funnel with
  thin surrounding copy is the classic way an otherwise strong page underperforms.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://apexclean.co.nz/</loc><lastmod>2026-08-06</lastmod><priority>1.0</priority></url>

  <!-- Money pages. Priorities follow real demand from the old site's 16-month GSC
       export (07-crawl-inventory/page-value-ranking.csv), not guesswork. -->
  <url><loc>https://apexclean.co.nz/carpet-cleaning/</loc><lastmod>2026-08-06</lastmod><priority>0.9</priority></url>
  <url><loc>https://apexclean.co.nz/quote/</loc><lastmod>2026-08-05</lastmod><priority>0.9</priority></url>
  <url><loc>https://apexclean.co.nz/water-damage-restoration/</loc><lastmod>2026-08-06</lastmod><priority>0.9</priority></url>
  <url><loc>https://apexclean.co.nz/mattress-cleaning/</loc><lastmod>2026-08-06</lastmod><priority>0.8</priority></url>
  <url><loc>https://apexclean.co.nz/upholstery-cleaning/</loc><lastmod>2026-08-06</lastmod><priority>0.8</priority></url>
  <url><loc>https://apexclean.co.nz/rug-cleaning/</loc><lastmod>2026-08-06</lastmod><priority>0.8</priority></url>
  <url><loc>https://apexclean.co.nz/carpet-stain-removal/</loc><lastmod>2026-08-06</lastmod><priority>0.8</priority></url>
  <url><loc>https://apexclean.co.nz/commercial-carpet-cleaning/</loc><lastmod>2026-08-06</lastmod><priority>0.8</priority></url>
  <!-- /types-carpet-pile ranks ~position 2 on the old site. Same URL, no redirect. -->
  <url><loc>https://apexclean.co.nz/types-carpet-pile/</loc><lastmod>2026-08-06</lastmod><priority>0.8</priority></url>
  <!-- /carpet-cleaning-numbers — the definitive PSI/°C/vacuum/dry-time reference (OI-84).
       Built as link-bait: the page other sites can cite instead of guessing. -->
  <url><loc>https://apexclean.co.nz/carpet-cleaning-numbers/</loc><lastmod>2026-08-06</lastmod><priority>0.8</priority></url>
  <url><loc>https://apexclean.co.nz/fabric-protection/</loc><lastmod>2026-08-06</lastmod><priority>0.7</priority></url>

  <!-- Trust & method -->
  <url><loc>https://apexclean.co.nz/how-we-clean/</loc><lastmod>2026-08-06</lastmod><priority>0.7</priority></url>
  <url><loc>https://apexclean.co.nz/the-difference/</loc><lastmod>2026-08-06</lastmod><priority>0.7</priority></url>
  <url><loc>https://apexclean.co.nz/carpet-health-check/</loc><lastmod>2026-07-30</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/our-story/</loc><lastmod>2026-08-06</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/reviews/</loc><lastmod>2026-08-03</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/faq/</loc><lastmod>2026-07-30</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/contact/</loc><lastmod>2026-07-30</lastmod><priority>0.6</priority></url>

  <!-- Service areas -->
  <url><loc>https://apexclean.co.nz/areas/west-auckland/</loc><lastmod>2026-08-06</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/areas/north-shore/</loc><lastmod>2026-08-06</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/areas/central-auckland/</loc><lastmod>2026-08-06</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/areas/east-auckland/</loc><lastmod>2026-08-06</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/areas/south-auckland/</loc><lastmod>2026-08-06</lastmod><priority>0.6</priority></url>

  <!-- Guides (/blog). Added 2026-08-05 with the first post. Priority 0.5: these
       earn their place on informational demand, not on booking intent — a guide
       outranking a money page in the sitemap would misrepresent the site. -->
  <url><loc>https://apexclean.co.nz/myths/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/higher-psi-clean-better/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/vacuum-the-number-nobody-talks-about/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/long-hose-runs-wetter-carpet/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/are-all-truck-mounts-the-same/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/preconditioning-prespray-vs-tank/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/questions-to-ask-a-carpet-cleaner/</loc><lastmod>2026-08-06</lastmod><priority>0.6</priority></url>
  <url><loc>https://apexclean.co.nz/myths/steam-cleaning-vs-hot-water-extraction/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/carpet-still-wet-two-days-later/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/why-did-my-carpet-stain-come-back/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/does-hotter-water-clean-better/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/truck-mount-doesnt-clean-the-technician-does/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/why-cheap-carpet-cleaning-costs-more/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/why-carpet-gets-dirty-again-so-fast/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/does-carpet-cleaning-remove-allergens/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/stains-that-cannot-be-removed/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/why-carpet-smells-worse-after-cleaning/</loc><lastmod>2026-08-05</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/can-carpet-be-overwet/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/what-determines-carpet-dry-time/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>
  <url><loc>https://apexclean.co.nz/myths/experience-matters-more-than-equipment/</loc><lastmod>2026-08-06</lastmod><priority>0.5</priority></url>

  <!-- Legal -->
  <url><loc>https://apexclean.co.nz/terms/</loc><lastmod>2026-08-05</lastmod><priority>0.3</priority></url>
  <url><loc>https://apexclean.co.nz/privacy/</loc><lastmod>2026-07-25</lastmod><priority>0.3</priority></url>
</urlset>
