Introduction#

Disqus is probably the first solution that comes to mind when we think about comments on static sites. It has been with us since 2007, supports millions of websites, and takes the burden of building a backend off our shoulders.

I decided to check what its integration with Hugo looks like in 2026, but mostly, what the real cost of this convenience is. I ran performance tests on this blog, and the results might surprise you.

What Actually is Disqus?#

In short: it is “comments as a service.” We provide a static frontend, and Disqus handles all the dirty work: database hosting, spam fighting, moderation, and user logins (Google, Facebook, Twitter).

We get a ready-made all-in-one solution with nested replies, reactions, and email notifications. Sounds great, right? However, let’s see what it looks like under the hood.

Configuration in Hugo – Step by Step#

Deployment is trivial, and that is undoubtedly the biggest advantage of this system. Hugo has built-in support for Disqus, so we don’t have to write complicated scripts.

1. Account Setup#

I started by visiting disqus.com. After choosing “I want to install Disqus on my site,” I created a new instance and gave it a shortname (e.g., klikukliku). For the start, I chose the free Basic plan.

2. Configuration on the Hugo Side#

In the hugo.toml configuration file, I only needed to define one variable:

disqusShortname = 'your-shortname'

3. Preparing Views (Partials)#

To keep the code clean, I created a file layouts/partials/comments/disqus.html. This is where we load Hugo’s internal template:

<div id="disqus_thread"></div>
{{ template "_internal/disqus.html" . }}

It is a good practice to create a comment “dispatcher.” Thanks to this, if we change the system to another one in the future, we only edit one file.

In layouts/partials/comments.html:

{{- $commentSystem := .Site.Params.commentSystem -}}

{{- if eq $commentSystem "disqus" -}}
  {{ partial "comments/disqus.html" . }}
{{- end -}}

4. Hooking into the Post Template#

Finally, I added the comment display in the layouts/_default/single.html file. I also added a simple condition that allows disabling comments for a specific article from the Front Matter level:

{{ if not (.Params.hideComments | default false) }}
  {{ partial "comments.html" . }}
{{ end }}

5. Activation#

I just had to set the parameter in hugo.toml and it was done:

[params]
  commentSystem = "disqus"

Important Note: During local tests (localhost), the widget will not load. You will see a message about unavailability. To check if it works, you need to deploy the site to a production environment.

Performance Analysis – Hard Data#

Here the enthusiasm ends, and the analysis begins. I measured the impact of Disqus on page loading in real conditions. I compared the clean version (Baseline) with the version armed with the widget.

Baseline (no comments):

  • Requests: 11
  • Weight: 311 KB
  • Load Time: 1.20s

With Disqus enabled:

  • Requests: 59 (increase of 436%)
  • Weight: 1152 KB (increase of 270%)
  • Load Time: 8.06s (increase of 572%)

What Weighs So Much?#

I analyzed exactly what is being downloaded. Disqus pulls over 600 KB of JavaScript alone (main widget, UI, shared libraries).

On top of that, we have:

  • 17 images (reaction emojis load even if no one uses them).
  • 6 CSS files.
  • External tracking scripts (including launchpad.privacymanager.io).

It is clear that the overhead is huge. For a simple text blog, tripling the page weight just for the comment section is a very high cost.

Business Model – What to Watch Out For#

Disqus in the free version (Basic) displays ads. Moreover, the system is clever—after registration, it activates a 30-day trial of the paid version.

Pro-tip: Remember to manually switch to the free plan before the trial period ends. Otherwise, the system might try to charge you.

Summary and Recommendation#

I have to rate this solution in two ways.

Choose Disqus if:

  1. Time is money: You want to launch comments in 5 minutes and forget about the topic.
  2. You need a powerhouse: You care about advanced moderation and spam fighting without your involvement.
  3. You have non-technical users: Users know this interface and trust it.

Avoid Disqus if:

  1. Performance is a priority: Adding almost 1 MB of data and 7 seconds to the load time kills Core Web Vitals and the mobile experience.
  2. You value privacy: You don’t want your users to be tracked by external ad scripts.

My Verdict: Disqus is a solid, mature tool, but technologically heavy. If you don’t need powerful moderation tools, I suggest looking at lighter alternatives.

The decision is yours. Is the convenience of deployment worth slowing down the site?