Über XMLHttpRequest (xhr) geladene Inhalte: Wie mache ich Google darauf aufmerksam?


7

Laut Google selbst und einer anderen Frage hier führen Googles Bots JavaScript auf gecrawlten Websites aus und indizieren den gerenderten Inhalt.

Jedoch,

[a] Laut [der] Erfahrung [mindestens dieses einen Unternehmens] wird der Großteil der JavaScript-basierten Funktionen zwar von Googlebot verstanden, der von der XMLHttpRequest-API aus einer externen Quelle abgerufene Inhalt wird jedoch durchweg nicht gecrawlt - oder so weiter auf dieser API aufgebaut oder damit verbunden. Dieses Verhalten tritt in reinem JavaScript, jQuery, AngularJS oder anderen modernen JavaScript-Frameworks auf. Wenn Sie Inhalte von einer "externen" URL abrufen oder einen REST-API-Endpunkt aufrufen müssen, um einige Daten abzurufen, besteht die Möglichkeit, dass diese nicht ordnungsgemäß gecrawlt und indiziert werden.

(Hervorhebung von mir) Dieses Verhalten ist jetzt auch zu beobachten:

  • Wir haben eine Reaktions-App , die in die Website eines Kunden integriert ist. Die Zielseite ist eine Liste von Dingen mit Links zu einer Unterseite für jede ( <a data-reactid="0.1.2.3.4" href="https://webmasters.stackexchange.com/some/site/itemid/9876">)
  • Die Zielseite wird in der Google-Suchkonsole korrekt gerendert ("So hat Googlebot die Seite gesehen" ist visuell gleich "So hätte ein Besucher Ihrer Website die Seite gesehen")
  • Der Inhalt der Zielseite finden Sie in den Suchergebnissen von Google.
  • In naher Zukunft kann kein Inhalt einer Unterseite über Google gefunden werden (Wochen später ist der Inhalt eines Bruchteils der Unterseiten) .

Hier ist eine Demo- React- App mit von React / JS generierten Links und Unterseiten, die korrekt indiziert wurden. Der Hauptunterschied besteht, wie erwähnt, darin, dass wir den Inhalt der Unterseiten von einem externen Server abrufen. Daran führt kein Weg vorbei - wir haben den Inhalt, aber die Website, auf der er gerendert werden soll, enthält nur unser js-Skript und ein Element, in das er gerendert werden soll. Wir haben keine weitere Kontrolle über die Website, geschweige denn über den Server, auf dem sie ausgeführt wird.

Ist das obige Zitat korrekt oder fehlt mir etwas?


Vielleicht können Sie einen Proxy verwenden, sodass die Anfrage anscheinend an Ihren Server geht? Gefällt mir: /our/site/proxy/http%3A%2F%2Fdifferent.com%2Fcontent%2F2
Milo Tischler

@milo: Entschuldigung, ich war ungenau. Der Browser und der Googlebot des Benutzers besuchen tatsächlich our-clients-site.com/some/site, der geladen wird oursite.com/app.js, der dann Daten von oursite.com/api/item...der Seite abruft und die Seite rendert. Wir kontrollieren also tatsächlich die API-Site, aber nicht die tatsächlich besuchte. (Sorry, habe deinen Kommentar letzte Woche verpasst. Trotzdem danke. :-))
Titanic Tub Tree Tiger

Eineinhalb Monate später hat Google tatsächlich eine Handvoll Unterseiten indiziert, so dass dies im Prinzip möglich ist. Ich bin mir jedoch nicht sicher, was es daran gehindert hat, die anderen zwei Dutzend oder so Artikelseiten zu indizieren. Unsere Arbeitshypothese lautet, dass die API nicht schnell genug reagiert hat, obwohl jede Elementseite statischen Inhalt zu den über die API gelieferten Inhalten enthält, die auch nicht in den Suchergebnissen angezeigt werden (mit Ausnahme der oben genannten Handvoll Seiten, +1 für die Landing Page).
Titanic Tub Tree Tiger

Das Zitat ist falsch, Sie haben es bewiesen;) Die korrekte Verwendung der Verlaufs-API mit pushState () ist jedoch eine schwierige Anforderung.
Jonas Eberle

Antworten:


2

Wie Sie selbst bewiesen haben, ist Google in der Lage, Inhalte aus der XHLHTTPRequest-API zu analysieren. Hier geht es nicht um das Parsen der Website, sondern darum, wie lange es dauert, bis der Inhalt im Suchindex aktualisiert wird. Aufgrund Ihres Kommentars scheint es 6 Wochen später so zu sein, dass der Inhalt indiziert und bei Google gelistet wurde, was nicht völlig unangemessen ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.