<?xml version="1.0" encoding="UTF-8"?>
<!--
  The Swimming Hub — les pages PUBLIQUES DE CONTENU, à leur adresse canonique.

  ⛔ FICHIER STATIQUE, ET C'EST UN CHOIX MESURÉ. Une route « ?page=sitemap » serait toujours à jour,
     mais il faudrait alors qu'un /sitemap.xml y mène — donc une règle de réécriture de plus, sur un
     hébergement où la mesure du 25/08/2026 a montré que toucher aux réécritures est risqué
     (les assets y sont servis sous /public/, cf. robots.txt). Ce fichier-ci, lui, est servi tel
     quel par la réécriture existante — vérifié : /assets/… répond 200 par le même chemin.
  ⛔ ET LA LISTE N'EST PAS UNE REQUÊTE : ce sont des pages fixes, choisies à la main. Une
     génération automatique n'aurait rien à générer, et elle finirait par attraper une page qu'on ne
     veut pas voir indexée. La tenir à la main est ici la garde, pas la dette.

  ⛔ AUCUNE PAGE PORTANT UNE DONNÉE D'UTILISATEUR : ni fiche partagée, ni séance de coach, ni
     planning de club, ni page de RÉSULTAT de l'outil public. Elles sont en noindex et le restent.

  ⭐⭐ 25/08/2026 — LA RÈGLE EXACTE POUR L'OUTIL PUBLIC, parce que la formulation précédente
     (« ni page de l'outil public ») en excluait la famille ENTIÈRE, porte comprise :
        LA PORTE EST INDEXABLE ; CE QU'ELLE PRODUIT NE L'EST JAMAIS.
     La porte (`?page=public_tool`) ne rend qu'un formulaire vide et ne lit aucun paramètre : elle
     ne peut porter la donnée de personne. Tout ce qui vient APRÈS elle en porte — identité, temps,
     fiche, QR, ouverture par un code partagé — et garde son `X-Robots-Tag: noindex, nofollow`.
     ⛔ L'en-tête est posé pour toute la famille dans `app/PublicTool/PublicToolLinks.php`, et
        l'exception y est nommée EN TOUTES LETTRES (`ROUTE_INDEXABLE`), pour une seule route.
     ⛔ INSCRIRE ICI UNE AUTRE ADRESSE DE L'OUTIL NE SUFFIRAIT PAS À L'INDEXER — elle porterait
        toujours son `noindex`, et le moteur suivrait l'en-tête, pas ce fichier. Ce serait une
        contradiction muette : deux vérités, aucune alerte.

  ⚠️ ET L'ADRESSE DE LA PORTE DÉPEND D'UN INTERRUPTEUR EN BASE (`public_tool_enabled`, absent =
     éteint). Éteint, elle rend 404 — et ce fichier, statique, continuerait de la déclarer.
     L'avertissement vit dans `app/PublicTool/PublicToolSwitch.php`, à côté de l'interrupteur :
     c'est ce fichier-là qu'ouvre celui qui éteint, jamais celui-ci.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://www.theswimminghub.com/index.php?page=home</loc><priority>1.0</priority></url>
  <!-- 25/08/2026 - 2e page du site apres l'accueil : c'est la marche entre "c'est quoi ce
       site" et "comment ca marche", et la barre de navigation la place au meme rang. -->
  <url><loc>https://www.theswimminghub.com/index.php?page=what_it_does</loc><priority>0.9</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=how_it_works</loc><priority>0.9</priority></url>
  <!-- 25/08/2026 - LA PORTE DE L'OUTIL PUBLIC : le visiteur y obtient, SANS COMPTE, son profil, ses
       allures et ses temps cibles (et ses temps officiels s'il est licencie). C'est la meilleure
       entree du site, et elle etait invisible - absente d'ici, et en `noindex` par-dessus le marche.
       ⛔ SEULE ADRESSE DE LA FAMILLE `public_tool*` ICI, ET SEULE A NE PAS PORTER LE `noindex` :
          `_identity`, `_times`, `_athlete`, `_qr` et `_open` produisent ou affichent la donnee d'un
          nageur potentiellement MINEUR (nom, prenom, annee de naissance). Elles restent dehors. -->
  <url><loc>https://www.theswimminghub.com/index.php?page=public_tool</loc><priority>0.8</priority></url>
  <!-- Le « Comment ça marche » : six sujets, et pour chacun les profondeurs qui rendent du TEXTE.
       ⛔ `&sujet=…&profondeur=theorie` est ABSENT, et ce n'est pas un oubli : la théorie n'est
          jamais découpée, ces adresses ne rendent qu'un renvoi. Elles portent `noindex`.
       ⛔ `&profondeur=brevet` est ABSENT aussi : c'est la profondeur par défaut, donc la même
          page que l'adresse sans paramètre — deux adresses pour un texte, on n'en publie qu'une. -->
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=donnees</loc><priority>0.9</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=donnees&amp;profondeur=bac</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=donnees&amp;profondeur=terrain</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=niveau</loc><priority>0.9</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=niveau&amp;profondeur=bac</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=niveau&amp;profondeur=terrain</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=profil</loc><priority>0.8</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=profil&amp;profondeur=bac</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=profil&amp;profondeur=terrain</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=allures</loc><priority>0.9</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=allures&amp;profondeur=bac</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=allures&amp;profondeur=terrain</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=passe</loc><priority>0.8</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=passe&amp;profondeur=bac</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=passe&amp;profondeur=terrain</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=limites</loc><priority>0.8</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=limites&amp;profondeur=bac</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;sujet=limites&amp;profondeur=terrain</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=target_times_help&amp;profondeur=theorie</loc><priority>0.8</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=etalon</loc><priority>0.8</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=public_library</loc><priority>0.8</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=public_sessions</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=public_modules</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=public_planning_index</loc><priority>0.7</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=about</loc><priority>0.5</priority></url>
  <url><loc>https://www.theswimminghub.com/manuel/index.html</loc><priority>0.5</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=legal_notice</loc><priority>0.3</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=privacy</loc><priority>0.3</priority></url>
  <url><loc>https://www.theswimminghub.com/index.php?page=terms</loc><priority>0.3</priority></url>
</urlset>
