Sönke Tesch: dynamische 'robots.txt' mit PHP

Beitrag lesen

Unter "Austragen" verstehe ich mehr oder weniger eine echte Meldung von Dir an die Suchmaschine, sobald eine Seite aus dem Programm genommen wird (also bei Eintreten des "Ereignisses").
OK, das ist wirklich besser, das mache ich auch schon, aber halt mit 200er Meldung...

Ähm, mit einer 200er Antwort sagst Du den Suchmaschinen aber nicht, daß die Seite bzw. das Angebot nicht mehr existiert. Deswegen: 410 (oder 404, 410 passt aber besser).

Aber dann sag mir mal bitte, wozu es dann die Allow-Direktive gibt? Wo liegt der unterschied "Allow" anzugeben, und es ganz weg zulassen???

Also vorsichtshalber vornweg: Ich weiß nicht, ob nicht vielleicht doch die eine oder andere Suchmaschine in der robots.txt nach Allow-Adressen sucht und versucht, diese zu indizieren - ich kann es mir nur nicht vorstellen.
Denn welchen Sinn macht es, eine Seite zu indizieren, auf die lediglich an einer Stelle verwiesen wird, an der kein normaler Mensch jemals vorbeikommt? Irgendwas kann da ja nicht stimmen, denn normalerweise sind Seiten immer vernetzt, und solche, die es nicht sind, sollen wohl am ehesten einfach nicht von außen zugänglich sein.
Von daher halte ich es im Sinne der Qualität des Indexes für eher unwahrscheinlich, daß eine Suchmaschine so vorgeht.

Der Sinn von Allow? Vielleicht am einfachsten ein Beispiel:
Ich habe auf meinen Seiten (http:kino-fahrplan.de) Kinoprogramme liegen, und zwar einmal mit dem Programm je Kino, einmal mit Filmlisten je Tag.
Die Kinoseiten haben das Kino im Namen ("ufa", "uci", etc), die Tageslisten mit allen Filmen allesamt das Datum als achtstellige Zahl ("16052002", "17052002", etc).
Da es keinen Sinn macht, die Tageslisten zu indizieren, stehen in der robots.txt folgende Zeilen (vereinfacht, ohne Pfad):

Disallow 0
Disallow 1
Disallow 2
Disallow 3

Damit fällt alles, war mit einer Zahl zwischen 0 und 3 beginnt, also vom 01. bis zum 31., raus.

Nun gibt es aber ein Kino namens 3001, dessen Programmseite entsprechend 3001 heißt und wegen "Disallow 3" nicht indiziert werden würde.

In solchen Fällen kommt Allow in's Spiel:

Allow 3001
Disallow 0
Disallow 1
Disallow 2
Disallow 3

Der Witz an der Sache ist jetzt, daß die robots.txt von oben nach unten durchlaufen wird und der _erste_ _passende_ Eintrag zählt.

Die Suchmaschine beginnt also oben in der Liste und der erste Eintrag, der auf 3001 passt, lautet jetzt "Allow 3001" -> wir können indizieren.
Wird dagegen eine Tagesliste für den 30.05.2002 geprüft ("30052002"), muß bis zum "Disallow 3" durchgewandert werden -> nicht indizieren.

Mit Allow kann man also einige Definitionen abkürzen. Ohne Allow hätte ich zwei Dutzend Disallows für die 30. und 31. der Monate einfügen müssen. Mit Allow reicht ein "Allow 3001" und ein "Disallow 3". Das ist das ganze Geheimnis hinter Allow.

Und der Vollständigkeit halber:

Disallow 30012
Allow 3001
Disallow 0
Disallow 1
Disallow 2
Disallow 3

Mit dem "Disallow 30012" erwische ich die Tagesliste für den 30.01. Zweitausendirgendwas und habe somit in nur sechs Zeilen alle Tage des Jahres ausgeklammert und das 3001-Kino trotzdem mit drin im Suchmaschinen-Index.

Das Problem ist, ich weiß immer noch nicht genau, wie ich die Eintragung automatisiert machen soll! Ich hatte da mal was probiert,

Ganz ehrlich: Garnicht.

