<?xml version="1.0" encoding="UTF-8"?>
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
>
  <!-- Landing — top priority. Three localized variants live at the
       same URL but Google still wants the alternates spelled out per
       sitemap entry so it can serve the right language per locale. -->
  <url>
    <loc>https://setpointops.net/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://setpointops.net/" />
    <xhtml:link rel="alternate" hreflang="ko" href="https://setpointops.net/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://setpointops.net/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://setpointops.net/" />
  </url>

  <!-- How-it-works walkthroughs — these carry the most descriptive
       SEO content (step-by-step, real demo data) and are the natural
       search entry points for "how to run a tennis league" etc. -->
  <url>
    <loc>https://setpointops.net/how/league/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://setpointops.net/how/league/" />
    <xhtml:link rel="alternate" hreflang="ko" href="https://setpointops.net/how/league/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://setpointops.net/how/league/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://setpointops.net/how/league/" />
  </url>
  <url>
    <loc>https://setpointops.net/how/open-play/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://setpointops.net/how/open-play/" />
    <xhtml:link rel="alternate" hreflang="ko" href="https://setpointops.net/how/open-play/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://setpointops.net/how/open-play/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://setpointops.net/how/open-play/" />
  </url>
  <url>
    <loc>https://setpointops.net/how/stats/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://setpointops.net/how/stats/" />
    <xhtml:link rel="alternate" hreflang="ko" href="https://setpointops.net/how/stats/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://setpointops.net/how/stats/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://setpointops.net/how/stats/" />
  </url>

  <!-- Contact — secondary but useful for branded "setpoint ops contact" queries. -->
  <url>
    <loc>https://setpointops.net/contact/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://setpointops.net/contact/" />
    <xhtml:link rel="alternate" hreflang="ko" href="https://setpointops.net/contact/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://setpointops.net/contact/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://setpointops.net/contact/" />
  </url>

  <!-- Public live demo league — Google surfaces this for "tennis league
       standings" / "round robin schedule" queries. Stays high priority
       even though traffic is lower because the page is dense with
       real schedule + standings data the search index loves. -->
  <url>
    <loc>https://setpointops.net/public/spring-rr-2026/</loc>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://setpointops.net/public/summer-gk-2026/</loc>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Auth surfaces last — useful only for branded queries. -->
  <url>
    <loc>https://setpointops.net/register/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://setpointops.net/login/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
