
Comment optimiser le SEO d’une SPA hébergée sur AWS
De nos jours, les cas d’utilisation d’une SPA sont de plus en plus rares. La majorité des méta-frameworks modernes proposent des solutions hybrides qui combinent le SSR (Server-Side Rendering), le SSG (Static Site Generation) et l’hydratation afin de tirer parti des avantages de chaque approche.
Ceci étant dit, il existe encore certaines situations où une SPA est nécessaire, ainsi que d’anciens projets nécessitant désormais une meilleure optimisation pour le SEO. Bien que les crawlers modernes exécutent le JavaScript d’une page, la réalité est qu’il est plus difficile d’obtenir un bon classement avec une SPA.
Au-delà des conseils génériques, comme l’amélioration de la vitesse de chargement ou la mise en place d’un budget JavaScript, nous allons présenter deux solutions concrètes pour optimiser les performances SEO d’une SPA.
⚠️ Gardez à l’esprit que ces techniques doivent être utilisées en dernier recours, car elles augmentent la complexité de l’infrastructure et rendent la maintenance plus difficile.
Architecture Infonuagique
Bien qu’AWS ait récemment tenté de promouvoir l’utilisation d’Amplify pour l’hébergement de contenu statique, la solution historiquement la plus optimale pour héberger une SPA reste la combinaison de CloudFront et S3.
Étant donné qu’une SPA est constituée uniquement de fichiers statiques, sa mise en ligne ne nécessite ni serveur web (e.g. NGINX) ni backend dédié (e.g. Node.js). Cette approche permet un hébergement à coût minimal tout en offrant une grande élasticité en cas de pic de trafic.
Les étapes importantes pour charger une SPA sont résumées dans le diagramme ci-dessus. À noter que :
- Les requêtes à S3 sont, dans la majorité des cas, non nécessaires grâce à la mise en cache par CloudFront.
- La section
JavaScript ⚙️
est fortement abrégée. En réalité, elle inclut des appels réseau pour récupérer les fichiers JavaScript, leur interprétation par le navigateur web, ainsi que leur exécution. C’est généralement cette étape qui est responsable de la plupart des problèmes de performance liés aux SPA.
Injection de métadonnées
Commençons avec un cas d’utilisation très simple : une SPA qui affiche différents films en fonction de leur identifiant unique, comme cet exemple.
Sans grande surprise, la réponse initiale de CloudFront est un fichier HTML presque vide.
Supposons maintenant que les performances de cette page web sont extrêmement optimisées et que le budget JavaScript des robots de Google et des autres moteurs de recherche est suffisant pour bien indexer le site.
Il demeure néanmoins un problème important : l’absence de métadonnées ! En effet, lorsque la page est partagée à travers différents canaux (Slack, Messenger, LinkedIn, etc.), aucune prévisualisation du contenu n’est disponible.
Pour pallier ce problème, nous allons utiliser une fonction Lambda@Edge pour intercepter les requêtes entre CloudFront et S3 et injecter nous-mêmes les métadonnées !
Bien que cette approche puisse sembler intimidante, elle est en réalité simple à mettre en place. En seulement quelques heures de travail, les pages publiques de votre SPA afficheront une prévisualisation !
Au niveau du code, au plus une centaine de lignes sont nécessaires.
Au niveau des performances, bien qu’il soit vrai que cette approche ait un impact négatif, celui-ci est marginal et n’est présent que lorsque le résultat n’est pas en cache !
Rendu Dynamique
Cette approche consiste à servir un contenu différent aux humains et aux robots. Alors que les humains interagiront avec la version originale de la SPA, les robots recevront une version pré-rendue de la page. Comme mentionné au début de cet article et dans la documentation de Google, cette approche ne devrait être utilisée qu’en dernier recours !
Mise en place de l’engin de rendu
La première étape consiste à mettre en place un outil capable de préparer les versions complètes des différentes pages. Deux solutions possibles sont :
- Prerender.io : un produit commercial spécialisé dans l’optimisation des SPA.
- Rendertron : une solution open source créée par Google pour l’optimisation des SPA. À noter que, même si le projet n’est plus activement maintenu, sa logique essentielle reste relativement simple et facile à s’approprier. De plus, des images Docker du projet existent, et il est facile de mettre en place sa propre instance de Rendertron en quelques minutes.
Détection des robots
L’étape suivante consiste à détecter les robots et à les rediriger vers le moteur de pré-rendu. Comme nous sommes dans l’écosystème AWS, nous allons utiliser une fonction CloudFront (un produit similaire à Lambda@Edge, mais l’explication de leurs différences dépasse le cadre de cet article).
Modification des règles de la cache
L’ajout de l’en-tête x-bot
est crucial, car il est utilisé par CloudFront comme clé pour la cache. Cela permet à CloudFront de stocker en cache deux versions différentes de la même page, en fonction du type d’utilisateur (humain ou robot).
Solution complète
Affichage Humain 👨💼
Affichage Robot 🤖
Conclusion
Nous avons présenté deux techniques différentes pour optimiser les performances SEO d’une SPA hébergée dans l’écosystème AWS. Comme mentionné à plusieurs reprises, ces techniques ne devraient être utilisées qu’en dernier recours !
Cela étant dit, ces approches sont rapides et relativement peu coûteuses à mettre en place. Elles peuvent parfois servir de bouée de sauvetage pour d’anciens projets nécessitant du SEO ou même pour des projets récents ayant des contraintes techniques plus spécifiques !
Autres articles






