Broken Link Checker Survey Results

Last week I invited everyone who uses my Broken Link Checker plugin to answer a user feedback survey. The survey consisted of 11 questions covering a number of topics from overall user satisfaction to feature suggestions, monetization options and questions about the user’s server configuration. In this post I will summarize the results and maybe add some comments of my own.

In total, there were 761 responses to this survey. I don’t know what response rate that amounts to ( doesn’t disclose the number of active plugin users even to the author of  the plugin), but the sheer number of responses was very impressive and much more than what I expected 🙂

Okay, lets move on to the actual results.

Q1 : How long have you been using Broken Link Checker?

Pie chart

According to the survey, 66% of people who have BLC installed have used it for 6 months or less. Taken alone, this is a rather ambiguous result. When you consider that the first version of Broken Link Checker was released more than two years ago, the large number of recent users can have two wildly different interpretations – either the plugin has a nasty attrition rate, or it has really gone up in popularity during the last 6 months.

Q2 : How satisfied are you with the plugin?

Bar chart

So it seems I needn’t have worried about the attrition rate – 74% of users said they were either “satisfied” or “very satisfied” with the plugin. I’m going to assume this means “good, but needs a bit of work”.

Then there’s the puzzling fact that 12% picked the “Very dissatisfied” response to this question. For one, this result is an obvious outlier. But what really puzzles me is this : the majority of users who answered this question with “Very dissatisfied” gave the plugin rather good ratings in other parts of the survey (like Q3 below). Some of them even said that “it’s already perfect” when asked what they’d like to change about the plugin. There were only 5 or 6 users who picked the “Very dissatisfied” answer here and gave similarly negative feedback to other questions.

I’m inclined to think some users just mixed up the “Very satisfied” and “Very dissatisfied” options. Something more distinct like “It sucks”/”It’s great” would probably work better and be less prone to confusion.

Q3 : How would you rate the plugin in each of these categories?

The user was also asked to rate Broken Link Checker on a 1-5 scale in five different categories. Here are the results for each category (average vote & answer distribution) :

  • Ease of use (4.35)
    Bar chart : Ease of use
  • Performance (4.13)
    Bar chart - Performance
  • Configurability (3.85)
    Bar chart : Configurability
  • Features set (3.89) 
    Bar chart : Feature set
  • Documentation (3.70)
    Bar chart : Documentation

Hmm, apparently I’ll have to buckle down and produce some actual documentation for the plugin. [Insert the standard joke about how programmers hate writing documentation.]

Q4 & Q5 :  What new features would you like to see added? / What other changes and improvements would you make to the plugin?

In total, I received more than 70 distinct feature suggestions/change requests/bug reports. That’s too many to list here, so I’ll only discuss the Top 15 of those that were suggested by more than one person.

1. Keep it simple (26 users)

A lot of users think the plugin is actually plenty good already and shouldn’t be bloated with more features. But they’re still a minority compared to the number of people who do want something changed/improved, so new features (and bug fixes!) there shall be.

2. Fix false positives & false negatives (22 users)

Okay, I get it – false positives are bad and annoying. I’ll do my best to fix them.

However, there is something that needs to be said here : for a plugin like this, it’s almost impossible to eliminate false positives. Many sites intentionally block any automated scripts (which includes the link checker) from accessing them. As a result, all links to those sites work normally when you click them in your browser but appear broken to the plugin.

Sure, I could probably fool some script-detectors by modifying the plugin to emulate a normal web browser. However, down that path lie nasty programming tricks, reduced performance and an increased potential for bugs. There’s an ongoing arms race between people writing site-scraping bots  and people trying to stop them, and sometimes it seems the only winning move is not to play.

But I might give it a shot anyway.

3. Email notifications about broken links (14 users)

It shall be done. Probably in the next major release.

4. Limit how much CPU/memory the plugin can use; fix freezing (9 users)

This is a rare bug, but it’s also a highly annoying one. To mitigate it, I’ll add an option to suspend link checking when the server is overloaded. Maybe some finer-grained controls over how and when the plugin runs would also help.

5. Improve documentation (8 users)

It shall be done, too – but don’t hold your breath. Writing documentation is… not an exciting pastime.

6. Add an option to recheck individual links (5 users)

This should be pretty straightforward to add; you can expect to see it added in the next release.

7. Ability to add rel=”nofollow” to certain links/posts/users (5 users)


8. Make fixing broken links easier (5 users)

