New SEO Plugin for WordPress: Internal Link Building

Note: If you download this, please link to this page from your blog or Tweet it. Also, you’ll probably like a free chapter from my advanced SEO book.

Update 1 : The plugin has been downloaded 22,000 + times! And many webmasters use it on multiple sites, so it’s probably being used on closer to 25-30,000 sites!

22,000 downloads of Internal Link Building

(Click to enlarge)

Update 2 : To download the plugin, you need to add my RSS feed to your reader. The download link is now in my RSS feed’s footer . That is to say you can find a link to download below any post, but only if you read via RSS.

Some folks have complained about the need to subscribe. And I understand where you’re coming from – it feels a little pushy and you probably already have a bunch of subscriptions.

But there are good reasons to subscribe to my rss feed (besides it being free):

1) To hear about updates to the plugin or new plugins and SEO tools I release.

2) To learn new SEO techniques. If you like my plugin, aren’t my other SEO ideas worth your attention?

Key info on Internal Link Building:

Internal Link Building gives you an admin panel to assign keywords to given destination URLs. The point being that your website will link within itself a la Wikipedia – every time a keyword occurs, it links to the page you defined.

Internal Link Building plugin admin panel

So: You can rank like Wikipedia, without being Wikipedia. Ok, that’s exaggeration, but the tool improves your internal navigation / link structure a lot.

I got the idea from Jim Boykin’s Internet Marketing Ninjas, which includes a similar tool.

Also note: Marios Alexandrou of All Thing SEM updated the plugin for WP 2.9+ and currently handles tech support.

Functionality Specifics:

To use the plugin, the settings page is under the Posts menu -> Keywords in 2.7+. It’s under Manage -> Keywords, in older versions of WP (up to 2.5 or 2.6) .

Edit Keywords From The Posts Menu

1. This plugin allows you to mass-upload keywords. So you just need to prepare a CSV file in Excel and then copy-paste it into the mass-upload box in your admin panel and then click upload! This is great for larger sites targeting multiple keywords that want to speed things up.

2. It’s up to you whether you make cAsE ReLeVaNT to your links. Check the “Exact Match” checkbox for it to only match when the case is the same as you typed the word into the admin panel. Leave it unchecked to have all cases link to your selected page.

3. Post-level overrides of globally-assigned keywords. Maki, of Dosh Dosh Internet Marketing, pointed out that similar plugins exist. True, but they don’t allow post-level overriding of a given keyword. This plugin does. So if I can link to my homepage every time the words SEO or internet marketing appear, but then link to, Tad Chef’s SEO 2.0 blog with the word SEO, or Joy’s internet marketing.

Internal Link Building plugin post-level override

4. Link to sources or affiliate links whom you reference a lot. That, for me, would be useful so I could cite Maki, SEOmoz, XMCP, and others more easily.

5. Build internal links automatically to pages you regularly reference. For instance, I can just say add my rss feed to your reader and the phrase gets linked on its own.

6. Make a link nofollow. For example, if you link to particular Wikipedia pages a lot then set the nofollow to be automatic.

Click to expand:

Add lots of keywords, have them link once or more times, use exact match if wanted, nofollow some links etc.

Add multiple keywords to one page, or one keyword to multiple pages, have it nofollow, have it link numerous instances on the page, use exact matching or not etc.

7. Link multiple keywords to a single URL. Target all a page’s keywords at once! Just put a space, a  pipe (eg |) and a space between the multiple keywords. E.g. affiliate | affiliate marketing. More efficiency! More time savings!

8. Link a single keyword to multiple URLs. I’m not quite sure why you’d want to do this, but some people asked for it, so there you go!

9. Pick the number of times a keyword will link to a particular URL. If you only want the words social media to link to your social media category once, you can do that. Notice that social gets linked next, since I also have that keyword assigned to link to the same page.


1. Will this plugin overwrite links in older posts using keywords I set to link to particular pages?

- Where a post already links out using given keywords, the plugin will NOT overwrite it.

2. Can we make this link out in a post only a set number of times?

- Yes, this is possible with the new version of the plugin.

3. Can we make a set of URLs to link to, and have it link at random?

- Yes, this is possible. The plugin has been updated, so if you downloaded it on the first or second day it was live, you might want to get the new one. You just need to separate the URLs with | symbols in the URL field.

4. How is this plugin different from other similar plugins?

