Suchmachinen Bots und Filter in URL...

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich hab ein kleines Problem mit Suchmaschinen Bots, die meine Webseiten Indexieren.

Mein Blog kann man nach Tags filtern, dabei kann man die Tags kombinieren. Bsp.:
http://www.pylucid.org/de/blog/tags/pylucid/ -> Alle Artikel die mit "pylucid" getaggt sind
http://www.pylucid.org/de/blog/tags/pylucid/bugfix/ -> Artikel mit "pylucid" + "bugfix"

Das Problem: Die Suchmachinen reihen tags an tags und gehen so immer "tiefer", obwohl das natürlich keinen Sinn macht.

Ich habe deswegen mehrere Maßnahmen getroffen:
* Die Tag Filter URLs sind mit rel="nofollow" markiert.
* Die Seiten werden mit <meta content="noindex,nofollow" name="robots"> Ausgeliefert.

Die Änderungen sind nun schon eine weile Aktiv. Es sollte also jede Suchmaschine sie registriert haben. Dennoch Indexieren viele fröhlich weiter.

Deswegen werden Links zu einem weiteren Tag-Filter ab einer frei einstellbaren Anzahl nicht mehr eingebaut. Bsp:
* Die Seite mit 2 Filtern enthält noch Filter-Links: http://www.pylucid.org/de/blog/tags/pyl ... velopment/
* Diese Seite mit 3 Filtern nicht mehr: http://www.pylucid.org/de/blog/tags/pyl ... 20changes/

Wird dennoch mehr als 3 Filter verwendet, erhält man einen 500 und das ganze wird geloggt. Kommt es zu oft vor, wird die IP für eine einstellbaren Zeit gebannt.

Doch auch das scheint nicht richtig zu helfen. Deswegen habe ich eine statische robots.txt angelegt: http://www.pylucid.org/robots.txt darin ist u.a.:

Code: Alles auswählen

Disallow: /de/blog/tags/
Disallow: /en/blog/tags/
Disallow: /*/blog/tags/*
Aber auch das beachten anscheinend nicht alle Bots.

Letztlich sehe ich diese Möglichkeiten:
1. Die Tags nicht mehr per URL, sondern als GET Parameter nutzten
2. Bots per "User Agent" feststellen und für diese überhaupt keine Tag-Filter-Links einbauen
3. Das Filtern nur noch als AJAX view zulässig

Zu 1. Die Frage ist ob das die Suchmaschinen auch wirklich ignorieren. Dazu habe ich in der robots.txt das:

Code: Alles auswählen

Disallow: /*?
Aber ob das reicht?

Zu 2. Wie erkennen? Man müßte eine ganze Liste an möglichen Strings im User Agent führen. Dann ist dennoch die Frage, ob man damit alle erreicht.

Zu 3. Das wird IMHO noch am besten klappen, wobei Suchmaschinen langsam auch JS beherrschen? Schade ist, das ohne JS kein Filtern mehr Funktionieren würde. Aber naja, wer hat es schon aus?



Meinungen/Ideen dazu?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
needsch
User
Beiträge: 15
Registriert: Donnerstag 22. Dezember 2011, 21:28

Hallo Jens,

ich denke es kann ewig dauern, bis alle Suchmaschinen von dieser Änderung Wind bekommen.

Ich bin mir jedoch nicht sicher, inwiefern ein 500-Statuscode der Sache dient. Vielleicht solltest du darüber nachdenken einen anderen Statuscode zu verwenden, z.B. 404. 500 signalisiert schließlich einen Server-Fehler; aus Sicht einer Suchmaschine bedeutet das so viel wie "später nochmal probieren".

Außerdem kann ich dir einen kleinen SEO-Tipp geben: Viele Suchmaschinen sehen es nicht gerne, wenn unter verschiedenen URLs der gleiche Inhalt auftaucht - wenn es also duplicate content gibt. In deinem Fall ist es möglich, wenn ich dich richtig verstanden habe, die Tags in beliebiger Reihenfolge aneinanderzuhängen. Beispiel:
python/php
php/python

Beide Filter führen zum gleichen Ergebnis. Ich empfehle dir zukünftig diese Tags lexikalisch zu ordnen. Damit die Suchmaschinen nicht so lange brauchen das mitzukriegen kannst du zwei Dinge einrichten:
- Der HTML-Code <link rel="canonical" ...> kann genutzt werden um die kanonische Addresse für bestimmte Webseiten-Inhalte mitzuteilen. Wenn also ein bestimmter Inhalt unter vielen URLs zu finden ist (variierende GET-Parameter etc.), dann kann man trotzdem den einen Link angeben und wird dann nicht mehr wegen duplicate content abgestraft. DokuWiki benutzt das beispielsweise auch.
- Du könntest eine 301-Weiterleitung einführen, falls ein Request mit nicht-geordneten Tags reinkommt. Bemerke: 301 (permanent redirection) und nicht 302 (temporary redirection).

Ansonsten weiß ich auch nicht weiter. Deine Maßnahmen sollten an und für sich in einiger Zeit Wirkung zeigen.

Viele Grüße
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Danke für die Hinweise. Einiges davon werde ich umsetzten...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

So, mit https://github.com/jedie/PyLucid/commit ... a1047711db hab ich einige Dinge umgesetzt. Mal sehen ob das Wirkung zeigt...

Es scheint aber auch so zu sein, das es wirklich Wochen dauern kann, bis alle Bots das schnallen. Denn es schient so das jetzt erst einige der schon vor Tagen gemachten Änderungen ziehen.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten