Montag, 9. Dezember 2024
Bitte erlaubt uns, den Cache zu verwenden.
Mit dem Wachstum des Internets hat auch das Crawling durch Google zugenommen. Die Crawling-Infrastruktur von Google unterstützt heuristische Caching-Mechanismen, was schon immer der Fall war. Die Anzahl der Anfragen, die aus lokalen Caches zurückgegeben werden können, ist jedoch gesunken: Vor 10 Jahren waren etwa 0,026% der gesamten Abrufe im Cache speicherbar, was schon nicht besonders beeindruckend ist. Heute liegt diese Zahl bei 0,017%.
Warum ist das Caching wichtig?
Das Caching ist ein wichtiger Teil des großen Puzzles, das das Internet ist. Durch das Caching können Seiten bei wiederholten Besuchen blitzschnell geladen werden. Außerdem werden Rechenressourcen und damit auch natürliche Ressourcen gespart. Außerdem wird eine enorme Menge an teurer Bandbreite sowohl für die Clients als auch für die Server gespart.
Vor allem bei einer großen Website mit selten wechselnden Inhalten unter einzelnen URLs kann das lokale Caching dazu beitragen, dass eure Website effizienter gecrawlt wird. Die Crawling-Infrastruktur von Google unterstützt heuristisches HTTP-Caching gemäß dem HTTP-Caching-Standard, insbesondere über die ETag
-Antwort- und If-None-Match
-Anfrageheader sowie die Last-Modified
-Antwort- und If-Modified-Since
-Anfrageheader.
Wir empfehlen dringend die Verwendung von ETag
, da dieser Wert weniger anfällig für Fehler ist (im Gegensatz zum Wert Last-Modified
). Wenn ihr die Möglichkeit habt, solltet ihr beides festlegen. Das Internet wird es euch danken. Vielleicht.
Was ihr als Änderung betrachtet, die dazu führt, dass Clients ihre Caches aktualisieren müssen, liegt ganz bei euch. Wir empfehlen, den Cache bei wesentlichen Änderungen an euren Inhalten zu aktualisieren. Wenn ihr nur das Urheberrechtsdatum unten auf der Seite aktualisiert habt, ist das wahrscheinlich nicht wesentlich.
ETag
und If-None-Match
Die Crawler von Google unterstützen ETag
-basierte bedingte Anfragen genau wie im HTTP-Caching-Standard definiert.
Wenn ihr den Crawlern von Google die Caching-Vorgaben signalisieren möchtet, legt den Wert für Etag
auf einen beliebigen ASCII-String fest (normalerweise ein Hashwert der Inhalts- oder Versionsnummer, aber es kann auch etwas anderes sein). Dieser String muss eindeutig für die Darstellung der Inhalte sein, die über die aufgerufene URL gehostet werden.
Wenn ihr beispielsweise verschiedene Versionen derselben Inhalte unter derselben URL hostet (z. B. eine mobile und eine Desktopversion), kann jede Version einen eigenen eindeutigen ETag
-Wert haben.
Die Crawler von Google, die das Caching unterstützen, senden den ETag
-Wert, der bei einem vorherigen Crawling dieser URL zurückgegeben wurde, im If-None-Match header
. Wenn der vom Crawler gesendete ETag
-Wert mit dem aktuellen Wert übereinstimmt, den der Server generiert hat, sollte der Server den HTTP-Statuscode 304
(Nicht geändert) ohne HTTP-Hauptteil zurückgeben. Dieser letzte Teil, kein HTTP-Hauptteil, ist aus mehreren Gründen wichtig:
- Euer Server muss keine Rechenressourcen für die Erstellung von Inhalten aufwenden. Das spart Geld.
- Euer Server muss den HTTP-Hauptteil nicht übertragen, d. h., ihr spart Geld.
Auf der Clientseite, z. B. im Browser eines Nutzers oder im Googlebot, werden die Inhalte unter dieser URL aus dem internen Cache des Clients abgerufen. Da keine Daten übertragen werden, geschieht dies blitzschnell, was die Nutzer zufriedenstellt und auch ihnen möglicherweise Ressourcen spart.
Last-Modified
und If-Modified-Since
Ähnlich wie bei ETag
unterstützen die Crawler von Google auch bedingte Last-Modified based
-Anfragen, genau wie im HTTP-Caching-Standard definiert. Aus semantischer Sicht funktioniert das genauso wie ETag
– anhand einer Kennung wird entschieden, ob die Ressource im Cache gespeichert werden kann. Außerdem bietet es die gleichen Vorteile wie ETag
auf der Clientseite.
Wenn ihr Last-Modified
als Caching-Richtlinie verwendet, haben wir ein paar Empfehlungen:
-
Das Datum im
Last-Modified
-Header muss gemäß dem HTTP-Standard formatiert sein. Zur Vermeidung von Problemen beim Parsen empfehlen wir das folgende Datumsformat: „Wochentag, DD Mon YYYY HH:MM:SS Zeitzone“. Beispiel: "Fri, 4 Sep 1998 19:15:56 GMT". -
Es ist zwar nicht erforderlich, aber ihr könnt auch das Feld
max-age
desCache-Control
-Headers festlegen, damit Crawler besser bestimmen können, wann die jeweilige URL noch einmal gecrawlt werden soll. Legt den Wert des Feldsmax-age
auf die voraussichtliche Anzahl von Sekunden fest, für die der Inhalt unverändert bleibt. Beispiel:Cache-Control: max-age=94043
.
Beispiele
Vielleicht geht es euch wir mir: Ich finde es schwierig, mir vorzustellen, wie heuristisches Caching funktioniert. Ein Beispiel für die Abfolge von Anfragen und Antworten hilft mir jedoch dabei, es zu verstehen. Hier sind zwei Ketten – eine für ETag
/If-None-Match
und eine für Last-Modified
/If-Modified-Since
–, die veranschaulichen, wie das Ganze funktionieren soll:
ETag /If-None-Match |
Last-Modified /If-Modified-Since |
|
---|---|---|
Die Antwort eines Servers auf einen Crawling-Vorgang: Dies ist die Antwort, aus der ein Crawler die Vorbedingungs-Header-Felder ETag und Last-Modified speichern kann.
|
HTTP/1.1 200 OK Content-Type: text/plain Date: Fri, 4 Sep 1998 19:15:50 GMT ETag: "34aa387-d-1568eb00" ... |
HTTP/1.1 200 OK Content-Type: text/plain Date: Fri, 4 Sep 1998 19:15:50 GMT Last-Modified: Fri, 4 Sep 1998 19:15:56 GMT Cache-Control: max-age=94043 ... |
Bedingte Folgeanfrage des Crawlers: Die bedingte Anfrage basiert auf den Vorbedingungs-Headerwerten, die aus einer vorherigen Anfrage gespeichert wurden. Die Werte werden zur Validierung in den Anfrageheadern If-None-Match und If-Modified-Since an den Server zurückgesendet.
|
GET /hello.world HTTP/1.1 Host: www.example.com Accept-Language: en, hu User-Agent: Googlebot/2.1 (+http://www.google.com/bot.html) If-None-Match: "34aa387-d-1568eb00" ... |
GET /hello.world HTTP/1.1 Host: www.example.com Accept-Language: en, hu User-Agent: Googlebot/2.1 (+http://www.google.com/bot.html) If-Modified-Since: Fri, 4 Sep 1998 19:15:56 GMT ... |
Serverantwort auf die bedingte Anfrage: Da die vom Crawler gesendeten Vorbedingungs-Headerwerte auf Serverseite validiert werden, gibt der Server einen 304 -HTTP-Statuscode (ohne HTTP-Hauptteil) an den Crawler zurück. Dies geschieht bei jeder nachfolgenden Anfrage, bis die Vorbedingungen nicht mehr erfüllt sind (das ETag - oder das Last-Modified -Datum ändert sich auf der Serverseite).
|
HTTP/1.1 304 Not Modified Date: Fri, 4 Sep 1998 19:15:50 GMT Expires: Fri, 4 Sep 1998 19:15:52 GMT Vary: Accept-Encoding If-None-Match: "34aa387-d-1568eb00" ... |
HTTP/1.1 304 Not Modified Date: Fri, 4 Sep 1998 19:15:50 GMT Expires: Fri, 4 Sep 1998 19:15:51 GMT Vary: Accept-Encoding If-Modified-Since: Fri, 4 Sep 1998 19:15:56 GMT ... |
Wenn ihr eure Nutzer zufriedenstellen und möglicherweise auch ein paar Euro bei eurer Hostingrechnung sparen möchtet, fragt euren Hosting- oder CMS-Anbieter oder eure Entwickler, wie ihr das HTTP-Caching für eure Website aktiviert. Zumindest werden eure Nutzer euch ein bisschen mehr mögen.
Wenn ihr über Caching sprechen möchtet, besucht das Search Central-Hilfeforum. Wenn ihr Kommentare zum Caching habt, könnt ihr uns Feedback zur Dokumentation zum Caching geben, die wir zusammen mit diesem Blogpost veröffentlicht haben.
Möchten Sie mehr über das Crawling erfahren? Hier finden Sie die gesamte Crawling-Dezember-Reihe:
Transkript der Google-SEO-Sprechstunde vom August 2024
John:Meine Website hat englische und Swahili-Seiten. Die englischen Seiten sind fast immer indexiert, aber nicht die Swahili-Seiten. Gibt es Voreingenommenheit in Bezug auf die Sprache Suaheli? Inhalte werden größtenteils gleich behandelt, unabhängig
Transkript der Google-SEO-Sprechstunde vom Juli 2024
John: Corinna fragt: Wir migrieren zu einem neuen CMS. Einige Seiten befinden sich noch Monate lang im alten CMS und einige im neuen CMS ohne eine hreflang -Verbindung. Kann Google damit umgehen? Wie sieht es mit dem Ranking als internationale Marke
Transkript der Google-SEO-Sprechstunde vom Juni 2024
Dies ist das Transkript der Google-SEO-Sprechstunde vom Juni 2024. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. John: Viktor fragt: Wie lässt sich der Einsatz von
Transkript der Google-SEO-Sprechstunde vom April 2024
Dies ist das Transkript der Google-SEO-Sprechstunde vom April 2024. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. John: Eine Frage von Faith: Meine Rankings sind gesunken, weil
Transkript der Google-SEO-Sprechstunde vom Dezember 2023
Dies ist das Transkript der Ausgabe der Google-SEO-Sprechstunde vom Dezember 2023. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. John: Gibt es Meta-Tags, die erforderlich sind,
Transkript der Google-SEO-Sprechstunde vom September 2023
Dies ist das Transkript der Google-SEO-Sprechstunde vom September 2023. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. John: Wan fragt: Indexiert Google fälschlicherweise die
Transkript der Google-SEO-Sprechstunde vom August 2023
Dies ist das Transkript der Google-SEO-Sprechstunde vom August 2023. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. John: Ich bin mir nicht sicher, wie viele URLs eine
Transkript der Google-SEO-Sprechstunde vom Juli 2023
Dies ist das Transkript der Google-SEO-Sprechstunde vom Juli 2023. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. John: Shimmy fragt: Hallo, ich habe Probleme mit der Anzeige
Transkript der Google-SEO-Sprechstunde vom Juni 2023
Dies ist das Transkript der Google-SEO-Sprechstunde vom Juni 2023. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. John: Beth fragt: Wir lassen die Syndikation unserer Inhalte zu.
Transkript der Google-SEO-Sprechstunde vom Mai 2023
Dies ist das Transkript der Google-SEO-Sprechstunde vom Mai 2023. Wenn du websitespezifische Hilfe suchst, empfehlen wir dir, deine Frage im Google Search Central-Hilfeforum zu posten. Duy: Kholizio fragt: Hat es negative Auswirkungen auf die von