- They do not have the post-level override functionality. They also don’t have mass upload through a CSV copy-paste functionality. A third difference is that multiple keywords can link to a given URL, or one keyword can link to multiple URLs (see #6 and #7 for more).

6. Where is the post-level override?

- It’s in a box below the main content area in /wp-admin/post.php (or post-new.php). I.e. When you write/edit individual posts, scroll down and you’ll see it.

7. How do I link multiple keywords to URL, or one keyword to multiple URLs?

- Type the different keywords or URLs out with a pipe symbol ( | ) in between them. It’s found just above the enter key on most qwerty keyboards; you press shift+| to make it appear (without shift you’ll get a backslash: \ ) .

8. How do I install this?

- Download the file. Upload it to the wp-content/plugins/ . Login to WordPress. Activate it within the plugins admin page.

Like this plugin idea? Be the first to hear about future releases: Get my RSS feed.

Plugin Bug Fixes

1) Apostrophes within keywords can now be used. So if your friend O’harra is always getting links from you, just set up O’harra and don’t worry about it.

2) URLs that are just being shown, e.g. are no longer having keywords within them linking out. E.g. services won’t link to a page you’ve set.

3) Posts and pages that are set as link-love destinations won’t link to themselves. Yay! Better aesthetics :).

4) Blockquotes and lists can now feature links within them. So go ahead and cite this:

Internal Link Building is awesome!

5) Simple Tags can now work with ILB, with a little ‘child’s play’ hacking on your part, per my awesome developer Aaron.

7) Image tags with keywords in them (e.g. in the alt or title) are no longer breaking.

8 ) Jeff and John of SEO Design Solutions got the plugin up to date for WP 2.7 and removed the bug on the new post / post editing admin panels.

9) Chris Balicki of Web Systems helped out earlier as did Matt Longley of Site Source 101.

Bonus Advantage of Internal Link Building

This is something I’ve noticed since installing the plugin: My average pageviews seen per visitor has gone up from 1.4-1.5 to 1.9-2.0. Woohoo! Go extra frequency/repetition and brand recall!

Like this plugin idea? Be the first to hear about future releases: Get my RSS feed.

