Tote Links sind ärgerlich und unprofessionell. Sogar der Überblogger schlägt vor, seine Blogs ab und zu zu entrümpeln. Um sie zu vermeiden gibt es ein paar Lösungen, zum Beispiel keine Links machen 😀 . Oder Online, wie die Google Webmaster Tools und Ähnliche. Als Kontrollfreak habe ich es gerne unter Kontrolle und möchte die Geschichte lokal auf meinem Rechner betreiben.
Eigentlich hätte ich nichts gegen klickibunti gehabt, aber leider kann zum Beispiel http://klinkstatus.kdewebdev.org/ (den es mittlerweile nimmer gibt) keine Einstellungen speichern. Nundenn, dann muss halt die gute alto Kommandozeile ran. Ich habe mich für LinkChecker entschieden, weil er vielfältige Einstellungsmöglichkeiten und Ausgabeformate anbietet. Ausserdem ist er für Windows und Lunix erhältlch und die Entwicklung ist aktiv. Ebenso beachtet er robots.txt, was sehr hilfreich ist.
Ich kenne mich, ich kann mir die Kommandozeilenoptionen keine 18 Minuten merken und darum sei wohlgemut eine Konfigurationsdatei geschrieben und auf den Namen blogcheck.conf getauft. Es kann auch heruntergeladen werden: Beispielkonfiguration für linkchecker um ein Blog zu checken.
![]() |
![]() |
Zuerst die Ausgabe. Ich hätte gerne html und zur besseren Auswertung noch in csv. Während des Durchgangs hätte ich gerne ein Bisschen was an Rückmeldungen (habe ich schon erwähnt das ich ein Kontrollfreak bin?). Bei voller Lautstärke pustet mich linkchecker zu mit Info, status reicht also.
# print status output
status=1
# turn on/off --verbose
verbose=0
# turn on/off --warnings
warnings=0
# additional file output
fileoutput=html,csv
Nun noch die Logger konfigurieren:
# Loggers
#
[csv]
filename=linkchecker-out.csv
separator=,
quotechar="
parts=all
[html]
filename=linkchecker-out.html
# colors for the various parts
colorbackground=#fff7e5
colorurl=#dcd5cf
colorborder=#000000
colorlink=#191c83
colorwarning=#e0954e
colorerror=#db4930
colorok=#3ba557
parts=all
Noch ein Bisschen das Checkverhalten beeinflussen:
# number of threads
threads=5
# connection timeout in seconds
timeout=60
# check anchors?
anchors=1
Und nun wirds interessant. Wir wollen folgendes vermeiden:
- Der Linkchecker soll keine Ads anklicken.
- Der Linkchecker soll uns nicht bei Partnerprogrammen eintragen.
- Der Linkchecker soll uns nicht bei Social Bookmarkingdiensten eintragen.
- Er soll uns keine Kommentare posten und auch das Blog nicht administrieren.
Das kann einfach so und mit Regular Expressions erreicht werden. Interessant ist, das der Syntax der URLs trotzdem geprüft wird.
ignore=
ignore=
# ignore google ads
googlesyndication.com
google # Just to get sure!
#ignore affiliates
amazon\.com
trigami\.com
linklift
zanox\.com
# ignore social bookmarking
technorati\.com
del\.icio\.us
mister-wong\.com
digg\.com
stumbleupon\.com
blogmarks\.net
de\.lirio\.us
furl\.net
simpy\.com
spurl\.net
yahoo\.com
# ignore administrative links
wp-comments-post\.php
Und nun: Starten *froi*:
Nach dem Durchlauf kann linkchecker-out.csv in eine Tabellenkalkulation importiert oder linkchecker-out.html im Browser geöffnet werden.
Viele weitere Ausgabeformate wie SQL oder XML lassen andersweitige Auswertungen zu.
LinuxUser hat einen sehr schönen, einführenden Artikel zu linkchecker.
Nachtrag:
Bei Fehlern wie: had no anchor support oder url-anchor-not-found kann die Suche nach Anchors in der Konfigurationsdatei ausgeschaltet werden:
...
# check anchors?
anchors=0
Wenn der Server überfordert ist und Timeoutet kann beim Aufruf der Parameter -P1 übergeben werden, welcher zwischen den Aufrufen eine Sekunde einschiebt. Wahlweise kann auch das Timeout in der Abteilung [checking] nach oben geschraubt werden.
Wenn der Fehler WARNING Could not start a new thread. Check that the current user is allowed to start new threads. auftreten sollte, dann könnte es sein dass der Parameter timeout im Config zu gross gefwählt wurde.
Super, genau das habe ich gesucht, werde mir gleich mal meine Blog vornehmen. Danke für die Veröffentlichung.
.. nach langem suchen, endlich eine Lösung die funktioniert 🙂
Cool, es hat geklappt! und ist auch viel eleganter als alles von Hand zu löschen. THX.
werde ich gleich mal ausprobieren ….
Prima, herzlichen Dank.