There were several suggestions that amounted to this. Specifics ranged from sensible stuff like “add an option to replace the link with a cached page from” to things that would require a human-level artificial intelligence, like “figure out if the site is gone/down temporarily/moved to another address and offer suitable replacement links”. I’ll put the more practical suggestions on my to-do list.

9. Check comment links (4 users)

It shall be done; probably in the next major release or the one after that.

10. Add a way to mark some links as “broken, but that’s fine” (4 users)

Some users asked for a way to deal with false positives and links that really are broken, but might become live again after some time. The “Discard” button that can be used to manually mark the links as “working” might be a small step in the right direction, but it’s too much of a hack. I’ll look into ways to improve the situation.

11. Check YouTube/DailyMotion videos and other embedded media (3 users)

This is tricky. Perhaps in a future version.

12. Add an option to run the link checker manually (as opposed to periodically) (3 users)

It shall be done.

13. Display context in which the (broken) links appear (3 users)


14. Check links to file sharing sites like RapidShare and MegaUpload (2 users)

Tricky. See the comment about YouTube and embedded media above.

15. Add an option to edit link text from the plugin’s screen (2 users)

Eventually. Could be tricky – the same link can be used in multiple posts and thus have multiple anchor texts.

Q6 : If this plugin had a premium version, how much would you be willing to pay for it?

Bar chart : PriceWhile I’m not currently planning to create a premium version of Broken Link Checker, it is something that I might consider doing in the future. So I wanted see if there was any interest and how much (if anything) people would be willing to pay for a premium WP plugin.

As could be expected, most WordPress users care not for commercial plugins. Still, it looks like there might be a market for premium plugins in the $1 – $5 (16%) or the $5 – $10 range (11%). In total, 39% of users said they’d be willing to pay something for a premium version.

Q7 & Q8 : The script… thing

I will discuss this one in a separate post later.

Q9 : Your PHP version?

Pie chart : PHP version

PHP 5 - 93%, PHP 4 - 7%

Well whad’ya know, WordPress might even be able to ditch PHP 4 support by 2015 or so.

Q10 : CURL library?

Pie chart : CURL library installed or not

Installed 79%, Not installed 21%

Q11 : Your WordPress version?

Bar chart : WordPress versions

WP 2.9.x - 91%

Note that this chart is biased by the fact that Broken Link Checker is only officially compatible with WP 2.8 and up. As a result, the chart may not represent the overall distribution of WordPress versions in the blogosphere.

Well, that’s it for today. Comments?

Related posts :

7 Responses to “Broken Link Checker Survey Results”

  1. Jeffrey says:

    Thanks for the nice summary.
    There were mentioned some good things 🙂
    It’s a must have Plugin for me!

  2. Ozh says:

    I’m curious about the viralogy stuff, what users said and what are your thoughts about it. I’ve been approached by them too, but turned them down as I didn’t see any benefit in bundling their stuff (benefit for users, that is)

  3. White Shadow says:

    This topic probably warrants a separate post, but here’s the short version:

    16% of users are okay with it, 39% don’t like the idea and 35% don’t care. The remaining 10% either asked for more information about the script or said they’d be okay with it being included if enabling it was optional. On the yes/no question, 39% said they would enable the script if it was included.

    Personally, I’m simply not convinced the offer would be profitable enough to risk the users’ goodwill for. I mean, the only non-evil way to bundle the script is make its installation optional, and I can bet most users wouldn’t install it.

    Nevertheless, I haven’t made the final decision yet.

  4. […] In this post I will explain what the “ script” thing mentioned in the Broken Link Checker survey was all about, discuss the user response and attempt to verbalize my rather unclear thoughts on the […]

  5. […] Broken Link Checker page, and a description of an upcoming version (0.9), and the author’s discussion of a user survey, including descriptions of some planned features. Feel free to share! Bookmark on Delicious […]

  6. Hi
    I note one of your resolutions is to work on the documentation but I still can’t find much especially on the use of regular expressions in the batch Edit Url window. I have in excess of 200 internal links where the url is largely correct but needs a .net instead of a I have tried all the different syntax I can think of….

  7. Jānis Elsts says:

    The plugin supports normal PCRE syntax. There’s only one exception – unlike plain PHP, you don’t need to enclose the regular expression in special delimiters.

    Try this:
    Search: ^(.+)(\.co\.za)([/].+)?$
    Replace: $$2

Leave a Reply