Tags: ,


  1. Hi there, My site uses pages rather than posts, can the script be modified for pages too? Regards Rob

    Comment by Rob - June 2, 2009 @ 6:26am
  2. Hi Gabriel, I'm excited to use your WP plugin. I just activated it, however can't find the global admin panel. In your posts, I saw you mention it’s under Manage -> Keywords, but I checked EVERYWHERE in my WP admin section & can't find a manage -> Keywords combination. Could upgrading to WP 2.8 be the issue or is it right in front of my face & I don't see it? Thanks!

    Comment by Michael Hughes - June 18, 2009 @ 9:13pm
  3. FOUND IT!! Thanks for the quick reply!

    Comment by Michael Hughes - June 19, 2009 @ 1:08am
  4. pretty nice plugins.. will blog this at [add a link if you do blog it, thanks. - Gab].

    Comment by sudhir - June 19, 2009 @ 2:55am
  5. Great plugin. In the spirit of improving it, I'll just mention I notice that the interface uses "CVS" everywhere "CSV" should be used.

    Comment by Derek - June 19, 2009 @ 5:31pm
  6. I don't like this "subscribe to me for plugin" thing - you didn't earn my readership - and forced me a few more steps for a good plugin. Maybe I should just republish it on rapidshare to make it easier on people. here is the link: (until you'll take it off. but in the meantime - friend - understand that this was a bad move...)

    Comment by brrr - June 30, 2009 @ 2:38pm
  7. This plugin is really really brilliant, thank you for writing it. Have it running on 30 blogs with autotagging of 1'000s of keywords and it runs superbly.

    Comment by Sam - July 1, 2009 @ 9:59am
  8. I am getting the following error... Fatal error: Cannot redeclare internal_link_building_admin() (previously declared in /home6/greenla8/public_html/wp-content/plugins/internal_link_building.php:469) in /home6/greenla8/public_html/wp-content/plugins/internal_link_building.php on line 595 Pls advice.....

    Comment by Naturalnightdew - July 5, 2009 @ 11:39pm
  9. I need to install this plugin on around 500 blogs and want all the blogs to all read from the same keyword/url list. Can you point me in the right direction to sort this?

    Comment by Sam - July 8, 2009 @ 10:19am
  10. What is the RAM and CPU utilization like on this plug-in, after having some major trouble with my SEO plug-ins for wordpress consuming too much RAM and causing issues with my Web Hosting provider, this one seems like it would use alot of memory overhead to match and link build all your sites keywords to internal links.

    Comment by Dragon Blogger - July 20, 2009 @ 12:44am
  11. OH MY GOD. THiS IS GODSEND. Thank you!

    Comment by eek - July 26, 2009 @ 5:21pm
  12. Hey Gab, I activated the plugin but I am not seeing in the settings panel. Do I need to look elsewhere to find the options? I am using the most current version of Wordpress. Thanks.

    Comment by Dpnpvan - August 13, 2009 @ 4:16pm
  13. Hi Gabriel I am using version 1.32 of this plugin. Currently, I am using WordPress 2.8.4 and using the K2 1.0-RC8 theme. The linking works fine except that it breaks the image tags with keywords in them. I am wondering if you know why this happens for the latest version of WordPress since you mentioned that this error should have been fixed. By the way, version 1.32 of this plugin is the latest, right? I hope to hear from you soon. Regards, Rezdwan Hamid

    Comment by Rezdwan Hamid - September 1, 2009 @ 12:45am
  14. I've just subscribed your rss in mi live feed in firefox, but can't find download link of plugin...please help, thank you

    Comment by ezio - September 7, 2009 @ 9:16am
  15. Rather than setting a keyword to a link in every post, can we have it set a particular keyword to a particular link, sitewide, at one time itself? That would be useful.

    Comment by happyandyk - September 11, 2009 @ 11:06pm
  16. ^ I would like to set the words "Windows 7" to link with once itself, rather than doing so in every post. So is there any such global setting?

    Comment by happyandyk - September 13, 2009 @ 11:43pm
  17. How does this work?or how do i know if this is working on the site with a link builder?

    Comment by jerome - September 25, 2009 @ 1:53am
  18. Great plug-in! Will install this and remove my previous one. Only gripe with that was that it also linked keywords in which caused some pages to break!

    Comment by Mr UK - October 8, 2009 @ 5:14pm
  19. amazing, worked like a charm! had to search it for it alot in your feed but was worth it in the end :) thanks and keep up the good work running

    Comment by saad - October 9, 2009 @ 4:58am
  20. Guys - we've modified this plugin again to ensure it doesn't try to add links to keywords which appear in Wordpress captions (which break the captions as a result). Is there somewhere I can upload the modified plugin? Zac

    Comment by Zac - October 13, 2009 @ 10:38pm
  21. This is actually very interesting. I have installed the plugin and I am looking forward to see if it could actually generate the desired results.

    Comment by Stempel - October 17, 2009 @ 2:35am
  22. Is it possible to have this plugin also insert Links on the user generated Comments? sometimes the post content doesnt have the Targeted keyword but Users coments Do.. I have a blog with a lot of users comments and would love for this Functionality to be added.. Please advice.. Thnx.

    Comment by GC - October 20, 2009 @ 11:47pm
  23. I am looking forward for your feeds to get it delivered in my mail. It seems a nice plugin to build your links.

    Comment by Gaurav - November 2, 2009 @ 5:46am
  24. Many thank for the plugin! I had some troubles with similar plugins on WP 2.8.5, but yours works perfectly. Keep up your work!

    Comment by sairin - November 6, 2009 @ 4:15pm
  25. Excellent plugin - working great with affiliates. As mentioned in other comments I would love to see the title attribute be integrated into the plugin.

    Comment by Rasmus - November 6, 2009 @ 5:13pm
  26. Hi Gab I am no techie at all. I was looking at internal linking my blog which has lots of posts(over600). I was looking at RB-Internal Linking, and I must admit I found it slightly complicated and no real instructions on how to set it up correctly(Its in my plugin category but doing nothing. Yours seems workable, Although i would like to ask if you have a video to show the whole process for us non-techie bloggers:) It will be much apprciated.

    Comment by charli - November 8, 2009 @ 6:37am
  27. Much better than the "Internal link plugin". Muchas gracias, Goldenberg! Keep it up.

    Comment by Lasse - November 10, 2009 @ 5:17pm
  28. I've been using this plugin for a while and it has worked wonderfully! However today I had my first need to use the exact match option to keep a capitalized version of a keyword from being linked. Even when the checkbox is selected, the keyword is linked. Any ideas what I might be doing wrong so that keyword will be linked, but Keyword won't be?

    Comment by Marios Alexandrou - November 13, 2009 @ 11:07pm
  29. Hey! Great job, it's the only one that worked for me in hebrew. It would be nice to have an option that removes a link from a specific post after setting a global rule. I defined an inner link to a post, and I don't want to have self-links on that post. Thank you.

    Comment by Yair - November 27, 2009 @ 3:30am
  30. Thank you for this wonderful plugin! It's just what I was looking for. One thing only: how to prevent the plugin from referring to the link occurring on the same page?

    Comment by Dilyara - January 5, 2010 @ 2:30pm
  31. Gab, I've got some feature ideas I want to add to this plugin. I don't have the time to do them myself so I was wondering if you've got a plugin developer you could recommend that won't break the bank? Thanks!

    Comment by Marios Alexandrou - January 11, 2010 @ 6:34pm
  32. I will download your plugin right now.

    Comment by seo-dk - January 13, 2010 @ 7:54pm
  33. This is the coolest plugin ever!

    Comment by Jonathan Ingram - January 14, 2010 @ 9:48pm
  34. gr8 plugin. I've one query suppose I set keyword wordpress. And my post contains div contents here . Then it mess up output since it convert class name to link.I think it should avoid existing tags.

    Comment by Kishor - January 15, 2010 @ 6:20am
  35. Just ignore my first comment. gr8 plugin. I’ve one query suppose I set keyword to wordpress. And my post contains some HTML data having wordpress as id or class name for any HTML tag then that time plugin changes this with link.I think it should avoid existing HTML tags.

    Comment by Kishor - January 15, 2010 @ 7:49am
  36. Excellent Plugin. Thank you Gabriel

    Comment by Wilfredo - January 29, 2010 @ 3:24am
  37. thanks for plugin I will try it now..

    Comment by joseph - January 31, 2010 @ 5:25pm
  38. Thanks again for this plugin. As well as helping with page views, internal linking is helpful for seo. Cheers!

    Comment by jeromys - January 31, 2010 @ 9:02pm
  39. Hey Gab, firstly a thousand thanks for creating this plugin, I've been using it for a while now on numerous clients and its one of the best WP SEO plugins around in terms of what it can achieve! One gripe though which I would absolutely love if you could fix: when you enter variations of a keyword can you make "times" refer to overall times any of the variations are used? It can become messy if you have multiple variations of the term within the same blog post...

    Comment by jaamit - February 2, 2010 @ 1:33pm
  40. I already have a link to post plugin. Will it restructure my previous internal linking? And how well will it benefit me. newbie :)

    Comment by charli - February 23, 2010 @ 1:40pm
  41. I can't even describe what a great plugin this is. I was looking for something similar to this one when I came across a link to yours. I'm very glad I did because your plugin has already solved issues I wouldn't have even thought would of came up and I love how it won't replace links that are already there. This will truly be an amazing plugin to easily improve a sites internal linking structure. Thanks a ton!

    Comment by Austin - March 5, 2010 @ 2:52pm
  42. Hi I'm finding that this plugin messes with other plugins and completely messes things up. the pluginn in question that it messes up is the "who sees ads" plugin

    Comment by Bob - March 15, 2010 @ 2:09am
  43. aille aille aille this is the 5th plugin I am trying to match URL's with keywords - only one works - and I was pretty sure this one would work too...but no ! nothing is hyperlinked ! I tried with different themes, it just doesnt work. Does this plugin need to be upgraded ?

    Comment by Marie - March 18, 2010 @ 3:22pm
  44. This is awesome!

    Comment by Wynne - March 19, 2010 @ 9:49pm
  45. Hi, Does this plugin limit the number of links it places on a post for each keyword to 1. E.g. If SEO appears 15 times throughout a post, does it just link from the first SEO word citation or from all 15? Matt Cutts said something about over linking one page to another can hurt your rankings. Or that maybe ranking from one page to another with different anchor text. Ahh not sure now. But yeah, does it limit the amount of links it inserts into a post?

    Comment by Aaron - April 5, 2010 @ 1:08pm
  46. @Aaron - I can answer that for you - it can limit the number of times a particular phrase if you use the "times" setting - try for yourself and you'll see. However unfortunately if you set multiple variations of the same phrase to link to a single page, it will count all of these separately. So if you had "blue widget", "blue widgets", "bluewidgets" and "blue" all set to the same URL you could end up with multiple links to that page if you used them all in one post. This can be annoying and Gab if you're listening and you have any time I'd love to be able to set "once" across all of the variations...

    Comment by jaamit - April 5, 2010 @ 7:10pm
  47. when I activated the plugin I can not find the setting even on the post section.Does anyone know how to fix? thanks

    Comment by tony - April 9, 2010 @ 12:35am
  48. Can anyone submit the code to add target="_blank" to the link generated ~ I DO want to link to external websites, but I don't want to loose my customer :-) While posting how do I check I have the latest version?

    Comment by Paul - May 1, 2010 @ 6:10pm