I remember when I first started to get a little more serious about blogging. It was with a statically generated Gatsby site, with posts stored in flat Markdown files, and deployed on Netlify. I loved it. But I knew it was still missing something I wanted: a way for readers to post comments.
As many did, I reached for Disqus to do the job. Sheltered by naïveté, I thought it was great! But soon enough, I began to notice some of the limitations and annoyances with the platform. I became more aware of how the tool is built and operates as a business. And eventually, I regretted ever setting it up to begin with.
If you even slightly care about the effectiveness of your own website and the privacy of your readers’ data, you ought feel this way too. There are plenty of products out there that offer a slick setup experience and an incredible set of features for “free.” But many times (most?), there’s a decent chance some pretty serious trade-offs being made behind your back. Disqus is one of them.
What Trade-Offs?
There are three buckets that deserve the most attention: SEO, privacy, and performance.
Privacy
Disqus has long carried a questionable reputation in how it handles pretty much any information it can get its hands on, including that which is very personal. If you take a few minutes and read through its privacy policy, you’ll get a better idea of why that is.
The list of data types they collect is long, including technical details, biological traits, personal preferences, location, and your contact information:
i. Identity Data includes first name, last name, username or similar identifier, date of birth, email address, telephone number, and mailing address.
ii. Technical Data includes internet protocol (IP) address, unique Cookie ID, Device ID, your login data, browser type and version, time zone setting and location, browser plug-in types and versions, operating system and platform and other technology on the devices you use to access the Service.
iii. Profile Data includes your username and password, your interests, preferences, feedback and survey responses, marital status, gender, title.
iv. Usage Data includes information about how you use the Service, and the content of comments that you post.
v. Aggregated Data includes statistical or demographic data for any purpose.
vi. Sensitive Personal We do not intentionally collect any personal data about your race or ethnicity, religious or philosophical beliefs, sex life, sexual orientation, political opinions, trade union membership, information about your health or genetic or biometric data, or information about criminal convictions and offences. However, if you make comments using the Service that include such data about yourself it will be publicly available and may be processed by Disqus or others.
Don’t miss that list bit. If you happen to include any other details about yourself in a comment you submit, it “may be processed by Disqus or others” too. If “processed” sounds ambiguously ominous, it’s because it is. According to that policy, it at least includes selling information directly to third parties. And there are a lot of them — I counted 21.
All of this collection starts the second you load a page with Disqus installed, even if you’re not logged in. Using Brave (which aggressively blocks third-party pixels and trackers), I pulled up a site with it installed and found seven different third-party requests blocked out of the gate. If you’re logged in, by the way, this number increases to 10.
After discovering the extent to which their poor data stewardship goes, it wasn’t much of a surprise to see they had recently been hit for a hefty fine for tracking users without their consent in Europe.
Especially if you just need a simple comment form on your site, it’s bonkers to me that so many people permit Disqus to wrap their tentacles around & squeeze your data profile as much as they do.
SEO
The amount of SEO value that comments brings to a website is debatable, but the general consensus is that they’re beneficial it as long as they’re moderated for high-quality content. And if that’s true, it’s important for that content to be easy to crawl & index.
Unfortunately, Disqus makes that aim more difficult by rendering comments client-side via JavaScript. Yes, Google is able to index JavaScript-rendered content. But it’s no secret that indexing single-page applications is slow and inefficient. And some search engines don’t do it at all, meaning that even in the age of the SPA, traditional, server-rendered HTML is the most SEO-friendly way to serve the content you want crawled.
Just to verify comments are for sure being indexed, I did a quick search for the exact phrase from a comment on my own site. One result came up. Mine.
If there’s a chance a search could pull up one of my posts by matching on a comment, you better believe I want that content to be rendered as a first-class citizen of my site, and not just a client-side-rendered afterthought.
By the way, there’s also one more characteristic of Disqus that can negatively impact SEO — site performance.
Performance
Disqus compromises your site’s ability to deliver a performant experience in three ways: page weight, load time, and number of requests. To explore this with some hard numbers, I spun up a basic Eleventy site and deployed it to Netlify. I wanted to play around with three different versions of a simple blog post — one with no comments , one with Disqus , and one with JamComments , a performance-minded service that integrates with a number of Jamstack platforms. Also, I built it, and it’s sickkk.
A blog post on the first version of this site is pretty plain. In all, it involved three HTTP requests, none of which were for JavaScript assets. Then, I took at look at the version with Disqus. This time, things started getting a little hairy, especially with respect to the amount of JavaScript that was being requested waterfall-style.
That simple addition led to 12 additional network requests. A travesty, especially considering that most of those requests depended on the first being completed, so they weren’t being loaded in parallel. And that’s just JavaScript. When accounting for all of the assets requested — JavaScript and otherwise — it got worse. In all, adding the Disqus snippet led to 51 total requests being fired when that simple blog post was loaded. Again, from 3 to 51.
Finally, I deployed a version with JamComments installed. A rendered page with it installed totaled four requests. Just looking at request count, here’s the comparison:
Total Resources
Next, let’s look at the total amount of resources that were requested from the three variants. The plain page and that with JamComments were within range of each other. Disqus, on the other hand, blew it out of the water.
If you notice above, 1.5 megabytes of (uncompressed) JavaScript were downloaded with Disqus was installed. But when you factor in all of the other assets it downloaded after that JavaScript executed, it bumps up by another 400kb.
Request Duration
Finally, the amount of time for everything to be downloaded & made ready to go. As you might expect, Disqus didn’t fare well, and JamComments’ hit to the page was marginal.
What the Numbers Mean for Performance
Those ridiculous numbers translate into some dismal performance scores, which has been shown to have a measurable impact on several metrics you should care about, including conversion rate, SEO, and user experience.
I ran the three versions of my sample page through Google’s PageSpeed Insights tool to see what kind of quantitive impact each has performance. The results were what you’d expect.
The page with no comments scored highly, receiving an overall score of 100 and green metrics across the board. No surprises here.
On the page with Disqus installed, the page score dipped to 71, with some disturbing metrics. Pay particular attention to that time-to-interactive (TTI). That’s over 10 seconds of waiting before the page could reliably respond to user input.
And finally, adding JamComments kept performance well-within an acceptable range. It scored 100 with everything else green.
Again, all we need is a simple comment form that sends some information somewhere and renders it on the page. Disqus tries to get you to download the moon, because that’s apparently what it takes to deliver an effective experience. Or more likely, mine every ounce of information it can collect from you to send it off to third parties.
The Best Alternative for Jamstack Blogs
Again, everything you read here is a big motivation for why I built JamComments. It’s a service specifically geared for Jamstack blogs that have very few options for comments outside of Disqus. And it targets all of the issues addressed in this post:
Privacy
No trackers, no pixels, and an account isn’t even required to leave a comment. The only requests that take place between your site and a server is the one required to save the comment data itself.
SEO
JamComments doesn’t rely on client-side JavaScript to render comments. It integrates directly into the build systems of select platforms to produce cold, hard, server-rendered comments that are easy to index by search engines. When a new comment is posted, a site rebuild is triggered.
Performance
You saw the numbers above. The only JavaScript loaded is what’s required to collect and post new comments. It’s minimal and has a negligible impact on your site’s performance.
Don’t Fall for the Shininess
I totally get the appeal of a tool like Disqus — it offers a host of mature features, and it’s rather easy to set up on a website. But it’s important not to let those shiny tools & ease of use overshadow what it costs you and your readers. Even if it’s not JamComments, consider searching for a more performant, SEO-friendly, and privacy-mindful options within reach. Blog comments are still a feature worth having, so long as you don’t have to sell your soul to have them.
Top comments (0)