<?xml version="1.0" encoding="UTF-8"?>
<!--
  SITEMAP MAINTENANCE INSTRUCTIONS
  =================================
  When you add a new public-facing page to the app, you MUST update this file.

  "Public-facing" means any static route that unauthenticated visitors can
  reach and that search engines should index. Current examples:
    /                                (home landing)
    /register                        (parent registration form)
    /our-coaches                     (coaches page)
    /bishan-swimming-complex         (location landing page)
    /toddler-swimming-lessons        (programme landing page)
    … etc.

  DO NOT include:
    - Dynamic/token-based routes  (e.g. /invoice/:token, /swimsafer-booking/:token)
    - Auth-only pages             (e.g. /dashboard, /students, /finance)
    - Login page                  (not indexed, leads to internal app)
    - Redirect aliases            (e.g. /toddler-swimming-lesson — it redirects, not a real page)

  Where to look for public routes:
    client/src/App.tsx  →  the "if (!user)" Switch block lists all unauthenticated routes.

  After updating this file, run the validation script to confirm nothing is missing:
    node scripts/check-sitemap.js
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://oyouguaquatics.com/</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/register</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/toddler-swimming-lessons</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/childrens-swimming-lessons</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/fees</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/terms-and-conditions</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/monthly-schedule</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/our-coaches</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/bishan-swimming-complex</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/delta-swimming-complex</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/jalan-besar-swimming-complex</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://oyouguaquatics.com/teck-ghee-swimming-complex</loc>
    <lastmod>2025-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
