<?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">

  <!-- Homepage / marketing landing -->
  <url>
    <loc>https://blackboard.fi/</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://blackboard.fi/" />
    <xhtml:link rel="alternate" hreflang="ko" href="https://blackboard.fi/ko/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://blackboard.fi/" />
    <lastmod>2026-09-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Korean homepage. A static page built from src/lib/seo/korean-page.ts and served at /ko/
       by the bb-static-pages edge rewrite (scripts/provision-static-pages.sh). -->
  <url>
    <loc>https://blackboard.fi/ko/</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://blackboard.fi/" />
    <xhtml:link rel="alternate" hreflang="ko" href="https://blackboard.fi/ko/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://blackboard.fi/" />
    <lastmod>2026-09-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Public marketing resources. Trailing slash URLs are canonicalized by
       route metadata; the React app renders these pages. -->
  <!-- Blog INDEX only. Individual published articles (/blog/<slug>/) are
       enumerated by the backend-served dynamic sitemap, which reflects a
       publish/unpublish immediately without a frontend rebuild. It is served
       same-host at https://blackboard.fi/blog/sitemap.xml (the edge prerender
       proxies it to /api/blog/sitemap.xml) and is listed in robots.txt. -->
  <url>
    <loc>https://blackboard.fi/blog/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blackboard.fi/guide/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Legal -->
  <url>
    <loc>https://blackboard.fi/terms/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://blackboard.fi/privacy/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!-- App-only and private account surfaces are intentionally excluded until
       their direct URLs return 200 without relying on client-side navigation. -->

</urlset>
