Der Last-Modified-Header beschleunigt manchmal die Indizierung neuer Seiten. SEO-Mythen: Alles über zuletzt geänderte Header Überprüfen Sie, wie sich Last-Modified in verschiedenen CMS befindet

Im Gebiet Suchmaschinenoptimierung Websites (SEO) haben im Allgemeinen viele verschiedene Mythen. Einige von ihnen haben eine Grundlage, die in der Regel herkommt, Sie wissen nicht, woher. In diesem Beitrag werfen wir einen Blick auf einen davon – unter Verwendung des zuletzt geänderten Antwortheaders.

Vor einiger Zeit sind wir auf ein Dokument mit dem Titel "Ingate-Empfehlungen für Webstudios auf gesponserten Sites" gestoßen. Und eine der "Empfehlungen" lautete:

Nach dem Redesign oder auf einer neuen Site in Entwicklung muss das Datum der letzten Änderung der Site-Seiten (Last Modified) angegeben werden

Um Informationen über das Datum der letzten Seitenänderung zu einer PHP-Site hinzuzufügen, müssen Sie ganz an den Anfang gehen Quellcode füge auf jeder Seite ein Skript ein


Kopfzeile ("Last-Modified:". Datum ("D, d M Y H: i: s", Uhrzeit ()). "GMT");
?>

Es war dieser wilde Unsinn, dieser völlige Unsinn und offen gesagt wahnhafte Codes, die mich dazu veranlassten, diese Notiz zu schreiben. Hier werde ich versuchen zu erklären, was Last-Modified ist, warum es benötigt wird und wie Browser und Suchmaschinen es verwenden.

Was ist zuletzt geändert

Der Webserver meldet bei der Übermittlung von Informationen an den Client (Browser oder Suchroboter) ziemlich viele zusätzliche Daten. Sie können in der Browserkonsole angezeigt werden, zum Beispiel:

Konfigurieren Sie den Server, um korrekte Antwortheader auszugeben (z. B. wenn die Seite nicht existiert, geben Sie einen 404-Fehler aus, und wenn eine If-Modified-Seit-Anfrage empfangen wird, geben Sie einen 304-Code aus, wenn sich die Seite seit dem Datum nicht geändert hat in der Anfrage angegeben).

Sie können auch sehen, dass, wenn der Server in keiner Weise auf eine bedingte GET-Anfrage antwortet, sich dies nicht von einer normalen Anfrage unterscheidet. Das heißt, der Last-Modified-Header mit der aktuellen Uhrzeit und auch falsch formatiert (hallo Integite!), wird gar nicht benötigt!

Ist also Last-Modified erforderlich oder nicht?

Generell benötigt. Aber es ist wichtig zu verstehen, dass nicht der Header selbst eine Rolle spielt, sondern das gesamte Szenario der bedingten Anfragen, das von der Site bis zum Ende umgesetzt werden muss. In diesem Fall erhalten wir schnelle Geschwindigkeit Site-Indexierung.

Dies in einem vorgefertigten CMS zu implementieren ist jedoch oft sehr schwierig. Dies kann erhebliche Änderungen am Code des CMS selbst erfordern.

Bei einer Reihe von CMS kann dies jedoch durch Aktivieren des Seiten-Caching erreicht werden. Wenn das CMS Seiten zwischenspeichert und effektiv statische Dateien erstellt und bereitstellt, reagiert der Webserver selbst korrekt auf bedingte Anforderungen. In WordPress kann dies beispielsweise mit dem WP Super Cache-Plugin erfolgen:

Lass es uns bei der Arbeit überprüfen. Ich habe dieses Plugin aktiviert, meinen Browser im anonymen Modus geöffnet und zwei Anfragen für dieselbe Seite gestellt. Sie können deutlich sehen, dass die zweite Antwort richtig ist - 304 Nicht geändert:

Statt Schlussfolgerung

Daher haben wir uns mit dem Last-Modified-Header befasst. Zunächst muss er Informationen über Datum und Uhrzeit der tatsächlichen Änderung des Dokuments übermitteln. Zweitens ist die Antwort des Servers auf eine bedingte Anfrage mit dem If-Modified-Since-Header äußerst wichtig.

