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.
[…] 9. Broken Link Checker | Download (External) […]
[…] meinem Link-Überwacher bekomme ich mit, wenn illustre Websites wie ‘Bürgerbeteiligung‘ oder […]
[…] free: Powered by WordPress 3.0 WordPress Plugins include the following: Akismet (antispam Plugin) Broken Link Checker Collapsible Archive Widget Dave’s WordPress Live Search Disqus Comment System Easy Buttons […]
[…] Plugins: Broken Link Checker, EWWW Image Optimizer, Jetpack, Remove Comment Notes, W3 Total Cache, WP […]
I seem to get a regular recurrence of “false positives” – that is, when I check the “broken link,” it works. I click “Not Broken” and it goes away. However, such links (and oftent the same ones) seem to show up again and again. Any suggested remedy?
There is no catch-all solution to false positives because there are many different things that can cause them – temporary downtime, server configuration issues, hotlink protection, paranoid security software blocking the plugin, and so on.
That said, if you could post a few of specific examples (including the link status reported by the plugin, and preferably HTTP headers as well – you can get those by clicking the status message), I might be able to suggest some potential fixes.
Thanks.
Here, for example, are three that crop up often. Status of all three is “Unknown error.”
http://michaeljkruger.com/
http://michaeljkruger.com/the-complete-series-10-misconceptions-about-the-nt-canon/
http://michaeljkruger.com/the-complete-series-ten-basic-facts-about-the-nt-canon-that-every-christian-should-memorize/
Here is another (and the status is, again, “Unknown Error”) that periodically recurs:
http://dianasymons.com/kingdom-of-god-2/forgiveness-right-matters/
Try installing the development version. It includes a patch that fixes some (though not all) types of “Unknown Error” false positives. You can download it on this page, under “Other Versions”.
Thanks. Will do. And will let you know if it helps.
Hey there! I love your plugin. However, something weird is happeing. Yesterday when I logged off I only had a couple of redirects. Today I logged on and suddenly my “Redirects” list is clogged up with 686 links, all of which are blogspot.com blogs. Yet, I clicked through on a bunch of them and none of them seem to be redirecting. Any suggestions or solutions?
Could you post a specific example or two?
Also, what redirect URL(s) does the plugin show for those links? Click the message in the “Status” column to view the final URL and additional details.
We’re using the Broken Link Checker plugin for http://richarddavidformen.com/. We’re having a problem with line-throughs on the home page in Firefox. Firebug is showing class=”broken_link”. Plugin status shown no broken links in the Settings. I’ve deleted the CSS in the plugin; also tried disabling the plugin and we still have the line-throughs. Do you have any suggestions?
Thank you!
As you’ve probably noticed, you can turn off the line-through by disabling the option to “Apply custom formatting to broken links” in Settings -> Link Checker.
If that doesn’t help, chances are you’re looking at a cached version of the page. Are you using any caching plugins? Try clearing the cache and refreshing the page.
Janis,
(This is a continuation of the exchange we were having above.)
Got 14 false positives today with the development version. Usual suspects.
Please advise if there’s any other data I can give you that will help debug.
@ Mike:
I added the example links to a test site and all of them were detected as “200 OK”. This suggests that the problem may be specific to your site or server.
Try clicking the “Unknown Error” message for additional details. Is there anything in the “Log” field?
OK, I checked the status information as you suggested (great trick! I didn’t know status was clickable!) and I noticed that all of the blogs all have the same message of being “Moved temporarily” to .ca domains. (I’ll give examples below). Yet, the link I have still works, and the browser is displaying the regular .com URL, rather than the .ca listed in the status. Odd?
Mostly I just want to know how to manage it since there’s SO MANY of them. I like to fix all the redirects whenever possible so my queue stays nice and small. How long are these URL’s going to be moved, when are they going back to their .com status, and how can I clear 686 URL’s from the redirect queue? What happens if I dismiss them, will they come back or stay permanently dismissed? I want those URLs to still be reported if something goes wrong with them in the future.
Here’s those examples:
http://vintagericrac.blogspot.com/
http://thehousewecallhome.blogspot.com/
http://barebonesgardening.blogspot.com/
http://www.cottageatwitsend.blogspot.com
http://www.housepeepers.blogspot.com
When I click through to the sites, I’m seeing these same URL’s, but the status in the checker claims that they are moved to:
http://vintagericrac.blogspot.ca/
http://thehousewecallhome.blogspot.ca/
http://barebonesgardening.blogspot.ca/
http://www.cottageatwitsend.blogspot.ca/
http://www.housepeepers.blogspot.ca/
Etc..
Here’s the full status for one of them for reference:
Log: === HTTP code : 200 ===
HTTP/1.1 302 Moved Temporarily
Location: http://vintagericrac.blogspot.ca/
Content-Type: text/html; charset=UTF-8
Date: Mon, 23 Jun 2014 23:46:38 GMT
Expires: Mon, 23 Jun 2014 23:46:38 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alternate-Protocol: 80:quic
Transfer-Encoding: chunked
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Expires: Mon, 23 Jun 2014 23:46:38 GMT
Date: Mon, 23 Jun 2014 23:46:38 GMT
Cache-Control: private, max-age=0
Last-Modified: Mon, 23 Jun 2014 23:10:10 GMT
ETag: “3338e81d-ef97-4d25-8d85-dc0c018ffc47”
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Length: 0
Server: GSE
Alternate-Protocol: 80:quic
Thanks in advance!!
~Angela~
@ Angela:
Say, is your server/hosting provider located in Canada? It looks like Blogspot thinks so and is trying to redirect the plugin to a country-specific site.
See this Google FAQ for more information:
https://support.google.com/blogger/answer/2402711?hl=en
Well, I wasn’t sure so I double-checked and their datacenter is in Los Angeles, California. So…???? It’s weird because I’ve been with this same hosting company for 10 years, running my WordPress site on it for 3 (4?) years and running your plugin for about that long, so why all of a sudden?
Also — that Google article seems to indicate that a reader would see the URL change in their browser when redirected, but I do not see any change — this is why I didn’t think any of the URL’s had been redirected, because they seem to be the same .com URLs when I click through manually.
I really appreciate your helping me on this — I am completely at a loss.
~Angela~
Who knows, it might be a glitch in Google’s geo-location algorithms.
That’s because you’re browsing from your own computer/device, not your server. The server is in a different place and has a different IP address. Since the plugin runs on the server, it will also have the server’s IP.
The URL change happens based on the reader’s location (probably determined by IP address and so on), and in this case the “reader” that gets redirected is BLC. From Google’s perspective, you are a completely different reader.