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. […] Почему этот «вредитель» (речь идет о плагине  Broken Link Checker ) так действует — ума не приложу. Регулярно […]

    2. Maskil says:

      Hi,
      Please could you update the Changelog on the WordPress.org Plugin Page? It’s still sitting at Version 0.5.16.
      Thanks.

    3. White Shadow says:

      Done. I’m somewhat surprised someone actually reads those 🙂

    4. Joe Banks says:

      Re: Done. I’m somewhat surprised someone actually reads those 🙂

      Every time I consider an automatic WP plugin upgrade, I read the changelog FIRST in the pop-up window, as seen here:

      There is a new version of Broken Link Checker available. *View version 0.5.18 Details* or *upgrade automatically.*

      In WP on Plugins page, click on *View version 0.5.18 Details* (or any plugins upgrade) to see what we’re talking about.

    5. White Shadow says:

      I’m aware of that feature; my previous comment wasn’t entirely serious.

    6. Joe Banks says:

      Pardon my assumption. 🙂 I’m just surprised at the number of plug-in authors who don’t bother with the Changelog, or decide to *only* host the Changelog on their own site. Your efforts and hard work always appreciated and not taken lightly!

    7. daizan says:

      How can i get broken link checker to check my links in user comments?

    8. White Shadow says:

      It’s on my to-do list, but it will be a while before I actually get around to implementing it. The next thing I plan to work on is internationalization.

    9. At the suggestion of my ISP, I created a fresh WP install elsewhere on the same server, installed your plugin, then did a PHP-info. “The difference between the local and global settings for open_basedir meant that it was being set elsewhere a second time. I dug into the DirectAdmin administration menus and found an open_basedir setting that I had not noticed before (maybe a recent feature in DirectAdmin). I have switched this off. I think this will solve the problem.”

      And back on portigal.com, the debug settings for your pluin are
      PHP version 5.2.5
      MySQL version 5.0.41-community
      CURL version 7.19.5
      Snoopy Installed
      Safe mode Off
      open_basedir Off
      Lockfile /tmp/wp_blc_lock

      I think we’re good?! Thanks for all your help!

    10. White Shadow says:

      Note : A few comments on this post have been irretrievably lost due to a server crash.

    11. gaianorm says:

      Hi, service information…
      I noticed that the sentence “Found %d broken link” has a label (view broken link) that cannot be translated.
      Bye
      Giacomo

    12. Hi there! Thanks so much for creating this. It’s working great, with one exception: one particular server always returns a 400 error to Broken Link Checker, but I can load the pages in a standard web browser just fine.

      Here are the details for one of the broken links:

      . Post published on : October 27, 2009
      . Link last checked : October 30, 2009
      . HTTP code : 400
      . Response time : 2.306 seconds
      . Final URL : http://www.animenews.biz/viz-to-publish-rin-ne-volume-1-on-october-20th-2222/
      . Redirect count : 0
      . Instance count : 1
      . 
This link has failed 2 times.

      Log : === First try : 0 (No response) ===
      

HTTP/1.1 400 Bad Behavior
      
Date: Fri, 30 Oct 2009 14:39:05 GMT

      Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 PHP/5.2.5
      
X-Powered-By: PHP/5.2.5

      Status: 400 Bad Behavior

      Connection: close

      Content-Type: text/html




      Trying a second time with different settings…

      === Second try : 0 (No response) ===


      HTTP/1.1 400 Bad Behavior

      Date: Fri, 30 Oct 2009 14:39:08 GMT
      
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 PHP/5.2.5

      X-Powered-By: PHP/5.2.5

      Status: 400 Bad Behavior

      Content-Length: 978
      
Connection: close

      Content-Type: text/html

      


Link is broken.

    13. White Shadow says:

      @ Brent : This is a known issue. That site is running the the Bad Behaviour module, which tends to be a bit overzealous about blocking automated web requests. As far as I know, there is currently no practical way to fix this in the plugin.

    14. […] Translators Wanted I’ve recently added internationalization support to my Broken Link Checker plugin, so if you like the plugin and would like to see it in your own language, consider contributing a […]

    15. […] Broken link Checker Search engines do not like broken links. This plugin ensures you have none […]

    16. […] Broken Link Checker (http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/) […]

    17. […] Broken Link Checker […]

    18. Mike says:

      Hi,

      Can you tell me if your plugin can detect parked domains? Will that be counted as a broken link?

      I know there’s many who leave blog comments with their URL, and one year later, the site is abandoned and turned into a parked domain.

      I don’t want any links going to their parked domains…..

    19. White Shadow says:

      No, that’s not currently possible. I’m not even sure how one could detect a parked domain, but I may look into it.

    Leave a Reply