toscho.design

No no no nofollow

Vor einigen Jahren kamen Weblogs schwer in Mode: Software, mit der man ganz einfach Artikel ins Netz schreiben kann. Zu diesen Artikeln kann jeder Leser einen Kommentar schreiben. Praktisch. Macht Spaß. Alles prima.

Diese Software wurde von Geeks geschrieben, und ein Geek ist immer so genau, wie er nur kann. Deshalb ist das Markup, das Weblogs aussenden, deutlich besser als das der meisten anderen Webseiten. Und deshalb wiederum landen Artikel aus Weblogs oft weit oben in den Ergebnislisten der Suchmaschinen. Auch prima.

Aber bald kamen die Spammer dahinter, daß sie einfach in all die gut bewerteten Weblogs einen Kommentar schreiben konnten, der Links auf ihre Webseiten enthält. Und kurz darauf rollte eine wahre Flut nackter Spamkommentare durch die Weblogs. Denn wenn eine Website viele Links von anderen gut bewerteten Websites bekommt, bewerten die Suchmaschinen auch sie selbst bald gut. Auch wenn sie eigentlich nicht gut ist. Nicht so prima.

Für die Software der Suchmaschinen ist es schwer, zwischen normalen Links und denen der Spammer zu unterscheiden; Google, Yahoo und MSN Live Search sahen also zu Recht die Qualität ihrer Suchergebnisse bedroht. Daraufhin erfand Google 2005 »nofollow«.

Wie funktioniert das?
Ein normaler Link wird in HTML mit dem Element a gebildet:

<a href="http://toscho.de">toscho.de</a>

Das a steht für anchor und das Attribut href für hypertext reference. Sein Wert – hier zwischen den " – ist eine URL. Das Element a kann aber auch noch andere Attribute haben: hreflang etwa, um die Sprache der verlinkten Website anzugeben. Oder rel. Damit wird die Beziehung (relation) dieser Webseite zur verlinkten Seite angegeben:

<a href="2.html" rel="next">Seite 2</a>

So kann man sagen, daß die verlinkte Webseite die aktuelle fortsetzt. Der Webbrowser Opera aktiviert dann die Vorwärtstaste, und der Leser kann darauf klicken und zur nächsten Seite gelangen.

Googles nofollow ist auch so eine Beziehung. Sie existiert allein für Suchmaschinen und sagt ihnen: »Interpretiere diesen Link nicht als positive Bewertung!«

<a href="http://example.com" rel="nofollow">example.com</a>

Alle anderen großen Suchmaschinen haben diese Interpretation des nofollow-Wertes übernommen, und nahezu alle Weblogsysteme bauen es automatisch in Kommentarlinks ein. Inzwischen ist es mit Abstand der häufigste Wert für rel.
Jetzt haben die Spammer keinen Grund mehr, sinnlose Kommentare zu schreiben, denn die Links bringen ihnen gar nichts.
Alles prima.

Wirklich?

Die meisten Benutzer der Weblogs wissen überhaupt nicht, daß ihre Software dieses Attribut einbaut. Und selbst wenn sie es wüßten: Wären sie wirklich damit einverstanden, daß alle Kommentatoren gleichermaßen als Spammer »kriminalisiert« werden? Bestimmt nicht. Ein guter Hinweis darauf ist die Menge der »Dofollow-Plugins« für WordPress – und die rege Nachfrage.

Und natürlich möchten sich auch die Leser nicht so behandelt sehen. Ich habe schon mehrmals keinen Kommentar geschrieben, obwohl ich wichtige Daten hätte beitragen können. Aber warum sollte ich anderer Leute Website aufwerten, wenn ich dafür nicht einmal brauchbar verlinkt werde?
Mit dieser Zurückhaltung stehe ich sicher nicht allein, oder? Ich fürchte, nofollow hat die Diskussionskultur beschädigt, die Weblogs ursprünglich so interessant gemacht hat.

Deshalb habe ich diesen Mechanismus abgeschaltet. Ich benutze Akismet, ein Plugin, das sehr effizient Spam erkennt. WordPress bringt es schon mit; man muß es nur aktivieren. Dann kann man selbst entscheiden, was Spam ist und was nicht.

Um nun in WordPress selbst die Nofollow-Pest abzuschalten, braucht man eigentlich kein Plugin. Es genügt folgender Eintrag in der functions.php des eigenen Themes:

/**
 * Removes the value ›nofollow‹ from the rel attribute.
 *
 * @author Thomas Scholz <http://toscho.de>
 * @contributor David Naber <http://blog.dnaber.de/>
 * @version 1.1
 * @license GPL 3 <http://www.gnu.org/licenses/gpl.html>
 * @param string $str Zu filternder String
 * @return string
 */
function xwp_dofollow($str)
{
    $str = preg_replace(
        '~<a ([^>]*)\s*(["|\']{1}\w*)\s*nofollow([^>]*)>~U',
        '<a ${1}${2}${3}>', $str);
    return str_replace(array(' rel=""', " rel=''"), '', $str);
}
remove_filter('pre_comment_content',     'wp_rel_nofollow');
add_filter   ('get_comment_author_link', 'xwp_dofollow');
add_filter   ('post_comments_link',      'xwp_dofollow');
add_filter   ('comment_reply_link',      'xwp_dofollow');
add_filter   ('comment_text',            'xwp_dofollow');

Beim Weitergeben bitte den Kommentarblock nicht streichen. Der Hinweis auf die GPL ist Teil des Codes.

Ich freue mich über jeden einzelnen Besucher, und besonders über jeden Kommentar, der kein Spam ist. Und ich teile diese Freude gerne, indem ich wertvolle Links auf die Webseiten meiner Leser zulasse.

