WordPress's built-in commenting system is pretty weak. Comments have been left partly crippled as Automattic used to have a horse in the third party commenting race with its own Intense Debate technology. Our creative director doesn't like third party scripts for a few reasons:
- pageloads are very slow
- you lose the value of user generated content in most cases
- you are giving away quite a bit of your visitors' privacy (important for political sites)
Indeed he doesn't like real time commenting at all as it slows down page loads and increases server load radically. Regardless, some of our clients who use Disqus now would like to move to native comments but retain the real time and voting features of Disqus. As we are here to make clients happy, I will go through three of the more popular commenting options in order, sticking to technical issues related to loading speed.
- Disqus: the elephant in the room and why native solutions are coming strong now.
- wpDisquz: the mature drop in Disqus replacement but with some of the the same loading issues as Disqus itself.
- Epoch: the brand new open source sister of Postmatic comment notification and reply by email service. Supposedly lightweight and fast loading.
Here are the alternatives which operate solely on your website:
wpDiscuz - WordPress Comments
We were happy to find this plugin as it allowed some of our clients to stop using Disqus to get realtime comment updates. It looks like a complete package and it really does a lot of things right. For example the comment posting dialog looks very simple and you get more fields once you click into it.
We don't like Captcha, but there is an option for it as well as a simple email comment subscription feature:
It also integrates with social login plugins:
- WordPress Social Login
- Super Socializer
- Social Connect
- Social Login
Unfortunately the plugin doesn't allow moderation of comments in front-end so we wanted to put support for it into our front-end comment moderation plugin FV Thoughtful Comments.
While registered users can edit their comments and vote on other users comments the message for a pending comment looks very basic:
We also don't like the comment paging which goes by parent comments only (we set it to 3 comments per page as the parent comments often have a lot of replies, but in some cases they don't, so it was hard to get through all the comments). Also direct links to individual comments are not possible as it won't load the required page.
Live comment updates work fine, we just blocked them for users who haven't left any comment to save our server resources.
Aesthetic issues/touch and feel: our creative director considers wpDisquz very ugly in its native guise, requiring a lot of custom CSS just to dress up adequately to be allowed admission to a website.
You can get it at wpDiscuz on WordPress.org
Update: wpDiscuz 3 just got released
Good news is that wpDiscuz developers listen to their users and they have released a new version which improved the following:
- Comment paging - the paging now works like in classic WordPress and you can link to individual comments!
- Custom sorting - you can sort by latest, oldest, most voted, just what we need
- Guest users can be excluded from live updates - good for lowering the server load on membership websites where only logged in users participate in discussions
What they didn't improved:
- Number of SQL queries - we see no change although they promise 10x less queries.
- Speed - they promise 10x improvement, but we only an improvement of around 50%
- Styling - all the icons used in interface are inserted as images - making the size of HTML much bigger.
As you can see their claims about speed are not entirely true. But to be fair I did one more comparison of the performance of bare-bones WordPress comments with wpDiscuz 2 and wpDiscuz 3 on a cleaner website with 1,000 comments, as that's were wpDiscuz 3 should show improvements - large number of comments.
The numbers are a bit surprising:
|WordPress, no plugins||~3.8||34|
...and here is the explanation:
- WordPress is already slow even without plugins, we fix that by FV Thoughtful Comments which really IS much faster as it stores old comments as HTML
- wpDiscuz 2 is actually faster than WordPress alone. I haven't realized that as on our website all comments are posted by WP Users and that seems to slow it down a lot (in comparison to FV Thoughtful Comments)
- wpDiscuz 3 looks like the slowest one here as it does all the SQL to figure out comment parents/children - the plugin tries to cache this into wp_commentmeta but it must be failing for us. I guess if this works for you, it can be faster.
So my recommendation to wpDiscuz team would be to:
- improve working with a lot of users (just pre-cache the user data matching the user IDs used in the comments that are being loaded)
- and also examine the full comment list in PHP to determine which comments have replies rather than using SQL queries and some extra caching for results.
Then the plugin should indeed be faster.
Epoch - A native Disqus alternative with a focus on speed and privacy
The plugin has nearly no settings, we like that. Seems like it has issues integrating with some of the templates as there are multiple options of how it should be inserted, which is confusing - the "aggressive" option uses iframe.
I figured out there is a conflict with FV Antispam, once I disabled it the comment posting and comments autoupdating started working, so we should fix FV Antispam to work with it.
Admins get "Trash", "Spam" and "Approve" links for quick comment moderation right there on the post page - similar to what we provide in FV Thoughtful Comments.
The live updating works. However if there is a new pending comment, you won't see it coming in when you are logged in as admin. You have to reload the page to see it. And as the user who posted the comment you also have to reload to see if it's approved or not. I hope it's just a bug and the developers can fix it.
While it says it's focused on speed we have to report that it's a real waste of resources. The plugin takes 3 WordPress Ajax requests (any new Ajax request makes the server nearly as busy as another pageload as it has to load the database and run PHP etc.):
- first it checks if the comments are open - 0.4 seconds
- then it checks the count of the comments - 0.4 seconds - this also keeps running each 15 seconds (default value) to do a live check on new comment
- then it loads the comment HTML - 0.5 seconds, or even 5 seconds if there is a lot of comments
- the comments are not in the page HTML!
- all of this happens even for guest users, even if they are not allowed to comment
Have look at all the Ajax requests - first three are required for the comments to show up at all, then there is the periodical live update checking for new comments
wpDiscuz has a big advantage here, it includes the comments in page HTML and the Ajax occurs only for live comment updates (0.5 seconds or more if you have a lot of comments and don't set the paging - but at least you have the option unlike Epoch):
That said, when posting a comment using wpDiscuz it takes more than a single Ajax request, while in my opinion it could just use standard POST, so there is room for improvement of wpDiscuz as well.
Email subscription is just not there and you have to use Postmatic - a service which allows comment email subscription and also reply via email. There is also a paid option - we don't mind paying for it for some bigger websites if it works well, so we will see if the performance and moderation bugs are fixed. In fact the beta pricing at $9/website/month is a steal for any website. The email reply works really well and the emails look great.
Much better looking out of the box than our normal $10 one time license choice Comments Plus from Satollo (which also includes a simple image upload which is a real boon, exactly the kind of innovation missing from native comments). Email notifications can be customised so for a larger site building a better template is not a barrier but for a simple self-run site a good looking out of the box template really helps. Not having to deal with email server issues (we use SendGrid SMTP service for service email as managing bounces and spam reports in-house is too much for even a medium sized agency these days).
Aesthetically our creative director rates Epoch a win as it looks like native comments so it's easy to style and many styles will just carry over.
Neither Epoch nor wpDiscuz provide user configurable option for sorting by date or comment rating and we are asked for this a lot.
You can get it at Epoch on WordPress.org
There isn't a clean winner right now. Disqus warts and all does have the momentum of a huge installed user base of registered commenters. As a third party service, it's unlikely to ever get really faster though. Disqus can hardly take away features at this point (although perhaps it could make some of them optional).
wpDisquz has squandered early momentum by a non-scalable architecture, slow development and poor aesthetics. At the technical level, Epoch is fairly poorly written now with even worse scaling than wpDisquz.
There's space for either of these contenders to take over the real time native commenting with concentrated development. There's still room for a third contender to come in fast and hard focused on performance and even charging for the basic or a pro edition (freemium model). Publishers who need/want this kind of advanced commenting system have money to spend. We have our video player to improve and are not in love with real time commenting, so we won't be entering the ring ourselves. We have some money to donate to either wpDisquz or Epoch for immediate performance improvements: we'll publish an update if either plugin gets much needed performance improvements.