Broken Link Checker for WordPress

Notice: This plugin has been transferred to ManageWP. I am no longer working on it. Please direct any feedback to the new developer. See the plugin homepage for more information.

Sometimes, links get broken. A page is deleted, a subdirectory forgotten, a site moved to a different domain. Most likely many of your blog posts contain links. It is almost inevitable that over time some of them will lead to a “404 Not Found” error page. Obviously you don’t want your readers to be annoyed by clicking a link that leads nowhere. You can check the links yourself but that might be quite a task if you have a lot of posts. You could use your webserver’s stats but that only works for local links.

So I’ve made a plugin for WordPress that will check your posts (and pages), looking for broken links, and let you know if any are found.

Features

  • Detects links that don’t work, missing images, deleted YouTube videos and other problems.
  • Periodically checks links in posts, pages, comments, custom fields and the blogroll.
  • New and modified entries are checked ASAP.
  • Notifies you on the Dashboard if any problems are found.
  • Lets you edit all instances of a specific link at once.
  • Gives you a list of all links ever posted on your site, with the ability to search and filter it.
  • Lets you apply custom CSS styles to broken and removed links.
  • Highly configurable.

The broken links show up in the Tools -> Broken Links tab along. If any invalid URLs are found a notification will also show up on the Dashboard widget. To save screen real-estate, the widget can be configured to stay closed most of the time and automatically expand when broken links are detected.

Download

broken-link-checker.zip (412 KB)

    Requirements

    • WordPress 3.0 or later
    • MySQL 4.1 or later

    The current version of this plugin is only compatible with WordPress 3.0 and up. If you have an older version of WP, try one of the older releases. Specifically, version 0.8.1 is the last one that’s still compatible with the WP 2.8 branch, and version 0.4.14 is the last one compatible with WP 2.1 – 2.6.x.

    Installation

    Install “Broken Link Checker” just like any other WordPress plugin :

    1. Download the .zip file (see below).
    2. Unzip.
    3. Upload the broken-link-checker folder to you /wp-content/plugins directory.
    4. Activate the plugin in the Plugins tab.
    Related posts :

    2,584 Responses to “Broken Link Checker for WordPress”

    1. Sheila says:

      Thank you for all of your help and tips. I hope my feedback is helpful.

      The Broken Link Checker seems to be fine now. 🙂

    2. Sepi says:

      Hi There!

      I use this plugin and am very satisfied. I think my site is being hacked, and I think your plugin is helping me to find this. It’s currently indicating that I have over 150 links in the work queue, but I do not see any pending posts in my site. Where does the tool check through to find links in work queue?

      Scarry to be hacked… 🙁

      Sepi

    3. White Shadow says:

      The “work queue” here refers to the plugin’s own internal queue of links that need to be checked (or re-checked) at this time; it has nothing to do with pending posts. And it’s certainly not an indication that your site is being hacked 🙂

    4. […] Broken Link Checker 0.5.9 […]

    5. […] Indispensable, cuanto antes lo instales mejor. Este plugin revisa que todos los links en tus posts funcionen correctamente. Yo lo puse luego de años de tener el blog y encontré muchos links rotos. Lamento no haberlo tenido desde el principio. Link […]

    6. I enjoy the links checker, however, I’ve noticed a systematic error that the plugin is making. I have links to the site http://www.tigersandstrawberries.com, and all the links are working (hand-checked). However, the plugin identifies them as broken and draws a line through them.

      Here’s the actual post location: http://www.chileunderground.com/2008/08/14/august-f-bom-tigers-and-strawberries/

      The broken-link details include notification of error 412, precondition not met. I’m now looking through all the other links the plugin found to be “broken” looking for more instances. Is there a workaround to keep these type of “broken links” from being mis-identified?

      The Chile Doctor

    7. White Shadow says:

      At first glance the 412 response code seems like a fairly sure indication that the site in question is running some kind of anti-bot script that’s blocking the plugin. I’ll run some tests later to make sure, but it’s probably the most likely answer.

      As far as I know, there isn’t much I can do to prevent the plugin from being detected as a web crawler/bot/an automated thingy – in a sense, it actually is those things.

    8. Jared says:

      Great Plugin – love it, I was shamed by the amount of broken links by blog had.

    9. Sepi says:

      I just wanted to thank you for your quick response the other day. I asked about the work queue (mistakenly thought I was being hacked). Thank you for responding right away!

    10. […] but dead links over which I have no control. If you are running WordPress, you’re in luck: the Broken Link Checker plug in makes fixing these errors easy. You can format them with strikethrough automatically, or […]

    11. […] Xenu, and I blogged about it here.  Not that there is anything wrong with Xenu, I just noticed Link Checker* and thought I’d give it a […]

    12. Shane says:

      Thanks a lot for this plugin! Installing it right away!

    13. gaianorm says:

      HI there,
      I have just installed last relase of your plugin (0.5.10), but unfortunatly give me some error like this follow, on the page where linkchecker has find broken url…
      Warning: html_entity_decode() expects parameter 2 to be long, string given in /home/luxemoz1/public_html/wp-content/plugins/broken-link-checker/highlighter-class.php on line 62
      can you chek please
      thanks
      G.

    14. White Shadow says:

      Oops, that was a really silly bug/typo. Should be fixed now (might take a few minutes/hours before the update shows up on wordpress.org).

    15. gaianorm says:

      Hey…really fast support! Thanks 😀

    16. Diego says:

      I have just installed the last version (0.5.11). But I had to deactivate the plugin because of this warning:

      Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (…) in (…)/wp-content/plugins/broken-link-checker/core.php on line 2055

      (…) I deleted the paths

      Version 0.5.9 works fine for my blog. Could you check this please?

    17. rpali says:

      Diego, you’re not alone. I started getting that error with 0.5.10 and when 0.5.11 appeared I was pleased because I thought it would contain a fix. Unfortunately the problem persists. I’ve got it disabled now as well.

    Leave a Reply