Se faire trouver
Leçon 2 sur 3.
Votre lecteur arrive rarement par la page d'accueil. Il arrive par un moteur de recherche, par un lien qu'un collègue a collé, ou par le champ de votre propre en-tête — trois portes, et cette leçon les ouvre toutes.
La recherche dans le site
Chaque page porte un champ dans son en-tête. Il mène à /search/, une page que
la génération écrit avec le site : la liste de toutes les pages, qu'un petit
script filtre à mesure que le lecteur tape.
search: false retire le champ et la page. Cela se défend sur un site de dix
pages, où le menu montre déjà tout.
Les deux fichiers que lisent les robots
siteUrl: 'https://acme.example.com/docs',
Ce seul champ rend le reste possible — une adresse est ce dont un robot, un réseau social et un lecteur de flux ont tous besoin.
| Fichier | Écrit quand | Ce qu'il porte |
|---|---|---|
sitemap.xml | siteUrl est renseigné | Toutes les pages de toutes les versions, sauf une bêta |
robots.txt | le site se trouve à la racine de son domaine | Où se trouve le plan du site |
feed.xml | feed: true | Les pages récentes, annoncées dans l'en-tête du document |
Une version marquée prerelease reste hors du plan du site et demande à ne pas
être indexée. C'est ce qui évite qu'un lecteur cherchant votre outil atterrisse
sur la documentation d'une version que personne ne peut encore installer.
À quoi ressemble un lien partagé
Un lien collé dans une conversation montre un titre, une description et une image. Les trois viennent de ce que vous avez déjà écrit :
socialImage.La description d'une page n'est pas une décoration : c'est la phrase sous le
titre dans un résultat de recherche, et celle sous le lien dans une
conversation. Une page qui n'en a pas est annoncée par son seul titre.
socialImage se déclare une fois, dans la configuration, et a besoin de
siteUrl — une autre machine va la chercher, donc l'adresse doit être absolue.
Dire ce qu'est une page
Les moteurs de recherche lisent les données structurées. La génération les écrit depuis le frontmatter, et une page peut dire de quel genre elle relève :
---
title: Installation
description: Une commande met le projet en place.
jsonld:
type: TechArticle
faq:
- question: Quelle version de Node faut-il ?
answer: La version 22 ou plus récente.
---
Les questions deviennent un vrai bloc de FAQ dans les données structurées — celui qu'un moteur peut afficher replié sous votre résultat.
Le poids, que personne ne remarque avant qu'il soit mauvais
Trois choses arrivent à la génération sans qu'on les demande :
- Chaque image reçoit ses dimensions, lues dans son fichier, pour que la page cesse de sauter pendant le chargement.
- Toutes les images sauf la première se chargent en différé, ce qui fait arriver le haut de la page en premier.
- La feuille de style est minifiée, et ne porte que les règles qu'emploient les pages.
Rien à configurer. Cela mérite d'être su parce que cela explique une surprise : la première image d'une page n'est délibérément pas différée, et ce n'est pas un oubli.
Les étiquettes, et ce qu'elles ne sont pas
tags: [cours, avancé, découvrabilité]
Elles s'affichent sous la page et passent dans les données structurées comme mots-clés. Il n'y a pas de page par étiquette : elles étiquettent, elles ne naviguent pas. Un lecteur qui cherche tout ce qui touche à un sujet emploie le champ de recherche.
Vérifiez par vous-même
Votre bêta figure dans le plan du site. Qu'avez-vous oublié ?
prerelease: true sur cette version. Sans lui, rien ne la distingue de celle
que les gens devraient lire.
Aucun robots.txt n'a été écrit alors que siteUrl est renseigné. Pourquoi ?
Le site est servi depuis un sous-dossier. Un robots.txt ne veut dire quelque
chose qu'à la racine d'un domaine : la génération s'abstient plutôt que
d'écrire un fichier qui parlerait pour des adresses qui ne sont pas les vôtres.
Le guide de déploiement couvre le même terrain du côté de l'hébergeur — ce qu'il faut servir, et ce qu'il faut vérifier avant la mise en ligne.
DocPensieve