Wenn Du eine Seite bei einer Suchmaschine anmeldest, dann wird die Adresse erstmal "auf Halde" gelegt und erst bei Gelegenheit geprüft. Nach der Prüfung dauert es dann noch wieder eine Weile, bis diese Seite im Index auftaucht.

Ich kann bei Google beispielsweise immer wieder feststellen, daß es durchaus mehrere Wochen (!) dauern kann, bis nach dem Besuch vom Googlebot eine Änderung an meinen Seiten auch im Google'schen Ergebnis auftaucht.

Insofern halte ich es für übertrieben, jede Änderung an seinen Seiten täglich an eine Suchmaschine zu melden. Es kann Tage dauern, bis die Seite tatsächlich indiziert wird; eventuell wartet die Maschine sogar, bis der Rest Deiner Seiten wieder dran ist und prüft erst dann auch die irgendwann mal neu eingetragenen Adressen (bei mir wäre das alle vier Wochen).

Kurz: Der Aufwand, den Du betreiben möchtest, rechtfertigt aus meiner Sicht das Ergebnis in keinster Weise. Deshalb würde ich mich eher auf das angesprochene Verzeichnis stürzen, mit dem man wesentlich mehr "ruhende Anker" bekommt, d.h. Seiten, die auch dauerhaft indiziert werden können.

Mmh, Immobilienanzeigen. Also wenn ich malwieder ein Haus kaufe, dann frage ich Google immer nach "Haus Verkauf Kleinkleckersdorf", d.h. ich suche nach einem zu verkaufenden Haus in einer Region.
Genau das war meine Idee, aber wenn Du so suchst bekomme ich direkt wieder Panik, denn Du bist wahrlich kein "normaler" User, was meinst Du wie sucht der "kleine Mann von nebenan"?

Also daß ich nicht normal bin, habe ich überhört :) Oder vielleicht doch nicht ;)

Ernsthaft, auch als Otto Normaluser würde ich so mit meiner Suche anfangen. Oder zumindest irgendwann nach hundert Fehlschlägen dort ankommen, denn das Wort "Haus" und die Region ist doch wirklich der kleinste gemeinsame Nenner.

Davon ausgehend würde ich sagen, daß Du Deine Hausadressen der Region entsprechend aufbaust, zum Beispiel "meinhausonline.de/schleswig-holstein/steinburg/kellinghusen/21/" und das dann in (jeweils bei Abruf aus der Datenbank generierte) Verzeichnisse einsetzt.
Ja, das ist eine gute Idee, langsame frage ich mich tatsächlich, ob ich nicht wirklich verzeichnisse erstelen soll, oder wieder ober mod_rewrite die ganze Welt an der Nase herumführen.

Das schließt sich ja nicht aus. Ich sagte ja, daß die Verzeichnisse auch erst beim Abruf generiert werden könnten. Und da wäre es durchaus sinnvoll, nur eine Seite zu schreiben, die dann mit mod_rewrite versteckt wird ("/hessen/frankfurt/" -> "region.php?land=hessen;region=frankfurt").

Ein Nachteil von der mod_rewrite Version, ich kann nicht so wie bei Suchmaschinen gefordert Domains der Art http://www.meinhausonline.de/ID24/ umleiten, geht zwar im prinzip, aber der verar...te Browser gleubt auf einmal er sei in einem anderen Verzeichnis und dann stimmen die relativen Verknüpfungen nicht mehr, da muß ich wohl die absoluten verwenden, naja!

Wenn Du eh alles aus der Datenbank fütterst, sollte das nur ein kleines Mosaiksteinchen in deinem mod_rewrite-Gebilde sein.

Damit hast Du alle Angebote direkt aus der Seitenstruktur heraus für Suchmaschinen erreichbar, Du hast die Regionen in den Adressen drin (könnte Pluspunkte bringen), Du hast die Regionen in einem immer erreichbaren (und damit indizierbaren) Verzeichnis drin und Du kannst den Lesern auch noch eine Alternative zur Suchfunktion anbieten.
Hm, Du meinst also tatsächlich echte Verzeichnisse, in denen zwarkeine Objekte stehen, aber immer eine Übersichsseite, die auf das nächste "Level" weiterleitet? Also erst, Bundesland, dann Stadt/Kreis und dann Dorf/Stadtteil oder so ähnlich? Aber bis dahin sieht man ja immer noch nichts von Immobilien, aber dafür was es alles so gibt, oder wie meintest Du das?

