Seite 1 von 2

Header "Last Modified"

Verfasst: 12.04.2006, 07:54
von lloy
Hallo,

Meine Seiten werden dynamisch aus einer Datenbank generiert und ich möchte nun einen halbwegs aktuellen "Last Modified" Header senden, unter anderem auch, um diversen Bots die letzten Aktualisierungen meiner Seite anzuzeigen.

Ich habe jetzt einfach mal

Code: Alles auswählen

header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($file)).' GMT'); 
in die index.php eingefügt, wobei $file eine Datei ist, die per Cronjob täglich aktualisiert wird.

Dies schien mir die einfachste Lösung, zu sein, bevor ich irgendwelche Datenbank-Abfragen starte, die nach der letzten Aktualisierung der jeweils zu generierenden Seite suchen.

Das Srkript gibt also an, dass alle Seite einmal täglich aktualisiert werden. (Was für Unterseiten natürlich nicht ganz stimmt, jedoch recht gut den Intervall wiedergibt, in dem neue Seiten hinzugefügt werden)

Ist das so ausreichend (auch in Hinblick auf die Bots), oder müssten da noch weitere Informationen wie z.B. "Expires" etc. für einen korrekten Header gesendet werden?

Sollte man sich gar die Mühe machen und für jede Seite die tatsächliche Aktualisierung aus der Datenbank abfragen? Ich hatte irgendwo mal gelesen, dass z.B. ein Header, der immer das jeweils aktuelle Datum wiedergibt sich auch nachteilig auswirken kann.

Wäre für Hinweise und Denkanstösse dankbar!

Viele Grüße

lloy

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Header "Last Modified"

Verfasst: 12.04.2006, 08:58
von Wirths Media
Wenn es eine .php Datei ist wird kein last Modified im Header gesendet.

Header "Last Modified"

Verfasst: 12.04.2006, 09:13
von Indigo
Das stimmt zwar, aber dagegen will lloy ja was tun.

Wäre für mich auch interessant, hab mir die Tage da schon den Kopf drüber zerbrochen...

Verfasst:
von

Header "Last Modified"

Verfasst: 12.04.2006, 09:36
von Wirths Media
Warum das denn??

Wenn eine Datei im alter nicht bestimmt werden kann wird sie als neu "gekennzeichnet"...

Warum wollt Ihr etwas haben, was schon lange da ist???

Verfasst: 12.04.2006, 09:47
von lloy
Wenn eine Datei im alter nicht bestimmt werden kann wird sie als neu "gekennzeichnet"...
Das Alter der Datei kann aber bestimmt werden: Und zwar legt der Webserver die letzte Änderung der index.php zugrunde. Dies ist jedoch falsch, da sich diese Datei ja nie oder nur selten ändert. Ergo sollte man sich da selbst drum kümmern...

Edit: Manchmal wird auch gar kein Last Modiefied gesendet. (Wie Du ja selbst schon geschrieben hast). Ist evtl. ne Einstellung am Apache, keine Ahnung...

Jedenfalls ist es in beiden Fällen notwendig, per Hand einzugriefen.

Header "Last Modified"

Verfasst: 12.04.2006, 09:50
von Wirths Media
Ja und der Googlebot fragt das ab über Port 80 ??

Wie soll er denn an Daten auf den Server kommen?

Verfasst: 12.04.2006, 09:52
von lloy
Dieser Header ist ein Bestandteil des HTTP-Protokolls. Ergo wird er vom Server gesendet. Wird er nicht gesendet oder falsch gesendet, muss man es selbst tun bzw. den Header überschreiben.
Darum gehts ja in meiner Frage... :)

Verfasst: 12.04.2006, 10:40
von fornex
calusa-xx, hat absolut recht, falls du keine Cache-Funktionen benutzt, brauchst du den "Last-Modified" nicht. Es wird Serverseitig nur dann benutzt, wenn man verhindern will, daß der Browser die selbe Seite mehrmals hintereinander lädt, obwohl sich diese nicht verändert hat.
Und zwar legt der Webserver die letzte Änderung der index.php zugrunde
https://fornex.de/abakus/test.php

Und die bots missachten sowieso den Last-Modified Header.


Zum Cache: https://ffm.junetz.de/members/reeg/DSP/node16.html

PS: Aber wie gesagt, wenn du meinst, daß der Last-Modified Header dir das Leben erleichtern wird, kannst du es gerne verändern :lol:

Verfasst: 12.04.2006, 11:05
von lloy
Seltsam, hatte heute morgen mit Live HTTP Headers die Antwort meines Servers überprüft, und für die Startseite kam ein uraltes Datum zurück, dass genau mit der letzten Änderung der index.php übereinstimmte.

Google weist ja selbst daruf hin, dass es vorteilhaft ist, wenn der Server die "if modified since"-Anfrage unterstützt. Vielleicht auch nur, damit Google oder der Webmaster hier Traffic sparen kann...