Nun, hören Sie weniger auf SEOs, die die grundlegenden Grundlagen des Internets nicht kennen.

Warum steht dieser Beitrag unter der Überschrift SEO? Zuletzt geändert, wie die Suchmaschinen versichern, ein sehr wichtiger http-Header, der benötigt wird, um das Datum der letzten Änderung des Dokuments, d. h. das Datum, anzugeben Letzte Bearbeitung Auf der Seite.

Wenn dieser Titel nicht verfügbar ist oder vielmehr nicht gerendert wird, verliert die Site einige ihrer Vorteile. Hier ist insbesondere, was ich über die Vorteile von . gelesen habe zuletzt geändert:

  1. Die Geschwindigkeit beim Indexieren neuer Seiten wird verbessert und der Roboter kann bei einem Besuch abholen mehr Seiten zum Index.
  2. Verbessert die Geschwindigkeit der Neuindizierung von Seiten, an denen Sie Änderungen vorgenommen haben. Dies ist sehr nützlich, aber ohne diesen Header dauert das Nachverfolgen Ihrer Bearbeitungen länger.

Im Prinzip reicht dies bereits aus, um Lust zu machen, diesen Header zu prüfen und ggf. anzupassen.

Wie überprüft man die letzte Änderung?

Es gibt mehrere Tools, dieses hat mir am besten gefallen - http://www.tools.seo-auditor.com.ru/if-modified-since/
Hier muss ich nur die Adresse eingeben Startseite oder einen beliebigen Artikel, und wählen Sie dann Suchroboter- Yandex.

Zuletzt geändert wurde auf meiner Website gefunden, es ist großartig. Aber anfangs war es nicht da, wie habe ich es eingerichtet?


Wie richte ich die letzte Änderung ein?

Ehrlich gesagt hat mir nichts geholfen. Vielleicht liegt es daran, dass die nginx. Ich habe AddHeaders eingefügt - dieses Plugin fügt alle nützlichen http-Header ein, einschließlich der zuletzt geänderten, aber dieses Plugin hat mir nicht geholfen, obwohl es diesen Header vor etwa einem Jahr erfolgreich auf meiner Site aktiviert hat.

Auch in diesem Blog habe ich das Premium-Clearfy-Plugin veröffentlicht, über das ich geschrieben habe. Eine nützliche Sache, es gibt auch eine Funktion, die es Ihnen ermöglicht, zuletzt geändert zu setzen.

Ich habe die Option aktiviert, aber der Titel wurde aufgrund der Prüfergebnisse immer noch nicht zurückgegeben. Aber am Ende wurde alles durch den Appell an diese entschieden. Plugin-Support - dort habe ich die Konfiguration meines Servers beschrieben und sie haben mir konkrete Ratschläge gegeben - gehen Sie in die Server-Systemsteuerung, deaktivieren Sie dies und das. Gesagt, getan und nun ist der Titel serviert.

Ich denke, das Hinzufügen eines Titels wird sich positiv auf meine Websites auswirken.

One-Stop-Lösung- Das AddHeaders-Plugin ist höchstwahrscheinlich für Sie geeignet, wenn Sie einen Apache-Server haben. Wenn nginx, dann versuchen Sie, ssi in den Domäneneinstellungen zu deaktivieren und dieses Plugin erneut zu aktivieren.

„Insbesondere der Inhalt der Antwort, die der Server auf die „if-modified-seit“-Anfrage sendet, ist wichtig. Die Kopfzeile Last-Modified muss das korrekte Datum der letzten Änderung des Dokuments enthalten."

Sehen wir uns an, wie es mit Last-Modified in verschiedenen CMS steht.

# telnet www.example.com 80

und geben Sie Folgendes ein:

GET /index.html HTTP / 1.0 User-Agent: Mozilla / 5.0 Von: irgendwas.irgendwo.net Akzeptieren: Text / HTML, Text / Plain, Anwendung / * Host: www.example.com Falls-Modified-Seit: Mi, 19. Okt 2005 10:50:00 GMT

