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. Jānis Elsts says:

      Hmm, I’m afraid I haven’t encountered that particular error before. Based on MySQL documentation, it could mean that MySQL can’t write to the temporary directory. Take a look at this page:
      https://dev.mysql.com/doc/refman/5.0/en/cannot-create.html

    2. Stephan says:

      Very fine plugin!
      Is there a wildcard search and replace function?
      Thanks,
      Stephan

    3. Jānis Elsts says:

      In the “Bulk Actions” drop-down there’s an “Edit URL” option. You can use it to find & replace text in link URLs. It also supports regular expressions.

      (Like all bulk actions, it will only affect selected links.)

    4. […] Broken Link Checker by Janis Elsts is one of the most useful WordPress plugins around. […]

    5. It appears that possibly your broken line checker plugin is causing extended delays to navigate once logged in sometimes it is frozen for several mintues, continues and then a few minutes later freezes for several minutes. Is this an issue you have heard of? What can been done if this is accurate? Otherwise it works great.

    6. Jānis Elsts says:

      I have heard of similar issues, yes. Unfortunately, I’m not sure what causes them.

      Maybe you could give the development version of the plugin a try. It has an experimental setting that lets you reduce resource usage. Go to Settings -> Link Checker -> Advanced and change “Target resource usage” to something like 10%.

    7. […] 블로그에 각종 스크립트 코드, 애드센스 광고 코드를 테마 편집 과정 없이 간단히 삽입할 수 있게 하는 플러그인이다. 이외에도 테마편집을 편하게 하기위한 syntax highlighting, 워드프레스용 에디터 변경 기능도 가지고 있다. Broken Link Checker for WordPress […]

    8. […] Broken Link checker has been implemented to validate, edit and ultimately cleanup our links and redirect situation. We […]

    9. […] for managing the back-end of your blog including, Redirection, Broken Links, WordPress SEO, MDR Webmaster Tools, and W3 Total […]

    10. Paula says:

      Strange….getting alot of broken links that are not “broken” with “suggested” links from old web archives..

    11. […] Broken Link Checker – As you add posts and link to external sites, over time, those site may go away. This plug-in checks your site for broken links regularly. […]

    12. Dave Knight says:

      @ Paula. I had the same problem and I think this fixes it:

      Plugins>Installed Plugins>Broken Link Checker>Settings>Advanced

      Now increase the Timeout from the default 30 seconds.

    13. Dave Knight says:

      @Paula. Well it did work, but now this article has a broken link that is not a broken link showing again: http://wp.me/p2QGVg-zd

    14. Angie says:

      I can’t seem to get the plugin to work. It says it detects links, caches them, but when I check in tools, all the links say they are not checked, even after the plugin has run for days. I tried disabling every other plugin I had, and left the part blank about server load in advanced settings. Any suggestions?

    15. […] Broken Link Checker prüft regelmäßig ob die Links die ich auf meiner Seite gesetzt habe noch funktionieren. Nicht […]

    16. Jānis Elsts says:

      Hmm, I haven’t heard of this kind of problem before. Usually, if the plugin successfully detects links then it’s also able to check them.

      Some ideas:

      • In Settings -> Link Checker, what does it say about the queue? If it’s “no URLs in the work queue”, select a few links on the “Broken Links” page and try using the “Recheck” option from the “Bulk Actions” list.
      • Aside from server load, another setting that could prevent the plugin from checking links is the PHP execution time limit. Click the small “show debug info” link on the settings page and check the “Default PHP execution time limit” row. Normally the limit should be at least 30 seconds. Also, check the “Max. execution time” setting in the “Advanced” tab.
      • Are there any recent messages in your PHP error log?

    Leave a Reply