Wie haltet ihr es auf eurer Seite?

Nachtrag

Ich habe bei Monika einen sehr engagierten Artikel zu eben diesem Thema gefunden: Eigentor nofollow. Sie drückt den Ärger über solche Links viel deutlicher aus als ich.

74 Kommentare

  1. Alex am 20.01.2009 · 20:32

    Wie recht du hast. Ich habs auch erst nach fast einem Jahr Bloggens mitgekriegt, dass die Links alle mit "

    nofollow

    " markiert sind. Daraufhin hab ich natürlich gleich ein DoFollow-Plugin installiert. Dieses fügt als "

    rel=external

    " ein. So ists doch besser, was? Dein Lösungsvorschlag ist auch klasse, jedoch für häufige Theme-Wechsel eignet sich ein Plugin schon eher, da man die functions.php nicht jedesmal ändern oder kopieren muss. (Allerdings sind häufige Theme-Wechsel wohl eher unüblich :-) )
    Übrigens war eben der Artikel von Monika der, der mich darauf aufmerksam machte!

  2. Thomas Scholz am 21.01.2009 · 02:13

    Alex, ich glaube, das external kommt von WordPress selber.

    Das Problem eines Themewechsels hatte ich gar nicht im Blick, danke. Ich werde diesen Code aber nicht zu einem Plugin umwandeln; da gibt es ja schon genug.

  3. GwenDragon am 26.01.2009 · 22:05

    @Thomas Scholz
    Recht hast du, ich habe heute aus meinem Blog auch das nofollow (Alt-Lasten eines Plugins) heraus programmiert.

    Das hat die meisten Suchmaschinen und Bots eh nicht interessiert.

    nofollow – RIP

  4. Thomas Scholz am 26.01.2009 · 23:41

    Freut mich sehr.
    Zu den Bots: Ich habe inzwischen bemerkt, daß Yahoo! die »Link-Kondome« als echte Backlinks bewertet.
    Zwar spielt Yahoo! längst nicht mehr die große Rolle; aber da nun auch die meisten großen SEO-Blogs kein nofollow mehr einsetzen, hoffe ich, daß die Blogger allmählich wieder zur Besinnung kommen und die Suchmaschinen ihre Arbeit selbst erledigen lassen.
    Jetzt muß nur noch die Software nachziehen …

  5. domingos am 31.01.2009 · 12:20

    Hi,

    ist generell sicher richtig. Aber ich finde die Möglichkeit trotzdem gut. Nehmen wir an, ich möchte eine Seite verlinken, dann geht die Suchmaschine generell davon aus, dass ich die verlinkte Seite toll finde und erhöhe ihren PR, zumindest minimal. Es gibt aber Seiten, die ich nicht unterstützen mag, politically incorrect, pokerstrategy oder was anderes. Dann ist no follow die einzige Möglichkeit, abgesehen davon, einen nichtanklickbaren Link zu generieren.
    Und das Spamproblem trifft ja auch Blogger sehr stark.

    ciao

  6. Thomas Scholz am 31.01.2009 · 13:20

    Ein einzelnes, bewußt gesetztes nofollow finde ich durchaus akzeptabel. Mich stört nur die automatische Diskriminierung, die so viele Weblog- und Content-Management-Systeme mitbringen.

    Man kann eine Website per Tiny-URL verlinken; dann geht es auch ohne nofollow.

    Und Spammer scheren sich nicht um nofollow: Bei allen Webseiten, die ich betreue, hat das An- oder Abschalten dieses Attributes überhaupt keine Veränderung im Spamaufkommen verursacht. Die wissen eben auch, daß einige Suchmaschinen das Attribut ignorieren, und daß der PR selbst bei Google nur noch ein sehr kleiner Faktor für die Position in den Suchergebnissen ist.

  7. asaaki am 17.02.2009 · 20:47

    ich warte ja noch sehnsüchtig darauf, dass dieser nofollow-quatsch im weblog (bei mir wordpress) endlich aufhört. wenigstens sollte es doch bitte einen schalter geben, den man ein- und ausschalten kann. und standardmäßig sollte nofollow einfach deaktiviert sein. es ging ja früher auch halt. und wie du schon selbst geschrieben hast, ist den spammern das eh schon egal.

    dein skript werde ich auch gleich mal ausprobieren.

  8. Thomas Scholz am 17.02.2009 · 21:04

    Wie ich sehe, hast du es schon in die Tat umgesetzt. Schöne Seite übrigens!

    Auf die Abschalt-Option werden wir noch eine Weile warten müssen: nofollow ist im Core an 16 Stellen in 4 Dateien festgemeißelt. Dummer Code muß wohl auch dumm verankert werden …

  9. David am 19.02.2009 · 23:01

    Ich halte es genau so. War das erste was ich in WP rausgenommen habe und zwar hab ich gleich die Templatefunktion um den entsprechenden Teil erleichtert. Zumindest der Autorenlink wird ohne "nofollow" gesetzt. Wie das mit Links innerhalb des Textes ausschaut, weis ich noch garnicht.

  10. Thomas Scholz am 19.02.2009 · 23:28

    Ergänze dein Userstylesheet um diesen Eintrag:

    [rel~="nofollow"] {
        outline:  1px dotted #f00  !important;
    }

    Damit erkennst du alle Linkkondome, ohne in den Code zu sehen.

  11. Ivan am 08.04.2009 · 22:36

    Hallo Thomas,
    schon seit längerer Zeit bin ich auf der Suche nach ein paar Code Zeilen, die mir "nofollow" in den Kommentaren entfernt. Vom WordPress Forum über Texto.de bin ich nun auf Deiner Seite gelandet.

    Genau so sollte es sein, Vielen Dank.
    Was ich nicht genau verstehe, was ist der Unterschied zwischen

    post_comments_link

    und

    comment_text

    das wird für WP 2.7.1 die Antwort / Replay Funktion sein oder?

    comment_reply_link

    Nach dem einfügen habe ich gesehen, dass das "nofollow" ausgeblendet wird. Wieso hat man dann dies nicht durch rel="external" oder sogar rel="" ganz weggelassen?

    Man lies ja viel im Internet darüber, was meinst Du dazu?

    Gruss Ivan

  12. Thomas Scholz am 08.04.2009 · 22:50

    @Ivan: Die beiden ersten sind jeweils für die Verlinkung des Namens und Links im Kommentartext selber zuständig. comment_reply_link gehört eigentlich nicht rein; ich habe einfach alles erfaßt, was vielleicht irgendwann mal vergiftet werden könnte. :)

    Das external steht manchmal (?) schon vorher drin, wenn nicht, bleibt bei Anwendung der Funktion zuweilen das leere rel="" übrig. Könnte man auch noch raussuchen, aber da der WordPress-Code schon mehr als genug Zeit verbraucht, habe ich mir das verkniffen.

    Im Ganzen ist das eine sehr schnelle und pragmatische Lösung. Auf Schönheit kam es mir da nicht so an.

    Eigentlich halte ich auch von rel="external" wenig: Ob ein Link woandershin führt oder nicht, sieht man doch meistens an der URL. Außerdem gibt es fast unentscheidbare Zweifelsfälle, die die Absurdität ans Licht bringen: Ein mailto:-Link an meine E-Mail-Adresse (siehe Fußbalken) ist beispielsweise weder intern noch extern. Das Problem stellt sich bei jedem Protokollwechsel, also auch bei Links ins IRC oder Usenet. Der Leser hat von solchen pseudosemantischen Spitzfindigkeiten ohnehin nichts.

  13. Ivan am 09.04.2009 · 17:09

    Hallo Thomas,
    okay, das hat mir sehr weitergeholfen.
    Vielen Dank für Deine Erklärungen.

  14. Ivan am 09.04.2009 · 17:39

    Wäre es viel Aufwand, die Leerstelle/Space auch noch zu filtern?

    rel='external '
  15. Thomas Scholz am 09.04.2009 · 18:00

    Ich habe den Code jetzt aktualisiert. rel='external ' bleibt nicht mehr übrig; leere rel-Attribute auch nicht. Hoffe ich.

  16. Ivan am 09.04.2009 · 18:06

    Du bist ja schnell, jep... nun ist alles perfekt!
    Danke schön

  17. Fix am 16.04.2009 · 11:44

    Ich finde diesen Beitrag wirklich gut, da er das Thema mit nofollow und Blogs mal von der anderen Seite betrachtet. Und ich muss auch sagen, dass ich schon oft mir Kommentare gespart habe weil man durch nofollow diskriminiert wird. Weiterhin können die Kommentare ja bearbeitet und ggf. der Link raus genommen werden. Wenn es nicht zuviel arbeit macht.
    Im Blog von meiner Frau habe ich im Kommentar-Formular www erstmal ganz raus genommen, vielleicht sollte ich es wieder rein nehmen.
    Letztendlich finde ich es gut dass Thema angesprochen wird....
    und jetzt werde ich diesen Bolg auch erstmal verlinken :-)

  18. Thomas Scholz am 16.04.2009 · 12:26

    Im Blog von meiner Frau habe ich im Kommentar-Formular www erstmal ganz raus genommen, vielleicht sollte ich es wieder rein nehmen.

    Wer Zeit und Geist investiert und ein Blog mit Kommentaren aufwertet, der sollte ruhig einen ordentlichen Backlink bekommen. Links sind nunmal die Währung des Internets – da ist es nicht nett, gar nicht oder mit »Falschgeld« zu bezahlen.

  19. Stephan am 06.05.2009 · 13:40

    Da ich noch nie von dem oben erwähnten rel="next" Atribut für Opera gehört hatte owohl ich selbst ein "Opera Surfer" bin hab ich mir gleichmal einpaar Queltexte angeschaut. Habe Keine Seite gefunden mit diesem Atribut und Opera hat auch ohne dieses den weiterführenden Link gefunden.

  20. Thomas Scholz am 06.05.2009 · 13:48

    @Stephan: Opera bringt eine Heuristik mit, die den nächsten Link auch findet, wenn er mit »Weiter«, »nächste Seite« und Ähnlichem beschriftet ist. rel="next" ist aber der einzig sichere Weg, der unabhängig von der im Browser eingestellten Sprache funktioniert.

  21. Blackcat am 13.05.2009 · 15:04

    habe vor einiger Zeit mehrere Blogs installiert und leider gar nichts von nofollow in den Kommentaren mitbekommen. Werde dies jetzt in allen Blogs so schnell wie möglich beheben. Der Beitrag hier war mir sehr hilfreich dabei

  22. Emmelie am 05.06.2009 · 13:00

    Ob Dofollow oder Nofollow finde ich sollte dem Blog Betreiber überlassen sein. Daher finde ich diese Funktion den effektivsten Spam Schutz.
    Und nur weil mein Link Nofollow ist, ist das für mich nich kein Grund keinen Kommentar zu schreiben. Natürlich hat man es lieber, wenn man für das kommentieren "belohnt" wird, trotzdem sollte man auch auf die Qualität des Blogs eingehen und nicht nur ob man selbst etwas davon hat.

  23. Thomas Scholz am 05.06.2009 · 13:07

    @Emmelie: Nofollow schützt nicht vor Spam. Das wollte Google uns einreden, aber alle Zahlen sprechen dagegen: Ich betreue einige Seiten mit Kommentarmöglichkeit, nirgendwo ändert dieses Attribut die Menge des Spams.

    Natürlich kommentiere ich auch in Nofollow-Blogs, wenn das Formular und die Seite nutzerfreundlich sind und ich etwas zum Thema beitragen kann. Trotzdem komme ich mir dabei immer ein bißchen veralbert vor.

  24. Sponsordealer am 07.07.2009 · 07:14

    Hallo,
    ich setze doch lieber auf ein Plugin um gleichzeitig etwas zum schreiben anzuregen. Denn wer einen dofollow Link möchte der sollte nicht nur "super page" oder so hinterlassen müssen. Naja ok, solche Kommentare würde ich als Spam durchgehen lassen. Jedenfalls setze ich auf ein Plugin welchen nach 140 geschriebenen Text den Link von no-follow in dofollow umwandelt.

  25. Thomas Scholz am 07.07.2009 · 09:27

    @Sponsordealer: Interessanterweise hat deine URL einen Bug in meinem Script aufgedeckt: Das »nofollow« darin wurde weggefiltert.

    Ob 140 Zeichen oder eine andere Länge etwas über die Qualität des Kommmentars aussagen? Ich bezweifle das. Ich hatte auch schon hilfreiche Kommentare, die kürzer waren.

  26. Sponsordealer am 07.07.2009 · 12:31

    Ja stimmt schon das 140 Zeichen weniger aussagen können als ein kleiner aussagekräftiger Satz. Ich bin aber der Meinung das durch den Hinweis doch etwas mehr über das Thema nachgedacht wird. Was letztendlich Spam ist muß man selbst entscheiden. Mir geht es auch vielmehr den Kommentatoren echte Backlinks für ihre Meinung zu geben.

  27. Thomas Scholz am 07.07.2009 · 13:04

    @Sponsordealer: Im XHTML-Forum gibt es Mindestlänge von 5 Zeichen pro Beitrag. Man kann also nicht ein verlinktes »Ja.« schreiben, obwohl das manchmal die beste Antwort ist. Das nervt (nicht nur) mich manchmal gewaltig.

    Ich mag es auch, wenn meine Kommentatoren ins Detail gehen, wenn es paßt. Aber meine Lösung besteht nicht darin, sie zu irgendwelchen Mindestlängen zu zwingen oder sie beim Unterschreiten zu »bestrafen«, sondern in einem Design, bei dem sich ein langer Text nicht so lang anfühlt.

    Das war viel schwerer als eine reine Programmierlösung, aber jetzt haben alle nur Vorteile davon. Echte Links für echte Kommentatoren sollten an keine Bedingung geknüpft sein.

  28. Petra am 09.07.2009 · 11:28

    Ich habe erst vor kurzem von der Bedeutung des nofollow-Tags erfahren und den Beitrag hier über google gefunden. Ich bin der Meinung WordPress sollte bei der Installation fragen, ob es nofollow-Kommentarlinks setzen soll oder nicht - so wie es ja auch am Anfang fragt, ob der Blog über Suchmaschinen gefunden werden soll. Dnan kann jeder selbst entscheiden, wie er es möchte.

  29. Bowenkämper am 13.07.2009 · 01:16

    Im Prinzip bin ich auch der festen Überzeugung, dass jemand, der im Blog seinen Kommentar abgibt, auch einen Backlink erhalten sollte. Aber wie Du oben ja auch selbst schreibst, hatte das nofollow ja durchaus seine Berechtigung. Und zwar dann, wenn SEOs versuchen, die Kommentarfunktion zu missbrauchen.
    Leider sind Akismet und andere Spamfilter nicht in der Lage, jeden Spamkommentar zu filtern. Besonders dann nicht, wenn sich der Spammer hinsetzt und einen Einzeiler zu hinterlassen. Da möchte ich doch lieber in der Lage sein, diese Links auf nofollow zu setzten ohne das manuell tun zu müssen.

  30. Thomas Scholz am 13.07.2009 · 03:08

    @Bowenkämper: Wenn ich einen Kommentar für Spam halte, dann lösche ich ihn einfach. Ich versuche nicht, seinen Link zu entschärfen. Daß kein Spamfilter zu 100% zuverlässig funktioniert, ist klar. Aber da man ja ins eigene Blog hoffentlich einmal am Tag hineinsieht, ist auch das nicht allzu tragisch.
    Im schlimmsten Fall hat ein Spammer ein paar Stunden lang einen »wertvollen« Link auf seine Website. Na und? Das nützt ihm nichts.

  31. Bowenkämper am 13.07.2009 · 21:03

    Hallo Thomas,
    das ist eine klare Linie. Aber nicht jeder Kommentar ist so eindeutig als Spam zu erkennen und nicht jeder hat die Möglichkeit täglich in sein Blog zu gucken. Ich z.B. betreibe einen Nachbarschaftsblog und weiß, das auch Nachbarn und deren Bekannte im Blog aktiv sind. Dort kann ich nicht einfach Kommentare löschen.

    Der Tipp mit dem User Style Sheet klappt übrigens hervorragend. Auf nofollow-Blogs lasse ich jetzt nur noch 'nen Kommentar, wenn ich unbedingt was zu dem Thema sagen muss!

    (Falls jemand, wie ich, nach seinem User Profile suchen sollte:
    http://support.mozilla.com/de/kb/Benutzerprofile#Wo_befindet_sich_Ihr_Profil_)

  32. Thomas Scholz am 13.07.2009 · 21:16

    @Bowenkämper: Ab wann ein Kommentar Spam ist – das wäre eigentlich mal einen eigenen Beitrag wert. Ich warne im Formular, daß ich es nicht mag, wenn etwas zu sehr nach SEO riecht, und dann entscheide ich von Fall zu Fall. Ist aber manchmal eine Gratwanderung …

    Manche Kommentare lösche ich nicht, sondern ich markiere sie als Spam. So bleiben sie erhalten und können wieder freigegeben und gezeigt werden, wenn der Autor sich meldet. Genauer: Falls er sich meldet. Ist nämlich noch nie passiert. ☻

  33. David am 08.08.2009 · 15:39

    Angeregt durch dein Beitrag in Klaus Blog hab ich jetzt das Plugins NOFF rausgehaun und dein Codeschnipsel eingefügt. Allerdings greift dein regulärer Ausdruck, so wie er im Beitrag steht, bei mir solche Geschichten nicht raus: rel="external nofollow". Solche aber schon: rel="nofollow irgendwas".
    Hab ich in den Kommentaren was überlesen oder ist das noch nicht aufgefallen?
    Ich hab mal ein änderungsversuch gewagt:

    ~<a ([^>]*)\s*(["|\']{1}\w*)\s*nofollow([^>]*)>~U

    So holt es bei mir auch die nofollows raus, die nicht am Anfang stehen.

    Du hast aber vollkommen recht, so ein paar Zeilen Code sind wesentlich unkomplizierter als ein Plugin mit riesigem Rattenschwanz hinten dran.

  34. Thomas Scholz am 08.08.2009 · 16:01

    @David: Vielen Dank! Ich habe deine Verbesserung eingebaut.

  35. Natalie am 04.09.2009 · 06:54

    Wesentliches kann ich zwar nicht beitragen (und laufe damit Gefahr, als Kommentarspammerin "kriminalisiert" zu werden), aber ich finde:

    ...erstens die Initiative per se gut, weil es zeigt, dass man als Website-Betreiber nicht einfach alle Vorgaben der "Großen" wie Google oder auch WordPress selbst ungefragt übernehmen muss.

    ...und zweitens, dass man als Programmierer mit tieferen Kenntnissen über die WordPress-Interna nicht für jeden kleinen Eingriff gleich ein Plugin mit allem dazugehörigen Ballast installieren muss.

  36. Luzia am 12.10.2009 · 20:10

    Hallo,
    ich setze doch lieber auf ein Plugin um gleichzeitig etwas zum schreiben anzuregen. Denn wer einen dofollow Link möchte der sollte nicht nur "super page" oder so hinterlassen müssen. Naja ok, solche Kommentare würde ich als Spam durchgehen lassen. Jedenfalls setze ich auf ein Plugin welchen nach 140 geschriebenen Text den Link von no-follow in dofollow umwandelt.

  37. Sascha Lupeski am 13.10.2009 · 20:29

    Danke für den Beitrag! Ich hab ne weile gebraucht bis ich geschnallt hab um was es bei nofollow geht aber nach dem ich den Beitrag gelesen habe, hab selbst ich verstanden um was es geht!
    Vielen Dank ;)

  38. Dunkelangst am 04.12.2009 · 22:51

    Es genügt folgender Eintrag in der functions.php des eigenen Themes:

    Wenn ich deinen Code in meine functions.php integriere, bekomme ich folgenden Fehler:

    http://img2.abload.de/img/nonononofollow-problemzpyp.jpg

    Meine functions.php hat bisher nur die Aufgabe mein Theme widget ready zu machen. Daher sieht der code wie folgt aus:

    <?php
    if ( function_exists('register_sidebar') )
    register_sidebar();
    ?>

    Falls du meinen kompletten Code meines Themes ansehen möchtest, so findest du ihn hier.

    Was mache ich falsch? Ich wäre über jedwede Hilfe, wie ich dieses dämliche nofollow loswerden kann, echt dankbar!

  39. Dunkelangst am 04.12.2009 · 23:11

    @Dunkelangst:
    Alles klar: Man muss deinen Code natürlich in PHP Tags setzen:

    Wenn man den Wald vor lauter Bäumen nicht mehr sieht. Darf ich deinen Code überhaupt verwenden? Ich finde keinen Lizenzhinweis. Gibst du ihn unter der GPL frei? Falls ja, Version 2 oder Version 3?

    Ganz liebe Grüße!

  40. Thomas Scholz am 05.12.2009 · 00:22

    @Dunkelangst: Lizenz? Bei so einem Schnipsel? Das halte ich nicht für nötig. Ich fände es gut, wenn du den Docblock über der Funktion beibehältst, aber selbst das sei freigestellt.

    Noch ein Tip für die functions.php: Laß das schließende ?> weg.
    Das kannst du bei allen PHP-Dokumenten machen, wenn nach dem letzten PHP-Code keine Ausgabe aus dem Dokument heraus mehr erfolgt. Damit verhinderst du, daß sich irgendwo eine Leerzeile einschleicht, und du mußt nicht mehr daran denken ein <?php zu öffnen.

  41. Dunkelangst am 07.12.2009 · 01:06

    Noch ein Tip für die functions.php: Laß das schließende ?> weg.
    Das kannst du bei allen PHP-Dokumenten machen, wenn nach dem letzten PHP-Code keine Ausgabe aus dem Dokument heraus mehr erfolgt. Damit verhinderst du, daß sich irgendwo eine Leerzeile einschleicht, und du mußt nicht mehr daran denken ein

    Vielen Dank für den Tipp! :-)

    Lizenz? Bei so einem Schnipsel? Das halte ich nicht für nötig.

    Dein kleiner Schnipsel ermöglicht es einem Blogger das Nofollow Attribut von WordPress wirksam zu bekämpfen. Ich finde also deinen Schnipsel also ziemlich gut und auch wichtig für eine Funktion, die WordPress mit einem einfachen True (soll gesetzt werden) oder False (soll nicht gesetzt werden) im Backend lösen sollte. Der Sinn von nofollow ist es eben, dem jeweiligen Seitenbetreiber die Entscheidung zu geben, wann es gesetzt werden sollte und wann nicht. Das ist nicht die Aufgabe der WP Entwickler. Dein Code ist ein ziemlich großer Mehrwert und besser als das xte Plugin zu installieren.

    Aus diesem Grund fände ich das sehr schön, wenn du den Code unter der GPL freigeben würdest. Dies würde potenziellen Theme Autoren (z.B. mir in meinem angepassten Theme [1]) ermöglichen, deinen Code in ein Theme zu integrieren und damit diesen auch gleich auszuliefern. Falls die Anwender eines Themes das nofollow dennoch setzen wollen, können sie den Code ja auch entfernen oder auskommentieren.

    Es ist außerdem für Dich wichtig, generell Code zu lizenzieren. Hintergrund ist der, dass auch Du nur ein Mensch bist. Wie alle Menschen, kannst auch du einen Fehler machen. Wenn dieser Fehler nun bei einem Blogger, der deinen Code benutzt, ein Hardwareschaden oder ähnliches hervorruft, bist du in der Haftung, da ich hier nirgendwo einen Haftungsausschluss sehe, der in jeder freien Lizenz enthalten ist. Wenn du also deinen Code nicht lizenzieren möchtest, solltest du zumindest einen Haftungsausschluss hinzufügen um Dich selbst abzusichern. ;-)

    Ich empfehle Dir einfach mal in diesem Zusammenhang den Film [2], der leider etwas trocken ist, aber juristische Hintergründe zur GPL V2 und V3 anschaulich gegenüber stellt.

    Ich fände es gut, wenn du den Docblock über der Funktion beibehältst, aber selbst das sei freigestellt.

    Was meinst du jetzt mit Docblock? Deine auskommentierten Hinweise, dass du der Autor des nofollow Schnipsels bist? Falls ja, so kann ich Dich beruhigen: Es schickt sich nicht so etwas weg zu lassen, da es einem Anwender eines Themes weitere Hinweise zur Verfügung stellt, falls doch mal Fragen aufkommen sollten. Man würde dadurch nicht nur deine Arbeit unwürdigen sondern auch einen User alleine lassen. :-)

    Vielen Dank!!

    [1]: http://www.dunkelangst.org/2009/07/19/falling-dreams-adjusted-theme/
    [2]: ftp://ftp.ccc.de/congress/2007/matroska/24c3-2345-de-gplv3_auswirkungen.mkv

  42. Thomas Scholz am 07.12.2009 · 12:20

    @Dunkelangst: Ich habe diesem Code bisher selbst nicht die Schöpfungshöhe zugesprochen, die durch eine Lizenz abgesichert werden müßte. Auch das Problem der Haftung stellt sich eigentlich nicht, da ja keine Daten dauerhaft verändert werden, sondern nur eine Ausgabe angepaßt wird. Und eine Hardware, die an diesem Regex scheitert, kommt gar nicht bi hierhin: WordPress selbst tötet sie lange vorher. ☻

    Ich verstehe aber deine Bedenken beim Einbau in ein eigenes Theme, daher habe ich den Code jetzt unter die GPL 3 gestellt.

    Der Hinweis auf den Docblock bezog sich auf reale Erfahrungen: Ich habe es schon erlebt, daß andere meinen Code als ihren ausgegeben haben. Sowas ist immer unerfreulich.

  43. Dunkelangst am 08.12.2009 · 03:24

    Ich verstehe aber deine Bedenken beim Einbau in ein eigenes Theme, daher habe ich den Code jetzt unter die GPL 3 gestellt.

    Vielen Dank! Ich habe Deinen Code nun auch in mein Theme integriert und wenn ein User sich dieses nun installiert, ist sein Blog automatisch auf Dofollow. In der functions.php weise ich ausdrücklich auf Dich als Autor sowie die GPL V3 hin - also genau so, wie du es hier jetzt auch machst. Vielen Dank, ich habe mich darüber sehr gefreut.

    Ich habe es schon erlebt, daß andere meinen Code als ihren ausgegeben haben. Sowas ist immer unerfreulich.

    In der Tat, das ist wirklich unerfreulich. Vor allem für den User; falls doch einmal Probleme auftauchen, wird dieser dann nicht wissen, an wen er sich wenden soll.

  44. BTTV-Bernie am 27.12.2009 · 11:15

    Danke für den Code! Damit wird die Pluginliste "etwas kleiner". Nachdem das Plugin FollowURL seinen Dienst nicht mehr tat, war ich auf das Plugin Plugin myFollow URL umgestiegen. Aber so ganz ohne Plugin gefällt es mir dwutlich besser. :-)

    Und der These Backlink als Belhnung für einen guten Kommentar kann ich mich nur anschließen!

  45. Markus am 05.02.2010 · 21:59

    Vielen Dank für dieses Stückchen Code!
    Allerdings hätte ich die letzten drei Zeilen weggelassen, wenn man einem Kommentator, welcher nur auf Backlinks aus ist, den Link versauern will.

  46. Thomas Scholz am 06.02.2010 · 01:52

    @Markus: Wenn ein Kommentar sichtbar nur zu diesem Zweck erstellt wurde, dann lösche ich ihn einfach komplett. Dafür braucht man keinen Code, nur Augenmaß.

  47. Martin am 12.02.2010 · 12:33

    Hallo Thomas,
    danke für diese Erklärung. Ich habe zwar schon seit Jahren ein privates Blog und seit einem Jahr ein Firmenblog, aber diese Problematik kannte ich noch nicht.

    Dass WordPress das nofollow standardmäßig bei Kommentaren einfügt, ist zwar blöd, aber noch nachzuvollziehen. Aber ich habe sogar einige von mir selbst eingefügte Links gefunden, die das nofollow hatten.
    Im selben Post habe ich zwei Links, einer mit und einer ohne. Ich habe zwar herausgefunden, dass man das in den Link-Eigenschaften unter "Erweitert" einstellen kann, aber ich kann mich nicht erinnern, nofollow bei der Linkvergabe ausgewählt zu haben.

    Meine Frage:
    Kann ich bei mir (oder auch bei anderen) schnell(!) überprüfen, ob der Link ein nofollow-Link ist? Oder muss man dazu immmer einen rechten Mausklick auf die Seite machen, den Quelltext anzeigen und nach dem entsprechenden Link suchen? Gibt es ein Tool/Firefox-Plugin, was das schneller kann, z.B. beim Überfahren eines Links?

    Ich habe es mit deinem Code versucht, aber nach dem Einfügen in meine functions.php bekam ich plötzlich Fehlermeldungen von meinem WordPress Admin-Bereich. Wahrscheinlich war es nicht an der richtigen Stelle, aber ich habe mich auch gewundert, dass die letzten 5 Zeilen ohne geschweifte Klammern sind. Na ja, ich bin kein Programmierer... ☺
    Ich werde es später noch einmal versuchen und habe vorübergehend ein dofollow-Plugin installiert.

  48. Thomas Scholz am 12.02.2010 · 12:45

    @Martin: Nofollow-Links entdecken kannst du mit dem oben genannten Eintrag im Userstylesheet.

    Der PHP-Code sollte natürlich zwischen <?php und ?> stehen, ansonsten dürfte damit nichts schiefgehen. Und geschweifte Klammern braucht man nicht überall; die letzten fünf Funktionsaufrufe sind vollständig.

  49. Martin am 18.02.2010 · 21:38

    Danke für die schnelle Antwort, das hat gut geklappt mit dem Userstylesheet. Hatte ich zwischen all den anderen Kommentaren nicht gesehen ☺

    Das mit der functions-Datei muss ich später noch mal ausprobieren.

  50. Micha am 14.03.2010 · 14:54

    Ich habe einfach in der functions.php den code von rel="external nofollow" auf rel="follow" geändert. Funktioniert bei mir genauso gut, oder habe ich was missverstanden. Trotzdem danke, du hast mich zu nofollow sensibilisiert. Eine Schande, dass WordPress das immer noch reinbaut.

  51. Roman am 11.05.2010 · 13:37

    Hey,
    ich bin immer froh wenn ich den Code direkt in das Theme integrieren kann, zu viele Plugins machen die Webseite nur langsamer.

    Vielen Dank für den php-code, hab ich gleich eingebaut ;)

  52. Bernhard am 12.05.2010 · 10:16

    Vielen Dank für den Code. Da fehlt nur noch ein großer Aufruf im Web, dass sich alle Blogger diesen Code in die functions.php kopieren. Das kann man nur unterstützen!

  53. Ingo am 30.08.2010 · 11:49

    Danke für den Code. Ich finde ohnehin, dass dieses NoFollow-Dingens verboten gehört. Wenn WP das schon per Default im System einbindet, dann doch bitteschön mit einem Auswahlfeld im Adminbereich. So finde ich das immer sehr umständlich. Ein riesen System und dann doch immer wieder im System rumpfuschen, nur weil der Core was vorgibt, es aber nicht ändern lässt.

  54. Giorgio am 02.09.2010 · 13:14

    Besten Dank für den Code. Bin gerade dabei mir einen Blog zu "basteln". Den Code werde ich zuerst einbauen. Warum sollten Kommentare nicht mit einem Follow Link belohnt werden. Allerdings benutze ich auch "rel="nofollow" für mein internes PageRank sculpting. Verbieten sollte man rel="nofollow" auf keinen Fall, es kommt ganz darauf an für was man rel="nofollow" verwendet!

  55. Thomas Scholz am 02.09.2010 · 16:48

    @Giorgio: Nofollow hat auf den PageRank nicht den geringsten Einfluß.

  56. Roman am 15.09.2010 · 18:48

    Tut mir leid wegen dem versäumten Backlink, war nicht böse gemeint! :)
    Viele Grüße

  57. Monika am 12.10.2010 · 14:27

    Ich hab mich gerade letzte Woche auch mit dem Thema beschäftigt und meinen Blog umgestellt - von nofollow auf follow ☺.
    Vielleicht kann mal jemand, der mehr als ich davon versteht, überprüfen, ob ich wirklich alles richtig gemacht habe?
    Herzliche Grüße,
    Monika

  58. Thomas Scholz am 12.10.2010 · 14:54

    @Monika: Bei Blogger.com hast du keinen Zugriff auf den PHP-Code, daher kannst du das mit dem hier vorgestellten Script nicht ändern. Vielleicht gibt es dort eine Einstellung dafür, aber das bezweifle ich.
    Kurz: Dein Blog ist noch nofollow.

    Mit dem weiter oben genannten Userstyleshet siehst du das auch selbst.

  59. Monika am 19.10.2010 · 14:30

    Im Template kann man aber das nofollow entfernen...
    Dazu hatte ich auf einer englischen Seite einen Tipp gefunden und das dann auch gemacht.
    Deswegen meine Bitte, ob jemand mal ausprobieren kann, ob der Blog umgestellt ist... Wenn Du aber meinst, dass das nicht der Fall ist, na ja - ist ja echt blöd!

  60. Cola Fan am 11.12.2010 · 10:27

    Meine Blogs sind inzwischen alle auf nofollow umgestellt. Ich kapiere wirklich nicht, warum wordpress das von Haus aus so eingerichtet hat. Ist mir anfänglich garnicht aufgefallen, erst als ich darauf hingewiesen wurde. Ich muss aber gestehen, dass ich mir ein plugin eingebaut habe: nofollow case by case. Ich finde diese Lösung besser, weil ich damit immer noch entscheiden kann, einzelne Kommentare auf nofollow zu setzen, indem ich einfach /dontfollow hinter den link schreibe.

  61. Cola Fan am 11.12.2010 · 10:27

    quark... auf dofollow umgestellt, wollte ich schreiben

  62. Henrik am 10.01.2011 · 21:28

    @Thomas Scholz:

    Das ist ein wirklicher guter Vergleich. Jetzt muss ich nur gucken, ob ich in meinem Blog auch dieses no follow neutralisieren kann.

    Werden eigentlich auch die Links, welche mit dem Namen des Kommentators verknüpft sind, von den Suchmaschinen als Backlinks gewertet?

  63. Thomas Scholz am 10.01.2011 · 21:42

    @Henrik:

    Werden eigentlich auch die Links, welche mit dem Namen des Kommentators verknüpft sind, von den Suchmaschinen als Backlinks gewertet?

    Ja, aber sie haben fast kein Gewicht. Alle großen Suchmaschinen können den Kommentarabschnitt einer Seite längst gut erkennen. Das hat sich leider noch nicht bei den Spammern herumgesprochen …

  64. Ralf am 17.04.2011 · 14:15

    Bei meinen Seiten hat der Code nicht funktioniert. Ebenso wenig wie verschiedene andere die man finden kann, und zahlreiche Plugins haben ebenfalls nichts gebracht. Die Lösung war dann Follow My Links,
    das hat sofort auf allen Seiten fuktioniert.

  65. Thomas Scholz am 22.04.2011 · 14:08

    Heute habe ich diesen Code in ein Plugin gesteckt: Toscho Dofollow.

  66. Thomas am 02.06.2011 · 21:17

    Ich habe mal eine Frage eines total Unwissenden... Alles, was ihr hinsichtlich der Vermeidung von No-Follow Linls beschrieben habt, bezieht sich auf Blog-Anbieter, oder?

    Wenn ich also eine Blog bei WordPress erstellt habe und führe, kann ich mit Plug-Ins bzw. dem Code oben das Thema do-follow und no-follow beeinflussen und selbst entscheiden, wie ich meinen Blog verwalten will.

    Es geht hier aber nicht darun, dass ich als Kommentator fremder Blogs den no-follow Link unterdrücken kann, oder?

    Sorry, bin noch Blog-Anfänger...

    Gruß
    Thomas

  67. Thomas Scholz am 02.06.2011 · 21:24

    @Thomas: Ja, dies hier funktioniert nur in deinem eigenen Blog, nicht auf fremden und auch nicht bei wordpress.com, denn du mußt den Code ja selbst einfügen können.

  68. Sven am 13.06.2011 · 13:51

    If I only would like to apply this filter to the comment text/content, is it enough to add this :

    add_filter( 'comment_text', 'xwp_dofollow' );

    Will this filter modify the database entry or is it applied when WP reads from database and before it it is displayed?

  69. Thomas Scholz am 13.06.2011 · 14:14

    @Sven: Yes, filtering comment text is enough if you want just this. The filter is applied to the output, the data base will not be touched.

  70. Sven am 13.06.2011 · 16:38

    @Thomas Scholz: Thank you Thomas, very kind of you to share you knowledge.

  71. Ralf Schumann am 27.09.2011 · 11:30

    Danke für die Tipps, ich habe selbst einige Bloggs und habe dort das nofollow "entsorgt". Das Problem ist sowiso das in letzter Zeit viele gute Blogs einfach verschwunden sind, man findet fast nur noch Parking Domains. Vieleicht rafft sich doch mal wieder jemand auf der eine aktuelle Liste der nonofollow Blogs erstellt.

  72. Thomas Scholz am 27.09.2011 · 11:33

    @Ralf Schumann: Von solchen Listen halte ich wenig. Sie laden nur die Spammer ein. Eine ordentliche Linkkultur fördert man eher, indem man sie zur Selbstverständlichkeit erklärt, als durch »Ausnahmelisten«.

  73. Joachim am 14.11.2011 · 09:37

    Vielen vielen Dank für diesen Artikel! Ich habe den Code in meiner privaten Homepage erfolgreich integriert.

    Schöne Woche wünsche ich allen.

  74. Manuela am 09.02.2012 · 00:04

    Hallo Thomas,

    ich bin noch absolute WordPress-Anfängerin und habe keine Ahnung von php, aber ich muss sagen dein Code und deine Anleitung hier konnte ich sofort umsetzen.
    Vielen Dank dafür!

    Ich finde es unmöglich, dass das Nofollow vorgegeben ist, jeder sollte doch selbst entscheiden, was man möchte. Ich habe zwar bis jetzt noch kaum Kommentare auf meinem Blog, aber ich möchte nicht verhindern, dass meine Besucher in Zukunft nichts davon haben, wenn sie Kommentare hinterlassen.

    Grüße