Alexander Golubowitsch: mod_rewrite / robots.txt

Guten Abend Gemeinde,

vorab Herzlichen Dank an jede/n Mitstreiter/in, der/die sich mit meiner Herausforderung auseinandersetzt.

Ich habe kürzlich die Verantwortung für ein grösseres Web-Projekt eines Kunden übernommen. SEO spielt eine grosse Rolle, nicht zuletzt weil es sich um ein Projekt handelt, dass auf den ständigen Zustrom neuer potentieller Kunden mit wissenschaftlichem bzw. Forschungshintergrund angewiesen ist, um als Start-Up dauerhaft zu bestehen.

Die Herausforderung -
Der Grossteil der Links innerhalb des Projektes referenziert URL's, die physisch garnicht im Dateisystem existieren. Beispielhaft hier der Verweis auf eine Produktdetailansicht - der Grossteil des sonstigen Projektes wird ähnlich umgeschrieben:

http://domain.de/[urlcodierter-produktname]_[produkt-id].htm

wird per mod_rewrite / .htaccess intern umgeleitet auf

http://domain.de/product.php?id=[produkt-id]

Soweit, so gut. Wunderbar, keine Irreführung, in meinen Augen nichts unredliches auszumachen, SEO-technisch nette URLs. Nun ist es so, dass es im Projekt bislang keine robots.txt gab, ich den Bots aber auf diesem Wege gerne das unnötige / unvorteilhafte parsen gewisser Cache-/Include-/etc.-Verzeichnisse ersparen möchte.

Bei vielen Dateien fällt die Wahl leicht - beispielsweise dann, wenn die Dateien sowieso nur bei aktiver Session und Registrierung etc. relevant wären - 'Disallow' lässt grüssen.

Bei anderen wird es etwas heikler: Siehe oben genannte 'product.php'. Würde sie von einem Bot ohne Parameter aufgerufen, würde nur eine Fehlermeldung / Exception geliefert. Intuitiv würde ich also bei dieser und auch manch anderer Datei im Hauptverzeichnis sagen: 'Disallow'.

Aber: Wenn ich den Zugriff auf die 'product.php' verbiete, kriege ich dann Probleme mit Seiten á la '[urlcodierter-produktname]_[produkt-id].htm'? Ich möchte unbedingt vermeiden, dass ich mir mit einer eigentlich sinnvollen Massnahme selbst ins Knie schiesse.

Mein Verständnis wäre, dass alle nicht verbotenen Seiten sowieso nur als Einstieg dienen, und ab dann der eigentliche Dokumenten-Body und die dort enthaltenen Links genutzt und erfasst werden.

Ich wäre sehr dankbar, wenn mir jemand weiterhelfen bzw. meine Sorgen zerstreuen könnte! Danke!

  1. Ich wäre sehr dankbar, wenn mir jemand weiterhelfen bzw. meine Sorgen zerstreuen könnte! Danke!

    Nur ein Tipp, normalerweise kommt man da mit Bereichen, die ohne weiteres für Bots zugänglich sind und "geschützten" Bereichen. Die erreichbaren (ohne Login ereichbar) Bereiche erfordern dann halt irgendwann ein Login, wenns spezifisch werden soll.

    1. Nur ein Tipp, normalerweise kommt man da mit Bereichen, die ohne weiteres für Bots zugänglich sind und "geschützten" Bereichen. Die erreichbaren (ohne Login ereichbar) Bereiche erfordern dann halt irgendwann ein Login, wenns spezifisch werden soll.

      Danke für den Tipp - aber ich weiss leider nicht genau, inwieweit / ob das nun meine Frage beantwortet / beantworten soll?

      1. Nur ein Tipp, normalerweise kommt man da mit Bereichen, die ohne weiteres für Bots zugänglich sind und "geschützten" Bereichen. Die erreichbaren (ohne Login ereichbar) Bereiche erfordern dann halt irgendwann ein Login, wenns spezifisch werden soll.

        Danke für den Tipp - aber ich weiss leider nicht genau, inwieweit / ob das nun meine Frage beantwortet / beantworten soll?

        Wir dachten, dass es eher ums Konzeptionelle geht, aber da war tatsächlich eine Frage: "Aber: Wenn ich den Zugriff auf die 'product.php' verbiete, kriege ich dann Probleme mit Seiten á la '[urlcodierter-produktname]_[produkt-id].htm'?"

        A: Nein. (Sollte zumindest nicht so sein, da unterschiedliche Ressourcen votrliegen, warum probierst Dus nicht einfach aus?)

  2. http://domain.de/[urlcodierter-produktname]_[produkt-id].htm

    Das ist die URL, die in robots.txt auftauchen könnte.

    wird per mod_rewrite / .htaccess intern umgeleitet auf

    http://domain.de/product.php?id=[produkt-id]

    Das hingegen ist komplett irrelevant. Wenn keine Links auf diese URL zeigen, und auch kein HTTP-Redirect ausgeliefert wird, wird kein Spider sie jemals abrufen.

    Soweit, so gut. Wunderbar, keine Irreführung, in meinen Augen nichts unredliches auszumachen, SEO-technisch nette URLs. Nun ist es so, dass es im Projekt bislang keine robots.txt gab, ich den Bots aber auf diesem Wege gerne das unnötige / unvorteilhafte parsen gewisser Cache-/Include-/etc.-Verzeichnisse ersparen möchte.

    Dann schließe die entsprechenden URLs, die die Spider abrufen, per robots.txt aus.

    Bei vielen Dateien fällt die Wahl leicht - beispielsweise dann, wenn die Dateien sowieso nur bei aktiver Session und Registrierung etc. relevant wären - 'Disallow' lässt grüssen.

    Bedenke: Alles, was du in die robots.txt schreibst, wird dadurch plötzlich bekannt. Auch Verzeichnisse und Seiten, die bislang absolut im Dunkeln lagen, werden plötzlich greifbar.

    Bei anderen wird es etwas heikler: Siehe oben genannte 'product.php'. Würde sie von einem Bot ohne Parameter aufgerufen, würde nur eine Fehlermeldung / Exception geliefert. Intuitiv würde ich also bei dieser und auch manch anderer Datei im Hauptverzeichnis sagen: 'Disallow'.

    Wird product.php irgendwo als URL referenziert? Wenn nein, warum dann in die robots.txt packen? Sie wird ja sowieso nicht abgerufen.

    Checke die Logfiles mal diesbezüglich. Alle URLs, die da drin auftauchen, sind relevant für die robots.txt. Alle URLs, die du dort findest, und die nicht indiziert werden sollen, schreibst du passend in die robots.txt.

    Alle anderen URLs, die ja gar keine wirklichen URLs sind, hälst du so geheim, wie's geht.