29 oct. 2024
L'IA au service de l'innovation : une nouvelle ère pour les apps mobiles et l’expérience utilisateur
L'intelligence artificielle (IA) représente une transformation numérique qui nous impacte tous. Cette technologie qui s'améliore rapidement grâce à l'analyse des données, permet non seulement de prendre des décisions informées et de réaliser des prévisions fiables, mais également de réaliser de nombreuses tâches plus rapidement.


15 oct. 2024
Pierre-Étienne Bousquet invité du journal ‘’Les Affaires’’
Notre président et cofondateur, Pierre-Étienne Bousquet s'est entretenu avec Jean-François Venne de Les Affaires afin de discuter de l'importante croissance du numérique dans l'industrie du commerce de détail et de son impact sur les ventes en ligne, qui deviennent de plus en plus cruciales pour le chiffre d'affaires.

24 sept. 2024
Cybersécurité et applications mobiles: Opter pour la bonne méthode d’authentification
Les applications mobiles sont des outils essentiels, manipulant des données personnelles, accédant à des informations sensibles, et faisant partie de notre quotidien à tous. Cependant, à l’ère où le mot cybersécurité est sur les lèvres de tous, assurer la sécurité de ces applications et des informations qui s’y retrouvent est primordial.



18 juin 2024
Hybride vs. Natif: Faire le bon choix
Chez Thirdbridge, l'approche de développement hybride est celle de prédilection. Mais analysons plus en détail en comparant le développement hybride et natif à travers des étapes clés du développement d'applications: les coûts, la performance, la sécurité et la maintenance.


.png)

.png)

.webp)

.jpg)
.jpg)
.jpg)


15 oct. 2024
Valoriser la gestion de Produit : Clé du Succès en Développement Logiciel
La distinction entre gestion de produit et gestion de projet est essentielle pour garantir une productivité optimale. Il ne suffit pas de les traiter comme des concepts interchangeables ; il est crucial d’adopter une approche proactive pour placer les bonnes ressources aux bons endroits.



9 août 2024
Les PWAs : un moyen de tester le potentiel des apps mobiles
Dans la dernière décennie, les applications mobiles ont changé notre quotidien : ces simples outils sont devenus des facilitateurs essentiels des tâches quotidiennes et des catalyseurs des interactions professionnelles et personnelles.

.png)
14 juin 2024
Recruter une équipe à l’interne ou engager une agence pour développer son application?
Lorsqu’on entreprend un projet aussi imposant et important que celui du développement d’une application, un dilemme crucial surgit rapidement: choisir entre une agence spécialisée ou recruter sa propre équipe à l’interne pour accomplir le travail. Une chose est certaine, c’est que les deux options présentent des avantages et des contraintes distincts.

14 juin 2024
Réussir le développement de son application en 5 étapes
Le développement d’une application ne s’improvise pas. Pour réussir dans ce domaine convoité, il est essentiel d’être bien préparé. Malheureusement, une grande majorité des projets numériques d’envergure échoue faute d’une préparation adéquate.

30 mai 2024
Avez-vous vraiment besoin d’une application?
Ne froncez pas les sourcils! Ceci est une vraie bonne question. Il suffit d’observer les gens dans le métro, par exemple, ou encore dans une salle d’attente : tout le monde ou presque a un téléphone à la main, pour lire, texter, jouer, obtenir un renseignement, rencontrer l’âme sœur, commander à manger ou magasiner…

22 mai 2024
Optimiser la synergie avec votre partenaire de développement logiciel
L’univers du numérique, et d’autant plus celui du développement de solutions numériques sur mesure, ne cesse d’évoluer — entre les avancées technologiques rapides et les besoins changeants des consommateurs, il est bien difficile de prédire de quoi l’avenir sera fait pour les acteurs du Web.

.png)
3 mai 2024
Des infrastructures simplifiées pour plus de vélocité
Chez Thirdbridge, nous sommes convaincus que les équipes orientées projet livrent des résultats de qualité supérieure, et ce, plus rapidement. Étant donné qu’elles sont responsables de l’intégralité du flux de création de valeur, ces équipes peuvent augmenter leur vélocité en éliminant elles-mêmes les goulots d’étranglement. De plus, accorder la responsabilité du flux de bout en bout à nos équipes de développeurs rend leur travail encore plus engageant et motivant.