Comment obtenir un référencement dans AngularJS SPA

Après avoir parcouru certaines questions existantes et ses réponses, je ne suis pas en mesure d'élaborer une stratégie parfaite pour la réalisation de référencement dans les Angular.

Les moyens que j'ai trouvé pour le réaliser sont:

  1. Créez une couche intermédiaire Nginx qui servira à la demande des robots d'exploration différemment.

  2. Convertissez l'application AngularJS pour prendre en charge le mode HTML5. Mais il est uniquement pris en charge par le moteur de recherche Google (Using WebMaster Tool ).

  3. Utilisez des outils payants disponibles pour soutenir SEO dans AngularJS comme brombone , prerender , getseojs

J'ai besoin d'aide pour choisir ces alternatives et cela sera bénéfique pour mes 1 à 20 AngularJS (SAP). J'ai déjà examiné cette question de pile

Comme la pile liée questionne

"Google Crawlers exécute maintenant javascript – vous pouvez utiliser les Outils Google pour les webmasters pour mieux comprendre comment vos sites sont rendus par Google". Vérifiez le ici

Cela signifie que vous n'avez pas besoin de passer à travers de nombreuses étapes douloureuses pour que Google indexe le HTML chargé d'AJAX. Si vous chargez les méta-données avec AJAX, vous allez bien.

Une solution que j'ai faite était de créer une directive AngularJS pour ajouter rapidement les méta-données et le nom du titre de la page à partir du modèle chargé.

/* SEO directives */ dtvs.directive('metaSeo', function() { return { restrict: 'E', scope: { desc: '=', title: '=' }, link: function(scope, el, attr) { scope.$watch('desc', function() { return $("head meta[name='description']").attr('content', scope.desc); }); return scope.$watch('title', function() { return $("head title").html(scope.title); }); } }; }); 

J'ai utilisé jQuery pour le faire dans l'exemple ci-dessus, mais n'hésitez pas à échanger ça.

La directive ci-dessus vous donne un élément HTML que vous pouvez placer sur cette page:

 <meta-seo data-desc="lesson.brief" data-title="lesson.title"></meta-desc> 

Si vous avez une directive similaire, les métadonnées et le titre SEO devraient être explorés par Google sans problème.