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! (10 KB)
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 -
- Download (see below).
- Unzip.
- Upload the broken-link-checker folder to you wp-content/plugins directory.
- Activate the plugin in the Plugins tab.
Upgrading
- Deactivate the plugin (important!).
- Do steps 1.-3. from “Installation”.
- Upload the broken-link-checker folder to you wp-content/plugins directory.
- Re-activate the plugin in the Plugins tab.
Download
Version 0.3.5 : broken-link-checker.zip (10 Kb)
(It needs at least WordPress 2.0.x to work, maybe 2.1.x. I’ve tested on 2.1.3 - 2.5)
July 7th, 2008 at 8:18 pm
[...] Broken Link Checker for WordPress - As your blog gets more and more posts, it can be difficult to go back and look for what has broken with time. This plugin will check images and links and notify you via the dashboard when it locates something. [...]
July 7th, 2008 at 8:10 pm
@Kim Woodbridge - It should be a bit quicker after the first pass, but with that amount of posts it will always take time to check them all.
July 7th, 2008 at 7:42 pm
@White Shadow - thanks! I will try and see what happens … after the first pass wouldn’t it be quicker because there won’t be so many broken links or will it always be slow because there are just so many links to check? I’m also looking into using a standalone program such as Xenu to deal with this my broken links.
July 7th, 2008 at 7:37 pm
[...] Broken link checker [...]
July 7th, 2008 at 7:35 pm
@Kim Woodbridge - It will work, but I can’t say how well it will work. It might take a long time to check all the posts.
July 7th, 2008 at 7:35 pm
[...] Broken Link Checker for WordPress : Lorsque votre blog devient de plus en plus riche en contenu, il devient difficile de retourner en arrière pour chercher les liens cassés. Ce plugin va faire le travail à votre place en vérifiant les images et les liens. Une notification sera visible sur votre tableau de bord. [...]
July 7th, 2008 at 7:12 pm
I have a website that contains about 3500 posts all of which contain a link to a news article. I used to check for broken links manually every month - in May, for example, I would go through all the posts for May for each year. Lately, however, I have been unable to keep up with this. Will this plugin work efficiently with this many posts?
Thank you.
July 7th, 2008 at 6:00 pm
[...] Broken Link Checker for WordPress - As your blog gets more and more posts, it can be difficult to go back and look for what has broken with time. This plugin will check images and links and notify you via the dashboard when it locates something. [...]
July 6th, 2008 at 2:42 am
[...] Broken Link Checker: Checks your posts for broken links and missing images and notifies you on the Dashboard if any are found. [...]
July 3rd, 2008 at 12:03 pm
@koullis - Nope, haven’t heard of any.
July 3rd, 2008 at 9:23 am
@White Shadow -
thnx for your reply
do you know other plugin which checks RS links?
July 3rd, 2008 at 2:34 am
@koullis - nope, as I mentioned before, it doesn’t work with RS. It would always treat those links as working.
July 3rd, 2008 at 1:27 am
does it checks rapidshare links if they are alive or files have been deleted?
July 2nd, 2008 at 3:16 pm
Maybe, but it doesn’t seem very likely. If the download was corrupted he wouldn’t have been able to extract the ZIP archive (at least not with WP’s automatic upgrade). The plugin worked before, so access rights were okay; there’s most likely no reason why the should have changed with the update.
July 2nd, 2008 at 2:57 pm
@White Shadow - Maybe Cody’s update went wrong - connection errors, access rights or smth like that…
July 2nd, 2008 at 2:11 pm
@Anna - Yes, but it still caused problems for Cody and I, too, have no idea why. I’m quite sure there were no other changes in the plugin aside from i18n-related stuff.
July 1st, 2008 at 9:04 pm
@White Shadow - Err, I put an internationalisation in, but i18n-ing is just a special markup of text strings and one extra function to tell wordpress where the translation file is. I use All-In-One SEO too and I had no problems with SQL… WTF?
July 1st, 2008 at 12:29 pm
@Cody - It’s all probably caused by the internatialization code which was contributed by someone else (see a few comments below). I don’t know anything about debugging this aspect of WP plugins, so I’m tempted to simply “downgrade” the public version to the code that was in 0.3.9…
July 1st, 2008 at 2:58 am
I had similar problems as Tino, but mine actually have to do with your plug-in. Despite the fact that I can’t find a post on your site referencing the new version 0.4, I received an update notice on my WP Plugins page. I applied the automatic upgrade and it instantly started kicking out SQL errors about my All-in-one-SEO plugin, which I’ve been using for a long time in conjunction with Broken Link Checker. These errors started the moment I upgraded your plugin, so it appears it conflicts with All-in-one-SEO. I wish it weren’t the case, but as soon as I deleted your plugin off of my server (because I couldn’t access my admin to deactivate first), the SQL errors disappeared. Bummer, ’cause I like your plugin a lot…
June 30th, 2008 at 6:20 pm
@tino - I don’t have the slightest idea why that happens. Also, I think you’ve got something wrong here, as none of my plugins are currently on ver. 2.1.2
June 30th, 2008 at 5:14 pm
After activating I get this:
Aborting: WordPress API Malfunction
For some reason the function get_currentuserinfo() did not behave as expected. Your user_level seems to be null. This can be resolved by navigationg to the Users section of the WordPress administrative interface. In this section check the user that you use for administrative purposes. Then under the drop down labled “change role to…” select administrator. Now click the change button. Should you still recieve this error please report this bug to the plug-in author. In your report please specify your WordPress version, PHP version, Apache (or whatever HTTP server you are using) verion, and the version of the plug-in you are using.
WordPress version: 2.5.1
PHP version: 4.4.7
Plug-in version: 2.1.2
June 30th, 2008 at 10:39 am
[...] should thank W-Shadow for providing us with this automatic broken link checker plugin for WordPress. And you may also want to check outgoing links using bad neighborhood checker [...]
June 28th, 2008 at 8:11 pm
@Anna - Thanks. I fixed a few things (that shouldn’t have been translater) and will upload a new version soon.
By the way, I understand Russian just fine, though I’m not russian myself.
June 28th, 2008 at 11:52 am
Hello! I made the Broken Link Checker translatable.
It’s here - http://mistress.hweia.ru/2008/06/broken-link-checker/ (the post is in russian, but it’s the only .zip there, hard to miss
June 24th, 2008 at 5:24 pm
[...] 4. Broken Link Checker [...]
June 20th, 2008 at 2:59 pm
@Piklog - Ah okay, you’re just being lazy here, how hard would it be to add a RS link to a post and see if the link checker catches it?
Anyway, I tested it, and it doesn’t work for them. Apparently RS won’t report the standard 404 HTTP code when a file is missing. Shame on them.
June 17th, 2008 at 2:26 pm
I’m new wp user, can you test it for me?
I think RS, MU links are different from direct link checking.
It’s different.
thanks
June 17th, 2008 at 12:31 pm
@Piklog - I suppose it should work for those as well, but I haven’t tested it.
June 17th, 2008 at 6:12 am
Hi,
How can i use link checker for rapidshare or mu links?
Is it work for those?
June 16th, 2008 at 6:57 pm
I’m testing comments to see if the DNS issue is on my end, or somewhere else.