Aller au contenu

Métadonnées des pages publiques

Le layout serveur crée les métadonnées communes avec createPublicMetadata dans src/lib/server/public-metadata.ts. Les loads de fiches et de contenus publiés fournissent les valeurs propres à leur ressource. Le layout racine rend un seul composant PublicMetadata.svelte pour le title, la description, la canonical absolue et les propriétés Open Graph. Les pages ne réémettent pas ces balises. Les robots/googlebot restent gérés par le layout, en tenant compte de l’environnement, du statut HTTP, du caractère privé de la route et de la politique des paramètres.

SEO_PUBLIC_ORIGIN est une variable serveur facultative. Sa valeur approuvée est https://www.leclosdeseucalyptus.com, également valeur par défaut. Une autre origine, des identifiants, un chemin, une query ou un fragment dans la configuration ne remplacent pas cette origine validée. Les hostnames et headers transmis par une requête ne construisent jamais les URL SEO. L’ajout futur d’un autre domaine public exige une décision opérateur et l’actualisation de cette validation.

Les images de partage sont des fichiers statiques publics de l’application ou des références publiques nommées media_assets / media_variants, converties en relais /api/media/files/. Les paramètres et fragments d’image sont supprimés. Une URL privée, étrangère ou une collection non reconnue utilise l’image publique neutre /images/flowers.jpg ; aucun endpoint du back-office ni URL de backend privé n’est exposé. Les anciens identifiants opaques de collections ne sont pas supposés publics par ce mécanisme. La disponibilité des fichiers référencés demeure celle du contrat média public ; les tests du HTML vérifient leur lecture anonyme dans l’application.

Les textes génériques des pages commerciales et FAQ sont dans les cinq catalogues messages/, sous le préfixe seo_. Ils utilisent la marque confirmée, l’activité de location d’appartements et Le Plan-de-la-Tour dans le Var. Les fiches d’appartements utilisent le nom, la surface et la capacité maximale issus du modèle public, sans inventer de tarif ou de promesse de vue mer. Les pages légales conservent les meta title/description de leur version publiée lorsque sa langue correspond à la requête. En cas de repli API vers une autre langue, les métadonnées génériques de la langue demandée sont utilisées ; le contenu juridique publié conserve son mécanisme de repli. Les aperçus de contenus sélectionnés utilisent les titres et descriptions publics déjà chargés.

Tout ceci est calculé dans les loads serveur avec la locale de la requête. Le HTML initial contient les balises avant hydratation. npm run i18n:compile régénère le runtime ; aucun fichier généré n’est édité à la main. Le HTML public sérialise uniquement l’objet de métadonnées nécessaire, pas les variables de configuration privées.

Variante Canonical Robots en environnement indexable
Page publique sans paramètres chemin de sa langue sur l’origine approuvée index,follow
Tracking utm_*, gclid, fbclid, msclkid tracking supprimé index,follow
Recherche, dates, voyageurs, tri, formule, contact ou paramètre inconnu chemin de base, paramètres supprimés noindex,follow
Service, lieu ou actualité sélectionnés seul service, place ou post conservé, à partir du slug public vérifié index,follow si aucun autre paramètre de parcours
Login, back-office, maintenance, erreur ou route hors du périmètre connu aucune canonical ni propriétés Open Graph publiques noindex

Les fragments sont toujours supprimés. Un slug sélectionné non validé par le contenu public ne construit pas de canonical de détail. Les paramètres d’authentification ne sont jamais des paramètres SEO autorisés. Les pages de détail autonomes prévues dans #217 pourront remplacer les identités en query sans changer le composant de rendu partagé.

L’environnement reste prioritaire : staging/préproduction et hôtes non autorisés conservent noindex,nofollow,noarchive,nosnippet dans le HTML et dans X-Robots-Tag. Une canonical pointant vers le domaine public n’autorise donc pas l’indexation d’une preview. La politique de parcours resserre les metas ; elle ne crée pas de header index qui contredirait la protection d’environnement.

Tests unitaires : origine non fiable, langues, recherches/paramètres privés, identités publiques, images et absence de métadonnées sur les routes privées. Tests E2E : lecture du HTML serveur dans les cinq langues, balises uniques, canonical sur le domaine approuvé, images lisibles anonymement, fiches distinctes et absence de tokens dans les URL de partage. Les tests d’indexation existants et les parcours légaux/linguistiques sont conservés.