Back to blog

Blog · Guide

How to Add Comments to a Wix Blog: A Custom Integration Guide

Wix ships a comment box, but it gives a moderator almost nothing to work with. This guide walks through adding a third-party comment system to a Wix blog — the script tag, the Velo placement, and the moderation queue you get afterwards.

To learn how to add comments to Wix, embed a container element on your dynamic post page and mount a standalone JavaScript snippet tied to a unique post identifier. While the native Wix Blog commenting toggle works for simple personal sites, growing publications and high-traffic blogs require robust queuing, reliable spam screening, and granular moderation tools that Wix cannot provide natively.

This tutorial outlines two critical jobs. First, for the site installer, we explain where the script tag lives inside Wix, how dynamic rendering handles identifiers, and how to prevent duplicate widgets. Second, for the editorial moderator, we detail the triage workflows, deterministic moderation rules, and alert channels needed to keep an active community manageable once comments begin rolling in.

Start Here: What Wix Gives You for Comments, and Where It Stops

The native Wix Blog application contains a built-in commenting system that site owners can toggle on or off directly inside their post management settings. For a basic overview of Wix's default features, review the official documentation on Wix Blog managing comments for your posts. The native system requires minimal configuration, allows logged-in site members to leave quick thoughts, and places replies underneath published entries. If your blog receives two or three casual notes per month, this built-in capability may be sufficient.

However, once community volume scales, severe functional gaps quickly become apparent. Editors and community managers frequently hit operational ceilings with Wix blog comments:

  • No granular rule matching: Wix provides no owner-authored restricted-words list with deterministic match rules to hold or reject abusive terms automatically.
  • No per-site user governance: You cannot cleanly ban repeat bad actors or mark trusted contributors on a per-site level.
  • Slow queue processing: Wix lacks single-click moderation links delivered via email that allow moderators to triage comments without logging into the administrative portal.
  • Missing operational hooks: There are no native webhook alerts for team spaces like Slack or Discord, and no public API designed to build unified triage interfaces for editorial rooms.

Site owners inevitably face a choice: keep the basic native toggle and absorb manual overhead, or run third-party comments on Wix using custom embeds. If you decide to transition, recognize that native Wix comment data resides strictly within the Wix ecosystem. Wix does not provide an automated pipeline to push existing native blog comments out to an external schema, meaning any past comments left under the native widget will remain archived in Wix rather than porting directly into your replacement system.

How to Add Comments to Wix With a Third-Party Script: The Short Version

When installing an external system, the underlying integration follows three basic phases: create your site profile within the comment provider's platform, retrieve the embed snippet, and target an HTML element located directly within your dynamic blog post layout.

Because Wix renders blog posts dynamically using client-side JavaScript, the commenting widget must bind to a DOM node that exists after the post payload resolves. In a standard setup, your integration relies on a lightweight target container and a single script:

<!-- Target container placed inside the post layout -->
<div id="echothread" data-thread-key="POST_UNIQUE_ID"></div>

<!-- Comment platform client script -->
<script src="https://cdn.echothread.io/widget.js" async></script>

EchoThread is a hosted SaaS commenting platform; EchoThread is proprietary, not open source, and EchoThread has no self-hosted or on-premise option. EchoThread installs as a single script tag; the EchoThread widget is vanilla JavaScript with zero dependencies. This design ensures that embedding discussions onto dynamic frameworks does not saddle your site with bloated runtimes or third-party tracking scripts.

Installers commonly face two integration pitfalls on Wix:

  1. Target container omissions: Placing the script tag without rendering the matching <div> container on the dynamic post page template causes the script to execute against an empty DOM.
  2. Site-wide injection errors: Adding the snippet to your global site-wide head loads comment assets on homepages, landing pages, and ecommerce checkouts where no discussion threads exist.

Rather than guessing layout bindings, check the provider's official platform guides. For complete structural references and script attributes, visit the EchoThread documentation before modifying live templates.

Where the Script Tag Goes in Wix: Head, Body, or Velo

Wix gives administrators multiple ways to inject custom markup, but choosing the wrong location causes broken thread states or race conditions. As detailed in the guide on Wix Editor embedding custom code on your site, the platform provides a Custom Code management panel under your site settings. This panel allows you to place snippets into the Head or Body sections of all pages or specific static pages.

