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?
Antwort
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:
- Vermeiden Erstellen defekte Links mit
pushState
- Vermeiden zwei Erstellen verschiedene Links, die auf den gleichen Inhalt mit
pushState
verweisen - Vermeiden Sie cloaking. (Here's an article Bing published about their cloaking detection in 2007)
- Unterstützt Browser (und Crawler), die nicht mit
pushState
umgehen können.
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.
Sieht die Zukunft so aus, dass Webcrawler intelligenter werden und sich mehr auf AJAX konzentrieren? –
@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 –
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
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.
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
Behandeln sie einfach nicht das Javascript, oder sehen sie die Website mit den
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.
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.
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.
Crawler Javascript oder Ajax behandeln ruft, wenn sie irgendeine Art von Frameworks wie ‚Htmlunit‘ oder ‚Selen‘
Kennen Sie irgendwelche Crawler, die das tun? –
Ich möchte keine bestimmten Crawler nennen, aber es ist möglich. – Srikanth
- 1. Webcrawler überspringen URLs
- 2. Erkennt der Webcrawler Cookies?
- 3. Richtlinien für gute Webcrawler "Etikette"
- 4. Wie kann ein Perl-Webcrawler einem ASP.NET-Postback folgen?
- 5. Kann HtmlUnit JavaScript-Weiterleitungen behandeln?
- 6. Gute Webseiten zum Testen von Webcrawler auf
- 7. JavaScript zum Behandeln von REST JSON Feed
- 8. Wie kann ich Javascript in einem Perl Web Crawler behandeln?
- 9. wie JavaScript-Warnungen in Selen mit Python zu behandeln
- 10. Wie zwei Dokumenttypen behandeln?
- 11. Wie Ausnahme behandeln zweimal
- 12. R WebCrawler - XML-Inhalt scheint nicht XML zu sein:
- 13. Wie behandeln Sie HTML-Element-IDs und JavaScript-Referenzen beim Hinzufügen von Werbebuchungen mithilfe von JavaScript?
- 14. Wie Inline-Code mit RequireJS Optimierung behandeln
- 15. Wie behandeln Sie mehrere Instanzen von setTimeout()?
- 16. wie SVG Pixelfang zu behandeln
- 17. Wie mit NULL behandeln Werte
- 18. Wie ETIMEDOUT Fehler zu behandeln?
- 19. Wie Vertragsverletzungen behandeln, wenn NUnit
- 20. Wie behandeln Datenbanken redundante Werte?
- 21. Wie KVM physischen Interrupt behandeln?
- 22. wie Ausnahmen in Python behandeln
- 23. Wie lambda Ausdruck zu behandeln
- 24. Senden von JavaScript-Array an .ashx zum Behandeln
- 25. How to ESC Keydown auf Javascript Popup-Fenster zu behandeln
- 26. Javascript: Kann Ereignisse für mehrere Instanzen nicht behandeln
- 27. Die beste Art, JavaScript in benutzerdefinierten Steuerelementen zu behandeln?
- 28. Was ist der beste Weg, Zeitzonen mit Javascript zu behandeln
- 29. Warum Javascript eine Zahl behandeln, als ein Zweierkomplement
- 30. Wie mehrere Einsendungen serverseitig zu behandeln sind
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" –