<?xml version="1.0" encoding="UTF-8"?>
<!--
  Public marketing URLs only. Course detail loc values use the string course
  ids from apps/frontend/src/lib/marketing-data.ts (COURSES[].id) — the same
  ids the /courses/:id route resolves. Legal URLs are the canonical pages
  (/terms, /eula, /privacy, /refund-policy); the /legal/* shortcuts redirect to
  these, so they are not listed. Keep in sync when courses change.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <!-- Core -->
  <url>
    <loc>https://www.cometce.com/</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/florida-real-estate-continuing-education</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/courses</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Course detail pages (string ids from marketing-data COURSES) -->
  <url>
    <loc>https://www.cometce.com/courses/ce14</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/courses/sa-pre</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/courses/sa-post</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/courses/broker-pre</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/courses/broker-post</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Informational -->
  <url>
    <loc>https://www.cometce.com/pricing</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/faq</loc>
    <lastmod>2026-08-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/guide/florida-real-estate-license-renewal</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/guide/easiest-florida-real-estate-ce-online</loc>
    <lastmod>2026-08-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/guide/florida-real-estate-ce-reported-to-dbpr-for-you</loc>
    <lastmod>2026-08-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/guide/florida-post-licensing-45-hour-60-hour-first-renewal</loc>
    <lastmod>2026-08-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/how-to-become-a-real-estate-agent-in-florida</loc>
    <lastmod>2026-07-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/florida-real-estate-license-requirements</loc>
    <lastmod>2026-07-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/how-much-does-a-florida-real-estate-license-cost</loc>
    <lastmod>2026-07-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/how-to-become-a-real-estate-broker-in-florida</loc>
    <lastmod>2026-07-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/how-long-does-it-take-to-get-a-florida-real-estate-license</loc>
    <lastmod>2026-07-31</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/how-hard-is-the-florida-real-estate-exam</loc>
    <lastmod>2026-08-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/how-to-choose-a-florida-real-estate-school</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/florida-real-estate-license-reciprocity</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/how-to-reactivate-florida-real-estate-license</loc>
    <lastmod>2026-09-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/guides</loc>
    <lastmod>2026-08-20</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/tools</loc>
    <lastmod>2026-08-20</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/tools/mortgage-calculator</loc>
    <lastmod>2026-08-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/tools/investment-property-calculator</loc>
    <lastmod>2026-08-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/tools/real-estate-commission-calculator</loc>
    <lastmod>2026-08-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/tools/closing-cost-proration-calculator</loc>
    <lastmod>2026-08-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/author/scott-schubiner</loc>
    <lastmod>2026-08-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/blog</loc>
    <lastmod>2026-08-21</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/blog/mistakes-new-florida-real-estate-agents-make</loc>
    <lastmod>2026-08-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/about</loc>
    <lastmod>2026-08-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Conversion / account -->
  <url>
    <loc>https://www.cometce.com/contact</loc>
    <lastmod>2026-08-12</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <!--
    /affiliate IS NOT LISTED, AND MUST NOT BE RE-ADDED.

    It is registered at App.tsx inside the authenticated switch, below
    `if (!user) return <Redirect to="/login" />`. A crawler is always logged
    out, so following it lands on the sign-in page — verified in a browser
    against production: https://www.cometce.com/affiliate resolves to /login,
    title "Sign In | Comet CE".

    Nothing catches this by status code. The site is an SPA behind a catch-all,
    so EVERY path returns 200 with the same shell — /affiliate, /support and a
    URL that has never existed are indistinguishable to curl. Judge a route by
    where App.tsx registers it, or by rendering it.
  -->
  <url>
    <loc>https://www.cometce.com/signup</loc>
    <lastmod>2026-08-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/login</loc>
    <lastmod>2026-07-25</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!-- Legal (canonical pages; /legal/* shortcuts redirect here) -->
  <url>
    <loc>https://www.cometce.com/terms</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/eula</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/privacy</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/refund-policy</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/auto-renewal-terms</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!--
    Support and Accessibility are public, routed, and linked from the marketing
    footer, and were absent from this file. Accessibility is the sharper of the
    two: an accessibility statement that search cannot find is the one page a
    person using assistive technology is most likely to go looking for.
  -->
  <url>
    <loc>https://www.cometce.com/support</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/accessibility</loc>
    <lastmod>2026-08-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/verify</loc>
    <lastmod>2026-08-20</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/cheapest-florida-real-estate-ce</loc>
    <lastmod>2026-08-28</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/best-florida-real-estate-ce-courses</loc>
    <lastmod>2026-08-28</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/florida-post-licensing-deadline</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/florida-real-estate-license-renewal-deadline</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/do-florida-real-estate-ce-hours-expire</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/florida-real-estate-ce-faq</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.cometce.com/florida-post-licensing-vs-continuing-education</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
