A lot of people seem to use native WordPress comments because they think it is faster than anything else. Disqus seems to have a very bad rap from what I have seen in the WordPress community. The truth is, if you setup Disqus in a certain way, it is actually much faster than native WordPress comments. I compared three different setups: native WordPress comments, the default Disqus plugin, and the Disqus Conditional Load plugin. And guess what? Native WordPress comments weren’t the fastest.
Now there are other reasons such as privacy concerns that some bloggers choose not to use Disqus. Chris Lema has an interesting post on why he killed Disqus on his site. Others think that the comments aren’t stored in the WordPress database, when it fact they do sync across. Also you can enable guest posting for those of you who claim you can’t. But I don’t want to go into any of that here, the speed is what I want to compare.
Native WordPress Comments
So I first ran tests on my post with native WordPress comments, without Disqus. I tested in both Pingdom and WebPageTest. Pingdom and GTMetrix don’t yet support HTTP/2 so remember that when you are running speed tests. They are still using an old version of Google Chrome. HTTP/2 requires Chrome 40 or higher. I still tested with Pingdom anyways as I know a lot of you are familiar with it. All of these tests were run multiple times and I took the average/median one.
In Pingdom I got a total load time of 768ms on my median run.
In WebPageTest I got 3.262s on my median run.
Default Disqus System
Then I enabled Disqus and ran the tests again.
In Pingdom I got a total load time of 842ms on my median run.
In WebPageTest I got 4.689s on my median run.
Disqus Conditional Load Plugin
I then disabled the Disqus plugin and enabled the Disqus Conditional Load plugin (which is free by the way!). This plugin allows you to lazy load Disqus upon scrolling down. I then ran the tests again.
In Pingdom I got a total load time of 672ms on my median run.
In WebPageTest I got 3.004s on my median run.[alert-note]I saw an average 10% increase in speed by using Disqus vs native WordPress comments![/alert-note]
So at the time of testing the post had 35 comments on it. When you use the native WordPress commenting system it generates an individual HTTP request for each of the gravatars. That is the huge performance issue with native comments. Obviously if you only average 2-3 comments per post, native might be the way to go. But when you have 5 or more comments per post I seriously suggest taking a look at the Disqus Conditional Load plugin. You can lazy load on scroll or also on click. By lazy loading it doesn’t generate an HTTP request for each gravatar until the user initiates it.
There are some weird workarounds on the web to lazy load gravatars with native comments and also plugins, but most of them are out of date or don’t work correctly. One plugin has a bug where it will lazy load custom avatars but not the default one. You could accomplish this by lazy loading all your images with WP Rocket, but I personally hate when images don’t pop up right away when scrolling.
I’m not saying Disqus is amazing, I still hate loading a
count.js file just to sync comment counts. But when it comes to total HTTP requests and speed, the lazy load works great. And with Disqus it cuts out literally 99% of spam so I can focus on other things. Also note: as Mark mentioned below in the comments, on highly volume sites you might need to disable the auto-sync due to AJAX calls.
What are your thoughts on Disqus? Do you prefer native comments or perhaps another commenting system? Let me know below.