Broken Link Checker for WordPress

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.

Download it now! (40 KB)

Note : This page, and the feature list below are slightly out of date as a major update has been released recently (see details). I’ll get around to updating this page eventually.

Features

  • Checks your posts (and pages) in the background (whenever the WP admin panel is open ).
  • Detects links that don’t work and missing images. Checks both internal and outbound links.
  • Notifies you on the Dashboard if any problems are found.
  • Link checking intervals can be configured.
  • New/modified posts are checked ASAP.

The broken links show up in the Manage -> Broken Links tab. If any invalid URLs are found a notification will also show up in the sidebar on the Dashboard.

The Broken Links tab displays a list of invalid URLs found along with the relevant posts and the anchor text of the links. “View” and “Edit Post” do exactly what they say and “Discard” will remove the message about a broken link, but not the link itself (so it will show up again later unless you fix it; this plugin doesn’t modify your links).

By default all old posts/links are re-checked every 72 hours, or you can set a different time period.

Notes (Semi-Technical)
I realize there’s a lot of features that could be added to improve this plugin considerably. However, this release is intended to “test the waters” and see if there’s demand for a plugin like this, so I only implemented the most basic functions. The plugin has been upgraded to be slightly beyond “basic” ;)

I thought about using WP’s pseudo-cron to run the link checker by schedule and decided against it. AFAIK the cronjobs execute when a page is requested; since this plugin does some lengthy processing it may increase page load times unacceptably when used in this manner. That’s why I set it to run the checks asynchronously (AJAX) and invisibly in the admin panel.