Wenn der Server 304 (Nicht geändert) zurückgibt, unterstützt er If-Modified-Seit, aber die Seite wurde nicht geändert. Code 200 (Ok) bedeutet, dass die Seite geändert wurde.

Überprüfen von If-Modified-Seit in C #

Mit dem folgenden C#-Code können Sie überprüfen, wie If-Modified-Since funktioniert:

Private HttpWebResponse GetPage() (string url = @ "http: // ....."; // Ort das Netz Anfrage an den Server durch Angabe der URL HttpWebRequest request = (HttpWebRequest) WebRequest.Create (url); // Nein benötigen für eine dauerhafte Verbindungsanforderung.KeepAlive = false; // Der Link, der uns auf die URL-Anfrage verwiesen hat.Referer = url; // Der Benutzeragent des Browsers request.UserAgent = "Mozilla / 4.0 (kompatibel; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)"; // Anstelle von HTTP 1.1 werde ich HTTP 1.0 verwenden. Wenn eine Anfrage dem Server mitteilt, dass er 1.0 verwendet, // antwortet der Server "nicht mit Datenblöcken, sondern sendet die Antwort alle auf einmal. Request.ProtocolVersion = new Version (1, 1); request.IfModifiedSince = DateTime.Now. AddDays (-5); // Hole die Antwort vom Server zurück (HttpWebResponse) request.GetResponse ();) private void TestLastModified (VirtueMartContext db, jos_vm_product product) (using (HttpWebResponse response = GetPage ()) (Debug.Print " Statuscode: (0), Beschreibung: (1) \ n", response.StatusCode, response.StatusDescription); string text = WebResponceReader.GetResponceText (Antwort); Debug.Print (text.Substring (0, 100)); ) )

Mit dieser Methode können Sie sicherstellen, dass Joomla immer StatusCode = 200 (OK) zurückgibt, unabhängig vom Wert von request.IfModifiedSince.

If-Modified-Seit-Prüfung über den Yandex-Dienst

Wenn Sie im Yandex Webmaster auf die Schaltfläche "Serverantwort prüfen" klicken, erhalten wir hier:

auch hier sieht man, dass die Site und dementsprechend WordPress ohne das WP Super Cache-Plugin den Last-Modified-Header nicht hinzufügt.

Nun, wir haben das CMS herausgefunden, aber wie funktioniert Yandex?

Hier ist ein Beispiel: Heute ist der 07.07.2011, der Inhalt in Joomla wurde am 20.06.2011 aktualisiert und Yandex hat eine Cache-Version vom 06.11.2011, obwohl der Roboter nach diesem Datum schon mehrmals gekommen ist . In diesem Fall lädt Yandex Updates mit sehr großer Verzögerung herunter. Die Frage ist warum?

Folgendes sagt Platon Shchukin dazu:

Beim Crawlen der Site durchsucht der Robot auch die angegebene Seite, wonach sie in der SERP aktualisiert wird, wenn die Suchdatenbanken aktualisiert werden. Wir arbeiten daran, dass dies so schnell wie möglich geschieht.

Sie können Ihrerseits dem Roboter auch helfen, die Site schneller zu indizieren, indem Sie die folgenden Empfehlungen von verwenden

Syntax

Falls-geändert-seit: , ::mittlere Greenwich-Zeit

Richtlinien

Einer von "Mo", "Di", "Mi", "Do", "Fr", "Sa" oder "So" (Groß-/Kleinschreibung beachten). 2-stellige Tagesnummer, z.B. "04" oder "23". Einer von "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ( Groß-/Kleinschreibung beachten). 4-stellige Jahreszahl, z.B. "1990" oder "2016". 2-stellige Stundenzahl, z.B. „09“ oder „23“. 2-stellige Minutenzahl, z.B. „04“ oder „59“. 2-stellige zweite Zahl, z.B. „04“ oder „59“. mittlere Greenwich-Zeit

Greenwich Mean Time. HTTP-Daten werden immer in GMT ausgedrückt, niemals in Ortszeit.

Beispiele

Falls-geändert-seit: Mi, 21. Okt 2015 07:28:00 GMT

Spezifikationen

Spezifikation Titel
RFC 7232, Abschnitt 3.3: If-Modified-Seit Hypertext Transfer Protocol (HTTP / 1.1): Bedingte Anfragen

Browser-Kompatibilität

Die Kompatibilitätstabelle auf dieser Seite wird aus strukturierten Daten generiert. Wenn Sie zu den Daten beitragen möchten, schauen Sie bitte auf https://github.com/mdn/browser-compat-data und senden Sie uns einen Pull-Request.

Kompatibilitätsdaten auf GitHub aktualisieren

DesktopHandy, Mobiltelefon
ChromKanteFeuerfuchsInternet ExplorerOperSafariAndroid-WebansichtChrome für AndroidFirefox für AndroidOper für AndroidSafari auf iOSSamsung-Internet
Wenn-geändert-seitChrome Volle Unterstützung JaEdge Volle Unterstützung 12Firefox Volle Unterstützung JaIE Volle Unterstützung JaOpera Volle Unterstützung JaSafari Volle Unterstützung JaWebView Android Volle Unterstützung JaChrome Android Volle Unterstützung JaFirefox Android Volle Unterstützung JaOpera Android Volle Unterstützung JaSafari iOS Volle Unterstützung JaSamsung Internet Android Volle Unterstützung Ja

Die Notiz: aktiviert ist die adaptive Version der Site, die sich automatisch an die geringe Größe Ihres Browsers anpasst und einige Details der Site zur besseren Lesbarkeit ausblendet. Viel Spaß beim Anschauen!

Hallo liebe Blogleser, wir setzen das Thema eines der wichtigsten SEO-Faktoren fort. In diesem Artikel werden die Feinheiten der internen Optimierung angesprochen, da wir über den erhaltenen Antwortcode sprechen werden Suchmaschinen und Besucher als Reaktion auf ihren Zugriff auf die Seite.

Korrekte Serverantwort

Obwohl dies beim Aufbau und der Optimierung einer Website im Allgemeinen ein eher kleines Detail ist, ist es dennoch sehr wichtig! Es ist nämlich wichtig, dass eine Seite, auf der sich seit dem letzten Besuch eines Roboters oder einer Person keine Änderungen ergeben haben, den Code 304 angibt, was bedeutet, dass die Seite unverändert geblieben ist. Wenn der Server diesen Code an den Client sendet, startet die Ausführung aller PHP-Skripte auf der Seite erst gar nicht, sondern die Seite wird aus dem Cache geladen, was die Belastung des Servers deutlich reduziert und das Laden der Seite für die Nutzer.

Durch die Konfiguration der richtigen Antworten von unserem Server schlagen wir also mindestens fünf Fliegen mit einer Klappe:

  • Wir beschleunigen das Laden von Seiten für Besucher (Personen).
  • Wir reduzieren die Belastung des Servers.
  • Das Datum wird in den Suchergebnissen angezeigt (genau für Yandex) letztes Update Seiten, die die Aufmerksamkeit des Benutzers auf sich ziehen können, insbesondere wenn das Datum aktuell ist.
  • Site-Seiten nehmen an der Sortierung von Suchmaschinen nach Datum teil.
  • Wir beschleunigen die Indexierung der Site durch Suchmaschinen erheblich!

Irgendwie für mich letzter Punkt scheint am süßesten zu sein (da es SEO beeinflusst und die Glaubwürdigkeit Ihrer Website bei Suchmaschinen erhöht), obwohl ohne Zweifel auch die restlichen Punkte äußerst wichtig sind.

Wie konfiguriere ich 304 und 200 Serverantworten?

Wir haben bereits gesagt, dass der Server als Antwort auf eine Anfrage nach unveränderten Seiten senden sollte 304 Nicht modifiziert, und welchen Code soll der Server senden, wenn der Client zum ersten Mal auf die Seite zugreift oder auf eine geänderte Seite zugreift? In solchen Fällen sollte der Server den Status angeben 200 OK... Speziell gegebener Code brauchst du nicht zu senden, wenn mit der Seite alles in Ordnung ist, dann gibt es immer 200.

Daher müssen wir uns nur um den 304-Code kümmern, da der Server ihn nicht ohne unser Zutun sendet. Dafür wird uns geholfen, ebenso der Titel Zuletzt geändert und anfordern.

Überschriften Zuletzt geändert

Zuletzt geändert Ist der Header, mit dem wir senden? mit PHP, dieser Header enthält genaue Uhrzeit letzter Seitenwechsel (in Sekunden). Dazu wird ein gängiges Zeitmaß verwendet: der Unix Time Stamp.

Unix-Zeitstempel Anzahl der Sekunden seit Beginn der Unix-Ära: 1. Januar 1970. Zum Zeitpunkt dieses Schreibens beträgt der Unix-Zeitstempel 1370597447 Sekunden, was dem 07.06.2013 09:30:47 GMT (+00:00) entspricht.

Das heißt, wir müssen nur den PHP-Header mit der Anweisung senden Zuletzt geändert und das gewünschte Datum:

Header ("Last-Modified:" .gmdate ("D, d M Y H: i: s", $ last_modified_time). "GMT");

Wobei header ein Konstrukt zum Senden eines HTTP-Headers ist, Zuletzt geändert- was wir senden und direkt nach dem Doppelpunkt ist sein Wert:

Gmdate ("D, d M Y H: i: s", $ last_modified_time). "GMT".

Der Last Modified Wert ist die Funktion gmdate () die die Variable enthält, die ich erfunden habe $ last_modified_time(Sie können es benennen, wie Sie möchten). In einer Variablen $ last_modified_time und enthält den Zeitpunkt der letzten Formatänderung Unix-Zeitstempel und die Funktion gmdate () dient uns dazu, das Datum in die richtige Form (Greenwich Mean Time) zu bringen.

Zur Verdeutlichung hier ein Beispiel für Sie: wenn wir in einer Funktion gmdate () setze den Wert 1365003142 , dann erhalten wir am Ausgang: Mi, 03 Apr 2013 15:32:22.

Nachdem wir nun erfahren haben, wie der gesamte Vorgang abläuft, stellt sich möglicherweise die Frage: "Müssen wir für jede Seite manuell den Zeitpunkt der letzten Änderung angeben?". Die Antwort ist ja!" Ich persönlich mache genau das - manuell, die zuverlässigste Option. Allerdings habe ich speziell für diesen Blog alles bereitgestellt, zum Beispiel wenn es neuer Kommentar auf der Seite, dann in eine Variable $ last_modified_time der Zeitpunkt des Hinzufügens dieses Kommentars wird aufgezeichnet, damit Suchmaschinen neue Kommentare indizieren können und wissen, dass die Site "live" ist. Jede Site ist anders und Sie müssen einen eigenen Algorithmus entwickeln, um das Datum der letzten Seitenänderung anzuzeigen, oder es immer manuell angeben.

Ich betone noch einmal, mein Algorithmus ist wie folgt:

1) Ich gebe das Erstellungsdatum des Materials manuell an, wenn ich etwas im Artikel ändere (Tippfehler oder hinzufüge), dann gebe ich die neue Uhrzeit der letzten Aktualisierung erneut manuell ein.

