WP External Links Plugin – SEO

Open external links in a new tab / window, add “nofollow”, “noopener” and font icons, SEO and more. Also for internal links.

Configure settings for all internal and external links on your site.

=== NEW: Version 2 ===
WPEL plugin was completely rebuilt and has lots of new features, like “noopener”, font icons, internal links options and WPMU settings.


Plugin Features

  • Open links in new window or tab
  • Add “follow” or “nofollow”
  • Add “noopener” and “noreferrer” (for security)
  • Add link icons (font icons: font awesome, dashicons)
  • Set other attributes like title and CSS classes
  • Scan posts, comments, widgets or the whole page
  • Better SEO

And more…

  • Network Settings (WPMU support)
  • Use template tag to apply plugin settings on specific contents
  • Set data-attribute to change how individual links will be treated
  • Use action and filters to implement your specific needs

Easy to use

After activating you can set all options for external and internal links on the plugins admin page.

On the fly

The plugin filters the output and changes the links on the fly. The real contents (posts, pages, widget etcetera) will not be changed in the database. When deactivating the plugin, all contents will be the same as it was before.

Requirements

  • PHP version 5.3 or up
  • WordPress version 4.2 or up

If you want support for older versions of PHP or WordPress then download and install version 1.81 of this plugin.



84 Comments

  • Arun 28 February 2011 Reply

    This is a wonderful plugin. This will save me a lot of time from manually setting external links to open in a new window. Good work.

    • Victor 28 February 2011 Reply

      Thanks Arun.

  • mraero 23 March 2011 Reply

    Hey,

    i’ve found a slightly bug in your plugin that applies to links as arguments in javascripts.

    Is there a special bug reporting site or should i just post the description here?

    • Victor 23 March 2011 Reply

      @mraero You can send it to me by using the contactform.

  • John Orr 5 April 2011 Reply

    Thanks for the excellent plug-in. What a great time saver. Is it possible to add an option to exempt specific links from having the attributes applied? Thanks again.

    • Victor 6 April 2011 Reply

      Thanks John.
      It’s possible to skip links that contain a certain class (like “no-ext”). If that’s what you mean.

  • Scott 20 April 2011 Reply

    I want a link I created to stay on my website framed in somehow and not open a new window. Does this plugin or another do this.

  • John Myrstad 5 June 2011 Reply

    Hi. I used your plugin on our site for helicopter film http://www.magicair.no ( norwegian ) but disabled the image option as I found out the plugin generates one image pr link, which makes download slower. Your plugin should use the same image many times rather than generating new copies/urls.

  • John Myrstad 6 June 2011 Reply

    Hi. Feedback nr 2. The plugin makes links in jquery sliders open in new windows on IE and Chrome on Windows. Doesnt happen on Mac versions.

    • Victor 13 June 2011 Reply

      @Scott You could use this plugin to do the task.

      @John The images are loaded with css, which normally downloads the image just one time. About the second point, it would be nice to exclude certain links form being filtered. I will put it on the TODO list.

  • Shamis 13 June 2011 Reply

    I upgraded to v0.34 today and it gives the below error on top of all the admin and blog pages:

    Warning: key_exists() [function.key-exists]: The second argument should be either an array or an object in …\wp-content\plugins\wp-external-links\wp-external-links.php on line 561

    How can I fix it?

    Thanks in advance!

    • Victor 14 June 2011 Reply

      @Shamis Have you already updated to v0.35? It should be solved now.

      Technical explanation….The problem occurs when no settings are found for another plugin (Widget Logic) while checking if the widget_content filter is activated. On my local installation I have tested also when Widget Logic was inactive. Because the old settings were still available in the database, I didn’t get the error.

  • Friderick 19 June 2011 Reply

    Hi,
    This Plug-in is wonderful but I cannot use it together with Socialize plug-in… It destroys Twitter and Google Buzz button. I don’t know why so if anyone have any clue please let me know :)… At least for twitter (vertical button is not working, it become horizontal)

    Thank you.

  • Simco 25 June 2011 Reply

    Hi, i’m using the plugin and appreciate how well constructed it is. I need to know if it’s possible to add one more element. A mouseover/hover effect that would display a text message. We’d like it to have a warning that “Clicking on this link will leave this site” in a tooltip type effect for all the external links that the plugin already identifies. What would it take to add this functionality?

  • Simco 27 June 2011 Reply

    Victor, I sent a contact form email to you regarding customizing this plugin. I’d like to add the ability to display a custom message once the plugin is activated for the external links only. Please advise if this is possible. Thank you!

    • Victor 27 June 2011 Reply

      Hello Simco, I will implement this feature in the next release. For now you can use a workaround by adding this javascript code (works only with jQuery):

      if (typeof jQuery !== 'undefined' && jQuery) {
          jQuery(function ($) {
              $('a[rel*="external"]').attr('title', '...');
          });
      }

  • nane 29 June 2011 Reply

    i like it…. so cool…

  • UfukArt 3 August 2011 Reply

    Character encoding error on latest version

  • filipe 4 August 2011 Reply

    Great plugin, thanks for good work, but the latest version broke all my site, this breaking the encoding of characters (accented letters appear broken), I’m not sure but I think also caught the functioning of some plugins to integrate with Facebook, example: Simple Facebook Comments For WordPress

    it could not before, I got the update problem and even downgrade it continues to break the site …

    any solution?

    ————————————————–
    update:
    i downgrade to version 0.35 and thats works fine, thanks!

  • Roger 22 August 2011 Reply

    I could not use the class=”no-ext”, the plugin does not interpret. Could you give an example of use with a link.

  • Maddew 1 September 2011 Reply

    How do I change what the tool-tip message says?

    • Victor 2 September 2011 Reply

      @Roger: There is no “no-ext??? class (yet), but it’s on the TODO list.

      @Maddew: See option “Set title-attribute”

  • lee 7 September 2011 Reply

    Hi, I have a subdomain which i stored all images and I would like to dofollow it from my domain. How can I dofollow subdomain’s images using this plugin because there’s a lot images. Thank you.

  • Alexej 22 November 2011 Reply

    Hi, I install v1.10 of this plugin and it gives the below error on top of the admin page:
    Warning: method_exists() expects parameter 2 to be string, array given in /…/wp-content/plugins/wp-external-links/includes/wp-plugin-dev-classes/class-wp-meta-box-page.php on line 410
    My website runs with PHP 5.3.5.

  • Jon Scaife 28 November 2011 Reply

    I’m having the same issue as Alexej above. There error is shown 4 times. The plugin does seem to work though. Please can you advise. Thanks!

  • Craig Fox 28 November 2011 Reply

    Is there anyway to disable the plugin from filtering certain links?

    I have several links that load and iframe in a fancy-box. Something about the interaction with the two plugins stop the links from loading.

    The no link icon class does not seem to have any affect

    • Victor 11 January 2012 Reply

      I will remove the warnings/errors in the next release, which will be hopefully within a week.

      @lee and @craig: I’ve had a lot of requests about excluding certain links, but yet I haven’t found a proper technical solution for this.

  • K 19 March 2012 Reply

    I have installed the External Links plugin and now I do not know how to select a text from a page that needs to be an external plugin!!!!

    There is not a conection between the content on the page and the plugin!

    PLEASE HELP AND ADVISE ME

    • Victor 20 March 2012 Reply

      Just add your links like you normally would. The links, that are external, will be detected automatically by the plugin.

  • Rob 24 April 2012 Reply

    hi,
    installed pluggin. enabled and it doesnt seem to work.
    It shows the external icon next to some links but not all.

    see it here
    http://www.saisonniers.co.uk/wp/?page_id=28

    any simple setup things to miss? (just installed via add new pluggin)

  • Rob 25 April 2012 Reply

    actually its being strange. on
    http://www.saisonniers.co.uk/wp/?page_id=28
    the first link (which is an image) has self target. other links to pages on that page are blank.

    on
    http://www.saisonniers.co.uk/wp/?page_id=24
    I have a test link to google, that doesnt show the icon and has no target
    assuming this feedback helps. thanks

  • Martin Cooney 30 April 2012 Reply

    I was wondering whether there is a way to also include IntenseDebate links with nofollow as well?

    Apparently, they do use classes of:

    .idc-comments
    .idc-foot

    Is this something to do with the latest version ‘Add Class’ or am I misunderstanding the plugin’s use of classes?

  • Adri Huizing 7 May 2012 Reply

    Perfect Plugin!

    Just what I was looking for!
    Thanks you.

  • Pere Peroni 9 October 2012 Reply

    Hi, installed pluggin. Enabled and it doesnt seem to work.
    It shows the external icon next to some links but not all.

    See it here
    http://www.carocenter.com/c/news/

    Just installed via add new pluggin. Any simple setup things to miss?

  • sercan 4 December 2012 Reply

    your plugin not works on 3.4.2
    please check

  • Nick 26 April 2013 Reply

    Is there any way to stop google ad from opening in an external page as this is a breach of their policy.

    Thanks

  • Kinosang 28 June 2013 Reply

    Could you add a function that allow us choose a rel tag (like friend) of links that the plugin don’t apply on?

  • Himanshu Negi 27 August 2013 Reply

    Hello There,

    I was wondering will it convert old external links too? or will just convert new links?

  • ?????? 11 September 2013 Reply

    thank you very much.perfect

  • Christopher Simmons 10 November 2013 Reply

    Hi, awesome plugin. Quick request: any chance to completely disable loading of the external link “stylesheet” in head of pages for better SEO/pagespeed when not being used ? We’re not using icons/images, and a style sheet isn’t needed for the simple target_blank …. Thanks!!

  • Peter 25 November 2013 Reply

    Great plugin. Are you not updating it anymore?

    • Victor 17 December 2013 Reply

      Thank all for your reactions and appreciation. From now on I will try to respond sooner. 🙂

      @Kinosang: Not yet, because the filter “wpel_external_link” only applies on included links. Maybe it would be more logical to also apply it to excluded external links. I will think about it.

      @Himanshu: Plugin will convert all external links.

      @Christopher: Good idea. I’ll put it on the list.

      @Peter: Updates will be comming. First a minor update hopefully within a month.

  • Naaz 24 December 2013 Reply

    Hello, Today i installed the plugin and save my lot of work. In my wordpress blog i have some sponsor post and those links should be dofollow. Could you please tell him how to mark them dofollow.

    Regars,
    Naaz

    • Victor 24 December 2013 Reply

      Hello Naaz,
      I don’t know how much control you have on the changing the html of the sponor links. There are 2 options:
      (1) Add rel="follow" to the sponsor links, the plugin will keep them follow
      (2) Use the option “Ignore links (URL) containing” and set domains of the sponsor links, f.e. ad.doubleclick.net

  • Vinay 29 January 2014 Reply

    I have installed the plugin on my site and activated it, unfortunately do not know, whether the plugin will automatically add “no follow” on all external links viz., banners and links?

    On my part I want this plugin automatically attribute “no follow” link on every external link.

    Thanks!

  • BurlyQLady 31 January 2014 Reply

    Hi, this doesn’t actually work for me. I’m using wordpress 3.8.1 and on all the sites I’m using it on (around 10) it doesn’t work.

  • Craig London 31 January 2014 Reply

    Could you add the option of

    OR substr( $href, 0, 2 ) == ‘//’

    to the

    private function is_external( $href, $rel )

    In your next release?

  • Fudianto 2 February 2014 Reply

    Works like a charm. thank you for great plugin

    • Victor 2 February 2014 Reply

      @Vinay: It works when the option “Add nofolow” is enabled (under “SEO settings”).

      @BurlyQLady: What exactly does not work? Do you have the right options enabeld? Do you use a cache plugin?

      @Craig: Thanks for your suggestion. I will add it.

      @Fudianto: Thanks!

  • Sandeep 8 February 2014 Reply

    awesome plugin keep up the good work

  • MP 7 March 2014 Reply

    Beste maker,

    Bij het installeren van de plugin zijn mijn permalinks veranderd en werken ze niet meer (terug naar standard ?=p230).
    Ook na deinstallatie krijg ik de permalinks niet meer werkend (in htacces bestand staat alles goed).
    HELP! Kunnen jullie mij aangeven wat de software kennelijk overschrijft in het systeem?

    Hartelijk dank alvast!

    Gr, N

    • Victor 10 March 2014 Reply

      @Sandeep: Thanks!

      @N: De plugin overschrijft niets (dus ook niet de htaccess). Bij activatie worden de externe links in de output real-time aangepast. Na deactivatie werkt het gewoon weer zoals daarvoor.
      Heb je misschien andere plugins geactiveerd?

  • Aleksandra 25 March 2014 Reply

    HIi,
    Can this plug in correct the error message??
    Unnatural outbound linksMarch 20, 2014
    Google has detected a pattern of artificial or unnatural links on this site. Selling links or participating in link schemes in order to manipulate PageRank is a violation of Google’s Webmaster Guidelines.
    As a result of unnatural links from your site, Google has applied a manual spam action to onlinecultus.com/. There may be other actions on your site or parts of your site.
    Recommended action
    Identify paid or otherwise inorganic links by using rel=”nofollow” or redirecting to an intermediate page that is blocked by robots.txt.
    Remove any problematic links from your site.
    When you’re satisfied that your site follows Google’s Webmaster Guidelines, submit a reconsideration request.
    For an updated list of manual actions currently applied to your site, visit the Manual Actions page. If no manual actions are listed, there is no longer a need to file a reconsideration request.
    If we determine your site is no longer in violation of our guidelines, we’ll revoke the manual action.
    If you have any questions about how to resolve this issue, please visit the Webmaster Help Forum.

    • Victor 19 April 2014 Reply

      @Aleksandra: This plugin can automatically add rel=”nofollow” to your external links. That might be a solution to the problem.

  • Dieter 26 April 2014 Reply

    Hi,
    excellent plugin, thanks so much!
    Is there a possibility to embed or enable retina-compatible external link icons? When activating your plugin, external link icons look somewhat low-res (10x10px….) on my macbook retina.

    Thanks!

  • Massimo 12 May 2014 Reply

    Hi there! Thanks for your good work. Is there a way (a class) so that the link can be marked with the icon but as rel=”external dofollow”?

    Thank you

  • enj 3 June 2014 Reply

    Hi there,

    I installed the plugin, but it’s not working, nor showing up in my settings pages. any ideas?

    thanks!

    • Victor 4 June 2014 Reply

      @Massimo: You can add the icon class to a link (“ext-icon-1” to “ext-icon-20”).

      @Enj: You are sure the plugin is activated? It might not work on JavaScript generated content.

  • enj 4 June 2014 Reply

    sorry–I was being a dope. it was activated, but I was looking in my settings area under “WP”, and it was listed as “external links”. works just fine. thanks!

  • eddingpro 25 June 2014 Reply

    Hi,
    plugin used to work allright, but after update of either my theme or the plugin I discovered a minor misfunction in the backend after a while:
    Design->adjust normally displays a preview of what you changed on your theme. Not any more. I have to deactivate the plugin to see it again.
    Not so bad because I am not adjusting my theme permanently but maybe nice to know. I am using MH Magazine and developer blames the plugin for that.
    Otherwise I am still enjoying and recommending it.

    • Victor 17 July 2014 Reply

      @Eddingpro: I tested it on other themes and it the design->adjust works well. So for now I will keep it this way. Thanks for recommending.

  • Tobias Conrad 23 July 2014 Reply
  • Tobias Conrad 23 July 2014 Reply

    The post above is about loading speed.
    external links plugin slowing down site most!!!

  • Koen 23 July 2014 Reply

    Since version 1.54 I get a javascript error:

    Uncaught TypeError: undefined is not a function wp-external-links.js?ver=1.54:2
    (anonymous function) wp-external-links.js?ver=1.54:2

    Can you fix this?

  • Jay Graves 14 September 2014 Reply

    Don’t know if this is a major issue or not, but we are getting the following PHP notice on our site: http://screencast.com/t/mwZ1fDHH

    Thanks for the great plugin, it is a huge help!

    • Victor 19 September 2014 Reply

      @Tobian: Did some benchmarks and it was not that slow. I will put a code review on the list, to make some performance improvements.

      @Koen + @Jay: Fixed in v1.55!

  • Marie Denee 4 January 2015 Reply

    Trying to make external links work with woo commerce, do you know how to make this work?

    • Victor 12 February 2015 Reply

      @Marie: Can you explain a little bit more?

  • SchaOn 13 February 2015 Reply

    %title% does not seem to be working 🙁

    • Victor 13 February 2015 Reply

      @SchaOn: After the update? Do the original links have a title set? Please send me an email with more details.

  • Ingrid 19 April 2015 Reply

    Hi,
    Thank you for your wonderful plugin that I use on different websites. Unfortunately there is a issue on my site http://stricknadeln-ratgeber.de. Your plugin seems to overwrite CSS styles of the theme AffiliSEO. When your plugin is activated, the Amazon Button becomes white ore transparent instead of orange. When I deactivate the plugin, the button has its normal color. Could you fix this or tell my what to do? I would love to use the plugin.
    To show you, what I’m talking about, I activate the plugin now. You see on this site http://stricknadeln-ratgeber.de/produkt/knitpro/, that there is something wrong with the Amazon Button. Could you please help?

  • Ingrid 19 April 2015 Reply

    Stop, I just discovered the soloution. I exclude the word Amazon from the URLs. That’s it.

  • Ingrid 20 April 2015 Reply

    My “soloution” is not working. If I exclude the word Amazon, text links are no longer marked as external links as well.
    Do you have another soloution?

    • Victor 27 April 2015 Reply

      Hello Ingrid, to me the amazon buttons look allright (in all browsers). Please send me an email through the contactform to discuss this further.

  • Ingrid 9 May 2015 Reply

    Hello Victor, sorry for the late answer. I did not get an email notification. I added a !important to the buttons CSS. Everything is OK now. Thanks!

  • Alex 30 August 2015 Reply

    Hello,
    Thank you very much for your plugin! It works perfect! But I found one problem. It is next:
    I have a multi lingual web site. I’ve done translation of text to other languages and made an internal links (see this page in Chinese language as example – http://www.lifeisfreedom.net/zh/2015/08/visiting-ireland-with-a-visa-to-the-uk/). But! An internal links get next an incomprehensible form:
    http://www.lifeisfreedom.net/zh/2015/08/visiting-ireland-with-a-visa-to-the-uk/www.lifeisfreedom.net/zh/p/blog-page_6116.html/
    Please, tell me: why it is and how can I check it?
    Thank you in advance!

  • Alex 30 August 2015 Reply

    I found solution, but isn’t a good way 🙁
    I’ve deleted all link, saved a page and made them again. So, it works, but in case of a lot of links and languages it will be crazy difficult 🙁 I hope to get you professional help.
    Thank you!

  • Alex 30 August 2015 Reply

    Also, when I put a link with https (f.e. – https/www.dfa.ie/irish-embassy/russia/visas/visas-for-ireland/) – I’ve got redirect by click this link by this unknown website:
    http://www.homeimprovement.com/www.dfa.ie/irish-embassy/russia/visas/visas-for-ireland/
    What is it and how it is possible?
    P.S. In code just link: https/www.dfa.ie/irish-embassy/russia/visas/visas-for-ireland/, but automatically transformed to http://https/www.dfa.ie/irish-embassy/russia/visas/visas-for-ireland/ So, solution is do not put https, but is is exactly not good way 🙁

  • Alex 30 August 2015 Reply

    And last one details. It was copied text after page-translation in Google Translator and Bing Translator. By using copied text from notepad f.e. – no problem with links. So, it might be some reaction to cache or copied text?

  • Vincent Tobiaz 27 February 2016 Reply

    Hello,

    After disabling caching – it seems still not to work for me. We are using Visual Composer perhaps that is the reason? The site in question is http://www.saltchamberinc.com

    Let me know your thoughts when you get a chance, thank you!

  • Chris 17 April 2016 Reply
  • Markus 21 April 2016 Reply

    Hallo,

    wann kommt endlich ein Fix für die XSS-Sicherheitslücke der Version 1.80? Ansonsten werde ich das Plugin von allen Seiten entfernen (müssen).

    Danke & weiter so!
    grüße

  • Victor 22 May 2016 Reply

    @Chris + @Markus: The plugin was taken down because of a security vulnerability. Offcourse it has been fixed.

  • Phillip Benson 9 September 2016 Reply

    The plugin affects the display and partly disables Timely’s All In One Event Calendar since a recent update. They have been informed.

    Deactivating your plugin cures the problem.

Leave a Reply