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 :
- Download the .zip file (see below).
- Unzip.
- Upload the
broken-link-checker
folder to you/wp-content/plugins
directory. - Activate the plugin in the Plugins tab.
Well, the plugin just reports what finds. If it says “timeout”, chances are the links really did time out when it tried to access them.
This particular error message is often temporary. Try telling the plugin to recheck those links by using the “Recheck” bulk action.
I have ask the plugin to re-check – and it comes back with the same answers
I have checked dozens of links – and all were working, but BLC just says either ‘broken’ or ‘Timedout’
the vast majority are Amazon affiliate links – and wherever I check the link is working
so BLC gives my site visitors the impression that these links are broken – when they are not
Any further suggestions, before I deactivate the plugin?
You can disable the strike-through style in Settings -> Link Checker.
Other than that, I’m afraid there’s not really much I can do, sorry. There’s a whole lot of things that can affect whether a HTTP request sent by the plugin succeeds or times out – server configuration, firewall, restrictions on outgoing HTTP traffic, network load, DNS issues, and of course bugs in the plugin, PHP itself, the HTTP libraries used by the plugin, and so on. It could take a lot of digging by someone with admin access to the server to track down the real cause.
Nice plugin. It really save me a lot.
I’m running the broken link checker and have it set to display broken. links at stricken through on the website. Which works fine and serves as a warning to readers if I’m not up-to-date with maintenance.
But as soon as I activate the Jetpack plugin, the strike through is no longer displayed. And I can’t find a setting to make it re-appear.
How do it do this?
Thanks,
Jens
The setting that controls whether BLC will add the strike-through to broken links is called “Apply custom formatting to broken links” and you can find it in Settings -> Link Checker -> General.
I’ve activated Jetpack to see if I can reproduce the problem but the strike-through effect still shows up as normal. This was with default settings. Have you made any changes to Jetpack configuration that could affect how links are displayed (for example, custom CSS)? Also, could point me to a page on your site that contains a broken link? I’ll see if I can figure out what the problem might be.
Thanks for answering.
The strike-through option was activated, so it’s not that.
No, as far as I know, I’ve made no changes, least of all CSS.
The link “part 4” at the top of this page is broken at the moment: http://groknroll.com/2013/09/20/part-1-4-becoming-geek/.
Jens
It looks like the necessary CSS code is present in the page header, but the link does not have the
broken_link
CSS class for some reason. I’m not sure what could cause that.A few more ideas/questions:
[…] http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/ […]
[…] Broken Link Checker – A handy little tool which regularly checks all of the links on your blog and warns you of any broken ones. Includes a handy interface to change or unlink broken links without editing the full post or page. It does struggle with some redirected links but that’s not really the fault of the plugin. […]
We love both Broken Link Checker and we love WPEngine. Is there any way the two can work together? The ability to correct links in-line in WordPress is just so huge for us. Hoping if there are enough of us we could all make it financially worthwhile for you with a “Pro” version!
Thanks, Jay
If I remember correctly, the problem with using it on WPEngine was optimization – BLC sends a lot of HTTP requests when checking links and makes a lot of SQL queries when it is first installed (it needs to load all existing posts and parse them for links). There might be ways to work around this, like rate-limiting the requests, but in the end the answer would still depend on the folks at WPEngine.
I’ve recently installed this, is there any possibility that it will cause huge server load?
Thanks
Yes, if you have a lot of posts, it can cause significant server load at first as it scans each post and link for the first time. The load should level off over time.
If the server load is excessively high, try changing the “server load limit” setting in the “Advanced” tab of the plugin settings page.
Broken Link Checker is not working on my site.
Do you have any suggestions?
Sorry, that’s not really much to go on. Can you provide any more details?
We updated to WP 3.6.1 recently and began getting the error “Broken Link Checker installation failed. Try deactivating and then reactivating the plugin. Failed to load plugin settings from the “wsblc_options” option. Option doesn’t exist in the wp_7_options table.” on the other sites in our network. We’ve tried reactivating and re-installing Broken Link Checker but it still returns this error. It only does it on the additional websites in our WordPress network but not the main/root site.
Any suggestions? -Thanks!
Sorry, this plugin does not (officially) support Multisite. You may be able to get it to work if you activate it separately on each site, but network activation will always lead to problems.
Does it support vk.com ?
Best regards
Hi,
we are using your plugin on our site.
The problem we experience is that when we insert image with special characters – like umlauts in German the files appear as 404 not found though in the posts they are present. Is it because of the umlauts in the names and the way the plugin scans for files or something else?
Waiting for an answer, as it is essential in order to know how to “fix” this problem.
Regards