2) Wenn ein Besucher einen Kommentar hinzufügt, dann zur Variablen $ last_modified_time automatisch, ohne mein Wissen, wird der Zeitpunkt des Hinzufügens eines Kommentars eingetragen, da dies tatsächlich das Datum der letzten Änderung der Seite ist.

Was ich nicht berücksichtigt habe: in der rechten Spalte der Site habe ich frische Artikel, empfohlen und Top 10... Sie ändern sich ständig und gleichzeitig für alle Seiten. Wenn ich bei jeder Veränderung wäre rechte Spalte die Site (automatisch oder manuell - egal) das Datum des letzten Seitenwechsels geändert hat, dann geht die ganze Bedeutung dieser Aktion verloren. Ich habe beschlossen, dass diese Änderungen überwacht und bei der Spezifikation berücksichtigt werden sollten $ last_modified_time Es lohnt sich nicht, da sie keinen SEO-Vorteil haben.

Wie ich bereits schrieb, kann ich Ihnen nicht genau sagen, wie Sie das Datum der letzten Änderung der Seite automatisieren können, aber ich werde Ihnen sagen, wie Sie dies NICHT tun müssen!

Fehler bei der Angabe des Datums der letzten Änderung

Das erste, was den meisten Menschen einfällt, ist, im Header das Datum der letzten Änderung der Datei mit dem Inhalt der Seite zu senden. Persönlich liegen meine Artikeltexte in Dateien, nicht in einer Datenbank, daher scheint mir diese Methode ein ausgezeichneter Ausweg zu sein, um nicht jedes Mal einzugeben Unix-Zeitstempel manuell. Aber nein! Die meisten Hosting-Sites, und vielleicht sogar alle, nehmen das Erstellungsdatum als Datum der letzten Änderung der Datei an, sie berücksichtigen nicht die nachfolgenden Änderungen.