The standard Custom Code interface is effective for static landing pages, but it often fails on dynamic Wix Blog pages. Because the blog application updates post content without triggering a traditional browser navigation cycle, a static script placed via the Custom Code panel cannot consistently detect when a new article has loaded or extract its specific identifier.

To mount a third-party discussion widget reliably on dynamic pages, implement your script via Wix Velo. As documented in the Wix Velo working with page elements guide, page code files execute directly within the page context and can manipulate elements once the page state becomes active. This avoids ordering issues where the comment widget attempts to read the post slug before dynamic data binds.

The safest approach leverages an HTML component on your dynamic post page, coordinated through page code:

// Dynamic Post Page Code (Velo)
import wixLocation from 'wix-location';

$w.onReady(function () {
    $w("#postDataset").onReady(() => {
        const currentPost = $w("#postDataset").getCurrentItem();
        const postIdentifier = currentPost._id; // Stable database ID

        // Pass identifier to the embedded HTML component
        $w("#customCommentWidget").postMessage({
            threadKey: postIdentifier,
            pageUrl: wixLocation.url
        });
    });
});

Inside the targeted HTML Component, listen for the message and mount the widget:

<div id="echothread"></div>
<script>
  window.onmessage = function(event) {
    if (event.data && event.data.threadKey) {
      var container = document.getElementById('echothread-comments');
      container.setAttribute('data-thread-key', event.data.threadKey);
      
      var script = document.createElement('script');
      script.src = 'https://cdn.echothread.io/widget.js';
      script.async = true;
      document.body.appendChild(script);
    }
  };
</script>

Warning: Wix Custom Code settings and Velo page code are distinct execution paths. If you inject the script via the global Custom Code panel and embed it using Velo inside an HTML element, your page will execute the runtime twice, creating duplicate comment trees or conflicting network requests.

Mapping Wix Posts to Comment Threads So Nothing Collides

Every commenting engine relies on a unique thread key to match submitted entries to the correct article. On Wix, relying on the URL path or post slug introduces vulnerability. If an editor changes a headline weeks after publication, Wix can update the slug to match the new editorial direction. If your commenting configuration relies on the slug, the old discussion becomes detached, and the post appears to lose all previous conversation history.

To avoid orphaned discussions, map threads using the stable, immutable _id generated by the Wix Blog database collection. This identifier remains constant throughout the lifetime of the article, regardless of updates to titles, author attribution, or URL slugs. If you are structuring an ecosystem that spans independent backends, review our architecture walk-through on setting up a comment system for headless CMS to understand clean identity models.

Another architectural consideration involves search engine crawlers. Because Wix pages rely heavily on dynamic client-side DOM rendering, search engines that run rudimentary headless crawlers may not parse comments embedded within late-binding iframes. EchoThread provides a per-thread endpoint that publishers can render server-side so search and AI crawlers that do not execute JavaScript can read the discussion; the EchoThread widget injects an equivalent block for crawlers that do. This ensures search engines index conversation context without requiring complex rendering workarounds on the client.

Wix Blog Comments vs. a Third-Party System: What a Moderator Should Compare

Solo creators often focus solely on the ease of pasting a script. In contrast, editorial leads, community managers, and multi-author publications judge commenting platforms on daily queue performance, spam filtering, and escalation safety when discussions turn aggressive. For a broader look at managing team queues, see our guide on comment moderation roles for editorial teams.

Operational Capability Wix Blog Comments EchoThread
Spam Scoring Architecture Basic account authentication Two layers: Siftfy scoring plus owner-authored deterministic rules
Custom Keyword Filtering None native Up to 2,000-entry owner-authored restricted-words list on every plan
Queue Triage Channels Wix administrative dashboard only Dashboard, email links without login, plus webhooks and API
User Moderation Actions Delete individual comment Per-site ban, trust, and bulk comment status handling
External Workflow Automation Limited platform automations Discord/Slack alerts, stdio MCP server, and n8n community node
Data Sovereignty Closed Wix ecosystem Per-site JSON/CSV import and export anytime

EchoThread provides spam and moderation tooling in two layers: AI-assisted spam scoring through its Siftfy integration, and deterministic rules the site owner writes themselves — a restricted-words list, per-site commenter bans and trust, and auto-closing old threads. EchoThread runs the owner's restricted-words rule before the classifier, and the EchoThread moderation queue shows which of the owner's own entries fired. EchoThread is not a built-in first-party AI moderation engine, and EchoThread's owner-authored controls are rules, not AI.

