Dienstag, 3. Dezember 2024
Ihr habt vielleicht schon gehört, dass die Google Suche einige Arbeit erledigen muss, bevor eine Webseite in den Google-Suchergebnissen erscheinen kann. Einer dieser Schritte wird als Crawling bezeichnet. Das Crawling für die Google Suche wird vom Googlebot durchgeführt, einem Programm, das auf Google-Servern ausgeführt wird. Es ruft eine URL ab und verarbeitet Netzwerkfehler, Weiterleitungen und andere kleine Komplikationen, die beim Durchsuchen des Webs auftreten können. Es gibt aber einige Details, über die nicht oft gesprochen wird. Jede Woche dieses Monats werden wir einige dieser Details untersuchen, da sie sich erheblich auf die Art und Weise auswirken können, wie eure Websites gecrawlt werden.
Zuerst noch etwas zurück: Was ist Crawling?
Beim Crawling werden neue Webseiten gefunden, aktualisierte Webseiten noch einmal besucht und die Webseiten heruntergeladen. Kurz gesagt: Der Googlebot ruft eine URL ab, sendet eine HTTP-Anfrage an den Server, auf dem sie gehostet wird, und verarbeitet dann die Antwort dieses Servers. Dabei folgt er gegebenenfalls Weiterleitungen, verarbeitet Fehler und gibt die Seiteninhalte an das Indexierungssystem von Google weiter.
Moderne Webseiten bestehen jedoch nicht nur aus reinem HTML. Was ist also mit den anderen Ressourcen, aus denen eine Seite besteht? Wie wirkt sich das Crawling dieser Ressourcen auf das Crawling-Budget aus? Können diese Ressourcen von Google im Cache gespeichert werden? Gibt es einen Unterschied zwischen URLs, die noch nicht gecrawlt wurden, und solchen, die bereits indexiert sind? In diesem Beitrag beantworten wir diese und weitere Fragen.
Googlebot und Crawling von Seitenressourcen
Neben HTML verwenden moderne Websites eine Kombination verschiedener Technologien wie JavaScript und CSS, um Nutzern eine ansprechende Benutzeroberfläche und nützliche Funktionen zu bieten. Wenn ein Nutzer mit einem Browser auf solche Seiten zugreift, lädt der Browser zuerst die übergeordnete URL herunter, auf der die Daten gehostet werden, die zum Erstellen der Seite für den Nutzer erforderlich sind – also den HTML-Code der Seite. Diese anfänglichen Daten können Verweise auf Ressourcen wie JavaScript und CSS, aber auch Bilder und Videos enthalten, die der Browser wiederum herunterlädt, um die endgültige Seite zu erstellen, die dem Nutzer dann angezeigt wird.
Google macht dasselbe, allerdings etwas anders:
- Der Googlebot lädt die ursprünglichen Daten von der übergeordneten URL herunter, also den HTML-Code der Seite.
- Der Googlebot gibt die abgerufenen Daten an den Web-Renderingdienst (Web Rendering Service, WRS) weiter.
- Der WRS lädt mit dem Googlebot die Ressourcen herunter, auf die in den ursprünglichen Daten verwiesen wird.
- Der WRS erstellt die Seite mit allen heruntergeladenen Ressourcen, so wie es der Browser eines Nutzers tun würde.
Im Vergleich zu einem Browser kann die Zeit zwischen den einzelnen Schritten aufgrund von Planungseinschränkungen wie der wahrgenommenen Auslastung des Servers, auf dem die für das Rendern einer Seite erforderlichen Ressourcen gehostet werden, erheblich länger sein. Und hier kommt das Crawling-Budget ins Spiel.
Wenn die Ressourcen gecrawlt werden, die zum Rendern einer Seite erforderlich sind, wird das Crawling-Budget des Hostnamens, auf dem die Ressource gehostet wird, verringert. Um dies zu berücksichtigen, versucht der WRS, jede Ressource (JavaScript und CSS) im Cache zu speichern, auf die auf den gerenderten Seiten verwiesen wird. Die Gültigkeitsdauer (TTL) des WRS-Caches wird nicht von HTTP-Caching-Richtlinien beeinflusst. Stattdessen werden alle Daten im WRS bis zu 30 Tage lang im Cache gespeichert. So kann das Crawling-Budget der Website für andere Crawling-Aufgaben verwendet werden.
Aus Sicht der Websiteinhaber kann die Festlegung, wie und welche Ressourcen gecrawlt werden, das Crawling-Budget der Website beeinflussen. Wir empfehlen Folgendes:
- Verwendet so wenige Ressourcen wie möglich, um Nutzern eine gute Nutzererfahrung zu bieten. Je weniger Ressourcen für das Rendern einer Seite benötigt werden, desto weniger Crawling-Budget wird während des Renderings verbraucht.
- Verwendet Cache-Busting-Parameter mit Vorsicht: Wenn sich die URLs von Ressourcen ändern, muss Google die Ressourcen möglicherweise noch einmal crawlen, auch wenn sich ihr Inhalt nicht geändert hat. Das nimmt natürlich das Crawling-Budget in Anspruch.
- Hostet Ressourcen unter einem anderen Hostnamen als dem der Hauptwebsite, z. B. mit einem CDN oder indem ihr die Ressourcen einfach auf einer anderen Subdomain hostet. Dadurch werden etwaige Probleme mit dem Crawling-Budget auf den Host übertragen, der die Ressourcen bereitstellt.
Alle diese Punkte gelten auch für Medienressourcen. Wenn der Googlebot (bzw. genauer gesagt Googlebot-Image
und Googlebot-Video
) sie abruft, wird das Crawling-Budget der Website in Anspruch genommen.
Es ist verlockend, auch robots.txt zur Liste hinzuzufügen. Aus Sicht des Renderings führt das Blockieren des Crawlings von Ressourcen jedoch in der Regel zu Problemen. Wenn der WRS eine für das Rendering wichtige Ressource nicht abrufen kann, kann es in der Google Suche zu Problemen beim Extrahieren des Seiteninhalts und beim Ranking der Seite kommen.
Was wird vom Googlebot gecrawlt?
Die beste Quelle, um zu analysieren, welche Ressourcen von Google gecrawlt werden, sind die Rohzugriffsprotokolle der Website. Sie enthalten einen Eintrag für jede URL, die sowohl von Browsern als auch von Crawlern angefordert wurde. Damit die Crawler von Google im Zugriffsprotokoll identifiziert werden können, veröffentlichen wir unsere IP-Bereiche in unserer Entwicklerdokumentation.
Die zweitbeste Ressource ist natürlich der Bericht „Crawling-Statistik“ in der Search Console, in dem jede Art von Ressource nach Crawler aufgeschlüsselt wird:
Wenn ihr euch für Crawling und Rendering interessiert und darüber mit anderen sprechen möchtet, ist die Search Central-Community die richtige Anlaufstelle. Ihr findet uns aber auch auf LinkedIn.
Updates
- Update vom 6. Dezember 2024: Es wurde auf eine Leistungsbeeinträchtigung durch das Bereitstellen von Ressourcen aus einer anderen Quelle hingewiesen.