Ich denke, die Konsequenzen in solchen Fällen sind Ihnen klar. Ein beliebter ukrainischer Hosting-Provider (und ich denke, er ist nicht allein) schreibt in seinen FAQ etwa: „Anstelle des Datums der letzten Dateiänderung, verwenden Sie die Funktion Zeit () die die aktuelle Uhrzeit im Unix-Zeitstempelformat zurückgibt ". Wie absurd! Es ist einfach, sich an Ort und Stelle zu erschießen! Und dieser Hosting-Provider gilt als "einer der besten", nachdem ich dies gelesen hatte, habe ich mich sofort entschieden, nicht ihr Kunde zu werden.

Es ist nur Anti-SEO, denken Sie selbst, eine Suchmaschine kommt auf Ihre Seite und schaut: „Wow! Das letzte Mal, dass die Seite geändert wurde, war gerade jetzt, also habe ich geahnt, wann ich kommen sollte, Klasse! ". Er kommt in ein paar Tagen auf der gleichen Seite: „Schauen Sie, es hat sich gerade wieder geändert, das ist Zufall ... Moment, warum sehe ich keine Änderungen? Okay, ich komme ein anderes Mal wieder." Kommt wieder: "Nun, nein, Männer, das ist nicht mehr lustig, Ihnen ist definitiv nicht zu trauen." Hier ist so ein Märchen :)