Andererseits gibt es einige Diskussionen im Netz, in denen Webmaster anhand ihrer Logfiles zeigen konnten, dass der Server einen 304 für den Googlebot zurückgegeben hat.

Irgendwo hatte ich mal gelesen, dass das Senden eines korrekten Last-Modified schon sehr vorteilhaft wäre. Doch wieder nur ein SEO-Märchen???

Header "Last Modified"

Verfasst: 12.04.2006, 11:26
von fornex
@lloy,

Das hat Matt Cutts gemeint:

https://www.webmasterworld.com/forum3/6005.htm

und die Begründung war:
Why should you care about "IMS"? When a smart spider like Googlebot comes around, IMS lets you tell the spider that a page hasn't changed. Then Googlebot can use the old copy of the page. That frees up the bot to download more pages while saving bandwidth. Because of the bandwidth savings, IMS hits are almost "free" in terms of server load. Plain apache can serve _lots_ of IMS queries per second before slowing a machine down.
Also, es ist eine Optimierung zum Gunsten deines Servers und nicht für Google. Falls du genug kostenlosen Traffic hast, und deine Server sind nicht überlastet, kannst du auf diesen Header verzichten. Ausserdem, wird diese Methode nicht "gegen" alle Browser helfen, und wenn die Server sowieso überlastet sind, dann sollte man über "richtige" Cache-Funktionen nachdenken.

Header "Last Modified"

Verfasst: 12.04.2006, 11:28
von bull
Googleguy hat vor längerer Zeit die Nutzung von If Modified Since angeregt.
Und die bots missachten sowieso den Last-Modified Header.
Sowohl der inzwischen ausgemusterte Googlebot/2.1 als auch der BD-Mozilla-Googlebot unterstützen If-Modified-Since (letzterer auch gzip) und erhalten, sofern der Zeitstempel übereinstimmt, einen 304, ziehen bisweilen aber dennoch absichtlich, nachdem der 304 zurückgegeben wurde, die Datei nochmals, wohl um sicherzugehen, daß man ihnen nichts vormacht. Auch Yahoos Slurp unterstützt IMS.

Ein Vorteil im Ranking ergibt sich nicht.

Was die Frage angeht: Wenn sich die Dateien sowieso täglich ändern, ist das Senden von Last-Modified überflüssig. Da PHP zum Einsatz kommt, müßte IMS abgefragt werden und bei Übereinstimmung ein 304 vermittels header() zurückgegeben werden.

Gruß
bull

Header "Last Modified"

Verfasst: 12.04.2006, 11:32
von fornex
@bull,

Last-Modified != If Modified Since

lloy, hat über Last-Modified nachgefragt, und Last-Modified ist für den Googlebot wurscht :wink:

Header "Last Modified"

Verfasst: 12.04.2006, 11:39
von bull
@fornex

Der Unterschied ist mir durchaus klar, die Bots senden allerdings naturgemäß die Angabe von Last-Modified aus dem vorherigen Crawl als IMS beim nächsten Male. Alles andere wäre auch reichlich sinnfrei. ;)

Header "Last Modified"

Verfasst: 12.04.2006, 11:44
von fornex
die Angabe von Last-Modified aus dem vorherigen Crawl
da bin ich mich nicht sicher, deswegen kann ich dir nicht zustimmen bzw. widersprechen.

Ich würde aber behaupten, daß Google sein Cache überprüft, anstatt des Last-Modified des Servers ;)

GoogleBot vesteht nur 2 sachen:

1. Gibts nen Content
2. Es gibt keinen Content (403, 304, 301, 302, 500, 404 usw)

Wenn es den Content gibt, wird GoogleBot es mit der alten Version vergleichen. (und nicht die Last-Modified Header).

Verfasst: 12.04.2006, 11:47
von lloy
Das es fürs Ranking nix bringt ist klar. Ich hatte mir evtl. erhofft, den Bot zu motivieren, öfters mal bei mir reinzuschauen, da ich hier momentan etwas Probleme habe.
Da PHP zum Einsatz kommt, müßte IMS abgefragt werden und bei Übereinstimmung ein 304 vermittels header() zurückgegeben werden.
Das verstehe ich nicht ganz.
Ich könnte natürlich das Datum der "If-modified-since"-Abfrage ermitteln und (falls es denn mit lastmod übereinstimmt) einen 304 senden.

Ich dachte jedoch, der 304 "ergibt sich quasi von selbst", wenn der Bot merkt, dass seit seinem letzten Besuch nichts verändert wurde.-> Er liest die Seite nicht ein.

Momentan sende ich immer eine feste Uhrzeit des aktuellen Datums und überlasse den Bots, was sie mit dieser Information anfangen.
Was genau bringt mir also diese Abfrage? (Wurde hier unter dem Namen "Conditional GET" schon mal diskutiert)