Installation
Just like any other WordPress plugin -

  1. Download (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.

Upgrading

  1. Deactivate the plugin (important!).
  2. Do steps 1.-3. from “Installation”.
  3. Upload the broken-link-checker folder to you wp-content/plugins directory.
  4. Re-activate the plugin in the Plugins tab.

DownloadCC-GNU GPL
Version 0.5.3 : broken-link-checker.zip (40 Kb)

Requirements

  • WordPress 2.7 or later
  • MySQL 4.1 or later

Starting with version 0.5 this plugin is only compatible with WordPress 2.7 and up. Older versions (e.g. ver. 0.4.14) should work with WP 2.1 – 2.6.x.

Share :
  • Reddit
  • del.icio.us
  • Digg
  • StumbleUpon
  • DZone
  • Ping.fm
  • Sphinn
Related posts :

895 Responses to “Broken Link Checker for WordPress”

Pages: « 15 6 7 8 9 [10] 11 12 13 14 1530 » Show All

  1. 266
    CID says:

    Hi there,

    I thought I’d give BLC a try in WP 2.6(.1). No (PHP/WP) errors but it marks perfectly fine links as ‘broken’ while they’re obviously not! At first I thought it only did that with ’shorthand’ links like domain dot com instead of www dot domain dot com but it has now also marked other ‘good’ links as ‘broken’…

    This somewhat negates the use of BLC…

    However: Great plugin and I’m looking forward to seeing any issues resolved or more documentation on ‘why BLC marks those links as broken’ becomes available.

    Thanx!!!

  2. 267
    White Shadow says:

    @CID – If you have the latest version (0.4.8) you should be able to get some clues as to why those links were marked as broken by clicking the new “Details” button(s) in Manage -> Broken Links. However, meaningful info will only be available about “broken” links that were checked with this newer version.

  3. 268
    CID says:

    Hey WhiteShadow,

    Thanks for your quick response!
    Yes, I do have version 0.4.8 and it lists ‘details’. However, every link detail (except the URL’s and time ofcourse) reads:

    ——————————————————————————
    Last checked : 2008-09-09 12:06:09
    Final URL : http://www.cid-iv.com
    HTTP code : 0
    Log :
    === First try : No response. ===

    Trying a second time with different settings…
    === Second try : No response. ===

    Link is broken.
    ——————————————————————————

    The sites load fine but BLC keeps getting ‘no response’…

  4. 269
    White Shadow says:

    @CID – It’s probably timing out. The timeout is hardcoded to be about 30 seconds (when using CURL). Maybe I should add an option to configure it…

  5. 270
    CID says:

    Yes, well, that would, in any case, be a welcome addition. Always nice to be able to set the threshold for this kind of functionality. But I don’t think that that’s the case here because the site (mentioned in the example) loads in under 2 seconds… (Checked with Fasterfox.)

  6. 271
    White Shadow says:

    @CID – Maybe the site has some kind of security software in place to prevent suspicious bots from accessing it. Wouldn’t be the first time.

  7. 272
    CID says:

    Ok, yes, that would cause such behaviour, I will check!
    But how about the internal links it marks as ‘broken’?
    And to me it seams that it has problems handling shorthand URL’s. Or can’t that be the case?

  8. 273
    White Shadow says:

    @CID – “shorthand” URLs shouldn’t be a problem if the URL is otherwise valid and working. In particular, external links should always include the protocol part (usually http://).

    Are the local links using relative URLs? The plugin should handle it, but the algorithm is not perfect.

  9. 274
    Bart Gibby says:

    ~ bug ~
    When I activate the plug-in my website bleeds through the admin. So I can actually see my website below with some themes the admin, and integrated with the admin in other themes.
    ~ end bug ~

    has this been fixed yet?

  10. 275
    Bart Gibby says:

    When I search for “broken link checker” in the wordpress plugins search I do not see your plugin any more. What happened?

    http://wordpress.org/extend/plugins/search.php?q=broken+link+checker

  11. 276
    White Shadow says:

    @Bart Gibby – The WordPress.org plugin search is notoriously bad. The plugin page is still up.

    As for the “bug”, check that wsblc_ajax.php is present in the plugin’s folder (i.e. in wp-content/plugins/broken-link-checker/) and that it doesn’t have any weird permissions set. Actually, just see if you can access yourblog.com/wp-content/plugins/broken-link-checker/wsblc_ajax.php. You might have a .htaccess rule or some security module blocking it. Or possibly your “wp-content” folder isn’t where the plugin expects it to be.

  12. 277
    cartmanffc says:

    Broken Link Checker is not compatible with Ozh Better Feed

  13. 278
    White Shadow says:

    @cartmanffc – Okay, thanks for the info.

  14. 279
    Stefan says:

    If i’am klick on ‘unlink’ in the list of Broken Links, The complete text of the Artikel is deleted!

    I’am working with the newest Version of WordPress 2.6.2!

  15. 280
    White Shadow says:

    @Stefan – Err, sorry? That has never happened in my tests :/ If you have backups (hopefully you do) could you mail me the post (including HTML etc, not just the text) that got deleted? My email is whiteshadow (et) w-shadow (dott) com
    I would run some tests with that posts and try to find the cause of the problem.

  16. 281
    alice says:

    Love the plugin — it works so much better than any other link checker I’ve tried! Sadly, I had to turn it off after upgrading WP because of server load problems (I’ll keep an eye out for updates that address this issue!).

  17. 282
    White Shadow says:

    @alice – Thanks :)
    I haven’t been able to pinpoint the source of the performance issues yet as only certain people/blogs seem to have them. The plugin has always been running well on my sites.

  18. 283
    alice says:

    White Shadow,

    I’ve been thinking about the server load problem and how only a few people seem to have run into the issue. In trying to come up with reasons I might have had the problem where others didn’t, I came up with two possibilities:

    1) my blog goes back to July, 2004, so there are a lot of entries with an abundance of links, which could have kept the link checker pretty busy; and

    2) and this one is probably the more important one: I tend to just leave my dashboard open in a browser tab all the time. Since your plugin is designed to work certain intervals whenever the dashboard is open, that means that I’m letting it work around the clock. Maybe there needs to be a setting to slow down the link checker if the dashboard is left open for long periods of time?

    Anyway, maybe this info might be of some use to you.

    Have a great weekend,

    Alice

  19. 284
    White Shadow says:

    @alice – So is the slowdown you experience really occuring on the server, or just in the browser? If you try to access the site from a different computer when you have the dashboard open on another, does it still load more slowly than usual on the other computer? That would help narrow down the range of possibilities.

    I don’t know if this would help, but here’s an idea – go to the plugin’s settings and increase the “Check every post” value to ~160 hours. Also increase “work session length” to 60-120 seconds. It might reduce the load, or it could make it worse, or do nothing, but it would be an interesting data point.

  20. 285
    mobile software says:

    what difference of this and google webmaster tools ?!
    thanks for share this plugin.

  21. 286
    White Shadow says:

    @mobile software – Google Webmaster Tools lets you know about internal broken links, for example, when a link somewhere leads to a missing post on the your site.

    The plugin, on the other hand, shows broken links from your posts to any site, either your own or external. For example, if your blog is blog.com and you link to example.com/article.html in a post, and that page (article.html) goes missing one day, the plugin will tell you that the link to example.com/article.html is “broken”.

  22. [...] می توانید از این افزونه برای رفع مشکلتان استفاده کنید. Broken Link Checker: وجود لینک های خراب در یک وبلاگ، در رتبه بندی و ایندکس [...]

  23. 288
    Aron Beal says:

    Hi,

    Thanks for the plugin – very neatly done. I modified your source so that it includes a javascript mechanism to resort the broken links by post date (or by the original last check date). I’ve tested in firefox so far – going on to test in IE. Haven’t tested under heavy load yet (massive number of broken links).

    Wanted to know if you were interested in the modified source for inclusion back to the trunk when I’m done?

    ~Aron Beal

  24. 289
    White Shadow says:

    @Aron Beal – Sure, sounds like a useful feature. You can post a link here or email it to me at whiteshadow@[this domain] when it’s done.

  25. 290
    Nelson says:

    On my dashboard I get a notification of a lot of broken links but when I check them there’s actually none. This started to happen when I deleted a page where all those links (of images) belonged.

  26. 291
    White Shadow says:

    @Nelson – This might be caused by a database bug in an older version. Click “Re-check All” on the link checker settings page to reset the plugin’s tables. It will probably take a while to recheck everyghting, but it should fix the problem.

  27. 292
    Nelson says:

    @White Shadow – That’s odd. I believe I had already done that before. Anyway, I’m glad it really did the fix this time. Thanks!

  28. [...] if you’ve been blogging more than a year, here’s a plugin you might find helpful: broken link checker. Whenever you’re logged into the WordPress Admin area, this handy plugin will spider all the [...]

  29. [...] Broken Link Checker: I love this plugin!  It is new to me, but one of my favorites already!  Too often links go bad, this plugin checks your complete site and lets you know if there are any links that don’t work anymore.  Here is what they wrote about it: [...]

  30. [...] Broken Link Checker – This plugin will monitor your blog and looks for any broken links and let you know if any broken links are found. [...]

Pages: « 15 6 7 8 9 [10] 11 12 13 14 1530 » Show All

Leave a Reply