Und dann fragen sich die Leute, warum die Ergebnisse in den Suchergebnissen nicht so sind, wie sie es gerne hätten, sondern weil das Banale auf Ihrer Seite verloren geht Vertrauen(Vertrauen). Genau wie im Gleichnis "Vom Hirten und den Wölfen".

Wir haben also die Hauptfehler herausgefunden: Sie können die aktuelle Uhrzeit nicht angeben und ich empfehle Ihnen nicht, die Uhrzeit anzugeben, zu der die Datei geändert wurde. Lassen Sie uns nun weiter analysieren, wie das alles funktioniert.

Sendeheader konfigurieren Zuletzt geändert dies ist genau 1/3 der Fälle, wir müssen noch: auf die Anfrage antworten und freigeben Seiten-Caching... Beide Aktionen werden nicht viel Zeit und Codezeilen in Anspruch nehmen.

- Dies ist eine Client-Anfrage an Ihren Server, in der der Client fragt: "Hat sich die Seite seit meinem letzten Besuch geändert?" Wenn sich die Seite nicht geändert hat, müssen wir die Ausführung des weiteren Seitenladens mit dem Befehl stoppen:

In diesem Fall sollte der Hauptteil der Seite nicht mit dem Rendern beginnen, dies geschieht alles VOR der ersten Ausgabe von etwas auf der Seite! Gleichzeitig ist es notwendig, die Serverantwort an den Client zurückzugeben. 304 Nicht modifiziert, was bedeutet, dass die Seite aus dem Cache genommen werden muss. Kommen wir gleich zur Sache:

If (isset ($ _ SERVER ["HTTP_IF_MODIFIED_SINCE"]) && strtotime ($ _ SERVER ["HTTP_IF_MODIFIED_SINCE"])> = $ last_modified_time) (header ("HTTP / 1.1 304 Not Modified"); die;) header ("Last -Modified: ".gmdate (" D, d MYH: i: s ", $ last_modified_time)." GMT ");

