Ingénierie
SEO technique pour applications web : ce qui fait vraiment bouger les classements
La plupart des conseils SEO sont écrits pour des sites de contenu. Les applications échouent différemment, et généralement pour des raisons qu'aucun outil de mots-clés ne montrera jamais.
Quand une application web ne se positionne pas, la cause est rarement le contenu. C'est que le robot a reçu une page vide, ou a trouvé quatre URL contenant la même chose, ou a dépensé son allocation de crawl sur des combinaisons de filtres à facettes, ou s'est vu dire par une directive égarée de ne pas indexer la page du tout. Rien de tout cela n'apparaît dans un rapport de mots-clés, et tout cela demande quelqu'un capable de modifier le code.
Commencez par ce que le robot reçoit réellement
L'habitude la plus utile en SEO technique est d'arrêter de regarder la page dans un navigateur. Récupérez le HTML brut que renvoie le serveur et lisez-le. C'est couramment un document différent de celui que vous voyez.
Pour les applications rendues côté client, ce peut être une coquille vide avec une balise de script. Google rend bien le JavaScript, mais le rendu est mis en file séparément de l'exploration et n'est garanti ni rapide ni complet — et les autres robots, dont ceux derrière les aperçus sociaux et plusieurs systèmes d'IA, rendent bien moins fiablement, voire pas du tout.
La solution est de servir le contenu dans le HTML initial de toute page que vous voulez positionner. Le rendu côté serveur, la génération statique ou le prérendu y parviennent tous ; lequel choisir est une décision d'architecture, mais l'exigence n'est pas négociable si la recherche compte.
Les URL en double tuent en silence
Les applications génèrent des variantes d'URL sans effort : paramètres de suivi, identifiants de session, combinaisons de tri et de filtres, variantes avec ou sans barre oblique finale, chemins en majuscules, et la même page accessible par deux routes. Pour un robot, chaque variante est une URL distincte, et les signaux de classement se répartissent entre elles.
Trois choses règlent cela. Chaque page a besoin d'une canonique auto-référente pointant vers la version que vous voulez indexer. Le serveur doit rediriger les variantes — hôte non canonique, mauvais protocole, barre oblique finale incohérente — par une redirection permanente plutôt que de toutes les servir. Et les paramètres qui ne changent pas le contenu ne doivent pas produire une URL indexable distincte.
L'erreur la plus courante ici est une canonique en désaccord avec le sitemap, ou une canonique pointant vers une URL qui redirige. Les deux sont traitées comme des signaux confus, et la confusion se résout contre vous.
Le budget de crawl devient réel dès qu'il y a des filtres
Pour un site de cinquante pages, le budget de crawl n'est pas votre problème. Pour une application à navigation à facettes, c'est l'un des premiers, parce qu'une poignée de filtres produit une explosion combinatoire d'URL et qu'un robot y passera volontiers des semaines plutôt que sur les pages qui comptent.
Décidez explicitement quelles combinaisons de filtres méritent d'être indexées — généralement celles qui ont une vraie demande de recherche, comme une catégorie plus un attribut — et rendez le reste non indexable. Utilisez robots.txt pour empêcher l'exploration des motifs de paramètres sans valeur, et une directive noindex pour les pages qui doivent rester explorables pour leurs liens mais ne doivent pas apparaître dans les résultats.
Les deux ne sont pas interchangeables, et on les confond souvent : une page bloquée dans robots.txt ne peut pas être explorée, son noindex n'est donc jamais vu, et l'URL peut encore apparaître dans les résultats sur la seule foi de signaux externes. Pour sortir une page de l'index, elle doit être explorable et porter noindex.
Les Core Web Vitals, mesurés sur le terrain
La performance est un facteur de classement, et plus encore un facteur de conversion. L'erreur est d'optimiser contre un score de laboratoire sur une machine rapide plutôt que contre ce que vivent les vrais utilisateurs.
Pour le Largest Contentful Paint, les coupables habituels sont une image non préchargée, une police qui empêche le texte de s'afficher, et une feuille de style bloquant le rendu. Préchargez l'élément qui sera le plus grand, utilisez font-display pour que le texte apparaisse immédiatement dans une police de repli, et intégrez en ligne les styles nécessaires au premier écran.
Le Cumulative Layout Shift vient presque toujours d'images et d'intégrations sans dimensions, de contenu injecté au-dessus de contenu existant, et de polices web qui refluent au remplacement. Fixez explicitement largeur et hauteur, réservez la place pour tout ce qui arrive tard, et faites correspondre les métriques de la police de repli.
L'Interaction to Next Paint est celui que les applications ratent le plus, car il mesure la réactivité sous un fil d'exécution JavaScript chargé. Découpez les tâches longues, faites moins de travail sur le fil principal, et soyez honnête sur la quantité de framework réellement nécessaire sur une page dont le rôle est d'afficher de l'information.
Des données structurées qui concordent
Les données structurées n'améliorent pas directement le classement, mais elles déterminent comment un résultat est affiché et avec quelle assurance un moteur comprend de quoi parle votre site. L'échec courant n'est pas un balisage invalide — c'est un balisage qui se contredit d'une page à l'autre, décrivant la même organisation de trois façons différentes.
Utilisez un seul nœud d'organisation identifié et faites-y référence depuis tous les autres blocs, au lieu de redécrire l'entreprise sur chaque page. Validez dans le build plutôt qu'en collant de temps en temps dans un outil de test, pour qu'une régression fasse échouer le build au lieu de partir en silence.
Ne balisez pas des avis que vous n'avez pas recueillis, des notes agrégées à partir de rien, ou des FAQ qui n'apparaissent pas sur la page. Cela attire des actions manuelles, et le résultat enrichi ne vaut pas ce risque.
L'internationalisation, et où elle dérape en général
Si vous servez plusieurs langues, hreflang indique aux moteurs quelle version afficher. C'est aussi l'une des choses les plus faciles à se tromper subtilement.
- Les annotations doivent être réciproques. Si la page anglaise pointe vers l'allemande, l'allemande doit pointer en retour, sinon tout l'ensemble est ignoré.
- Chaque URL de l'ensemble doit renvoyer 200. Un seul 404 dans le groupe compromet tout.
- La canonique de chaque page doit pointer vers elle-même, pas vers la version anglaise. Une canonique vers une autre langue est une demande de retrait de cette page de l'index.
- Utilisez x-default comme repli lorsqu'aucune langue ne correspond.
- Ne traduisez pas une page automatiquement pour la marquer comme alternative linguistique, sauf si elle est vraiment bonne. Une traduction pauvre ou bancale est pire que de ne pas proposer cette langue du tout.
Une mesure qui survit à un web soucieux de la vie privée
Une part importante des visiteurs bloque l'analytique côté client, et cette part est la plus élevée chez les publics techniques — qui, pour un produit logiciel, sont justement le public que vous voulez le plus comprendre. Les chiffres issus d'une balise bloquée ne sont pas seulement incomplets, ils sont biaisés dans une direction qui compte.
Les journaux serveur et la mesure côté serveur n'ont pas ce problème, et ils vous montrent aussi le comportement des robots, ce que l'analytique côté client ne fera jamais. Pour un site neuf, voir Googlebot arriver dans les journaux est un signal plus utile que n'importe quel tableau de bord — cela vous dit si vous avez un problème d'exploration ou un problème de classement, et les deux se corrigent très différemment.
Search Console reste la source la plus précieuse, parce qu'elle rapporte les requêtes sur lesquelles vous apparaissez déjà. Ces requêtes sont un meilleur brief éditorial que n'importe quel outil de mots-clés, car elles montrent où vous êtes assez proche pour qu'une petite amélioration change le résultat.
Un ordre de travail pratique
- Vérifier d'abord l'indexabilitéSearch Console, le rapport de couverture, et un crawl de votre propre site. Inutile d'optimiser une page qui est exclue.
- Corriger le renduAssurez-vous que le contenu à positionner figure dans la première réponse HTML.
- Résoudre les doublonsCanoniques, redirections et gestion des paramètres, pour que les signaux se concentrent au lieu de se diviser.
- Maîtriser le crawlDécidez quelles URL générées méritent d'être indexées et empêchez les autres de consommer votre allocation de crawl.
- Puis la performanceDes données de terrain, pas des scores de laboratoire, et figées dans le pipeline de build pour qu'elles ne régressent pas.
- Puis le contenuÉcrit pour les requêtes sur lesquelles Search Console montre que vous êtes déjà proche.
Cet ordre compte. Du contenu écrit pour une page que le robot ne peut pas voir est du travail perdu, et optimiser la performance d'une page exclue de l'index ne change strictement rien.