Skip to content

How to add comments to a Squarespace site

Add threaded comments to a Squarespace blog with Post Blog Item Code Injection. Squarespace's own comments don't thread — this replaces them without code.

5 min setup No dependencies
On this page

Why Squarespace + EchoThread

Squarespace has built-in blog comments, but they are intentionally basic — Squarespace's own help centre tells you to use a third-party service if you want threaded conversations or image comments, because the native ones do not support them. Historically that advice pointed at Disqus, which solves the threading and brings advertising into your readers' discussion in exchange.

EchoThread is the same fix without that trade. Threaded replies, emoji reactions, ML spam filtering, four sign-in providers, and no ads or tracking anywhere in the thread. The widget is under 60 KB gzipped and loads asynchronously from a CDN, so your Squarespace page keeps its speed.

Prerequisites

  • A Squarespace site on the Core, Plus, or Advanced plan — code injection is not on the entry-level plan
  • An EchoThread account — create one free
  • Your site's API key from the EchoThread dashboard

Register your domain first. In the dashboard, add your site's domain to the EchoThread site. Comments will display without it, but EchoThread only hands a completed sign-in back to a domain you have registered — so skipping this looks like "reading works, signing in doesn't".

Step 1 — Add the code to your blog

In the Squarespace editor open your blog page's settings, then Advanced → Post Blog Item Code Injection. This is the injection point that applies to individual blog posts — every post in the blog, including ones you publish later. Paste:

Post Blog Item Code Injection <div id="echothread" data-api-key="YOUR_API_KEY"></div> <script src="https://cdn.echothread.io/widget.js" async></script>

Replace YOUR_API_KEY with the public API key from your EchoThread dashboard. It is designed to live in page source — it only lets visitors read and post on your registered site.

Save and open any published blog post. The widget appears at the bottom of the post.

Use the blog page's injection point, not the site-wide Footer. Footer injection puts the code on every page — your homepage, your contact page, your shop — each of which would get its own comment thread. Post Blog Item Code Injection is scoped to blog posts, which is what you want.

Step 2 — Turn off Squarespace's comments

Otherwise you end up with two comment boxes on the same post. Open the blog's preferences panel, click Comments Settings, and disable commenting.

Existing Squarespace comments stay in your account; they simply stop rendering. Export them first if you want them carried into EchoThread.

How threads stay attached

The snippet has no data-identifier, and on Squarespace that is deliberate. The same injected code runs on every post, so there is no per-post value to put there — Squarespace's code injection does not expose post variables the way a template language would.

Instead EchoThread keys each thread to the URL of the page it loads on, which is already unique per post. The practical consequence: keep your post URLs stable. Changing a post's URL slug in Squarespace starts a fresh thread at the new address. If you must change one, do it before the discussion starts.

Theming

The widget follows your page's colours by default. To pin the scheme or set an accent to match your Squarespace template, add attributes to the container:

Post Blog Item Code Injection <div id="echothread" data-api-key="YOUR_API_KEY" data-theme="light" data-accent-color="#1a1a1a" data-font="system"></div> <script src="https://cdn.echothread.io/widget.js" async></script>

The theme builder generates the full attribute list from a live preview, so you can match a Squarespace template without guessing hex values.

Troubleshooting

I can't find Code Injection

It is not included on the entry-level plan. Check your plan under Billing & Account; code injection requires Core, Plus, Advanced, or a legacy plan that included it.

Comments appear on every page, not just posts

The snippet went into the site-wide Header or Footer injection point. Move it to the blog page's Post Blog Item Code Injection field.

Two comment sections

Squarespace's built-in comments are still enabled — turn them off in the blog's Comments Settings.

Sign-in opens and then does nothing

Add your Squarespace domain to the site in your dashboard. Reading works without it; completing a sign-in does not.

Frequently asked questions

Doesn't Squarespace already have comments?

It does, but they are deliberately minimal. Squarespace's own documentation tells you to use a third-party service if you want threaded conversations or image comments, because the built-in ones do not support them. EchoThread is that third-party service, without the ads Disqus brings with it.

Which Squarespace plan do I need?

Code Injection is available on the Core, Plus and Advanced plans, plus some legacy billing plans. It is not available on the entry-level plan, so this recipe needs one of those tiers.

Do I have to add the code to every blog post?

No. Post Blog Item Code Injection lives in the blog page's settings and applies to every post in that blog, including ones you write later. You paste the snippet once.

How does each post get its own discussion?

By its URL. Because the same snippet runs on every post, it carries no per-post ID — so EchoThread keys each thread to the address of the page it loads on, which is unique per post. Keep your post URLs stable and the threads stay put.

Ready to add comments to your Squarespace site?

Free for your first site. Set up in under 5 min.

Create free account