In der ersten Zeile überprüfen wir also, ob eine HTTP_IF_MODIFIED_SINCE-Anfrage an unseren Server gekommen ist, und überprüfen auch sofort die Anzahl der Sekunden im empfangenen HTTP_IF_MODIFIED_SINCE mehr als in $ last_modified_time oder nicht? Wenn mehr, dann ist das Datum des letzten Besuchs des Clients später als das Datum der letzten Änderung der Seite, von hier aus ziehen wir den rein logischen Schluss, dass sich die Seite nicht geändert hat, was bedeutet, dass wir die Serverantwort in . senden die zweite Zeile 304 Nicht modifiziert und mit der 3. Zeile beenden (stoppen) wir die Ausführung aller Skripte auf der Seite. Mit anderen Worten, hören Sie auf, es herunterzuladen.

Wenn der Kunde uns keine HTTP_IF_MODIFIED_SINCE-Anfrage gesendet hat oder sein letzter Besuch vor dem Datum des letzten Seitenwechsels lag, senden wir (standardmäßig) den Code 200 OK und in der fünften Zeile senden wir ihm das TATSÄCHLICHE Datum des Seitenwechsels, anstatt das, das er hatte.

Über IF_MODIFIED_SINCE und die Funktionsweise des Codes habe ich Ihnen alles gesagt, was Sie brauchen, außer was die Funktion strtotime() macht:

Strtotime ($_SERVER ["HTTP_IF_MODIFIED_SINCE"])

Ein aufmerksamer und versierter Leser könnte bereits erahnen, dass diese Funktion ein gewöhnliches Datum in einen Unix-Zeitstempel umwandelt, da wir darin die Variable $ last_modified_time setzen und daher zum Vergleich alles auf einen gemeinsamen Nenner in einer gemeinsamen Messung bringen müssen System.

Und als letztes müssen wir nur noch das Caching aktivieren, dies geschieht mit den folgenden Zeilen:

Header ("Cache-Control: public"); Kopfzeile ("Läuft ab:". Datum ("r", Zeit () + 10800));

Wobei die Zahl 10800 die Zeit (in Sekunden) ist, für die wir die Seite zwischenspeichern möchten, d. h. in dieses Beispiel für 3 Stunden.

Und wie immer für diejenigen, die nichts verstanden haben, verbreite ich alles komplett, wie es auf meinem Blog angeordnet ist:

= $ last_modified_time) (Header ("HTTP / 1.1 304 Not Modified"); die; / * alles unten getötet * /) header ("Last-Modified:" .gmdate ("D, d M Y H: i: s", $ last_modified_time). "GMT"); ?> Und ging ging der Rest der Seite

Ich denke, Sie haben vielleicht bemerkt, dass diese ganze Geschichte von Last Modified analog zum Tag in - ist. Lastmod dient also zu Informations- und Empfehlungszwecken, und niemand wird mit den Antworten Ihres Servers streiten. Natürlich ist es nicht ungewöhnlich, dass sich der lastmod in der Sitemap vom Last Modified-Titel unterscheidet, aber von nun an sollten sie für Sie gleich sein! Immerhin haben wir jetzt mit Ihnen was Wissenschaft studiert, nicht um wie unglückliche Webmaster zu werden, die nicht weiter als sitemap.xml sind.

Ich persönlich bin dabei dieser Moment Ich verwende das lastmod-Tag in meinen Sitemaps überhaupt nicht, vielleicht überlege ich später meine Aktionen, aber bisher sehe ich keinen Grund, so akribisch zu sein und die richtigen Titel zu haben Zuletzt geändert :)

Und zum Schluss noch die Richtigkeit überprüfen Zuletzt geändert und Sie können mit diesem Service: klicken.

Vielen Dank für Ihre Aufmerksamkeit, besonders Dank an die stetig wachsende Zahl an Abonnenten, das ist für mich der größte Ansporn, öfter zu bloggen. Wer sich also noch nicht für neue Artikel angemeldet hat, ist herzlich willkommen!