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.
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.
Mein Projekt-Frontend hat auch ein Biult über Angular und ich entschloss mich, das SEO-Problem so zu lösen:
Ich habe ein Endpiont für alle Suchmaschinen (SE) erstellt, wo alle Anfragen mit _escaped_fragment_
parameter;
Ich analysiere eine HTTP-Anfrage nach _escaped_fragment_
GET-Parameter;
Ich mache cURL
Anfrage mit geparsten Kategorie- und Artikelparametern und erhalte den Artikelinhalt;
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.
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.
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
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.
Wenn Sie ein Server-seitiges Templating-System (PHP, Python, etc.) haben, können Sie eine Lösung wie prerender.io
implementierenWenn 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)
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="!">
Tags und Links javascript angularjs amazon-s3 seo phantomjs