<?xml version="1.0" encoding="UTF-8"?>
<!-- v59: <lastmod> stamped on every URL so Googlebot can prioritise
     fresh sections (news/contracts/jobs daily; content pages weekly;
     legal monthly). Hash URLs point at SPA routes — Google treats a
     hash fragment as the same document, so the fragments help
     searchers land on the right tab rather than signalling distinct
     pages. Keep changefreq + priority aligned with how the content
     actually rotates in the app.
     v70.65: sitemap catches up with the 14 open hubs that got per-
     route SEO meta in v70.63. Omitted deliberately: #signin, #signup,
     #auth-callback, #admin, #messages (private), #status (utility),
     #rate-check + #contract-check (redirect aliases — would double-
     index), #talent + #pricing (aliases of /#real and /).
     v72.10: changefreq tightened to hourly on the two routes backed
     by the hourly-refreshed contracts feed (/#contracts and
     /#heatmap). Google treats changefreq as a hint (not binding) for
     re-crawl scheduling; reserving `hourly` for the two routes that
     actually change at that cadence stops the signal from being
     drowned by `daily` on routes that change weekly.
     v72.17: xhtml:link hreflang annotations added to the 7 canonical
     nav hubs (Home, contracts, news, market, concepts, academy,
     agencies — the BreadcrumbList from v72.13). EN and FR are served
     from the same URL via client-side language switch, so each entry
     declares three alternates (en, fr, x-default) pointing at the
     same hash route. Redundant with the index.html <link
     rel="alternate"> hreflang tags but belt-and-suspenders — Google's
     sitemap-based hreflang signal is independently honoured for
     sites that serve many routes, giving the Search Console parser
     a structured fallback. xmlns:xhtml namespace declared on <urlset>
     so the xhtml:link elements validate.
     v72.70 (2026-04-26) — operator directive : "la version française du
     site n'a pas d'URL dédiée et indexable séparément, ce qui te coupe
     d'une partie significative de ton marché cible (consultants SAP en
     FR, BE, CH, LU, MA, TN)". v72.70 ships /fr/index.html as a real
     pre-rendered SSR landing with native FR copy + JSON-LD inLanguage="fr"
     + canonical "/fr/" + hreflang cross-references. Two distinct URLs
     (`/` for EN, `/fr/` for FR) means xhtml:link hreflang is no longer
     same-URL → Google can index both without the duplicate-content
     collapse risk that v72.69 was avoiding. Hash routes (e.g. /#radar,
     /#agencies) keep their existing behaviour — they fall through to
     the React app which respects the boot-language signalled by the
     coquille that hydrated them. -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://analyticslegends.ai/</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://analyticslegends.ai/" />
    <xhtml:link rel="alternate" hreflang="fr" href="https://analyticslegends.ai/fr/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://analyticslegends.ai/" />
  </url>
  <url>
    <loc>https://analyticslegends.ai/fr/</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://analyticslegends.ai/" />
    <xhtml:link rel="alternate" hreflang="fr" href="https://analyticslegends.ai/fr/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://analyticslegends.ai/" />
  </url>
  <url>
    <loc>https://analyticslegends.ai/#news</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#market</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#consultants</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#concepts</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#academy</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#real</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#profession</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#community</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#contracts</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>hourly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#headhunters</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#agencies</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <!-- v72.70.4 — operator-advertised primary routes from public/api/about.json
       added so the sitemap matches the platform contract. for-recruiters /
       anti-ai / agent-playbook / tools each render their own dispatcher
       branch in src/AnalyticsLegends.jsx with dedicated PAGE_TITLES + meta. -->
  <url>
    <loc>https://analyticslegends.ai/#for-recruiters</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#anti-ai</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#agent-playbook</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#tools</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#top100</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#jobs</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#studies</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#fair-rates</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#kpis</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#glossary</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#heatmap</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>hourly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#tech-radar</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#interview-prep</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#skill-check</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#transition</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#invoice</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#releases</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#privacy</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#legal</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#terms</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://analyticslegends.ai/#security</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