This deterministic approach matters during high-traffic disputes. Rather than guessing why a machine-learning model flagged or permitted a controversial post, the moderation queue exposes the exact keyword or boundary rule that triggered the hold.

The Moderation Queue You Get After Install

When launching a new comment section on a site with established traffic, spam bots usually arrive before organic commenters do. If a team lacks clear queue triage protocols, comment backlogs can waste hours of editorial staff time every week. To mitigate this risk, establish a predictable routine using a comment moderation queue throughput guide.

A typical Monday morning triage pass should take minutes rather than hours:

  1. Review Deterministic Holds: Check entries caught by your restricted-words list. Because rule matches are logged explicitly, moderators can quickly verify whether an entry is a legitimate violation or a false positive.
  2. Process Spam Classifications: Process borderline submissions caught by automated screening, validating flagged patterns in bulk.
  3. Update Contributor Trust: Identify frequent high-value community members and set their profile status to trusted, exempting them from pre-moderation delays.
  4. Handle Persistent Abuse: Apply per-site bans to repeat bad actors, reversing abusive comment bursts with a single action.

EchoThread owners and moderators can ban or trust a commenter on a per-site basis. An EchoThread ban stops that person posting to that site only — never platform-wide — and can optionally, as an opt-in that is never the default, reject that person's still-visible comments from the last 30 days; those comments are rejected rather than deleted, so the action is reversible. EchoThread's trust setting auto-approves that person's comments on that site, bypassing pre-moderation and a restricted-word hold, but never a restricted-word reject. EchoThread seat holders cannot be banned. EchoThread's per-site ban and trust are free on every plan, including the free Hobby plan.

EchoThread lets a site owner keep a restricted-words list of up to 2,000 entries, matched case-insensitively against the comment body and the author's display name, where "*" matches a run of non-space characters. The owner chooses once for the whole EchoThread restricted-words list whether a match holds the comment for review or rejects it; a display-name match always holds rather than rejects. EchoThread runs restricted-words matching before the spam classifier, so a comment the rule decides never reaches it, and the EchoThread moderation queue labels the decision as the owner's own rule and shows the text that matched. Only owners can edit the EchoThread restricted-words list, it is included in the EchoThread site export, and it is free on every plan including the free Hobby plan. For granular keyword patterns, see our tutorial on how to set up a restricted-words list for blog comments.

When discussions become overwhelming, automation keeps threads manageable. EchoThread can close a thread to new comments 30, 60, 90, 180, or 365 days after that thread was created, or leave threads open indefinitely. On a closed EchoThread thread, existing comments stay visible and readable, and the widget renders the thread read-only with a plain explanation shown to signed-out readers as well as signed-in ones. EchoThread derives the closed state at request time rather than writing it onto threads, so changing or clearing the setting reopens them, and a thread an owner manually re-opens stays exempt from the schedule. EchoThread's auto-close threads setting is free on every plan. For practical de-escalation tips, read our resource on how to handle hostile comment threads.

Cost, Limits, and What Changes at Scale

Selecting an infrastructure vendor requires clear visibility into how scale affects pricing. In commenting software, billing models typically track active sites, concurrent page views, or total comment volume. Editorial sites with viral traffic patterns face distinct financial risks compared to low-traffic niche sites.

Review the breakdown on the official EchoThread pricing page to choose an appropriate tier. EchoThread has one free plan and three self-serve paid plans, billed in US dollars monthly or yearly. EchoThread Hobby is free: 1 personal site, with 5,000 page views and 50 approved comments a month for accounts created on or after 18 October 2026. EchoThread Starter is $5 a month or $50 a year: 3 sites. EchoThread Pro is $19 a month or $190 a year: 10 sites. EchoThread Business is $79 a month or $790 a year: unlimited sites. EchoThread yearly billing costs ten months' price for twelve months. Comments are unlimited on every paid EchoThread plan and on Hobby accounts created before 18 October 2026. EchoThread sites created on or after 1 October 2026 carry a soft monthly page-view allowance of 10,000 on older Hobby accounts, 100,000 on Starter, 1,000,000 on Pro and unlimited on Business; EchoThread sites created before that date keep unmetered page views on every plan. EchoThread Enterprise is priced on request. EchoThread's paid plans remove the "Powered by EchoThread" footer. Unlike services with strict usage cutoffs that deactivate widgets during traffic spikes, EchoThread implements soft usage thresholds: if an article goes viral, EchoThread alerts the owner as traffic approaches and reaches the tier allowance, ensuring discussions remain accessible without unexpected service interruption.

