SEO
Ce que chaque page émet pour les robots et les cartes sociales, quel module l'écrit, et la seule valeur que la couche ne peut pas deviner.
Chaque page émet un head complet, une description structurée d'elle-même, une carte sociale et une entrée dans la sitemap. L'essentiel est écrit par Nuxt SEO, que la couche installe comme un seul bundle ; le reste est la partie qui dépend des versions et des traductions, et elle appartient à la couche. Une valeur doit venir de vous.
Par page
- Meta — le titre suivi du nom du site, la description, et le couple
og:/twitter:qui en découle.og:typeetog:urlsont posés par page ;og:localeet ses alternatives viennent des langues que le site sert. - JSON-LD — un graphe par page : un
WebSite(et votreOrganization, une fois définie) déclarés à l'échelle du site, plus unTechArticleet uneBreadcrumbListconstruite à partir du fil que dessine le fil d'Ariane. - Une image Open Graph, rendue depuis le gabarit propre à la couche — sur la page d'accueil aussi. Fournissez un composant du même nom pour la remplacer.
canonicaletrobots, qui forment la moitié versionnée — voir URL et versions. Le canonique d'une ancienne version pointe vers la version courante ; c'est pourquoi la couche l'écrit elle-même au lieu de laisser celui du module.
La page d'erreur porte noindex, follow : une 404 indexée concurrence la page
que le lecteur cherchait, et les suggestions qu'elle propose sont de vraies pages
qu'un robot doit encore pouvoir atteindre.
À l’échelle du site
/sitemap.xml liste les pages de la version par défaut, par langue. Une version
qui n'est pas celle par défaut en est exclue puisque ses pages portent de toute
façon noindex, et une version eol en est exclue qu'elle soit la version par
défaut ou non : lister l'une ou l'autre revient à demander à un robot d'aller
chercher exactement ce que la page lui dira ensuite d'écarter. /robots.txt est
généré à côté.
duxt.organization est ce qui nomme l'éditeur — voir
Configuration. Non défini, le site se décrit toujours
comme un WebSite ; ce qu'il perd, c'est l'entité derrière, celle que lit un
panneau de connaissances ou un résumé d'IA pour créditer une source.
Ce qui est vérifié, et ce qui est seulement signalé
pnpm check:seo lit les pages construites et échoue sur un second canonical,
un hreflang absent, une page d'erreur indexable, un og:locale au mauvais
format, ou un graphe qui ne s'analyse pas. Il tourne dans pnpm check après le
build, parce que ces balises n'existent que dans le HTML rendu.
Le vérificateur de liens signale au lieu d'échouer. Un lien qui ne mène nulle part fait déjà échouer le build via les vérifications de build propres à la couche, celles qui comprennent les versions et les replis de langue ; l'apport du module ici, c'est le panneau devtools et la vérification en direct pendant la rédaction.
La seule valeur que vous devez indiquer
L’origine. hreflang, canonical, le sitemap et les images Open Graph sont
toutes des URL absolues, et une couche ne peut pas connaître le domaine sur
lequel elle sera déployée. Définissez i18n.baseUrl ou
NUXT_PUBLIC_I18N_BASE_URL ; la couche le copie vers site.url, où les modules
SEO vont le chercher.
Laissée vide, chacune retombe sur une sortie relative plutôt que d’inventer un
domaine. C’est le choix délibéré : un canonical relatif se résout toujours
correctement, alors qu’un canonical deviné est activement faux — il
dirigerait un robot vers le site de quelqu’un d’autre.
Une variable de plus pour un déploiement progressif
NUXT_OG_IMAGE_SECRET signe les URL des images Open Graph. Sans elle, un secret
est généré par compilation, ce qui convient pour une instance et non pour deux :
une carte dont l’URL a été signée par une instance est rejetée par la suivante,
et un lien partagé pendant un déploiement progressif perd donc son image.
Générez-la une fois ; elle ne tourne pas.