Support » Plugins » Nofollow for links

  • I would like the option to use the ‘nofollow’ attribute in my (sidebar) links, mainly for links to sites that themselves use ‘nofollow’, but whenever I try to type anything into the ‘rel’ box the XFN Creator erases it. Is there either a plugin to fix this or an easy (for a non-PHP coder like me) way round it?

Viewing 15 replies - 1 through 15 (of 16 total)
  • This is probably a good link for you to read: — Also, you might want to pick up the “Plugin Manager” plugin, which allows you to one-click install quite a few different plugins, including a number which are made for exactly what you’re trying to do. 🙂

    I realise that nofollow isn’t much use against spam, but I don’t see why I should donate PageRank to sites that won’t reciprocate (I don’t use nofollow for comments/trackbacks). All of the plugins in the WP Plugin Manager (I have the current version, 1.7) are for adding nofollow to comments, not sidebar). Preferably, I would like to be able to disable the XFN generator thing and just type in the ‘rel’ attributes that I want myself.

    It’s possible, but you’ll need to diddle with the core. There may be a sneaky way to do it with a plugin, but I’m too lazy this morning :).

    Edit wp-admin/link-manager.php. Go to the line that says:

    if ('identity' == $class && in_array('me', $rels) ) echo ' checked="checked"';

    Add the following line right after it:

    if( 'nofollow' == $class && in_array('nofollow', $rels) ) echo ' checked="checked"';

    Find the following lines further down:

    <?php _e('sweetheart') ?></label>

    Now add the following lines immediately after:

    <th scope="row"> <?php _e('nofollow') ?> </th>
    <label for="nofollow">
    <input class="valinp" type="checkbox" name="nofollow" value="nofollow" id="nofollow" <?php xfn_check('nofollow','nofollow'); ?> />
    <?php _e('nofollow') ?></label>


    Coldforged: You rock!

    Mr_Cynical: Sorry I couldn’t be of more help… Hope that works fine for you. 🙂

    Thanks, Pplproof, I appreciate it. I also liked the Codforged typo… made a whole new take on my name :D.

    After I added the code Coldforge gave me (I had to do it to link-manager.php AND link-add.php but I had guessed that already) and it is now working fine. Thanks a lot Coldforge and Pplproof, I can now get a blogroll set up!

    Has anyone got any hacks to do the same for WP2?

    Surely someone must know?


    Well finally sorted this… for anyone with WP2.0

    You need to edit the file called edit-link-form.php

    And its pretty easy all i done was a “find and replace” for the term “sweetheart” and replace with “nofollow”

    I used sweetheart as its the one in the bottom corner so quicker to select… im soo lazy 😉

    Thanks, Alexasigno

    I also don’t want every link I make to donate PageRank to another site, especially if I’m linking to a site I disagree with.

    I’m using WordPress 2 and I read the post about editing “edit-link-form.php”, but how would I make the default behavior for a link equal rel=”nofollow”? Would I change the “none”? I suppose I could change one of the “none” links to “nofollow” (instead of “sweetheart” as shown above)?

    Does anyone know of a plugin that makes all links “nofollow” by default? There are plenty of such plugins that apply ONLY to Comments: I want something that effects ALL links. That way if I have a friend posting to a shared blog, I don’t need to worry about bleeding PageRank: I can pick and choose who to give PageRank mojo to on a case by case basis, with the default behavior or “nofollow”.

    I notice if I edit a Link in WordPress, “Geography” is “none” by default:

    <input class=”valinp” type=”radio” name=”geographical” value=”” id=”geographical” <?php xfn_check(‘geographical’, ”, ‘radio’); ?> />

    <?php _e(‘none’) ?></label>

    So, could I just change it to read as follows?

    <?php _e(‘nofollow’) ?></label>

    I simply replaced ‘none’ with ‘nofollow’. Is this the best way to achieve this? I guess I would want to change another option to be Follow, instead of NoFollow? As you can tell I am a PHP newbie: any advice would be much appreciated!

    Thanks everyone…

    PS – I just realized in my last message (above) that I made the assumption that changing the default Link properties to include the (rel=”nofollow”) attribute would apply to ALL links, even ones present in Posts, but perhaps that’s not true? What’s the scope of the “edit-link-form.php” file? Perhaps it only applies to Links created using the Links tab in WordPress?

    I read that WordPress “has XFN support built-in to its Link Manager function”, but does that apply to links present in Pages or Posts? I want to be able to make all links contain the “nofollow” attribute on all Pages and Posts by default, then I can manually chose when to direct PageRank outside of my site by NOT including “nofollow” where appropriate. It sounds like a Plugin is in order? Is there a different WordPress PHP file I would need to edit to accomplish this?


    I figured out how to make all links “nofollow”: I took the code from ther Link Indication plugin ( and added to it so that all external links are set to rel=”nofollow” by default.

    I then used the FireFix “SearchStatus” plugin to “Highlight NoFollow Links and verified that my site at now has all external links set as nofollow. Nice…


    Thanks getzinger! I looked around online for quite a while trying to find a solution until I found yours.

    Here is what I did:

    1) Installed the Link Indication plugin. See Make sure to follow their instructions as it is a bit more complicated than just adding it to the plugins directory and activating from the Plugins manager. However you do NOT have to add anything to style.css to get the nofollow stuff to work.

    2) edit link-indication.php as follows:
    The line numbers below assume that the following line is line #182 as it is in my version:
    if (substr($linktype, 0, 8) == ‘external’) {

    After line 187 add the following:
    $targetblank = ‘rel=”nofollow”‘;

    Note that this will overwrite the target=”_blank” so if you really want that option add the line above after line 182 and change line 186 to
    $targetblank = ‘target=”_blank”” rel=”nofollow”‘;

    You can see it in action at .

Viewing 15 replies - 1 through 15 (of 16 total)
  • The topic ‘Nofollow for links’ is closed to new replies.