As detailed on the EchoThread pricing overview, EchoThread monetizes through more sites, higher usage headroom, brand removal, and operational controls rather than ads, tracking, or data lock-in. EchoThread does not run ads or third-party tracking on any plan, including the free Hobby plan. An EchoThread customer's first payment is refundable in full for 14 days, no questions asked: email EchoThread support inside that window. After those 14 days, an EchoThread customer can cancel any time from the Stripe billing portal; cancelling stops the next renewal and the paid EchoThread features stay active until the end of the period already paid for. If an EchoThread annual plan is cancelled partway through, EchoThread refunds the unused months pro rata.

Common Wix Integration Problems and How to Diagnose Them

When running custom JavaScript embeds on Wix, specific technical glitches can occur. Use these diagnostics to troubleshoot issues quickly:

  • Widget renders twice: You loaded the script inside the global Wix Custom Code panel and also executed an embed script within a Velo page component. Remove the site-wide embed.
  • Widget renders nowhere: The target container element is absent from your post page template, or the mount script executed before the dynamic post data resolved.
  • Comments cross-post to the wrong article: The embed was keyed using a mutable post slug that changed, or the script uses a static thread identifier across all dynamic layouts.
  • Comments omitted from search index: Wix rendered the discussion inside a late-loading sandbox without a server-side read endpoint for crawlers.
  • Login loop during submission: The comment script domain is blocked by strict third-party cookie privacy settings inside the user's browser, or your authentication providers are not configured in your dashboard.

Frequently Asked Questions

How to add comments to wix blog?

To add comments to a Wix blog using an external tool, generate a site profile in your commenting system dashboard, open the Wix post page template, and inject a target container tied to the post's database identifier. Finally, load the platform's client-side script tag using Velo page code or an HTML embed element.

Can I add third-party comments to a Wix blog without Velo?

Yes. You can place the script and target container directly inside a Wix HTML iframe component on the post page. However, using Velo is the cleanest method to dynamically read the immutable post database ID and avoid broken threads if an article title or URL changes later.

Will a third-party comment widget slow down my Wix site?

A clean embed will not slow down your site, provided it does not load advertising trackers, analytical bloat, or heavy third-party libraries. The EchoThread widget is vanilla JavaScript with zero dependencies and loads asynchronously, preventing it from blocking post content rendering.

Can I import my existing Wix blog comments into a new comment system?

Native Wix blog comments cannot be exported automatically because Wix does not provide a standard export endpoint for its comment database. If you switch to an external service, past native comments remain in Wix, while all new discussions populate your new provider. Platforms like EchoThread allow full per-site export and import of their own discussion data, including imports from Disqus archives.

Do readers need an account to leave a comment on a Wix blog?

With native Wix comments, users must register as site members or sign in through supported social profiles. With a third-party solution like EchoThread, the site owner decides: readers can authenticate using Google, GitHub, X, Facebook, Discord, or magic links, or the owner can enable guest commenting without an account directly within site settings.

Conclusion: Install Once, Then Staff the Queue

Connecting an external discussion platform to a Wix blog takes an afternoon. The longer-term investment lies in your ongoing moderation workflows. If you are an installer, set up an immutable thread key tied to your Wix database ID before publishing the integration. If you are a moderator, configure your restricted-words list, define your escalation pathways, and establish your spam boundaries before your site experiences its first wave of hostile traffic.

If you are installing this week, create a free EchoThread site, copy the script tag, and mount it on one Wix post page before you touch the rest of the blog. If you already have a queue, start the 14-day Starter trial and run one Monday triage pass in the EchoThread dashboard before you decide.

Discussion

Comments

This thread runs on EchoThread — the same widget you would add to your own site.

No comments yet.

Ready to try EchoThread?

Free for your first site. Set up in under a minute.

Create free account