Référencement : Google Analytics et Search Console réglables en backoffice

Deux réglages dans Backend › Paramètres :

- `google_analytics_id` pose les balises gtag.js. Vide = rien n'est chargé.
  `src/lib/analytics.ts` (pur) n'accepte qu'un identifiant GA4 « G-… » : la
  saisie ne peut donc pas s'échapper du script en ligne. Les deux `<script>`
  portent le nonce de la CSP, et seules les pages publiques sont mesurées
  (`isTrackedPath` écarte `PRIVATE_PATHS`, le chemin venant du nouvel en-tête
  `x-pathname` du middleware — un layout ne connaît pas l'URL demandée).
- `google_site_verification` rend la balise de validation Search Console via
  `verification.google`, après contrôle du jeton.

La CSP gagne les hôtes Google Analytics en `connect-src` : elle est posée sur
le runtime Edge, qui ne peut pas lire la base pour savoir si la mesure est
active. `script-src` est inchangé, `'strict-dynamic'` couvrant les scripts que
gtag.js charge ensuite.

Le plan du site n'a besoin de rien : `/sitemap.xml` est déjà servi et annoncé
dans `/robots.txt`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R7v5KcYUo2taDVDgehs7ZH
This commit is contained in:
Claude committed 2026-09-15 05:12:21 +00:00
1 parent 67cd9d6684
commit b860eeaf29
8 files changed
+272 -2

No files matched your search

+4
View File
@@ -44,6 +44,10 @@ export const SITE_SETTING_DEFAULTS = {
association_publication_director: "",
association_privacy_contact: "",
legal_updated: "",
// Référencement : identifiant de mesure GA4 (« G-… ») et jeton de
// validation Search Console. Vides = aucune balise posée sur le site.
google_analytics_id: "",
google_site_verification: "",
};
export type SiteSettings = typeof SITE_SETTING_DEFAULTS;