{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://peakace.fr/blog/seo/angular-seo-friendly/","llm_html_url":"https://peakace.fr/blog/seo/angular-seo-friendly/llm","llm_json_url":"https://peakace.fr/blog/seo/angular-seo-friendly/llm.json","manifest_url":"https://peakace.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Angular : comment rendre ce framework SEO-friendly ?","site":{"name":"Peak Ace","url":"https://peakace.fr/"},"author":{"id":19,"name":"Martin SAMKO","url":"https://peakace.fr/blog/author/martin-samko/"},"published_at":"2022-02-23T15:35:58+00:00","modified_at":"2025-12-09T11:08:02+00:00","word_count":2111,"reading_time_seconds":634,"summary":"Angular offre une bonne expérience utilisateur mais peut présenter un frein d'un point de vue SEO. Comment rendre ce framework SEO-friendly ?","summary_points":["[1ère publication le 28/01/2022 &#8211; Article mis à jour le 23/02/2022]\n\n\n\nAngular est un framework JavaScript qui est notamment utilisé pour développer une interaction dynamique sur un site web ou une application.","Il s&rsquo;agissait à l&rsquo;origine d&rsquo;un projet de Google, mais c&rsquo;est aujourd&rsquo;hui un framework très populaire.","Bien qu&rsquo;Angular offre une bonne expérience utilisateur, il est à noter que cette solution peut rencontrer des freins d&rsquo;un point de vue SEO.","Envie de gagner du temps ?"],"topics":["Astuces SEO","SEO","SEO Technique"],"entities":[],"entities_metadata":[{"id":6,"name":"Astuces SEO","slug":"astuces-seo","taxonomy":"category","count":137,"url":"https://peakace.fr/categories/seo/astuces-seo/"},{"id":5,"name":"SEO","slug":"seo","taxonomy":"category","count":267,"url":"https://peakace.fr/categories/seo/"},{"id":15,"name":"SEO Technique","slug":"seo-technique","taxonomy":"category","count":31,"url":"https://peakace.fr/categories/seo/seo-technique/"}],"tags":["Astuces SEO","SEO","SEO Technique"],"content_hash":"7650e8894b1a259a1815af475cff4e84","plain_text":"[1ère publication le 28/01/2022 &#8211; Article mis à jour le 23/02/2022]\n\n\n\nAngular est un framework JavaScript qui est notamment utilisé pour développer une interaction dynamique sur un site web ou une application. Il s&rsquo;agissait à l&rsquo;origine d&rsquo;un projet de Google, mais c&rsquo;est aujourd&rsquo;hui un framework très populaire. Bien qu&rsquo;Angular offre une bonne expérience utilisateur, il est à noter que cette solution peut rencontrer des freins d&rsquo;un point de vue SEO.\n\n\n\n\n    \n      \n        \n          Envie de gagner du temps ?\n\t\t  \n          Faites résumer cet article par l’IA en quelques secondes.\n        \n        \n          \n            Résumer avec l’IA\n          \n        \n      \n     Comment Google interprète un site sous Angular ? \n\n\n\nGoogle indique dans ses guidelines qu&rsquo;actuellement : « il est difficile de traiter JavaScript, et tous les robots d&rsquo;exploration des moteurs de recherche ne sont pas en mesure de le traiter correctement ou immédiatement. ». Or, Angular est un framework&#8230; JavaScript !Voici à quoi ressemble un site sous Angular lorsque le JavaScript est désactivé ; aucun élément de la page ne peut être affiché :\n\n\n\nAffichage d&rsquo;un site sous Angular avec le JavaScript désactivé (outil utilisé : Web Developer)\n\n\n\nDans la majeure partie des cas, lorsque Google inspecte un site sous Angular, il voit seulement une coquille vide : pas de contenu, pas de lien, pas de balise SEO, etc. Les chances d’être bien référencé sont donc très minces !\n\n\n\n L&rsquo;impact du CSR (Client-Side Rendering) sur les moteurs de recherche et le SEO : \n\n\n\nPour qu’un moteur de recherche comprenne les sites sous Angular, il doit savoir exécuter JavaScript. Or, de nombreux moteurs de recherche ne peuvent pas exécuter le JavaScript ; nativement, cela est complexe, voire impossible :\n\n\n\nUn site sous Angular utilise, par défaut, le rendu côté client (dénommé Client-Side Rendering ou CSR) qui rend les pages dans le Document Object Model (DOM) au fur et à mesure que l’utilisateur interagit avec lui. Pour rappel, le DOM est une interface de programmation qui est une représentation du HTML d&rsquo;une page web et qui permet d&rsquo;accéder aux éléments de cette page web et de les modifier avec le langage JavaScript. Les robots d’exploration sont incapables de comprendre le contenu ou la structure d’une page Angular hautement interactive.\n\n\n\n Le Client-Side Rendering consiste à laisser le navigateur interpréter le JavaScript pour générer le contenu HTML de votre site. Ainsi, lorsque le navigateur fait une requête au serveur, au lieu d’obtenir tout le contenu du document HTML lui-même, vous obtenez un document HTML simple, avec un fichier JavaScript qui permettra au navigateur de générer le reste du site. En d’autres termes, le site ne contient rien d’autre qu’un script qui rendra tout le contenu et « habillera » la page avec celui-ci (la page est, en quelque sorte, une coquille HTML vide). \n\n\n\n Voici comment se schématise le fonctionnement du CSR (Client-Side Rendering) : \n\n\n\nÀ ce titre, les moteurs de recherche rencontrent des difficultés pour indexer tout contenu présent sur les sites sous Angular. Si l&rsquo;optimisation SEO est votre objectif, mieux vaut éviter cette méthode de rendering. En effet, les ressources JavaScript étant, dans la majeure partie des cas, ignorées par les robots d’indexation (car trop long à rendre/exécuter), le CSR peut représenter un frein d’un point de vue SEO. Toutefois, il est à noter que les crawlers de Google sont dorénavant capables d’interpréter les applications/sites conçus avec des frameworks JavaScript. Cependant, ce n’est pas encore optimal ; il peut en résulter un décalage entre le site rendu aux visiteurs et celui rendu au robot et cela peut être pénalisant.\n\n\n\nLorsqu’un site Angular avec un rendu côté client standard est privilégié, les moteurs de recherche Bing, Yahoo, DuckDuckGo et Yandex n’indexeront pas les URLs. Ces derniers ne verront que des pages HTML vides, car leurs robots ne savent pas exécuter le contenu dynamique ; les robots des réseaux sociaux ne savent pas le faire non plus.\n\n\n\n Angular et positionnement SEO sur Google : \n\n\n\n Si Google est le seul moteur de recherche qui compte pour votre projet, vous avez de bonnes chances que vos pages dynamiques soient indexées. Toutefois, vous n’avez aucune garantie. La documentation de Google Search Central  liste plusieurs raisons pouvant empêcher l’indexation correcte et rapide de votre contenu rendu par JavaScript :\n\n\n\n\nRetards dans l&rsquo;indexation du contenu dynamique causés par la file d&rsquo;attente du moteur de rendu de Googlebot.\n\n\n\nChargement lent ou retardé de votre code JavaScript notamment s&rsquo;il est déclenché par des actions sur la page.\n\n\n\nUn code JavaScript complexe, coûteux à exécuter et dépassant le budget de rendu de Googlebot.\n\n\n\nDes erreurs de rendu au cours du processus qui font que certaines parties de votre contenu n’arrivent pas jusqu’à l’index.\n\n\n\n\n Pour rappel, voici le processus de Google pour positionner des URLs dans les SERPs :  \n\n\n\n Les moyens pour aider Google à crawler/explorer Angular : \n\n\n\n Il n’y a qu’un seul moyen pour assurer l’indexation et le classement de votre site : chaque URL du site doit renvoyer une page HTML entièrement rendue avec des métadonnées et un contenu disponible dès le chargement. \n\n\n\n Pour atteindre cet objectif, il existe 3 méthodes :\n\n\n\n\nRendu côté serveur (= SSR ou Server-Side Rendering)\n\n\n\nPré-rendu (= Pre-Rendering)\n\n\n\nDynamic Rendering (= Rendu dynamique)\n\n\n\n\n Ces trois méthodes donnent le résultat escompté : les robots d&rsquo;exploration obtiennent l&rsquo;intégralité du contenu au moment du chargement (contenu HTML statique) et l&rsquo;indexent comme une page HTML normale. Cependant, ces méthodes fonctionnent de manière différente : \n\n\n\n\nSSR / Server-Side Rendering : chaque page HTML est rendue sur le serveur durant l’exécution pour ensuite être entièrement rendue au client (navigateur). Cela signifie qu’avant que la page ne se charge, il faut un certain temps au serveur pour rendre le HTML sur demande et l’envoyer au navigateur. Cette méthode peut potentiellement diminuer la vitesse de chargement de la page, notamment si de nombreuses requêtes sont effectuées en même temps.\n\n\n\nPre-Rendering : un fichier HTML est rendu pour chaque URL au moment de la construction. Cela signifie que tous les fichiers HTML du site sont construits à l’avance afin que les pages soient prêtes à être chargées rapidement sur demande. L’inconvénient est que les modifications apportées à ces pages nécessitent de les reconstruire à chaque fois.\n\n\n\nDynamic Rendering : le site a des pages HTML pré-rendues et les sert uniquement aux crawlers. Les utilisateurs réels, eux, interagissent avec la version normale du site rendue côté client.\n\n\n\n\n Oui, Angular peut donc devenir SEO-friendly : \n\n\n\nChaque framework JavaScript possède ses outils et moyens afin de mettre en œuvre l’une des méthodes ci-dessus pour lever les freins SEO. Angular fournit une solution complète de SSR (Server-Side Rendering) et de Pre-Rendering appelée Angular Universal. \n\n\n\nAngular Universal est une solution permettant de bénéficier à la fois d’un rendu côté serveur et côté client sur un seul site. Il récupère à l’avance les pages HTML de toutes les URLs. Ces pages sont servies aux robots des moteurs de recherche et le contenu est exploré sans problème. Pour les utilisateurs réels, Angular Universal envoie le code du site rendue côté client avec le HTML statique. Le contenu initial de la page se charge à partir d’un code HTML statique puis le site prend le contrôle de la page et garantit une expérience utilisateur interactive côté client.\n\n\n\nLes raisons d’utiliser Angular Universal sur votre site :\n\n\n\nPour rendre votre site Angular SEO-friendly, vous pouvez implémenter Universal dès le début ou progressivement sur un site déjà existant. Angular Universal résout tous les problèmes liés aux meta tags (title, meta description, etc.) et aux URLs pour l’indexation et garantit des temps de chargement rapides des pages. Depuis sa version 5, Angular permet le rendu côté serveur (Server-Side Rendering ou SSR). Le SSR est le processus permettant de déléguer la construction complète de la page au serveur avant de l’envoyer au navigateur de l’utilisateur. La solution Angular Universal permet de bénéficier des dernières technologies web et travailler le référencement naturel.\n\n\n\nCôté technique, Angular Universal se base sur une structure NodeJS et Express pour pouvoir générer les pages statiques demandées par l’utilisateur. En passant par cette solution, vous tirerez parti de ce que l’on appelle Angular Universal Bundle et bénéficierez d’un rendu côté client et côté serveur sur un seul site.\n\n\n\nVoici comment fonctionne ce Bundle :\n\n\n\n\nAngular Universal récupère les pages HTML du site à l’avance pour les servir lors du chargement initial de la page.\n\n\n\nPar la suite, il envoie le code du site, rendu côté client, au navigateur pour remplacer le HTML statique initial.\n\n\n\nUne fois la permutation effectuée, le site continue de fonctionner en mode de rendu côté client.\n\n\n\n\nAvec Angular Universal Bundle, vous serez à même de satisfaire les exigences techniques SEO et de garantir une meilleure expérience utilisateur :\n\n\n\n\nLes crawlers et bots traitent les pages HTML statiques initiales correspondant aux URLs indexables = le contenu est donc crawlable,\n\n\n\nLes contenus du site se chargent en quelques millisecondes sans que les utilisateurs aient à regarder des écrans / fenêtres de navigation vides (le navigateur a uniquement à lire le HTML et non interpréter le JavaScript pour le construire ; un avantage pour les navigateurs installés sur des appareils qui n’exécutent pas ou mal le JavaScript ou dans les cas où les internautes veulent bloquer l’exécution de code JavaScript,\n\n\n\nLes utilisateurs bénéficient d’une expérience de page dynamique sans faille lorsqu’ils commencent à interagir avec les pages = amélioration de la vitesse de chargement des pages.\n\n\n\n\nVoici comment se schématise le fonctionnement du SSR (Server-Side Rendering) :\n\n\n\nAssurer une structure de site SEO-friendly :\n\n\n\nUn autre aspect à prendre en compte afin de rendre un site Angular SEO-friendly est de s&rsquo;assurer que toutes les pages ont une URL conviviale pour les utilisateurs et les moteurs de recherche. Cela signifie que l’adoption de hash (« #« ) dans les URLs doit être évitée car tout ce qui suit le # dans une URL n’est pas suivi par Google :\n\n\n\nPour créer des URL conviviales pour les moteurs de recherche, il faut paramétrer PathLocationStrategy (myurl.com/article/breaking-news) plutôt qu’utiliser HashLocationStrategy (myurl.com/#/article/breaking-news).\n\n\n\nUne fois une structure d’URL uniforme adoptée, il faudra créer un sitemap XML qui centralisera l’exhaustivité des URLs. Une fois créé, il faudra soumettre ce dernier dans Google Search Console afin que Google puisse explorer plus facilement toutes les URLs :\n\n\n\nParallèlement, le chemin du sitemap XML est à renseigner dans le fichier robots.txt :\n\n\n\nUne fois la nomenclature des URLs paramétrée, optimiser le dispositif SEO de chacune des URLs ; chaque URL doit posséder :\n\n\n\n\n&lt;title&gt;&#8230;&lt;/title&gt; unique et optimisée : 600 pixels maximum (= entre 50 et 60 caractères maximum)\n\n\n\n&lt;meta name= »description » content= »… »&gt; complétée et unique : 920 pixels maximum (= entre 120 et 160 caractères maximum)\n\n\n\n&lt;h1&gt;&#8230;&lt;/h1&gt; renseignée et unique\n\n\n\n&lt;link rel= »canonical » href= »… » /&gt; complétée : self-canonical (la page se cible elle-même)\n\n\n\n&lt;link rel= »alternate » hreflang= »… » href= »… » /&gt; complétée(s) (si plusieurs versions linguistiques sur le site)\n\n\n\n\nRecettage et suivi des optimisations pour le SEO :\n\n\n\nPasser par la fonctionnalité « Inspection de l’URL » dans Google Search Console afin de visualiser comment Googlebot « voit » les URLs lors de son exploration (le code source de la page est affiché tel que Googlebot le voit) :\n\n\n\nConclusion :\n\n\n\nOui, Angular peut donc devenir SEO-friendly en suivant l&rsquo;une des méthodes énoncées ci-dessus et en appliquant les préceptes SEO. Pour rappel, chaque framework JavaScript possède ses outils et moyens et Angular Universal permet de faire à la fois du SSR (Server-Side Rendering) et du Pre-Rendering. Lors des phases d&rsquo;optimisation, il sera recommandé de tester, recetter et regarder dans Google Search Console la manière dont Google voit et interprète les pages constituant le site.\n\n\n\nCet article vous a plus ? Abonnez-vous à la newsletter Search Foresight pour ne rien rater de l&rsquo;actualité SEO ? !\nChatGPTPerplexityGoogle AIWhatsAppLinkedInX (Twitter)","paragraphs":["[1ère publication le 28/01/2022 &#8211; Article mis à jour le 23/02/2022]","Angular est un framework JavaScript qui est notamment utilisé pour développer une interaction dynamique sur un site web ou une application. Il s&rsquo;agissait à l&rsquo;origine d&rsquo;un projet de Google, mais c&rsquo;est aujourd&rsquo;hui un framework très populaire. Bien qu&rsquo;Angular offre une bonne expérience utilisateur, il est à noter que cette solution peut rencontrer des freins d&rsquo;un point de vue SEO.","Envie de gagner du temps ?\n\t\t  \n          Faites résumer cet article par l’IA en quelques secondes.\n        \n        \n          \n            Résumer avec l’IA\n          \n        \n      \n     Comment Google interprète un site sous Angular ?","Google indique dans ses guidelines qu&rsquo;actuellement : « il est difficile de traiter JavaScript, et tous les robots d&rsquo;exploration des moteurs de recherche ne sont pas en mesure de le traiter correctement ou immédiatement. ». Or, Angular est un framework&#8230; JavaScript !Voici à quoi ressemble un site sous Angular lorsque le JavaScript est désactivé ; aucun élément de la page ne peut être affiché :","Affichage d&rsquo;un site sous Angular avec le JavaScript désactivé (outil utilisé : Web Developer)","Dans la majeure partie des cas, lorsque Google inspecte un site sous Angular, il voit seulement une coquille vide : pas de contenu, pas de lien, pas de balise SEO, etc. Les chances d’être bien référencé sont donc très minces !","L&rsquo;impact du CSR (Client-Side Rendering) sur les moteurs de recherche et le SEO :","Pour qu’un moteur de recherche comprenne les sites sous Angular, il doit savoir exécuter JavaScript. Or, de nombreux moteurs de recherche ne peuvent pas exécuter le JavaScript ; nativement, cela est complexe, voire impossible :","Un site sous Angular utilise, par défaut, le rendu côté client (dénommé Client-Side Rendering ou CSR) qui rend les pages dans le Document Object Model (DOM) au fur et à mesure que l’utilisateur interagit avec lui. Pour rappel, le DOM est une interface de programmation qui est une représentation du HTML d&rsquo;une page web et qui permet d&rsquo;accéder aux éléments de cette page web et de les modifier avec le langage JavaScript. Les robots d’exploration sont incapables de comprendre le contenu ou la structure d’une page Angular hautement interactive.","Le Client-Side Rendering consiste à laisser le navigateur interpréter le JavaScript pour générer le contenu HTML de votre site. Ainsi, lorsque le navigateur fait une requête au serveur, au lieu d’obtenir tout le contenu du document HTML lui-même, vous obtenez un document HTML simple, avec un fichier JavaScript qui permettra au navigateur de générer le reste du site. En d’autres termes, le site ne contient rien d’autre qu’un script qui rendra tout le contenu et « habillera » la page avec celui-ci (la page est, en quelque sorte, une coquille HTML vide).","Voici comment se schématise le fonctionnement du CSR (Client-Side Rendering) :","À ce titre, les moteurs de recherche rencontrent des difficultés pour indexer tout contenu présent sur les sites sous Angular. Si l&rsquo;optimisation SEO est votre objectif, mieux vaut éviter cette méthode de rendering. En effet, les ressources JavaScript étant, dans la majeure partie des cas, ignorées par les robots d’indexation (car trop long à rendre/exécuter), le CSR peut représenter un frein d’un point de vue SEO. Toutefois, il est à noter que les crawlers de Google sont dorénavant capables d’interpréter les applications/sites conçus avec des frameworks JavaScript. Cependant, ce n’est pas encore optimal ; il peut en résulter un décalage entre le site rendu aux visiteurs et celui rendu au robot et cela peut être pénalisant.","Lorsqu’un site Angular avec un rendu côté client standard est privilégié, les moteurs de recherche Bing, Yahoo, DuckDuckGo et Yandex n’indexeront pas les URLs. Ces derniers ne verront que des pages HTML vides, car leurs robots ne savent pas exécuter le contenu dynamique ; les robots des réseaux sociaux ne savent pas le faire non plus.","Angular et positionnement SEO sur Google :","Si Google est le seul moteur de recherche qui compte pour votre projet, vous avez de bonnes chances que vos pages dynamiques soient indexées. Toutefois, vous n’avez aucune garantie. La documentation de Google Search Central  liste plusieurs raisons pouvant empêcher l’indexation correcte et rapide de votre contenu rendu par JavaScript :","Retards dans l&rsquo;indexation du contenu dynamique causés par la file d&rsquo;attente du moteur de rendu de Googlebot.","Chargement lent ou retardé de votre code JavaScript notamment s&rsquo;il est déclenché par des actions sur la page.","Un code JavaScript complexe, coûteux à exécuter et dépassant le budget de rendu de Googlebot.","Des erreurs de rendu au cours du processus qui font que certaines parties de votre contenu n’arrivent pas jusqu’à l’index.","Pour rappel, voici le processus de Google pour positionner des URLs dans les SERPs :","Les moyens pour aider Google à crawler/explorer Angular :","Il n’y a qu’un seul moyen pour assurer l’indexation et le classement de votre site : chaque URL du site doit renvoyer une page HTML entièrement rendue avec des métadonnées et un contenu disponible dès le chargement.","Pour atteindre cet objectif, il existe 3 méthodes :","Rendu côté serveur (= SSR ou Server-Side Rendering)","Pré-rendu (= Pre-Rendering)","Dynamic Rendering (= Rendu dynamique)","Ces trois méthodes donnent le résultat escompté : les robots d&rsquo;exploration obtiennent l&rsquo;intégralité du contenu au moment du chargement (contenu HTML statique) et l&rsquo;indexent comme une page HTML normale. Cependant, ces méthodes fonctionnent de manière différente :","SSR / Server-Side Rendering : chaque page HTML est rendue sur le serveur durant l’exécution pour ensuite être entièrement rendue au client (navigateur). Cela signifie qu’avant que la page ne se charge, il faut un certain temps au serveur pour rendre le HTML sur demande et l’envoyer au navigateur. Cette méthode peut potentiellement diminuer la vitesse de chargement de la page, notamment si de nombreuses requêtes sont effectuées en même temps.","Pre-Rendering : un fichier HTML est rendu pour chaque URL au moment de la construction. Cela signifie que tous les fichiers HTML du site sont construits à l’avance afin que les pages soient prêtes à être chargées rapidement sur demande. L’inconvénient est que les modifications apportées à ces pages nécessitent de les reconstruire à chaque fois.","Dynamic Rendering : le site a des pages HTML pré-rendues et les sert uniquement aux crawlers. Les utilisateurs réels, eux, interagissent avec la version normale du site rendue côté client.","Oui, Angular peut donc devenir SEO-friendly :","Chaque framework JavaScript possède ses outils et moyens afin de mettre en œuvre l’une des méthodes ci-dessus pour lever les freins SEO. Angular fournit une solution complète de SSR (Server-Side Rendering) et de Pre-Rendering appelée Angular Universal.","Angular Universal est une solution permettant de bénéficier à la fois d’un rendu côté serveur et côté client sur un seul site. Il récupère à l’avance les pages HTML de toutes les URLs. Ces pages sont servies aux robots des moteurs de recherche et le contenu est exploré sans problème. Pour les utilisateurs réels, Angular Universal envoie le code du site rendue côté client avec le HTML statique. Le contenu initial de la page se charge à partir d’un code HTML statique puis le site prend le contrôle de la page et garantit une expérience utilisateur interactive côté client.","Les raisons d’utiliser Angular Universal sur votre site :","Pour rendre votre site Angular SEO-friendly, vous pouvez implémenter Universal dès le début ou progressivement sur un site déjà existant. Angular Universal résout tous les problèmes liés aux meta tags (title, meta description, etc.) et aux URLs pour l’indexation et garantit des temps de chargement rapides des pages. Depuis sa version 5, Angular permet le rendu côté serveur (Server-Side Rendering ou SSR). Le SSR est le processus permettant de déléguer la construction complète de la page au serveur avant de l’envoyer au navigateur de l’utilisateur. La solution Angular Universal permet de bénéficier des dernières technologies web et travailler le référencement naturel.","Côté technique, Angular Universal se base sur une structure NodeJS et Express pour pouvoir générer les pages statiques demandées par l’utilisateur. En passant par cette solution, vous tirerez parti de ce que l’on appelle Angular Universal Bundle et bénéficierez d’un rendu côté client et côté serveur sur un seul site.","Voici comment fonctionne ce Bundle :","Angular Universal récupère les pages HTML du site à l’avance pour les servir lors du chargement initial de la page.","Par la suite, il envoie le code du site, rendu côté client, au navigateur pour remplacer le HTML statique initial.","Une fois la permutation effectuée, le site continue de fonctionner en mode de rendu côté client.","Avec Angular Universal Bundle, vous serez à même de satisfaire les exigences techniques SEO et de garantir une meilleure expérience utilisateur :","Les crawlers et bots traitent les pages HTML statiques initiales correspondant aux URLs indexables = le contenu est donc crawlable,","Les contenus du site se chargent en quelques millisecondes sans que les utilisateurs aient à regarder des écrans / fenêtres de navigation vides (le navigateur a uniquement à lire le HTML et non interpréter le JavaScript pour le construire ; un avantage pour les navigateurs installés sur des appareils qui n’exécutent pas ou mal le JavaScript ou dans les cas où les internautes veulent bloquer l’exécution de code JavaScript,","Les utilisateurs bénéficient d’une expérience de page dynamique sans faille lorsqu’ils commencent à interagir avec les pages = amélioration de la vitesse de chargement des pages.","Voici comment se schématise le fonctionnement du SSR (Server-Side Rendering) :","Assurer une structure de site SEO-friendly :","Un autre aspect à prendre en compte afin de rendre un site Angular SEO-friendly est de s&rsquo;assurer que toutes les pages ont une URL conviviale pour les utilisateurs et les moteurs de recherche. Cela signifie que l’adoption de hash (« #« ) dans les URLs doit être évitée car tout ce qui suit le # dans une URL n’est pas suivi par Google :","Pour créer des URL conviviales pour les moteurs de recherche, il faut paramétrer PathLocationStrategy (myurl.com/article/breaking-news) plutôt qu’utiliser HashLocationStrategy (myurl.com/#/article/breaking-news).","Une fois une structure d’URL uniforme adoptée, il faudra créer un sitemap XML qui centralisera l’exhaustivité des URLs. Une fois créé, il faudra soumettre ce dernier dans Google Search Console afin que Google puisse explorer plus facilement toutes les URLs :","Parallèlement, le chemin du sitemap XML est à renseigner dans le fichier robots.txt :","Une fois la nomenclature des URLs paramétrée, optimiser le dispositif SEO de chacune des URLs ; chaque URL doit posséder :","&lt;title&gt;&#8230;&lt;/title&gt; unique et optimisée : 600 pixels maximum (= entre 50 et 60 caractères maximum)","&lt;meta name= »description » content= »… »&gt; complétée et unique : 920 pixels maximum (= entre 120 et 160 caractères maximum)","&lt;h1&gt;&#8230;&lt;/h1&gt; renseignée et unique","&lt;link rel= »canonical » href= »… » /&gt; complétée : self-canonical (la page se cible elle-même)","&lt;link rel= »alternate » hreflang= »… » href= »… » /&gt; complétée(s) (si plusieurs versions linguistiques sur le site)","Recettage et suivi des optimisations pour le SEO :","Passer par la fonctionnalité « Inspection de l’URL » dans Google Search Console afin de visualiser comment Googlebot « voit » les URLs lors de son exploration (le code source de la page est affiché tel que Googlebot le voit) :","Conclusion :","Oui, Angular peut donc devenir SEO-friendly en suivant l&rsquo;une des méthodes énoncées ci-dessus et en appliquant les préceptes SEO. Pour rappel, chaque framework JavaScript possède ses outils et moyens et Angular Universal permet de faire à la fois du SSR (Server-Side Rendering) et du Pre-Rendering. Lors des phases d&rsquo;optimisation, il sera recommandé de tester, recetter et regarder dans Google Search Console la manière dont Google voit et interprète les pages constituant le site.","Cet article vous a plus ? Abonnez-vous à la newsletter Search Foresight pour ne rien rater de l&rsquo;actualité SEO ? !\nChatGPTPerplexityGoogle AIWhatsAppLinkedInX (Twitter)"],"content_blocks":[{"id":"paragraph-1","type":"core/paragraph","heading":"","plain_text":"[1ère publication le 28/01/2022 - Article mis à jour le 23/02/2022]","html":"\n<p><strong>[1ère publication le 28/01/2022 - Article mis à jour le 23/02/2022]</strong></p>\n"},{"id":"paragraph-2","type":"core/paragraph","heading":"","plain_text":"Angular est un framework JavaScript qui est notamment utilisé pour développer une interaction dynamique sur un site web ou une application. Il s'agissait à l'origine d'un projet de Google, mais c'est aujourd'hui un framework très populaire. Bien qu'Angular offre une bonne expérience utilisateur, il est à noter que cette solution peut rencontrer des freins d'un point de vue SEO.","html":"\n<p><strong>Angular</strong> est un <em>framework</em> <strong><a href=\"https://peakace.fr/blog/seo/bonnes-pratiques-seo-frameworks-javascript/\">JavaScript</a></strong> qui est notamment utilisé pour développer une interaction dynamique sur un site web ou une application. Il s'agissait à l'origine d'un projet de <strong>Google</strong>, mais c'est aujourd'hui un <em>framework </em>très populaire. Bien qu'<strong>Angular</strong> offre une bonne expérience utilisateur, il est à noter que cette solution peut rencontrer des freins d'un point de vue <strong>SEO</strong>.</p>\n"},{"id":"heading-3","type":"core/heading","heading":"Comment Google interprète un site sous Angular ?","plain_text":"Comment Google interprète un site sous Angular ?","html":"\n<h2 class=\"wp-block-heading\" id=\"comment-google-interprete-un-site-sous-angular\"> Comment Google interprète un site sous Angular ? </h2>\n"},{"id":"paragraph-4","type":"core/paragraph","heading":"","plain_text":"Google indique dans ses guidelines qu'actuellement : « il est difficile de traiter JavaScript, et tous les robots d'exploration des moteurs de recherche ne sont pas en mesure de le traiter correctement ou immédiatement. ». Or, Angular est un framework... JavaScript !Voici à quoi ressemble un site sous Angular lorsque le JavaScript est désactivé ; aucun élément de la page ne peut être affiché :","html":"\n<p><strong>Google</strong> indique dans ses <em>guidelines</em> qu'actuellement : «<em> <a href=\"https://developers.google.com/search/docs/advanced/javascript/dynamic-rendering\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">il est difficile de traiter JavaScript, et tous les robots d'exploration des moteurs de recherche ne sont pas en mesure de le traiter correctement ou immédiatement.</a></em> ». Or, <strong>Angular</strong> est un <em>framework</em>... <strong>JavaScript</strong> !<br><br>Voici à quoi ressemble un site sous<strong> Angular</strong> lorsque le <strong>JavaScript</strong> est désactivé ; aucun élément de la page ne peut être affiché :</p>\n"},{"id":"paragraph-5","type":"core/paragraph","heading":"","plain_text":"Affichage d'un site sous Angular avec le JavaScript désactivé (outil utilisé : Web Developer)","html":"\n<p><em>Affichage d'un site sous <strong>Angular </strong>avec le<strong> JavaScript</strong> désactivé (outil utilisé : Web Developer)</em></p>\n"},{"id":"paragraph-6","type":"core/paragraph","heading":"","plain_text":"Dans la majeure partie des cas, lorsque Google inspecte un site sous Angular, il voit seulement une coquille vide : pas de contenu, pas de lien, pas de balise SEO, etc. Les chances d’être bien référencé sont donc très minces !","html":"\n<p>Dans la majeure partie des cas, lorsque <strong>Google</strong> inspecte un site sous <strong>Angular</strong>, il voit seulement une coquille vide : pas de contenu, pas de lien, pas de balise <strong>SEO</strong>, etc. Les chances d’être bien référencé sont donc très minces !</p>\n"},{"id":"heading-7","type":"core/heading","heading":"L'impact du CSR (Client-Side Rendering) sur les moteurs de recherche et le SEO :","plain_text":"L'impact du CSR (Client-Side Rendering) sur les moteurs de recherche et le SEO :","html":"\n<h2 class=\"wp-block-heading\" id=\"l-impact-du-csr-client-side-rendering-sur-les-moteurs-de-recherche-et-le-seo\"> L'impact du CSR (Client-Side Rendering) sur les moteurs de recherche et le SEO : </h2>\n"},{"id":"paragraph-8","type":"core/paragraph","heading":"","plain_text":"Pour qu’un moteur de recherche comprenne les sites sous Angular, il doit savoir exécuter JavaScript. Or, de nombreux moteurs de recherche ne peuvent pas exécuter le JavaScript ; nativement, cela est complexe, voire impossible :","html":"\n<p>Pour qu’un moteur de recherche comprenne les sites sous <strong>Angular</strong>, il doit savoir exécuter <strong>JavaScript</strong>. Or, de nombreux <a href=\"https://peakace.fr/blog/seo/definitions-les-moteurs-de-recherche/\">moteurs de recherche</a> ne peuvent pas exécuter le <strong>JavaScript</strong> ; nativement, cela est complexe, voire impossible :</p>\n"},{"id":"paragraph-9","type":"core/paragraph","heading":"","plain_text":"Un site sous Angular utilise, par défaut, le rendu côté client (dénommé Client-Side Rendering ou CSR) qui rend les pages dans le Document Object Model (DOM) au fur et à mesure que l’utilisateur interagit avec lui. Pour rappel, le DOM est une interface de programmation qui est une représentation du HTML d'une page web et qui permet d'accéder aux éléments de cette page web et de les modifier avec le langage JavaScript. Les robots d’exploration sont incapables de comprendre le contenu ou la structure d’une page Angular hautement interactive.","html":"\n<p>Un site sous <strong>Angular</strong> utilise, par défaut, le rendu côté client (dénommé <strong>Client-Side Rendering</strong> ou <strong>CSR</strong>) qui rend les pages dans le <strong>Document Object Model</strong> (<strong>DOM</strong>) au fur et à mesure que l’utilisateur interagit avec lui. Pour rappel, le <strong>DOM</strong> est une interface de programmation qui est une représentation du <strong>HTML</strong> d'une page web et qui permet d'accéder aux éléments de cette page web et de les modifier avec le langage <strong>JavaScript</strong>. Les robots d’exploration sont incapables de comprendre le contenu ou la structure d’une page <strong>Angular</strong> hautement interactive.</p>\n"},{"id":"paragraph-10","type":"core/paragraph","heading":"","plain_text":"Le Client-Side Rendering consiste à laisser le navigateur interpréter le JavaScript pour générer le contenu HTML de votre site. Ainsi, lorsque le navigateur fait une requête au serveur, au lieu d’obtenir tout le contenu du document HTML lui-même, vous obtenez un document HTML simple, avec un fichier JavaScript qui permettra au navigateur de générer le reste du site. En d’autres termes, le site ne contient rien d’autre qu’un script qui rendra tout le contenu et « habillera » la page avec celui-ci (la page est, en quelque sorte, une coquille HTML vide).","html":"\n<p> Le <strong>Client-Side Rendering</strong> consiste à laisser le navigateur interpréter le <strong>JavaScript</strong> pour générer le contenu <strong>HTML</strong> de votre site. Ainsi, lorsque le navigateur fait une requête au serveur, au lieu d’obtenir tout le contenu du document <strong>HTML</strong> lui-même, vous obtenez un document <strong>HTML</strong> simple, avec un fichier <strong>JavaScript</strong> qui permettra au navigateur de générer le reste du site. En d’autres termes, le site ne contient rien d’autre qu’un script qui rendra tout le contenu et « habillera » la page avec celui-ci (la page est, en quelque sorte, une coquille <strong>HTML</strong> vide). </p>\n"},{"id":"heading-11","type":"core/heading","heading":"Voici comment se schématise le fonctionnement du CSR (Client-Side Rendering) :","plain_text":"Voici comment se schématise le fonctionnement du CSR (Client-Side Rendering) :","html":"\n<h3 class=\"wp-block-heading\" id=\"voici-comment-se-schematise-le-fonctionnement-du-csr-client-side-rendering\"> Voici comment se schématise le fonctionnement du CSR (Client-Side Rendering) : </h3>\n"},{"id":"paragraph-12","type":"core/paragraph","heading":"","plain_text":"À ce titre, les moteurs de recherche rencontrent des difficultés pour indexer tout contenu présent sur les sites sous Angular. Si l'optimisation SEO est votre objectif, mieux vaut éviter cette méthode de rendering. En effet, les ressources JavaScript étant, dans la majeure partie des cas, ignorées par les robots d’indexation (car trop long à rendre/exécuter), le CSR peut représenter un frein d’un point de vue SEO. Toutefois, il est à noter que les crawlers de Google sont dorénavant capables d’interpréter les applications/sites conçus avec des frameworks JavaScript. Cependant, ce n’est pas encore optimal ; il peut en résulter un décalage entre le site rendu aux visiteurs et celui rendu au robot et cela peut être pénalisant.","html":"\n<p>À ce titre, les moteurs de recherche rencontrent des difficultés pour indexer tout contenu présent sur les sites sous <strong>Angular</strong>. Si l'optimisation <strong>SEO</strong> est votre objectif, mieux vaut éviter cette méthode de <strong>rendering</strong>. En effet, les ressources <strong>JavaScript</strong> étant, dans la majeure partie des cas, ignorées par les robots d’indexation (car trop long à rendre/exécuter), le <strong>CSR</strong> peut représenter un frein d’un point de vue <strong><a href=\"https://peakace.fr/expertises/seo/\">SEO</a></strong>. Toutefois, il est à noter que les <em>crawlers</em> de <strong>Google</strong> sont dorénavant capables d’interpréter les applications/sites conçus avec des <em>frameworks</em> <strong>JavaScript</strong>. Cependant, ce n’est pas encore optimal ; il peut en résulter un décalage entre le site rendu aux visiteurs et celui rendu au robot et cela peut être pénalisant.</p>\n"},{"id":"paragraph-13","type":"core/paragraph","heading":"","plain_text":"Lorsqu’un site Angular avec un rendu côté client standard est privilégié, les moteurs de recherche Bing, Yahoo, DuckDuckGo et Yandex n’indexeront pas les URLs. Ces derniers ne verront que des pages HTML vides, car leurs robots ne savent pas exécuter le contenu dynamique ; les robots des réseaux sociaux ne savent pas le faire non plus.","html":"\n<p>Lorsqu’un site <strong>Angular</strong> avec un rendu côté client standard est privilégié, les moteurs de recherche <strong>Bing</strong>, <strong>Yahoo</strong>, <strong>DuckDuckGo</strong> et <strong>Yandex</strong> n’indexeront pas les URLs. Ces derniers ne verront que des pages <strong>HTML</strong> vides, car leurs robots ne savent pas exécuter le contenu dynamique ; les robots des réseaux sociaux ne savent pas le faire non plus.</p>\n"},{"id":"heading-14","type":"core/heading","heading":"Angular et positionnement SEO sur Google :","plain_text":"Angular et positionnement SEO sur Google :","html":"\n<h2 class=\"wp-block-heading\" id=\"angular-et-positionnement-seo-sur-google\"> Angular et positionnement SEO sur Google : </h2>\n"},{"id":"paragraph-15","type":"core/paragraph","heading":"","plain_text":"Si Google est le seul moteur de recherche qui compte pour votre projet, vous avez de bonnes chances que vos pages dynamiques soient indexées. Toutefois, vous n’avez aucune garantie. La documentation de Google Search Central  liste plusieurs raisons pouvant empêcher l’indexation correcte et rapide de votre contenu rendu par JavaScript :","html":"\n<p> Si <strong>Google</strong> est le seul moteur de recherche qui compte pour votre projet, vous avez de bonnes chances que vos pages dynamiques soient indexées. Toutefois, vous n’avez aucune garantie. La documentation de <strong><a href=\"https://developers.google.com/search/docs\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google Search Central</a></strong>  liste plusieurs raisons pouvant empêcher l’indexation correcte et rapide de votre contenu rendu par <strong>JavaScript</strong> :</p>\n"},{"id":"list-16","type":"core/list","heading":"","plain_text":"Retards dans l'indexation du contenu dynamique causés par la file d'attente du moteur de rendu de Googlebot.\n\n\n\nChargement lent ou retardé de votre code JavaScript notamment s'il est déclenché par des actions sur la page.\n\n\n\nUn code JavaScript complexe, coûteux à exécuter et dépassant le budget de rendu de Googlebot.\n\n\n\nDes erreurs de rendu au cours du processus qui font que certaines parties de votre contenu n’arrivent pas jusqu’à l’index.","html":"\n<ul class=\"wp-block-list\">\n<li>Retards dans l'indexation du contenu dynamique causés par la file d'attente du moteur de rendu de <strong>Googlebot</strong>.</li>\n\n\n\n<li>Chargement lent ou retardé de votre code <strong>JavaScript</strong> notamment s'il est déclenché par des actions sur la page.</li>\n\n\n\n<li>Un code <strong>JavaScript</strong> complexe, coûteux à exécuter et dépassant le budget de rendu de <strong>Googlebot</strong>.</li>\n\n\n\n<li>Des erreurs de rendu au cours du processus qui font que certaines parties de votre contenu n’arrivent pas jusqu’à l’index.</li>\n</ul>\n"},{"id":"paragraph-17","type":"core/paragraph","heading":"","plain_text":"Pour rappel, voici le processus de Google pour positionner des URLs dans les SERPs :","html":"\n<p> Pour rappel, voici le processus de <strong>Google</strong> pour positionner des URLs dans les <strong>SERPs</strong> :  </p>\n"},{"id":"heading-18","type":"core/heading","heading":"Les moyens pour aider Google à crawler/explorer Angular :","plain_text":"Les moyens pour aider Google à crawler/explorer Angular :","html":"\n<h3 class=\"wp-block-heading\" id=\"les-moyens-pour-aider-google-a-crawler-explorer-angular\"> Les moyens pour aider Google à crawler/explorer Angular : </h3>\n"},{"id":"paragraph-19","type":"core/paragraph","heading":"","plain_text":"Il n’y a qu’un seul moyen pour assurer l’indexation et le classement de votre site : chaque URL du site doit renvoyer une page HTML entièrement rendue avec des métadonnées et un contenu disponible dès le chargement.","html":"\n<p> Il n’y a qu’un seul moyen pour assurer l’indexation et le classement de votre site : chaque URL du site doit renvoyer une page <strong>HTML </strong>entièrement rendue avec des métadonnées et un contenu disponible dès le chargement. </p>\n"},{"id":"paragraph-20","type":"core/paragraph","heading":"","plain_text":"Pour atteindre cet objectif, il existe 3 méthodes :","html":"\n<p> Pour atteindre cet objectif, il existe 3 méthodes :</p>\n"},{"id":"list-21","type":"core/list","heading":"","plain_text":"Rendu côté serveur (= SSR ou Server-Side Rendering)\n\n\n\nPré-rendu (= Pre-Rendering)\n\n\n\nDynamic Rendering (= Rendu dynamique)","html":"\n<ul class=\"wp-block-list\">\n<li><strong>Rendu côté serveur</strong> (= <strong>SSR</strong> ou <strong>Server-Side Rendering</strong>)</li>\n\n\n\n<li><strong><strong>Pré-rendu</strong> (= <strong>Pre-Rendering</strong>)</strong></li>\n\n\n\n<li><strong>Dynamic Rendering</strong> (= <strong>Rendu dynamique</strong>)</li>\n</ul>\n"},{"id":"paragraph-22","type":"core/paragraph","heading":"","plain_text":"Ces trois méthodes donnent le résultat escompté : les robots d'exploration obtiennent l'intégralité du contenu au moment du chargement (contenu HTML statique) et l'indexent comme une page HTML normale. Cependant, ces méthodes fonctionnent de manière différente :","html":"\n<p> Ces trois méthodes donnent le résultat escompté : les robots d'exploration obtiennent l'intégralité du contenu au moment du chargement (contenu <strong>HTML</strong> statique) et l'indexent comme une page <strong>HTML </strong>normale. Cependant, ces méthodes fonctionnent de manière différente : </p>\n"},{"id":"list-23","type":"core/list","heading":"","plain_text":"SSR / Server-Side Rendering : chaque page HTML est rendue sur le serveur durant l’exécution pour ensuite être entièrement rendue au client (navigateur). Cela signifie qu’avant que la page ne se charge, il faut un certain temps au serveur pour rendre le HTML sur demande et l’envoyer au navigateur. Cette méthode peut potentiellement diminuer la vitesse de chargement de la page, notamment si de nombreuses requêtes sont effectuées en même temps.\n\n\n\nPre-Rendering : un fichier HTML est rendu pour chaque URL au moment de la construction. Cela signifie que tous les fichiers HTML du site sont construits à l’avance afin que les pages soient prêtes à être chargées rapidement sur demande. L’inconvénient est que les modifications apportées à ces pages nécessitent de les reconstruire à chaque fois.\n\n\n\nDynamic Rendering : le site a des pages HTML pré-rendues et les sert uniquement aux crawlers. Les utilisateurs réels, eux, interagissent avec la version normale du site rendue côté client.","html":"\n<ul class=\"wp-block-list\">\n<li><strong>SSR</strong> / <strong>Server-Side Rendering</strong> : chaque page <strong>HTML</strong> est rendue sur le serveur durant l’exécution pour ensuite être entièrement rendue au client (navigateur). Cela signifie qu’avant que la page ne se charge, il faut un certain temps au serveur pour rendre le <strong>HTML</strong> sur demande et l’envoyer au navigateur. Cette méthode peut potentiellement diminuer la vitesse de chargement de la page, notamment si de nombreuses requêtes sont effectuées en même temps.</li>\n\n\n\n<li><strong>Pre-Rendering</strong> : un fichier <strong>HTML</strong> est rendu pour chaque URL au moment de la construction. Cela signifie que tous les fichiers <strong>HTML</strong> du site sont construits à l’avance afin que les pages soient prêtes à être chargées rapidement sur demande. L’inconvénient est que les modifications apportées à ces pages nécessitent de les reconstruire à chaque fois.</li>\n\n\n\n<li><strong>Dynamic Rendering</strong> : le site a des pages <strong>HTML</strong> pré-rendues et les sert uniquement aux <em>crawlers</em>. Les utilisateurs réels, eux, interagissent avec la version normale du site rendue côté client.</li>\n</ul>\n"},{"id":"heading-24","type":"core/heading","heading":"Oui, Angular peut donc devenir SEO-friendly :","plain_text":"Oui, Angular peut donc devenir SEO-friendly :","html":"\n<h2 class=\"wp-block-heading\" id=\"oui-angular-peut-donc-devenir-seo-friendly\"> Oui, Angular peut donc devenir SEO-friendly : </h2>\n"},{"id":"paragraph-25","type":"core/paragraph","heading":"","plain_text":"Chaque framework JavaScript possède ses outils et moyens afin de mettre en œuvre l’une des méthodes ci-dessus pour lever les freins SEO. Angular fournit une solution complète de SSR (Server-Side Rendering) et de Pre-Rendering appelée Angular Universal.","html":"\n<p>Chaque <em>framework</em> <strong>JavaScript</strong> possède ses outils et moyens afin de mettre en œuvre l’une des méthodes ci-dessus pour lever les freins <strong>SEO</strong>. <strong>Angular</strong> fournit une solution complète de <strong>SSR</strong> (<strong>Server-Side Rendering</strong>) et de <strong>Pre-Rendering</strong> appelée <strong><a href=\"https://angular.io/guide/universal\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Angular Universal</a></strong>. </p>\n"},{"id":"paragraph-26","type":"core/paragraph","heading":"","plain_text":"Angular Universal est une solution permettant de bénéficier à la fois d’un rendu côté serveur et côté client sur un seul site. Il récupère à l’avance les pages HTML de toutes les URLs. Ces pages sont servies aux robots des moteurs de recherche et le contenu est exploré sans problème. Pour les utilisateurs réels, Angular Universal envoie le code du site rendue côté client avec le HTML statique. Le contenu initial de la page se charge à partir d’un code HTML statique puis le site prend le contrôle de la page et garantit une expérience utilisateur interactive côté client.","html":"\n<p><strong>Angular Universal</strong> est une solution permettant de bénéficier à la fois d’un rendu côté serveur et côté client sur un seul site. Il récupère à l’avance les pages <strong>HTML</strong> de toutes les URLs. Ces pages sont servies aux robots des moteurs de recherche et le contenu est exploré sans problème. Pour les utilisateurs réels, <strong>Angular Universal</strong> envoie le code du site rendue côté client avec le <strong>HTML</strong> statique. Le contenu initial de la page se charge à partir d’un code <strong>HTML</strong> statique puis le site prend le contrôle de la page et garantit une expérience utilisateur interactive côté client.</p>\n"},{"id":"heading-27","type":"core/heading","heading":"Les raisons d’utiliser Angular Universal sur votre site :","plain_text":"Les raisons d’utiliser Angular Universal sur votre site :","html":"\n<h2 class=\"wp-block-heading\" id=\"les-raisons-d-utiliser-angular-universal-sur-votre-site\">Les raisons d’utiliser Angular Universal sur votre site :</h2>\n"},{"id":"paragraph-28","type":"core/paragraph","heading":"","plain_text":"Pour rendre votre site Angular SEO-friendly, vous pouvez implémenter Universal dès le début ou progressivement sur un site déjà existant. Angular Universal résout tous les problèmes liés aux meta tags (title, meta description, etc.) et aux URLs pour l’indexation et garantit des temps de chargement rapides des pages. Depuis sa version 5, Angular permet le rendu côté serveur (Server-Side Rendering ou SSR). Le SSR est le processus permettant de déléguer la construction complète de la page au serveur avant de l’envoyer au navigateur de l’utilisateur. La solution Angular Universal permet de bénéficier des dernières technologies web et travailler le référencement naturel.","html":"\n<p>Pour rendre votre site <strong>Angular SEO-friendly</strong>, vous pouvez implémenter <strong>Universal</strong> dès le début ou progressivement sur un site déjà existant. <strong>Angular Universal</strong> résout tous les problèmes liés aux <strong>meta tags</strong> (<strong>title</strong>, <strong>meta description</strong>, etc.) et aux URLs pour l’indexation et garantit des temps de chargement rapides des pages. Depuis sa version 5, <strong>Angular</strong> permet le rendu côté serveur (<strong>Server-Side Rendering</strong> ou <strong>SSR</strong>). Le <strong>SSR</strong> est le processus permettant de déléguer la construction complète de la page au serveur avant de l’envoyer au navigateur de l’utilisateur. La solution <strong>Angular Universal</strong> permet de bénéficier des dernières technologies web et travailler le référencement naturel.</p>\n"},{"id":"paragraph-29","type":"core/paragraph","heading":"","plain_text":"Côté technique, Angular Universal se base sur une structure NodeJS et Express pour pouvoir générer les pages statiques demandées par l’utilisateur. En passant par cette solution, vous tirerez parti de ce que l’on appelle Angular Universal Bundle et bénéficierez d’un rendu côté client et côté serveur sur un seul site.","html":"\n<p>Côté technique, <strong>Angular Universal</strong> se base sur une structure <strong>NodeJS</strong> et <strong>Express</strong> pour pouvoir générer les pages statiques demandées par l’utilisateur. En passant par cette solution, vous tirerez parti de ce que l’on appelle <strong>Angular Universal Bundle</strong> et bénéficierez d’un rendu côté client et côté serveur sur un seul site.</p>\n"},{"id":"paragraph-30","type":"core/paragraph","heading":"","plain_text":"Voici comment fonctionne ce Bundle :","html":"\n<p>Voici comment fonctionne ce <strong>Bundle</strong> :</p>\n"},{"id":"list-31","type":"core/list","heading":"","plain_text":"Angular Universal récupère les pages HTML du site à l’avance pour les servir lors du chargement initial de la page.\n\n\n\nPar la suite, il envoie le code du site, rendu côté client, au navigateur pour remplacer le HTML statique initial.\n\n\n\nUne fois la permutation effectuée, le site continue de fonctionner en mode de rendu côté client.","html":"\n<ol class=\"wp-block-list\">\n<li><strong>Angular Universal</strong> récupère les pages <strong>HTML</strong> du site à l’avance pour les servir lors du chargement initial de la page.</li>\n\n\n\n<li>Par la suite, il envoie le code du site, rendu côté client, au navigateur pour remplacer le <strong>HTML</strong> statique initial.</li>\n\n\n\n<li>Une fois la permutation effectuée, le site continue de fonctionner en mode de rendu côté client.</li>\n</ol>\n"},{"id":"paragraph-32","type":"core/paragraph","heading":"","plain_text":"Avec Angular Universal Bundle, vous serez à même de satisfaire les exigences techniques SEO et de garantir une meilleure expérience utilisateur :","html":"\n<p>Avec <strong>Angular Universal Bundle</strong>, vous serez à même de satisfaire les exigences <strong>techniques SEO</strong> et de garantir une meilleure expérience utilisateur :</p>\n"},{"id":"list-33","type":"core/list","heading":"","plain_text":"Les crawlers et bots traitent les pages HTML statiques initiales correspondant aux URLs indexables = le contenu est donc crawlable,\n\n\n\nLes contenus du site se chargent en quelques millisecondes sans que les utilisateurs aient à regarder des écrans / fenêtres de navigation vides (le navigateur a uniquement à lire le HTML et non interpréter le JavaScript pour le construire ; un avantage pour les navigateurs installés sur des appareils qui n’exécutent pas ou mal le JavaScript ou dans les cas où les internautes veulent bloquer l’exécution de code JavaScript,\n\n\n\nLes utilisateurs bénéficient d’une expérience de page dynamique sans faille lorsqu’ils commencent à interagir avec les pages = amélioration de la vitesse de chargement des pages.","html":"\n<ul class=\"wp-block-list\">\n<li>Les <em>crawlers</em> et bots traitent les pages <strong>HTML</strong> statiques initiales correspondant aux URLs indexables = le contenu est donc <em>crawlable</em>,</li>\n\n\n\n<li>Les contenus du site se chargent en quelques millisecondes sans que les utilisateurs aient à regarder des écrans / fenêtres de navigation vides (le navigateur a uniquement à lire le <strong>HTML</strong> et non interpréter le <strong>JavaScript</strong> pour le construire ; un avantage pour les navigateurs installés sur des appareils qui n’exécutent pas ou mal le <strong>JavaScript</strong> ou dans les cas où les internautes veulent bloquer l’exécution de code <strong>JavaScript</strong>,</li>\n\n\n\n<li>Les utilisateurs bénéficient d’une expérience de page dynamique sans faille lorsqu’ils commencent à interagir avec les pages = amélioration de la vitesse de chargement des pages.</li>\n</ul>\n"},{"id":"heading-34","type":"core/heading","heading":"Voici comment se schématise le fonctionnement du SSR (Server-Side Rendering) :","plain_text":"Voici comment se schématise le fonctionnement du SSR (Server-Side Rendering) :","html":"\n<h3 class=\"wp-block-heading\" id=\"voici-comment-se-schematise-le-fonctionnement-du-ssr-server-side-rendering\">Voici comment se schématise le fonctionnement du SSR (Server-Side Rendering) :</h3>\n"},{"id":"heading-35","type":"core/heading","heading":"Assurer une structure de site SEO-friendly :","plain_text":"Assurer une structure de site SEO-friendly :","html":"\n<h2 class=\"wp-block-heading\" id=\"assurer-une-structure-de-site-seo-friendly\">Assurer une structure de site SEO-friendly :</h2>\n"},{"id":"paragraph-36","type":"core/paragraph","heading":"","plain_text":"Un autre aspect à prendre en compte afin de rendre un site Angular SEO-friendly est de s'assurer que toutes les pages ont une URL conviviale pour les utilisateurs et les moteurs de recherche. Cela signifie que l’adoption de hash (\"#\") dans les URLs doit être évitée car tout ce qui suit le # dans une URL n’est pas suivi par Google :","html":"\n<p>Un autre aspect à prendre en compte afin de rendre un site <strong>Angular SEO-friendly</strong> est de s'assurer que toutes les pages ont une URL conviviale pour les utilisateurs et les moteurs de recherche. Cela signifie que l’adoption de <strong>hash</strong> (\"<strong>#</strong>\") dans les URLs doit être évitée car tout ce qui suit le <strong>#</strong> dans une URL n’est pas suivi par <strong>Google</strong> :</p>\n"},{"id":"paragraph-37","type":"core/paragraph","heading":"","plain_text":"Pour créer des URL conviviales pour les moteurs de recherche, il faut paramétrer PathLocationStrategy (myurl.com/article/breaking-news) plutôt qu’utiliser HashLocationStrategy (myurl.com/#/article/breaking-news).","html":"\n<p>Pour créer des URL conviviales pour les moteurs de recherche, il faut paramétrer <strong>PathLocationStrategy</strong> (myurl.com/<strong>article/breaking-news</strong>) plutôt qu’utiliser <strong>HashLocationStrategy</strong> (myurl.com/<strong>#/article/breaking-news</strong>).</p>\n"},{"id":"paragraph-38","type":"core/paragraph","heading":"","plain_text":"Une fois une structure d’URL uniforme adoptée, il faudra créer un sitemap XML qui centralisera l’exhaustivité des URLs. Une fois créé, il faudra soumettre ce dernier dans Google Search Console afin que Google puisse explorer plus facilement toutes les URLs :","html":"\n<p>Une fois une structure d’URL uniforme adoptée, il faudra créer un <strong><a href=\"https://peakace.fr/blog/seo/definitions-sitemap/\">sitemap XML</a></strong> qui centralisera l’exhaustivité des URLs. Une fois créé, il faudra soumettre ce dernier dans <strong><a href=\"https://peakace.fr/blog/seo/definitions-quest-ce-que-la-google-search-console/\">Google Search Console</a></strong> afin que <strong>Google</strong> puisse explorer plus facilement toutes les URLs :</p>\n"},{"id":"paragraph-39","type":"core/paragraph","heading":"","plain_text":"Parallèlement, le chemin du sitemap XML est à renseigner dans le fichier robots.txt :","html":"\n<p>Parallèlement, le chemin du <strong>sitemap XML</strong> est à renseigner dans le fichier <strong>robots.txt</strong> :</p>\n"},{"id":"paragraph-40","type":"core/paragraph","heading":"","plain_text":"Une fois la nomenclature des URLs paramétrée, optimiser le dispositif SEO de chacune des URLs ; chaque URL doit posséder :","html":"\n<p>Une fois la nomenclature des URLs paramétrée, optimiser le <strong>dispositif SEO</strong> de chacune des URLs ; chaque URL doit posséder :</p>\n"},{"id":"list-41","type":"core/list","heading":"","plain_text":"&lt;title&gt;...&lt;/title&gt; unique et optimisée : 600 pixels maximum (= entre 50 et 60 caractères maximum)\n\n\n\n&lt;meta name=\"description\" content=\"…\"&gt; complétée et unique : 920 pixels maximum (= entre 120 et 160 caractères maximum)\n\n\n\n&lt;h1&gt;...&lt;/h1&gt; renseignée et unique\n\n\n\n&lt;link rel=\"canonical\" href=\"…\" /&gt; complétée : self-canonical (la page se cible elle-même)\n\n\n\n&lt;link rel=\"alternate\" hreflang=\"…\" href=\"…\" /&gt; complétée(s) (si plusieurs versions linguistiques sur le site)","html":"\n<ul class=\"wp-block-list\">\n<li><strong>&lt;title&gt;...&lt;/title&gt;</strong> unique et optimisée : 600 pixels maximum (= entre 50 et 60 caractères maximum)</li>\n\n\n\n<li><strong>&lt;meta name=\"description\" content=\"…\"&gt;</strong> complétée et unique : 920 pixels maximum (= entre 120 et 160 caractères maximum)</li>\n\n\n\n<li><strong>&lt;h1&gt;...&lt;/h1&gt;</strong> renseignée et unique</li>\n\n\n\n<li><strong>&lt;link rel=\"canonical\" href=\"…\" /&gt;</strong> complétée : self-canonical (la page se cible elle-même)</li>\n\n\n\n<li><strong>&lt;link rel=\"alternate\" hreflang=\"…\" href=\"…\" /&gt;</strong> complétée(s) (si plusieurs versions linguistiques sur le site)</li>\n</ul>\n"},{"id":"heading-42","type":"core/heading","heading":"Recettage et suivi des optimisations pour le SEO :","plain_text":"Recettage et suivi des optimisations pour le SEO :","html":"\n<h3 class=\"wp-block-heading\" id=\"recettage-et-suivi-des-optimisations-pour-le-seo\">Recettage et suivi des optimisations pour le SEO :</h3>\n"},{"id":"paragraph-43","type":"core/paragraph","heading":"","plain_text":"Passer par la fonctionnalité « Inspection de l’URL » dans Google Search Console afin de visualiser comment Googlebot « voit » les URLs lors de son exploration (le code source de la page est affiché tel que Googlebot le voit) :","html":"\n<p>Passer par la fonctionnalité « <strong>Inspection de l’URL</strong> » dans <strong>Google Search Console</strong> afin de visualiser comment <strong>Googlebot</strong> « voit » les URLs lors de son exploration (le code source de la page est affiché tel que <strong>Googlebot</strong> le voit) :</p>\n"},{"id":"heading-44","type":"core/heading","heading":"Conclusion :","plain_text":"Conclusion :","html":"\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion :</h2>\n"},{"id":"paragraph-45","type":"core/paragraph","heading":"","plain_text":"Oui, Angular peut donc devenir SEO-friendly en suivant l'une des méthodes énoncées ci-dessus et en appliquant les préceptes SEO. Pour rappel, chaque framework JavaScript possède ses outils et moyens et Angular Universal permet de faire à la fois du SSR (Server-Side Rendering) et du Pre-Rendering. Lors des phases d'optimisation, il sera recommandé de tester, recetter et regarder dans Google Search Console la manière dont Google voit et interprète les pages constituant le site.","html":"\n<p>Oui, <strong>Angular</strong> peut donc devenir <strong>SEO-friendly</strong> en suivant l'une des méthodes énoncées ci-dessus et en appliquant les préceptes <strong>SEO</strong>. Pour rappel, chaque <em>framework</em> <strong>JavaScript</strong> possède ses outils et moyens et <strong>Angular Universal</strong> permet de faire à la fois du <strong>SSR</strong> (<strong>Server-Side Rendering</strong>) et du <strong>Pre-Rendering</strong>. Lors des phases d'optimisation, il sera recommandé de tester, recetter et regarder dans <strong>Google Search Console</strong> la manière dont <strong>Google</strong> voit et interprète les pages constituant le site.</p>\n"},{"id":"paragraph-46","type":"core/paragraph","heading":"","plain_text":"Cet article vous a plus ? Abonnez-vous à la newsletter Search Foresight pour ne rien rater de l'actualité SEO ? !","html":"\n<p>Cet article vous a plus ? Abonnez-vous à la <em>newsletter</em> <strong>Search Foresight</strong> pour ne rien rater de l'actualité <strong>SEO</strong> ? !</p>\n"}],"sections":[{"id":"paragraph-1","heading":"Paragraph","content":"[1ère publication le 28/01/2022 - Article mis à jour le 23/02/2022]"},{"id":"paragraph-2","heading":"Paragraph","content":"Angular est un framework JavaScript qui est notamment utilisé pour développer une interaction dynamique sur un site web ou une application. Il s'agissait à l'origine d'un projet de Google, mais c'est aujourd'hui un framework très populaire. Bien qu'Angular offre une bonne expérience utilisateur, il est à noter que cette solution peut rencontrer des freins d'un point de vue SEO."},{"id":"heading-3","heading":"Comment Google interprète un site sous Angular ?","content":"Comment Google interprète un site sous Angular ?"},{"id":"paragraph-4","heading":"Paragraph","content":"Google indique dans ses guidelines qu'actuellement : « il est difficile de traiter JavaScript, et tous les robots d'exploration des moteurs de recherche ne sont pas en mesure de le traiter correctement ou immédiatement. ». Or, Angular est un framework... JavaScript !Voici à quoi ressemble un site sous Angular lorsque le JavaScript est désactivé ; aucun élément de la page ne peut être affiché :"},{"id":"paragraph-5","heading":"Paragraph","content":"Affichage d'un site sous Angular avec le JavaScript désactivé (outil utilisé : Web Developer)"},{"id":"paragraph-6","heading":"Paragraph","content":"Dans la majeure partie des cas, lorsque Google inspecte un site sous Angular, il voit seulement une coquille vide : pas de contenu, pas de lien, pas de balise SEO, etc. Les chances d’être bien référencé sont donc très minces !"},{"id":"heading-7","heading":"L'impact du CSR (Client-Side Rendering) sur les moteurs de recherche et le SEO :","content":"L'impact du CSR (Client-Side Rendering) sur les moteurs de recherche et le SEO :"},{"id":"paragraph-8","heading":"Paragraph","content":"Pour qu’un moteur de recherche comprenne les sites sous Angular, il doit savoir exécuter JavaScript. Or, de nombreux moteurs de recherche ne peuvent pas exécuter le JavaScript ; nativement, cela est complexe, voire impossible :"},{"id":"paragraph-9","heading":"Paragraph","content":"Un site sous Angular utilise, par défaut, le rendu côté client (dénommé Client-Side Rendering ou CSR) qui rend les pages dans le Document Object Model (DOM) au fur et à mesure que l’utilisateur interagit avec lui. Pour rappel, le DOM est une interface de programmation qui est une représentation du HTML d'une page web et qui permet d'accéder aux éléments de cette page web et de les modifier avec le langage JavaScript. Les robots d’exploration sont incapables de comprendre le contenu ou la structure d’une page Angular hautement interactive."},{"id":"paragraph-10","heading":"Paragraph","content":"Le Client-Side Rendering consiste à laisser le navigateur interpréter le JavaScript pour générer le contenu HTML de votre site. Ainsi, lorsque le navigateur fait une requête au serveur, au lieu d’obtenir tout le contenu du document HTML lui-même, vous obtenez un document HTML simple, avec un fichier JavaScript qui permettra au navigateur de générer le reste du site. En d’autres termes, le site ne contient rien d’autre qu’un script qui rendra tout le contenu et « habillera » la page avec celui-ci (la page est, en quelque sorte, une coquille HTML vide)."},{"id":"heading-11","heading":"Voici comment se schématise le fonctionnement du CSR (Client-Side Rendering) :","content":"Voici comment se schématise le fonctionnement du CSR (Client-Side Rendering) :"},{"id":"paragraph-12","heading":"Paragraph","content":"À ce titre, les moteurs de recherche rencontrent des difficultés pour indexer tout contenu présent sur les sites sous Angular. Si l'optimisation SEO est votre objectif, mieux vaut éviter cette méthode de rendering. En effet, les ressources JavaScript étant, dans la majeure partie des cas, ignorées par les robots d’indexation (car trop long à rendre/exécuter), le CSR peut représenter un frein d’un point de vue SEO. Toutefois, il est à noter que les crawlers de Google sont dorénavant capables d’interpréter les applications/sites conçus avec des frameworks JavaScript. Cependant, ce n’est pas encore optimal ; il peut en résulter un décalage entre le site rendu aux visiteurs et celui rendu au robot et cela peut être pénalisant."},{"id":"paragraph-13","heading":"Paragraph","content":"Lorsqu’un site Angular avec un rendu côté client standard est privilégié, les moteurs de recherche Bing, Yahoo, DuckDuckGo et Yandex n’indexeront pas les URLs. Ces derniers ne verront que des pages HTML vides, car leurs robots ne savent pas exécuter le contenu dynamique ; les robots des réseaux sociaux ne savent pas le faire non plus."},{"id":"heading-14","heading":"Angular et positionnement SEO sur Google :","content":"Angular et positionnement SEO sur Google :"},{"id":"paragraph-15","heading":"Paragraph","content":"Si Google est le seul moteur de recherche qui compte pour votre projet, vous avez de bonnes chances que vos pages dynamiques soient indexées. Toutefois, vous n’avez aucune garantie. La documentation de Google Search Central  liste plusieurs raisons pouvant empêcher l’indexation correcte et rapide de votre contenu rendu par JavaScript :"},{"id":"list-16","heading":"List","content":"Retards dans l'indexation du contenu dynamique causés par la file d'attente du moteur de rendu de Googlebot.\n\n\n\nChargement lent ou retardé de votre code JavaScript notamment s'il est déclenché par des actions sur la page.\n\n\n\nUn code JavaScript complexe, coûteux à exécuter et dépassant le budget de rendu de Googlebot.\n\n\n\nDes erreurs de rendu au cours du processus qui font que certaines parties de votre contenu n’arrivent pas jusqu’à l’index."},{"id":"paragraph-17","heading":"Paragraph","content":"Pour rappel, voici le processus de Google pour positionner des URLs dans les SERPs :"},{"id":"heading-18","heading":"Les moyens pour aider Google à crawler/explorer Angular :","content":"Les moyens pour aider Google à crawler/explorer Angular :"},{"id":"paragraph-19","heading":"Paragraph","content":"Il n’y a qu’un seul moyen pour assurer l’indexation et le classement de votre site : chaque URL du site doit renvoyer une page HTML entièrement rendue avec des métadonnées et un contenu disponible dès le chargement."},{"id":"paragraph-20","heading":"Paragraph","content":"Pour atteindre cet objectif, il existe 3 méthodes :"},{"id":"list-21","heading":"List","content":"Rendu côté serveur (= SSR ou Server-Side Rendering)\n\n\n\nPré-rendu (= Pre-Rendering)\n\n\n\nDynamic Rendering (= Rendu dynamique)"},{"id":"paragraph-22","heading":"Paragraph","content":"Ces trois méthodes donnent le résultat escompté : les robots d'exploration obtiennent l'intégralité du contenu au moment du chargement (contenu HTML statique) et l'indexent comme une page HTML normale. Cependant, ces méthodes fonctionnent de manière différente :"},{"id":"list-23","heading":"List","content":"SSR / Server-Side Rendering : chaque page HTML est rendue sur le serveur durant l’exécution pour ensuite être entièrement rendue au client (navigateur). Cela signifie qu’avant que la page ne se charge, il faut un certain temps au serveur pour rendre le HTML sur demande et l’envoyer au navigateur. Cette méthode peut potentiellement diminuer la vitesse de chargement de la page, notamment si de nombreuses requêtes sont effectuées en même temps.\n\n\n\nPre-Rendering : un fichier HTML est rendu pour chaque URL au moment de la construction. Cela signifie que tous les fichiers HTML du site sont construits à l’avance afin que les pages soient prêtes à être chargées rapidement sur demande. L’inconvénient est que les modifications apportées à ces pages nécessitent de les reconstruire à chaque fois.\n\n\n\nDynamic Rendering : le site a des pages HTML pré-rendues et les sert uniquement aux crawlers. Les utilisateurs réels, eux, interagissent avec la version normale du site rendue côté client."},{"id":"heading-24","heading":"Oui, Angular peut donc devenir SEO-friendly :","content":"Oui, Angular peut donc devenir SEO-friendly :"},{"id":"paragraph-25","heading":"Paragraph","content":"Chaque framework JavaScript possède ses outils et moyens afin de mettre en œuvre l’une des méthodes ci-dessus pour lever les freins SEO. Angular fournit une solution complète de SSR (Server-Side Rendering) et de Pre-Rendering appelée Angular Universal."},{"id":"paragraph-26","heading":"Paragraph","content":"Angular Universal est une solution permettant de bénéficier à la fois d’un rendu côté serveur et côté client sur un seul site. Il récupère à l’avance les pages HTML de toutes les URLs. Ces pages sont servies aux robots des moteurs de recherche et le contenu est exploré sans problème. Pour les utilisateurs réels, Angular Universal envoie le code du site rendue côté client avec le HTML statique. Le contenu initial de la page se charge à partir d’un code HTML statique puis le site prend le contrôle de la page et garantit une expérience utilisateur interactive côté client."},{"id":"heading-27","heading":"Les raisons d’utiliser Angular Universal sur votre site :","content":"Les raisons d’utiliser Angular Universal sur votre site :"},{"id":"paragraph-28","heading":"Paragraph","content":"Pour rendre votre site Angular SEO-friendly, vous pouvez implémenter Universal dès le début ou progressivement sur un site déjà existant. Angular Universal résout tous les problèmes liés aux meta tags (title, meta description, etc.) et aux URLs pour l’indexation et garantit des temps de chargement rapides des pages. Depuis sa version 5, Angular permet le rendu côté serveur (Server-Side Rendering ou SSR). Le SSR est le processus permettant de déléguer la construction complète de la page au serveur avant de l’envoyer au navigateur de l’utilisateur. La solution Angular Universal permet de bénéficier des dernières technologies web et travailler le référencement naturel."},{"id":"paragraph-29","heading":"Paragraph","content":"Côté technique, Angular Universal se base sur une structure NodeJS et Express pour pouvoir générer les pages statiques demandées par l’utilisateur. En passant par cette solution, vous tirerez parti de ce que l’on appelle Angular Universal Bundle et bénéficierez d’un rendu côté client et côté serveur sur un seul site."},{"id":"paragraph-30","heading":"Paragraph","content":"Voici comment fonctionne ce Bundle :"},{"id":"list-31","heading":"List","content":"Angular Universal récupère les pages HTML du site à l’avance pour les servir lors du chargement initial de la page.\n\n\n\nPar la suite, il envoie le code du site, rendu côté client, au navigateur pour remplacer le HTML statique initial.\n\n\n\nUne fois la permutation effectuée, le site continue de fonctionner en mode de rendu côté client."},{"id":"paragraph-32","heading":"Paragraph","content":"Avec Angular Universal Bundle, vous serez à même de satisfaire les exigences techniques SEO et de garantir une meilleure expérience utilisateur :"},{"id":"list-33","heading":"List","content":"Les crawlers et bots traitent les pages HTML statiques initiales correspondant aux URLs indexables = le contenu est donc crawlable,\n\n\n\nLes contenus du site se chargent en quelques millisecondes sans que les utilisateurs aient à regarder des écrans / fenêtres de navigation vides (le navigateur a uniquement à lire le HTML et non interpréter le JavaScript pour le construire ; un avantage pour les navigateurs installés sur des appareils qui n’exécutent pas ou mal le JavaScript ou dans les cas où les internautes veulent bloquer l’exécution de code JavaScript,\n\n\n\nLes utilisateurs bénéficient d’une expérience de page dynamique sans faille lorsqu’ils commencent à interagir avec les pages = amélioration de la vitesse de chargement des pages."},{"id":"heading-34","heading":"Voici comment se schématise le fonctionnement du SSR (Server-Side Rendering) :","content":"Voici comment se schématise le fonctionnement du SSR (Server-Side Rendering) :"},{"id":"heading-35","heading":"Assurer une structure de site SEO-friendly :","content":"Assurer une structure de site SEO-friendly :"},{"id":"paragraph-36","heading":"Paragraph","content":"Un autre aspect à prendre en compte afin de rendre un site Angular SEO-friendly est de s'assurer que toutes les pages ont une URL conviviale pour les utilisateurs et les moteurs de recherche. Cela signifie que l’adoption de hash (\"#\") dans les URLs doit être évitée car tout ce qui suit le # dans une URL n’est pas suivi par Google :"},{"id":"paragraph-37","heading":"Paragraph","content":"Pour créer des URL conviviales pour les moteurs de recherche, il faut paramétrer PathLocationStrategy (myurl.com/article/breaking-news) plutôt qu’utiliser HashLocationStrategy (myurl.com/#/article/breaking-news)."},{"id":"paragraph-38","heading":"Paragraph","content":"Une fois une structure d’URL uniforme adoptée, il faudra créer un sitemap XML qui centralisera l’exhaustivité des URLs. Une fois créé, il faudra soumettre ce dernier dans Google Search Console afin que Google puisse explorer plus facilement toutes les URLs :"},{"id":"paragraph-39","heading":"Paragraph","content":"Parallèlement, le chemin du sitemap XML est à renseigner dans le fichier robots.txt :"},{"id":"paragraph-40","heading":"Paragraph","content":"Une fois la nomenclature des URLs paramétrée, optimiser le dispositif SEO de chacune des URLs ; chaque URL doit posséder :"},{"id":"list-41","heading":"List","content":"&lt;title&gt;...&lt;/title&gt; unique et optimisée : 600 pixels maximum (= entre 50 et 60 caractères maximum)\n\n\n\n&lt;meta name=\"description\" content=\"…\"&gt; complétée et unique : 920 pixels maximum (= entre 120 et 160 caractères maximum)\n\n\n\n&lt;h1&gt;...&lt;/h1&gt; renseignée et unique\n\n\n\n&lt;link rel=\"canonical\" href=\"…\" /&gt; complétée : self-canonical (la page se cible elle-même)\n\n\n\n&lt;link rel=\"alternate\" hreflang=\"…\" href=\"…\" /&gt; complétée(s) (si plusieurs versions linguistiques sur le site)"},{"id":"heading-42","heading":"Recettage et suivi des optimisations pour le SEO :","content":"Recettage et suivi des optimisations pour le SEO :"},{"id":"paragraph-43","heading":"Paragraph","content":"Passer par la fonctionnalité « Inspection de l’URL » dans Google Search Console afin de visualiser comment Googlebot « voit » les URLs lors de son exploration (le code source de la page est affiché tel que Googlebot le voit) :"},{"id":"heading-44","heading":"Conclusion :","content":"Conclusion :"},{"id":"paragraph-45","heading":"Paragraph","content":"Oui, Angular peut donc devenir SEO-friendly en suivant l'une des méthodes énoncées ci-dessus et en appliquant les préceptes SEO. Pour rappel, chaque framework JavaScript possède ses outils et moyens et Angular Universal permet de faire à la fois du SSR (Server-Side Rendering) et du Pre-Rendering. Lors des phases d'optimisation, il sera recommandé de tester, recetter et regarder dans Google Search Console la manière dont Google voit et interprète les pages constituant le site."},{"id":"paragraph-46","heading":"Paragraph","content":"Cet article vous a plus ? Abonnez-vous à la newsletter Search Foresight pour ne rien rater de l'actualité SEO ? !"}],"media":{"primary_image":"https://peakace.fr/wp-content/uploads/2022/02/Angular.png"},"relations":[{"rel":"canonical","href":"https://peakace.fr/blog/seo/angular-seo-friendly/"},{"rel":"alternate","href":"https://peakace.fr/blog/seo/angular-seo-friendly/llm","type":"text/html"},{"rel":"alternate","href":"https://peakace.fr/blog/seo/angular-seo-friendly/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://peakace.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}