Das stimmt schon durchaus so. Aber nicht vergessen, daß das Hauptziel dieses Verzeichnisses nicht die manuelle Stöberei war, sondern den Suchmaschinen Seiten vor die Füße zu schmeißen, die sich leicht und vor allen Dingen dauerhaft indizieren lassen.

Deine Immobilienseiten ändern sich ja ständig, und wenn Du gerade kein Haus im Odenwald im Angebot hast, wenn eine Suchmaschine vorbeikommt, wirst Du auch keine Treffer auf die Odenwaldsuche erzeugen.
Hast Du hingegen immer zumindest ein Regionsinhaltsverzeichnis "Odenwald", tauchst Du auch in einer Suche nach "Odenwald" auf. Und diese Regions- oder Ortssuche schätze ich als recht häufig vorkommend ein.

Das war meine Überlegung. Daß man als Leser in so einem Verzeichnis auch prima stöbern kann, ist da eher nur ein sehr netter Nebeneffekt.

Das ist richtig, da aber zur Zeit mit Zeitumngen über eine Zusammenarbeit diskutiert wird, wittern die Konkurrenz für die eigenen Seiten, aber die zeigen ja meist nur die Zeitungsanzeige an.
Denen hat dei Suchfunktion nicht geschmeckt, aber ich stimme Dir zu, ohen kann man gleich einpacken.

Tipp hinter vorgehaltener Hand: Mach zwei Server draus, einen für die Zeitungen zum Beruhigen und einen mit Suchfunktion ;)

<phantasier>
Du kannst den Zeitungen natürlich auch (teilweises) Outsourcing des Immobilienteils Ihrer eigenen Webangebote anbieten.. Du stellst die Technik, die Zeitungen das Layout und die Kundschaft. Oder so. </phantasier>

Anders ausgedrückt: Man muß gewissermaßen vorher schon wissen, was man eigentlich erst durch die Suche rausfinden will.
Das ist ein generelles Problem von Suchmaschinen...
wobei man sich ja gerade bei Immobilien schon vorher ein Bild macht, zumindest Objektart, Preis und Lage einigermaßen feststehen, oder? Also sollte man das (evtl ohne Preis) auch vorher filtern, oder?

Da hast Du natürlich schon recht, nichtsdestotrotz ist es auch immer ganz nett, einen großen Überblick zu bekommen :) Eine Filterfunktion kann man in so ein Verzeichnis ja auch nachträglich einbauen.

Ich würde mir da erstmal keine allzu großen Gedanken drüber machen, Dein Hauptziel ist ja die Zeitungsgeschichte. Behalte das im Auge.

[..] eine Suchmaschine muß sich nicht durch soviel Tralala wühlen. Dinge wie Überschriften (<h1> bis <h6>) sehen die im Gegensatz zu <td>-Wüsten besonders gern, hast Du aber leider überhaupt nicht benutzt.
Ist das auch heute noch so? Ich dachte sowas hätte stark an Bedeutung verloren!

Ich denke nicht. Was gibt es aussagekräftigeres als eine schöne Überschrift? Ist natürlich kein Totschlagargument, ich kann auch nicht behaupten, deutliche Verbesserungen in der Positionierung erlebt zu haben, seit ich <big> durch ein CSS-formatiertes <h1> ersetzt habe (stand eh schon ganz oben:), aber es spielt sicher eine Rolle, ob ein gesuchtes Wort irgendwo zwischen 1000 anderen versteckt ist oder herausragenderweise in der Überschrift steht.

Und da es kaum ein anderer macht, wärst Du klar im Vorteil ;)

Mit den Tabellen, ob das so nötig ist - es sind alleine 3 Tabellen drum rum, um den Rand so kompatibel überall anzeigen zu können!

Rand? Ich sag nur margin, border, padding, das universelle Dreigestirn ;)

Gruß,
  soenk.e