AngularJS - SEO - S3 Statische Seiten

9

Meine Anwendung verwendet AngularJS für Frontend und .NET für das Back-End.

In meiner Bewerbung habe ich eine Listenansicht. Wenn Sie auf jedes Listenelement klicken, wird eine vorgerenderte HTML-Seite von S3 abgerufen.

Ich verwende Winkelzustand.

app.js

%Vor%

StaticPage1.html

%Vor%

Wie mache ich hier SEO?

Muss ich wirklich HTML-Snapshot mit PanthomJS oder so tun.

    
Gugan 01.07.2016, 09:41
quelle

7 Antworten

1

Ja, PhantomJS würde den Trick machen, oder Sie können prerender.io mit diesem Dienst verwenden, Sie können einfach ihren Open-Source-Renderer verwenden und Ihren eigenen haben Server.

Ein anderer Weg ist _escaped_fragment _ Meta-Tag

Ich hoffe, das hilft, wenn Sie Fragen haben, fügen Sie Kommentare hinzu und ich werde meine Antwort aktualisieren.

    
Tim 04.07.2016 09:40
quelle
0

Wissen Sie, dass Google HTML-Seiten rendert und Javascript-Code auf der Seite ausführt und kein Pre-Rendering mehr benötigt?
Ссылка

Und werfen Sie einen Blick auf diese:
Ссылка
< a href="http://wijmo.com/blog/how-to-improve-seo-in-angularjs-applications/"> Ссылка

    
Exlord 04.07.2016 13:35
quelle
0

Mein Projekt-Frontend hat auch ein Biult über Angular und ich entschloss mich, das SEO-Problem so zu lösen:

  1. Ich habe ein Endpiont für alle Suchmaschinen (SE) erstellt, wo alle Anfragen mit _escaped_fragment_ parameter;

  2. gehen
  3. Ich analysiere eine HTTP-Anfrage nach _escaped_fragment_ GET-Parameter;

  4. Ich mache cURL Anfrage mit geparsten Kategorie- und Artikelparametern und erhalte den Artikelinhalt;

  5. Dann rendere ich eine einfachste (und seo-freundliche) Vorlage für SE mit dem Artikelinhalt oder wirf eine 404 Not Found Exception, wenn Artikel nicht existiert;

Insgesamt: Ich muss nicht einige HTML-Seiten vorrendern oder prrender.io verwenden, habe eine nette Benutzeroberfläche für meine Benutzer und Suchmaschinen indexieren meine Seiten sehr gut.

P.S. Vergessen Sie nicht, sitemap.xml zu generieren und fügen Sie alle URLs (mit _escaped_fragment_ ) ein, die Sie indizieren möchten.

P.P.S. Leider hat das Backend meines Projekts auf PHP aufgebaut und kann Ihnen kein passendes Beispiel für Sie zeigen. Aber wenn Sie weitere Erklärungen wünschen, zögern Sie nicht zu fragen.

    
D.Dimitrioglo 10.07.2016 14:53
quelle
0

Erstens kannst du nichts annehmen. Google sagt, dass Bots JavaScript-Anwendungen sehr gut verstehen können, aber das gilt nicht für alle Szenarien.

Beginne mit der Crawl-Funktion als Google-Funktion vom Webmaster für deinen Link und sieh nach, ob die Seite richtig gerendert wird. Wenn ja, dann brauchen Sie nicht weiter zu lesen .

Für den Fall, dass Sie nur Ihr skelettiertes HTML sehen, liegt das daran, dass Google Bot davon ausgeht, dass das Laden der Seite abgeschlossen ist, bevor es tatsächlich abgeschlossen ist. Um dies zu beheben, benötigen Sie eine Umgebung, in der Sie erkennen können, dass eine Anfrage von einem Bot stammt und Sie eine vorgerenderte Seite zurückgeben müssen.

Um eine solche Umgebung zu erstellen, müssen Sie einige Änderungen am Code vornehmen.

Folgen Sie den Anweisungen SEO mit Angularjs und Phantomjs einrichten Oder schreiben Sie einfach Code in eine serverseitige Sprache wie PHP, um vorgerenderte HTML-Seiten Ihrer Anwendung zu generieren. (Phantomjs ist nicht obligatorisch)

Erstelle eine Weiterleitungsregel in deiner Server-Konfiguration, die den Bot erkennt und den Bot auf vorgerenderte HTML-Dateien umleitet. (Einzige Voraussetzung ist, dass der Inhalt der von dir zurückgegebenen Seite mit der tatsächlichen Seite übereinstimmt Inhalt else Bots betrachten den Inhalt möglicherweise nicht als authentisch) .

Es ist zu beachten, dass Sie auch überlegen müssen, wie Sie dynamisch Einträge in sitemap.xml vornehmen, wenn Sie in Zukunft Seiten zu Ihrer Anwendung hinzufügen müssen.

Falls Sie keinen solchen Overhead suchen und Ihnen die Zeit fehlt, können Sie sicher einem Managed Service wie Prerender folgen.

Irgendwann werden Bots gereift sein und sie werden Ihre Bewerbung verstehen und Sie werden sich von Ihrer SEO-Proxy-Infrastruktur verabschieden. Dies ist nur für Zeit.

    
Birju Shah 10.07.2016 17:45
quelle
0

Zu diesem Zeitpunkt wird die Frage wirklich subjektiv, zumindest bei Google - es hängt wirklich von Ihrer speziellen Seite ab, wie schnell Ihre Seiten rendern, wie viel Inhalt nach dem Laden des DOMs gerendert wird usw. Wie @ Birju-Shaw erwähnt) Wenn Google Ihre Seite überhaupt nicht lesen kann, wissen Sie, dass Sie etwas anderes tun müssen.

Google hat offiziell den Ansatz von ab dem 14. Oktober eingestellt , 2015, aber das heißt nicht, dass Sie nicht immer noch vorrendern möchten.

YMMV: Wenn Sie Google (und anderen Crawlern) aus den hier genannten Gründen vertrauen, ist der einzige Weg, herauszufinden, welches in Ihrem Szenario am besten ist, es zu testen. Es könnte andere Gründe geben, die Sie vorrendern möchten, aber da Sie SEO speziell erwähnt haben, werde ich es dabei belassen.

    
ldg 11.07.2016 04:19
quelle
0

Wenn Sie ein Server-seitiges Templating-System (PHP, Python, etc.) haben, können Sie eine Lösung wie prerender.io

implementieren

Wenn Sie nur AngularJS-Dateien haben, die auf einem statischen Server gehostet werden (z. B. amazon s3) = & gt; Werfen Sie einen Blick auf die Antwort in dem folgenden Post: AngularJS SEO für statische Webseiten (S3 CDN)

    
Robycool 09.05.2017 07:37
quelle
-1

Ja, Sie müssen die Seite für die Bots vorrendern, prrender.io kann verwendet werden und Ihre Seite muss die haben  Meta-Tag <meta name="fragment" content="!">

    
Ankit Kumar 06.07.2016 18:32
quelle