Problème
Le script `scripts/ping-indexers.ts` introduit dans #702 rejoue à la main la logique fichier→URL dans `filesToUrls()`. Ce mapping est partiel et va inévitablement diverger du sitemap réel :
- Modifier `src/app/layout.tsx` ou `src/app/globals.css` impacte toutes les pages, aucune URL n'est pingée.
- Modifier `data/navigation.ts`, `data/testimonials.ts`, `data/jobs.ts` impacte les pages correspondantes, aucune URL n'est pingée.
- Modifier `src/app/article/[slug]/page.tsx` (template) est skip (`.includes("[")`), alors qu'une modif de template devrait idéalement re-ping tous les articles.
- Tout nouveau type de route (parallel route, intercepting route) ne sera pas capté tant que le regex du script n'est pas mis à jour.
Solution
Remplacer `filesToUrls()` par une lecture du sitemap généré ou un import de `src/app/sitemap.ts`. Piste :
- Après le build, parser `out/sitemap.xml` pour extraire toutes les URLs publiques.
- Comparer avec la liste du déploiement précédent pour calculer les URLs nouvelles/modifiées (diff de sitemap + heuristique `lastModified`).
- OU : ping l'intégralité du sitemap à IndexNow (qui accepte un sitemap comme source) et laisser Bing décider quoi recrawler.
Acceptance
Problème
Le script `scripts/ping-indexers.ts` introduit dans #702 rejoue à la main la logique fichier→URL dans `filesToUrls()`. Ce mapping est partiel et va inévitablement diverger du sitemap réel :
Solution
Remplacer `filesToUrls()` par une lecture du sitemap généré ou un import de `src/app/sitemap.ts`. Piste :
Acceptance