2009-11-23 18 views
22

Heute wird viel Inhalt im Internet mit JavaScript (speziell durch Hintergrund-AJAX-Aufrufe) generiert. Ich habe mich gefragt, wie Web-Crawler wie Google mit ihnen umgehen. Kennt sie JavaScript? Haben sie eine integrierte JavaScript-Engine? Oder ignorieren sie einfach alle JavaScript-generierten Inhalte auf der Seite (ich denke ziemlich unwahrscheinlich). Verwenden Personen bestimmte Techniken, um ihren Inhalt indizieren zu lassen, der ansonsten über Hintergrund-AJAX-Anfragen für einen normalen Internetnutzer verfügbar wäre?Wie behandeln Web-Crawler Javascript?

+0

verwenden http://stackoverflow.com/questions/1739898/html-how-to-get- my-subpages-listed-on-a-google-search Siehe die Antworten hier für "bekommen Inhalt indiziert" –

Antwort

14

JavaScript wird von Bing- und Google-Crawlern verarbeitet. Yahoo verwendet die Bing-Crawler-Daten, daher sollte es auch behandelt werden. Ich habe mir keine anderen Suchmaschinen angeschaut. Wenn Sie sich also für sie interessieren, sollten Sie nachsehen.

Bing published guidance in March 2014, wie JavaScript-basierte Websites zu erstellen, die mit ihren Crawler arbeiten (vor allem im Zusammenhang mit pushState), den guten Praktiken im Allgemeinen sind:

Google later published guidance in May 2014, wie JavaScript-basierte Websites zu erstellen, die mit ihren Crawler arbeiten, und ihre Empfehlungen sind ebenfalls zu empfehlen:

  • Sie das JavaScript (und CSS) in der robots.txt nicht blockieren Datei.
  • Stellen Sie sicher, dass Sie die Last der Crawler verarbeiten können.
  • Es ist eine gute Idee, Browser und Crawler zu unterstützen, die nicht umgehen können (oder Benutzer und Organisationen, die dies nicht erlauben). JavaScript
  • Tricky JavaScript, das auf obskure oder spezifische Funktionen der Sprache beruht, funktioniert möglicherweise nicht mit den Crawlern .
  • Wenn Ihr JavaScript Inhalte von der Seite entfernt, wird es möglicherweise nicht indiziert. herum.
+0

Sieht die Zukunft so aus, dass Webcrawler intelligenter werden und sich mehr auf AJAX konzentrieren? –

+0

@Shailesh - Ich werde dazu eine bestimmte vielleicht sagen. Sie sprechen ein wenig über die Herausforderungen des Crawlens von JavaScript- oder AJAX-fähigen Websites hier: http://searchengineland.com/google-io-new-advances-in-the-searchability-of-javascript-and-flash-but- is-it-enough-19881 –

+0

Diese Antwort ist sehr veraltet. Der Googlebot kümmert sich jetzt definitiv um JavaScript: http://googlewebmastercentral.blogspot.com/2014/05/understanding-web-pages-better.html Ich bin mir über andere Crawler nicht sicher, aber ich vermute, dass sie wahrscheinlich bald dem Beispiel folgen werden sie haben es nicht schon getan. – Ajedi32

7

Die meisten von ihnen behandeln Javascript in keiner Weise. (Zumindest nicht alle Crawler der großen Suchmaschinen.)

Aus diesem Grund ist es immer noch wichtig, dass Ihre Website die Navigation ohne JavaScript fehlerfrei verarbeitet.

+0

Leider ist der Google-Bot definitiv in JavaScript herumkrabbeln ... [link] (http: // stackoverflow .com/questions/5749348/jquery-verursachende-404-fehler-in-webmaster-tools-on-a-verzeichnis) – Sparky

+0

Behandeln sie einfach nicht das Javascript, oder sehen sie die Website mit den

2

Genau was Ben S gesagt hat. Und jeder, der mit Lynx auf Ihre Website zugreift, führt auch kein JavaScript aus. Wenn Ihre Website für die allgemeine Öffentlichkeit bestimmt ist, sollte sie in der Regel ohne JavaScript verwendet werden können.

Auch, wenn es Seiten gibt, die eine Suchmaschine finden sollte, und die normalerweise nur von JavaScript entstehen würden, könnten Sie statische Versionen von ihnen erstellen, erreichbar durch eine crawlable Sitemap, wo diese statisch sind Seiten verwenden JavaScript, um die aktuelle Version zu laden, wenn sie von einem JavaScript-fähigen Browser aufgerufen werden (falls ein Mensch mit einem Browser Ihrer Site-Map folgt). Die Suchmaschine sieht die statische Form der Seite und kann sie indizieren.

1

Crawlers analysiert Javascript nicht, um herauszufinden, was es tut.

Sie können gebaut werden, um einige klassische Schnipsel wie onchange="window.location.href=this.options[this.selectedIndex].value;" oder onclick="window.location.href='blah.html';" zu erkennen, aber sie kümmern sich nicht um Dinge wie Inhalte, die mit AJAX abgerufen werden. Zumindest noch nicht, und so geholte Inhalte werden immer sekundär sein.

So sollte Javascript nur für zusätzliche Funktionalität verwendet werden. Der Hauptinhalt, den die Crawler finden sollen, sollte weiterhin reiner Text auf der Seite und normale Links sein, denen die Crawler leicht folgen können.

3

Ich habe dies getestet, indem ich Seiten auf meiner Seite nur mit Javascript erreichbar gemacht habe und dann deren Anwesenheit in Suchindizes beobachtet habe.

Seiten auf meiner Website, die nur mit Javascript erreichbar waren, wurden nachträglich von Google indiziert.

Der Inhalt wurde durch Javascript mit einer 'klassischen' Technik erreicht, oder indem eine URL erstellt und die window.location entsprechend eingestellt wurde.

1

Crawler Javascript oder Ajax behandeln ruft, wenn sie irgendeine Art von Frameworks wie ‚Htmlunit‘ oder ‚Selen‘

+0

Kennen Sie irgendwelche Crawler, die das tun? –

+0

Ich möchte keine bestimmten Crawler nennen, aber es ist möglich. – Srikanth

Verwandte Themen