﻿---
title: "多说关了，Disqus 还在：一个评论框靠什么活下来"
description: "2017 年多说和网易云跟贴先后关停，Disqus 却一直活到今天。顺着这个现象往下追：评论框的成本在哪里，多说为什么撑不住，Disqus 怎么从同一代产品里胜出，它免费的代价是什么，第三方 cookie 这个空子为什么被堵上，以及今天的评论系统还能靠什么活下去。"
pubDate: 2026-10-14
tags: ["评论系统", "Disqus", "隐私", "商业模式"]
refs:
  - id: "1"
    title: "多说即将关闭，评论迁至何处？"
    url: "https://www.barretlee.com/blog/2017/03/21/duoshuo-comment-service-will-be-closed/"
    author: "Barret Lee"
    date: "2017-03-21"
    note: "多说关闭公告，转引自此文"
  - id: "1b"
    title: "搜狐转载"
    url: "http://www.sohu.com/a/129642729_615046"
    site: "搜狐"
    note: "多说关闭公告的转载"
  - id: "2"
    title: "继“多说”之后，网易云跟帖2017年8月1日停止服务"
    url: "https://boke112.com/article/p4039.html"
    site: "boke112"
    note: "网易云跟贴停止服务公告，转引自此文"
  - id: "3"
    title: "Disqus"
    url: "https://en.wikipedia.org/wiki/Disqus"
    site: "Wikipedia"
  - id: "3b"
    title: "Disqus has been acquired by marketing firm Zeta Global"
    url: "https://betanews.com/2017/12/06/zeta-global-acquires-disqus"
    site: "BetaNews"
    date: "2017-12-06"
    note: "规模数字见此文"
  - id: "4"
    title: "多说社会化评论框"
    url: "https://wordpress.org/plugins/duoshuo/"
    site: "WordPress.org"
  - id: "4b"
    title: "社会化评论系统“多说”"
    url: "http://bangerlee.blogspot.com/2012/12/blog-post_10.html"
    author: "bangerlee"
    date: "2012-12"
  - id: "5"
    title: "多说即将关闭，评论迁至何处？"
    url: "https://www.barretlee.com/blog/2017/03/21/duoshuo-comment-service-will-be-closed/"
    author: "Barret Lee"
    date: "2017-03-21"
    note: "同注 1"
  - id: "6"
    title: "互联网跟帖评论服务管理规定"
    url: "https://www.cac.gov.cn/2017-08/25/c_1121541842.htm"
    site: "国家互联网信息办公室"
    date: "2017-08-25"
    note: "2017-08-25 发布，2017-10-01 施行。2022 年已修订"
  - id: "7"
    title: "Echo (blog comment hosting service)"
    url: "https://en.wikipedia.org/wiki/Echo_(blog_comment_hosting_service)"
    site: "Wikipedia"
  - id: "8"
    title: "Automattic Has Acquired IntenseDebate's Enhanced Comment System"
    url: "https://techcrunch.com/2008/09/23/automattic-has-acquired-intensedebates-enhanced-comment-system"
    site: "TechCrunch"
    date: "2008-09-23"
  - id: "9"
    title: "Livefyre"
    url: "https://en.wikipedia.org/wiki/Livefyre"
    site: "Wikipedia"
  - id: "10"
    title: "Q&A With Disqus Founder Daniel Ha: 'We Weren't a Rocket-Like Startup'"
    url: "http://mediashift.org/2017/02/qa-disqus-founder-daniel-ha-werent-rocket-like-startup/"
    site: "MediaShift"
    date: "2017-02"
  - id: "11"
    title: "Disqus Releases Its Second Advertising Product, Sponsored Comments"
    url: "https://adexchanger.com/online-advertising/disqus-releases-its-second-advertising-product-sponsored-comments"
    site: "AdExchanger"
    date: "2014-04-07"
  - id: "12"
    title: "Daniel Ha, Disqus"
    url: "https://saasclub.io/podcast/daniel-ha-disqus/"
    site: "SaaS Club 播客"
    note: "收入数字为 Ha 在访谈中的口头说法"
  - id: "13"
    title: "Disqus Promoted Discovery report card"
    url: "https://techcrunch.com/2012/12/19/disqus-promoted-discovery-report-card/"
    site: "TechCrunch"
    date: "2012-12-19"
  - id: "14"
    title: "Comments Are Free: Disqus Makes Service Free for Users"
    url: "https://www.cmswire.com/cms/customer-experience/comments-are-free-disqus-makes-service-free-for-users-020437.php"
    site: "CMSWire"
    date: "2013-04-11"
  - id: "15"
    title: "Zeta Global acquires commenting platform Disqus for $90M"
    url: "https://siliconangle.com/blog/2017/12/05/zeta-global-acquires-commenting-platform-disqus-90m/"
    site: "SiliconANGLE"
    date: "2017-12-05"
  - id: "16"
    title: "Disqus and Zeta"
    url: "https://avc.com/?p=16898"
    author: "Fred Wilson"
  - id: "17"
    title: "Disqus Hits Sites with Unwanted Advertising, Plans to Charge Large Publishers a Monthly Fee to Remove Ads"
    url: "https://wptavern.com/disqus-hits-sites-with-unwanted-advertising-plans-to-charge-large-publishers-a-monthly-fee-to-remove-ads"
    site: "WP Tavern"
    date: "2017-02-17"
  - id: "18"
    title: "Disqus plans and pricing"
    url: "https://us.fitgap.com/products/disqus"
    site: "FitGap"
    note: "第三方汇总，官网价格页需浏览器渲染"
  - id: "19"
    title: "Disqus facing $3M fine in Norway for tracking users without consent"
    url: "https://techcrunch.com/2021/05/05/disqus-facing-3m-fine-in-norway-for-tracking-users-without-consent"
    site: "TechCrunch"
    date: "2021-05-05"
    note: "这是预先通知，最终结果待核实"
  - id: "20"
    title: "Apple Safari now blocks all third-party cookies by default"
    url: "https://www.sophos.com/en-us/blog/apple-safari-now-blocks-all-third-party-cookies-by-default"
    site: "Sophos"
  - id: "20b"
    title: "Apple Safari completely blocks third-party cookies"
    url: "https://gigazine.net/gsc_news/en/20200325-apple-safari-block-third-party-cookie/"
    site: "Gigazine"
    date: "2020-03-25"
  - id: "21"
    title: "Firefox rolls out Total Cookie Protection by default to all users worldwide"
    url: "https://blog.mozilla.org/en/mozilla/firefox-rolls-out-total-cookie-protection-by-default-to-all-users-worldwide/"
    site: "Mozilla"
    date: "2022-06-14"
  - id: "22"
    title: "Google has killed Privacy Sandbox"
    url: "https://engadget.com/cybersecurity/google-has-killed-privacy-sandbox-130029899.html"
    site: "Engadget"
    date: "2025-10"
  - id: "23"
    title: "47 U.S. Code § 230(c)(1)"
    url: "https://www.law.cornell.edu/uscode/text/47/230"
    site: "Cornell LII"
  - id: "24"
    title: "100 paying customers"
    url: "https://hyvor.com/blog/100-paying-customers"
    site: "Hyvor"
    date: "2020-11-10"
  - id: "24b"
    title: "2020 to 2021"
    url: "https://hyvor.com/blog/2020-to-2021"
    site: "Hyvor"
  - id: "25"
    title: "The Disqus Alternative Without the Ads"
    url: "https://fastcomments.com/disqus-alternative"
    site: "FastComments"
    note: "厂商自述"
  - id: "26"
    title: "Backed by NYT, OpenWeb becomes a tech unicorn"
    url: "https://www.axios.com/2021/11/09/nytimes-openweb-tech-unicorn"
    site: "Axios"
    date: "2021-11-09"
  - id: "27"
    title: "The Coral Project is Moving to Vox Media"
    url: "https://blog.mozilla.org/en/mozilla/the-coral-project-is-moving-to-vox-media/"
    site: "Mozilla"
    date: "2019-01-22"
  - id: "27b"
    title: "Vox Media is acquiring The Coral Project"
    url: "https://www.axios.com/2019/01/22/exclusive-vox-media-is-acquiring-coral-project-1548104279"
    site: "Axios"
  - id: "28"
    title: "giscus/giscus"
    url: "https://github.com/giscus/giscus"
    site: "GitHub"
  - id: "29"
    title: "umputun/remark42"
    url: "https://github.com/umputun/remark42"
    site: "GitHub"
  - id: "30"
    title: "twikoojs/twikoo"
    url: "https://github.com/twikoojs/twikoo"
    site: "GitHub"
  - id: "31"
    title: "关于 LeanCloud 停止对外提供服务的通知"
    url: "https://docs.leancloud.app/sdk/announcements/sunset-announcement/"
    site: "LeanCloud"
  - id: "32"
    title: "LeanCloud 2027-01-12 全面停服"
    url: "https://www.v2ex.com/t/1248047"
    site: "V2EX"
  - id: "33"
    title: "[北京] 多说 招募 PHP、Go 软件工程师"
    url: "https://www.v2ex.com/t/159415"
    site: "V2EX"
    date: "2015-01-05"
    note: "多说官方账号发布"
  - id: "34"
    title: "张利东再卸任字节跳动子公司高管职位"
    url: "https://tech.ifeng.com/c/7s4WUPjCECG"
    site: "凤凰网科技"
    date: "2019-12-02"
    note: "引用工商信息"
  - id: "35"
    title: "Disqus Picks Up A Half-Million Dollars From Fred Wilson And Angels"
    url: "https://techcrunch.com/2008/03/18/disqus-picks-up-a-half-million/"
    site: "TechCrunch"
    date: "2008-03-18"
  - id: "36"
    title: "Disqus rolls out improved global profiles, community box and more"
    url: "https://techcrunch.com/2010/08/10/disqus-rolls-out-improved-global-profiles-community-box-and-more/"
    site: "TechCrunch"
    date: "2010-08-10"
---

2017 年 3 月，很多中文博主在自己的后台看到了同一条通知：

> 因公司业务调整，非常遗憾的向大家宣布多说项目即将关闭。我们将于 2017 年 6 月 1 日正式关停服务，在此之前您可以通过后台的数据导出功能导出自己站点的评论数据。[^1][^1b]

多说是当时国内最流行的第三方评论框。一批博主连夜导出数据，迁到网易云跟贴。结果 7 月 6 日，网易云跟贴也发了通知：“因公司业务发展需要……云跟贴产品将于 2017 年 8 月 1 日停止服务。”[^2] 不到半年，两个主流的国产评论框都没了。

<!-- TODO: 这里可以补一段作者自己的经历：当年是否用过多说 / 网易云跟贴 / Disqus，迁移时遇到了什么。twwy.net 目前没有评论功能，也可以说说为什么。 -->

同一时期，海外的 Disqus 却一直活着。它 2007 年上线，到 2017 年已经装在 400 万个网站上[^3][^3b]，今天也还在运营。

于是有了几个问题：

1. 一个评论框到底在做什么？它的成本在哪里？
2. 多说为什么撑不下去？
3. 和 Disqus 同一代的评论框不少，为什么偏偏是它活下来？
4. Disqus 对绝大多数网站免费，它的钱从哪里来？
5. 这条路后来的人还能再走一次吗？
6. 不想走这条路的评论系统，又靠什么活着？

本文就顺着这几个问题往下讲。Disqus 是主线，因为它是这个品类里做得最成功的一个，它的成功和它的代价，都能解释多说的结局。

---

## 一、评论框在做什么

### 现象

接入一个第三方评论框，站长只需要在文章页里贴一段代码。以 Disqus 为例，大致是这样：

```html
<div id="disqus_thread"></div>
<script>
  var disqus_config = function () {
    this.page.url = "https://blog-a.example/posts/tmux/";
    this.page.identifier = "tmux-guide";
  };
  (function () {
    var s = document.createElement("script");
    s.src = "https://blog-a.example.disqus.com/embed.js";
    (document.head || document.body).appendChild(s);
  })();
</script>
```

一个静态博客没有数据库，也没有后端，贴上这段代码就有了评论区。多说当年也是这样：注册账号，拿到一段代码，粘到页面里就能用[^4][^4b]。

### 分析

这么简单的接入背后，评论服务替站长做了四件事：

- **线程映射**：评论服务要知道“这条评论属于哪篇文章”。上面代码里的 `page.url` 和 `page.identifier` 就是干这个的。文章换了网址，映射就断了，这也是迁移评论时最常见的问题。
- **身份**：谁在评论？多说的卖点是可以用新浪微博、QQ、人人、豆瓣等账号登录[^4][^4b]；Disqus 有自己的账号体系，一个账号在所有装了 Disqus 的网站上通用。
- **存储**：所有站点的评论都存在评论服务自己的数据库里。
- **治理**：反垃圾、审核、封禁。

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cmt-arch-title cmt-arch-desc">
<title id="cmt-arch-title">第三方评论框的结构</title>
<desc id="cmt-arch-desc">blog-a.example 的文章页里只有一个占位 div、一个 embed.js 脚本和 identifier tmux-guide。脚本插入一个来自 disqus.com 的 iframe，评论区在 iframe 里渲染。Disqus 服务器负责四件事：线程映射把 tmux-guide 对应到线程 t_90321，身份是跨站通用的账号，存储保存这个线程的 128 条评论，治理做反垃圾、审核和封禁。</desc>
<defs>
<marker id="cmt-arch-arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path class="dd-head" d="M1 1 L7 4 L1 7"/></marker>
<marker id="cmt-arch-arrow-acc" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path class="dd-head-acc" d="M1 1 L7 4 L1 7"/></marker>
</defs>
<rect class="dd-frame" width="800" height="400" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="248" height="368" rx="8"/>
<text class="t-zone" x="32" y="44">blog-a.example · 静态博客</text>
<rect class="dd-zone" x="280" y="16" width="504" height="368" rx="8"/>
<text class="t-zone" x="296" y="44">Disqus 服务器</text>
<path class="dd-edge" d="M140 182 V218" marker-end="url(#cmt-arch-arrow)"/>
<path class="dd-edge-acc" d="M248 250 H264 Q272 250 272 242 V160 Q272 152 280 152 H290" marker-end="url(#cmt-arch-arrow-acc)"/>
<path class="dd-edge-acc" d="M410 182 V202" marker-end="url(#cmt-arch-arrow-acc)"/>
<rect class="dd-card" x="32" y="72" width="216" height="110" rx="6"/>
<path class="dd-card-head" d="M32.6 104 V78 Q32.6 72.6 38 72.6 H242 Q247.4 72.6 247.4 78 V104 Z"/>
<line class="dd-edge" x1="32" y1="104" x2="248" y2="104"/>
<text class="t-name" x="48" y="93">文章页</text>
<text class="t-note" x="232" y="93" text-anchor="end">/posts/tmux/</text>
<text class="t-mono" x="48" y="121">div</text><text class="t-val" x="232" y="121" text-anchor="end">#disqus_thread</text>
<line class="dd-hair" x1="48" y1="130" x2="232" y2="130"/>
<text class="t-mono" x="48" y="147">script</text><text class="t-val" x="232" y="147" text-anchor="end">embed.js</text>
<line class="dd-hair" x1="48" y1="156" x2="232" y2="156"/>
<text class="t-mono" x="48" y="173">identifier</text><text class="t-val t-acc" x="232" y="173" text-anchor="end">tmux-guide</text>
<rect class="dd-derived" x="32" y="224" width="216" height="84" rx="6"/>
<text class="t-name" x="48" y="250">iframe</text>
<text class="t-val" x="48" y="272">disqus.com/embed/…</text>
<text class="t-note" x="48" y="292">评论区在这里渲染</text>
<text class="t-say" x="32" y="336">虚线：站长的服务器上没有它，</text>
<text class="t-say" x="32" y="354">它是 disqus.com 的页面。</text>
<rect class="dd-card" x="296" y="72" width="228" height="110" rx="6"/>
<path class="dd-card-head" d="M296.6 104 V78 Q296.6 72.6 302 72.6 H518 Q523.4 72.6 523.4 78 V104 Z"/>
<line class="dd-edge" x1="296" y1="104" x2="524" y2="104"/>
<text class="t-name" x="312" y="93">线程映射</text>
<text class="t-mono" x="312" y="121">forum</text><text class="t-val" x="508" y="121" text-anchor="end">blog-a</text>
<line class="dd-hair" x1="312" y1="130" x2="508" y2="130"/>
<text class="t-mono" x="312" y="147">identifier</text><text class="t-val t-acc" x="508" y="147" text-anchor="end">tmux-guide</text>
<line class="dd-hair" x1="312" y1="156" x2="508" y2="156"/>
<text class="t-mono" x="312" y="173">thread</text><text class="t-val t-acc" x="508" y="173" text-anchor="end">t_90321</text>
<rect class="dd-card" x="540" y="72" width="228" height="110" rx="6"/>
<path class="dd-card-head" d="M540.6 104 V78 Q540.6 72.6 546 72.6 H762 Q767.4 72.6 767.4 78 V104 Z"/>
<line class="dd-edge" x1="540" y1="104" x2="768" y2="104"/>
<text class="t-name" x="556" y="93">身份</text>
<text class="t-mono" x="556" y="121">账号</text><text class="t-val" x="752" y="121" text-anchor="end">alice</text>
<line class="dd-hair" x1="556" y1="130" x2="752" y2="130"/>
<text class="t-mono" x="556" y="147">登录</text><text class="t-val" x="752" y="147" text-anchor="end">Disqus / 社交账号</text>
<line class="dd-hair" x1="556" y1="156" x2="752" y2="156"/>
<text class="t-mono" x="556" y="173">范围</text><text class="t-val" x="752" y="173" text-anchor="end">所有装了 Disqus 的站点</text>
<rect class="dd-card" x="296" y="208" width="228" height="110" rx="6"/>
<path class="dd-card-head" d="M296.6 240 V214 Q296.6 208.6 302 208.6 H518 Q523.4 208.6 523.4 214 V240 Z"/>
<line class="dd-edge" x1="296" y1="240" x2="524" y2="240"/>
<text class="t-name" x="312" y="229">存储</text>
<text class="t-mono" x="312" y="257">thread</text><text class="t-val t-acc" x="508" y="257" text-anchor="end">t_90321</text>
<line class="dd-hair" x1="312" y1="266" x2="508" y2="266"/>
<text class="t-mono" x="312" y="283">评论</text><text class="t-val" x="508" y="283" text-anchor="end">128 条</text>
<line class="dd-hair" x1="312" y1="292" x2="508" y2="292"/>
<text class="t-mono" x="312" y="309">位置</text><text class="t-val" x="508" y="309" text-anchor="end">Disqus 的数据库</text>
<rect class="dd-card" x="540" y="208" width="228" height="110" rx="6"/>
<path class="dd-card-head" d="M540.6 240 V214 Q540.6 208.6 546 208.6 H762 Q767.4 208.6 767.4 214 V240 Z"/>
<line class="dd-edge" x1="540" y1="240" x2="768" y2="240"/>
<text class="t-name" x="556" y="229">治理</text>
<text class="t-mono" x="556" y="257">反垃圾</text><text class="t-val" x="752" y="257" text-anchor="end">自动过滤</text>
<line class="dd-hair" x1="556" y1="266" x2="752" y2="266"/>
<text class="t-mono" x="556" y="283">审核队列</text><text class="t-val" x="752" y="283" text-anchor="end">3 条待审</text>
<line class="dd-hair" x1="556" y1="292" x2="752" y2="292"/>
<text class="t-mono" x="556" y="309">封禁</text><text class="t-val" x="752" y="309" text-anchor="end">账号 / IP</text>
<text class="t-say" x="296" y="354">前三件技术上不难，持续花钱的是治理。</text>
</svg>
</div>
<figcaption>图 1 · 站长只贴了一段代码，线程映射、身份、存储、治理四件事都在评论服务那边完成。名称和数值均为示意。</figcaption>
</figure>


前三件事技术上并不难，服务器和带宽也不算贵。真正持续花钱的是第四件：垃圾评论永远在进化，审核需要人。而且评论服务替成千上万个站点托管评论，这些站点上出的任何问题，最后都落到它身上。

**每一项都有成本，那多说的成本由谁来付？**

---

## 二、多说的困境

### 现象

多说对站长的宣传口径是“永久免费”。它没有广告，也没有收费的增值服务。

### 原因

答案只能是母公司。多说团队 2015 年 1 月在 V2EX 发过一篇招聘帖，里面说这个产品“起源于 2012 年年初，一直保持着 3-5 人左右的团队规模”，由沈振宇、尤小右等人创建，当时日均 API 请求在 1 到 2 亿次左右[^33]。名字里带着“多说”的北京多说有益网络科技有限公司成立于 2013 年 5 月，2019 年的工商信息显示，它由字节跳动有限公司全资持股[^34]。也就是说，多说后来成了今日头条体系里的一个小项目。据当时博主的说法，并入之后资源并没有增加，维护的人反而更少，有半年多只有一个人维护前后台[^5]。这和公告里那句轻描淡写的“公司业务调整”是对得上的：**一个没有收入、靠母公司养着的产品，母公司一调整，它就没了。** 网易云跟贴的公告用的也是同一句话。

用户这一侧也在流失。有研发能力的公司不愿意把评论数据放在第三方，剩下的主要是个人博客；而 2015 年以后，个人写作大量转到微信公众号、知乎和各种内容平台，讨论也跟着留在了平台上[^5]。

还有一件事发生在同一年。2017 年 8 月 25 日，国家网信办发布《互联网跟帖评论服务管理规定》，10 月 1 日施行。它要求跟帖评论服务提供者按照“后台实名、前台自愿”的原则认证用户身份，“不得向未认证真实身份信息的用户提供跟帖评论服务”；要建立“跟帖评论审核管理、实时巡查、应急处置”等制度，配备与服务规模相适应的审核人员；对新闻类跟帖还要“先审后发”[^6]。

对一个替上万个站点托管评论的第三方来说，这意味着要替所有站点承担实名和审核的责任。多说（6 月）和网易云跟贴（8 月）都在规定施行前关停。需要说明的是，两家的公告都没有提到监管，**这一联系是我的推断**。更稳妥的说法是：本来就没有收入，治理成本又眼看要大幅上升，母公司没有理由继续养着它。

### 引出新问题

到这里，结论似乎很简单：免费的评论框活不下去。可 Disqus 对绝大多数网站也是免费的，它为什么能活？

先把两者的时间线放在一起看：

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 424" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cmt-tl-title cmt-tl-desc">
<title id="cmt-tl-title">Disqus 与多说的时间线对比</title>
<desc id="cmt-tl-desc">Disqus 2007 年 10 月上线，2008 年 3 月有 4000 多个博客，2010 年 8 月 50 万个站点、月独立访客 1.3 亿，2012 年底上线推广链接转向广告，2014 年 4 月约 300 万站点、月独立访客 13 亿，2017 年 12 月有 400 万站点时被 Zeta 以约 9000 万美元收购，至今仍在运营。多说 2012 年初起步，这时 Disqus 已经上线四年多；2013 年 5 月成立公司，后来由字节跳动全资持股；2015 年 1 月团队 6 人、日均 API 请求 1 到 2 亿次；2017 年 6 月 1 日停服。多说没有公开过站点数。</desc>
<defs>
<marker id="cmt-tl-arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path class="dd-head" d="M1 1 L7 4 L1 7"/></marker>
</defs>
<rect class="dd-frame" width="800" height="424" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="768" height="176" rx="8"/>
<text class="t-zone" x="32" y="44">Disqus</text>
<rect class="dd-zone" x="16" y="208" width="768" height="176" rx="8"/>
<text class="t-zone" x="32" y="236">多说</text>
<line class="dd-hair" x1="96" y1="384" x2="96" y2="394"/>
<text class="t-note" x="96" y="408" text-anchor="middle">2007</text>
<line class="dd-edge" x1="156" y1="115" x2="156" y2="125"/>
<line class="dd-hair" x1="156" y1="384" x2="156" y2="394"/>
<text class="t-note" x="156" y="408" text-anchor="middle">2008</text>
<line class="dd-edge" x1="216" y1="115" x2="216" y2="125"/>
<line class="dd-hair" x1="216" y1="384" x2="216" y2="394"/>
<text class="t-note" x="216" y="408" text-anchor="middle">2009</text>
<line class="dd-edge" x1="276" y1="115" x2="276" y2="125"/>
<line class="dd-hair" x1="276" y1="384" x2="276" y2="394"/>
<text class="t-note" x="276" y="408" text-anchor="middle">2010</text>
<line class="dd-edge" x1="336" y1="115" x2="336" y2="125"/>
<line class="dd-hair" x1="336" y1="384" x2="336" y2="394"/>
<text class="t-note" x="336" y="408" text-anchor="middle">2011</text>
<line class="dd-edge" x1="396" y1="115" x2="396" y2="125"/>
<line class="dd-edge" x1="396" y1="307" x2="396" y2="317"/>
<line class="dd-hair" x1="396" y1="384" x2="396" y2="394"/>
<text class="t-note" x="396" y="408" text-anchor="middle">2012</text>
<line class="dd-edge" x1="456" y1="115" x2="456" y2="125"/>
<line class="dd-edge" x1="456" y1="307" x2="456" y2="317"/>
<line class="dd-hair" x1="456" y1="384" x2="456" y2="394"/>
<text class="t-note" x="456" y="408" text-anchor="middle">2013</text>
<line class="dd-edge" x1="516" y1="115" x2="516" y2="125"/>
<line class="dd-edge" x1="516" y1="307" x2="516" y2="317"/>
<line class="dd-hair" x1="516" y1="384" x2="516" y2="394"/>
<text class="t-note" x="516" y="408" text-anchor="middle">2014</text>
<line class="dd-edge" x1="576" y1="115" x2="576" y2="125"/>
<line class="dd-edge" x1="576" y1="307" x2="576" y2="317"/>
<line class="dd-hair" x1="576" y1="384" x2="576" y2="394"/>
<text class="t-note" x="576" y="408" text-anchor="middle">2015</text>
<line class="dd-edge" x1="636" y1="115" x2="636" y2="125"/>
<line class="dd-edge" x1="636" y1="307" x2="636" y2="317"/>
<line class="dd-hair" x1="636" y1="384" x2="636" y2="394"/>
<text class="t-note" x="636" y="408" text-anchor="middle">2016</text>
<line class="dd-edge" x1="696" y1="115" x2="696" y2="125"/>
<line class="dd-edge" x1="696" y1="307" x2="696" y2="317"/>
<line class="dd-hair" x1="696" y1="384" x2="696" y2="394"/>
<text class="t-note" x="696" y="408" text-anchor="middle">2017</text>
<line class="dd-edge" x1="756" y1="115" x2="756" y2="125"/>
<line class="dd-hair" x1="756" y1="384" x2="756" y2="394"/>
<text class="t-note" x="756" y="408" text-anchor="middle">2018</text>
<path class="dd-edge" d="M141 120 H781" marker-end="url(#cmt-tl-arrow)"/>
<path class="dd-edge" d="M396 312 H721"/>
<line class="dd-edge" x1="721" y1="304" x2="721" y2="320"/>
<path class="dd-edge-acc dd-dash" d="M396 56 V384"/>
<circle class="dd-card" cx="141" cy="120" r="4"/>
<text class="t-name" x="141" y="76" text-anchor="middle">上线</text>
<text class="t-note" x="141" y="92" text-anchor="middle">2007-10 · YC 项目</text>
<circle class="dd-card" cx="166" cy="120" r="4"/>
<text class="t-name" x="166" y="148" text-anchor="middle">4000+ 博客</text>
<text class="t-note" x="166" y="164" text-anchor="middle">约 6 万评论者</text>
<circle class="dd-card" cx="311" cy="120" r="4"/>
<text class="t-name" x="311" y="76" text-anchor="middle">50 万站点</text>
<text class="t-note" x="311" y="92" text-anchor="middle">月独立访客 1.3 亿</text>
<circle class="dd-card" cx="451" cy="120" r="4"/>
<text class="t-name" x="451" y="148" text-anchor="middle">转向广告</text>
<text class="t-note" x="451" y="164" text-anchor="middle">推广链接上线</text>
<circle class="dd-card" cx="531" cy="120" r="4"/>
<text class="t-name" x="531" y="76" text-anchor="middle">约 300 万站点</text>
<text class="t-note" x="531" y="92" text-anchor="middle">月独立访客 13 亿</text>
<circle class="dd-card" cx="751" cy="120" r="4"/>
<text class="t-name" x="751" y="76" text-anchor="end">被 Zeta 收购</text>
<text class="t-note" x="751" y="92" text-anchor="end">400 万站点 · 约 9000 万美元</text>
<text class="t-note" x="768" y="148" text-anchor="end">至今仍在运营</text>
<circle class="dd-card" cx="396" cy="312" r="4"/>
<text class="t-name t-acc" x="404" y="268" text-anchor="start">起步</text>
<text class="t-note" x="404" y="284" text-anchor="start">2012 年初</text>
<circle class="dd-card" cx="476" cy="312" r="4"/>
<text class="t-name" x="476" y="340" text-anchor="middle">成立公司</text>
<text class="t-note" x="476" y="356" text-anchor="middle">北京多说有益网络科技</text>
<text class="t-note" x="476" y="372" text-anchor="middle">后由字节跳动全资持股</text>
<circle class="dd-card" cx="576" cy="312" r="4"/>
<text class="t-name" x="576" y="268" text-anchor="middle">6 人团队</text>
<text class="t-note" x="576" y="284" text-anchor="middle">日均 API 请求 1–2 亿</text>
<circle class="dd-card" cx="721" cy="312" r="4"/>
<text class="t-name" x="721" y="340" text-anchor="middle">停服</text>
<text class="t-note" x="721" y="356" text-anchor="middle">2017-06-01</text>
<text class="t-say" x="384" y="282" text-anchor="end">多说起步时，Disqus 已经上线四年多，</text>
<text class="t-say" x="384" y="300" text-anchor="end">装在 50 万个以上的站点上。</text>
<text class="t-note" x="384" y="340" text-anchor="end">多说没有公开过站点数</text>
</svg>
</div>
<figcaption>图 2 · 两条时间线放在一起：Disqus 起步早了四年多，等多说出场时，它已经在规模上遥遥领先。Disqus 的数字来自当时的报道，多说没有公开过站点数，只有 2015 年披露的 API 请求量。</figcaption>
</figure>

图里 Disqus 的规模数字来自各个时间点的报道：2008 年 3 月拿到第一笔 50 万美元投资时，它有 4000 多个博客、近 6 万名评论者[^35]；2010 年 8 月是 50 万个站点、每月 1.3 亿独立访客、1300 万个用户资料[^36]；2014 年约 300 万站点[^11]，2017 年被收购时 400 万站点[^3][^3b]。多说从来没有公开过站点数，能找到的只有 2015 年那条“日均 API 请求 1 到 2 亿次”。

两条线放在一起，先后已经很清楚：多说 2012 年起步时，Disqus 已经上线四年多，装在 50 万个以上的站点上，并且正要从卖软件转向广告。多说在起点上就晚了一个阶段。**那 Disqus 这四年多是怎么走过来的？**

---

## 三、Disqus 的成长路径

### 它不是第一个

先纠正一个常见的印象：Disqus 并不是第三方评论框的开创者。Haloscan 2002 年就在做博客评论托管；JS-Kit 2006 年上线，2008 年收购了 Haloscan，2009 年改名 Echo[^7]。IntenseDebate 和 Disqus 同在 2007 年秋天上线，同样有跨博客的用户资料和评论追踪[^8]。

这一代产品的思路其实差不多，结局却各不相同：

- **IntenseDebate** 2008 年被 WordPress 的母公司 Automattic 收购，功能并进了 WordPress[^8]，此后不再是一个独立的竞争者。
- **Echo** 2012 年退出评论托管，转做社交媒体应用[^7]。
- **Livefyre** 2009 年创立，走面向大媒体的企业路线，融资约 6700 万美元，2016 年被 Adobe 收购，2021 年 11 月 30 日全部关停[^9]。

所以更准确的说法是：Disqus 是这一代评论框里唯一一个保持独立并做大的。

### 冷启动：让评论框自己传播

Disqus 是两个 UC Davis 本科生 Daniel Ha 和 Jason Yan 做的，2007 年进了 Y Combinator，10 月 30 日上线[^3][^3b]。最早的 150 到 200 个站点，是 Ha 一个个给自己喜欢的博主写邮件拉来的，他们当时把这件事当成“school project rather than a commercial project”[^10]。

之后的增长主要靠产品自己。Ha 的原话是：“most installs come from people clicking on the Disqus logo.”[^10] 一个读者在 A 站用 Disqus 评论，觉得好用，就把它装到自己的博客，或者推荐给常去的小众社区。

这里有一个关键的设计：**一个 Disqus 账号在所有装了 Disqus 的网站上通用**，点开评论者的名字，能看到他在其他站点的全部评论[^11]。对评论者来说，这是一个跨站的身份；对站长来说，装上 Disqus 就自带一批已经有账号的评论者。站点越多，账号越有用；账号越多，站长越愿意装。

Ha 自己也说：“We weren't a rocket-like startup.”[^10] 没有爆发，靠的是复利。

### 第一次尝试：卖软件

规模有了，下一步是赚钱。Disqus 最先试的是 SaaS：把高级功能卖给大出版商。按 Ha 在一次访谈里的说法，这一模式第一年收入大约 200 到 250 万美元，但需要养一支昂贵的销售团队[^12]。他讲过一次失败的推销：去纽约时报，迟到了 15 分钟，一直在讲功能和体验，而对方关心的是品牌、数据、用户召回和变现[^12]。

这次失败其实点明了问题：**大出版商要的不是一个更好用的评论框，而是它能带来的数据和收入。**

### 解决：变成一个广告网络

2012 年，Disqus 换了方向。夏天，它在评论区上方加了一个文章推荐模块（Discovery），年底在里面加上按点击竞价的推广链接（Promoted Discovery）。到 2012 年 12 月，已经有一万多家出版商接入，每月 15 亿次页面浏览、50 亿次广告展示[^13]。按 Ha 的说法，广告模式第一年的收入约 1000 万美元，是 SaaS 的四倍左右[^12]。

2013 年 4 月，Disqus 取消了收费的支持套餐，对所有站点免费，出版商可以从推广链接中按点击分成[^14]。2014 年 4 月又上线了 Sponsored Comments，在评论区顶部放一条品牌推广。当时 Disqus 装在约 300 万个网站上，每月 13 亿独立访客，负责这块业务的高管说：“we have a lot of information on users.”[^11]

### 引出新问题

注意这句话。一个评论框为什么会有“很多用户信息”？它不是只在别人的网站上显示几条评论吗？

**要回答这个问题，得看评论框在浏览器里到底是怎么运行的。**

---

## 四、第三方 cookie 的空子

### 原理

回到第一节那段嵌入代码。`embed.js` 加载后，会在页面的 `#disqus_thread` 里插入一个来自 `disqus.com` 的 iframe，评论区实际上是在这个 iframe 里运行的。

浏览器给 iframe 发请求时，会带上 `disqus.com` 这个域名下的 cookie。关键在于，**cookie 是按请求的目标域名存放的，而不是按读者当前访问的网站**。在 A 站嵌入的 Disqus 和在 B 站嵌入的 Disqus，读的是同一罐 `disqus.com` 的 cookie。这类“读者没有直接访问，却在别人页面里设置和读取”的 cookie，就叫**第三方 cookie**。

于是事情就变成了这样：

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cmt-3pc-title cmt-3pc-desc">
<title id="cmt-3pc-title">同一个第三方 cookie，在两个站点上带出同一个 ID</title>
<desc id="cmt-3pc-desc">读者在两个标签页里分别打开 blog-a.example 和 news-b.example，两个页面都嵌入了 disqus.com 的 iframe。浏览器为 disqus.com 只存一份 cookie，两个 iframe 带出同一个 visitor_id 8f3a91。Disqus 服务器把这个 ID 在不同站点上的访问记录拼在一起，得到一份跨站画像。</desc>
<defs>
<marker id="cmt-3pc-arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path class="dd-head" d="M1 1 L7 4 L1 7"/></marker>
<marker id="cmt-3pc-arrow-acc" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path class="dd-head-acc" d="M1 1 L7 4 L1 7"/></marker>
</defs>
<rect class="dd-frame" width="800" height="400" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="488" height="368" rx="8"/>
<text class="t-zone" x="32" y="44">浏览器 · 同一位读者</text>
<rect class="dd-zone" x="520" y="16" width="264" height="368" rx="8"/>
<text class="t-zone" x="536" y="44">Disqus 服务器</text>
<path class="dd-edge" d="M140 182 V242" marker-end="url(#cmt-3pc-arrow)"/>
<path class="dd-edge" d="M380 182 V242" marker-end="url(#cmt-3pc-arrow)"/>
<path class="dd-edge-acc" d="M488 306 H504 Q512 306 512 298 V148 Q512 140 520 140 H530" marker-end="url(#cmt-3pc-arrow-acc)"/>
<path class="dd-edge-acc" d="M652 208 V242" marker-end="url(#cmt-3pc-arrow-acc)"/>
<rect class="dd-card" x="32" y="72" width="216" height="110" rx="6"/>
<path class="dd-card-head" d="M32.6 104 V78 Q32.6 72.6 38 72.6 H242 Q247.4 72.6 247.4 78 V104 Z"/>
<line class="dd-edge" x1="32" y1="104" x2="248" y2="104"/>
<text class="t-name" x="48" y="93">标签页 1</text>
<text class="t-note" x="232" y="93" text-anchor="end">blog-a.example</text>
<text class="t-mono" x="48" y="121">页面</text><text class="t-val" x="232" y="121" text-anchor="end">/posts/tmux</text>
<line class="dd-hair" x1="48" y1="130" x2="232" y2="130"/>
<text class="t-mono" x="48" y="147">iframe</text><text class="t-val" x="232" y="147" text-anchor="end">disqus.com</text>
<line class="dd-hair" x1="48" y1="156" x2="232" y2="156"/>
<text class="t-mono" x="48" y="173">带出</text><text class="t-val t-acc" x="232" y="173" text-anchor="end">8f3a91</text>
<rect class="dd-card" x="272" y="72" width="216" height="110" rx="6"/>
<path class="dd-card-head" d="M272.6 104 V78 Q272.6 72.6 278 72.6 H482 Q487.4 72.6 487.4 78 V104 Z"/>
<line class="dd-edge" x1="272" y1="104" x2="488" y2="104"/>
<text class="t-name" x="288" y="93">标签页 2</text>
<text class="t-note" x="472" y="93" text-anchor="end">news-b.example</text>
<text class="t-mono" x="288" y="121">页面</text><text class="t-val" x="472" y="121" text-anchor="end">/2026/10/ai</text>
<line class="dd-hair" x1="288" y1="130" x2="472" y2="130"/>
<text class="t-mono" x="288" y="147">iframe</text><text class="t-val" x="472" y="147" text-anchor="end">disqus.com</text>
<line class="dd-hair" x1="288" y1="156" x2="472" y2="156"/>
<text class="t-mono" x="288" y="173">带出</text><text class="t-val t-acc" x="472" y="173" text-anchor="end">8f3a91</text>
<rect class="dd-card" x="32" y="248" width="456" height="84" rx="6"/>
<path class="dd-card-head" d="M32.6 280 V254 Q32.6 248.6 38 248.6 H482 Q487.4 248.6 487.4 254 V280 Z"/>
<line class="dd-edge" x1="32" y1="280" x2="488" y2="280"/>
<text class="t-name" x="48" y="269">cookie 罐</text>
<text class="t-note" x="472" y="269" text-anchor="end">disqus.com</text>
<text class="t-mono" x="48" y="297">visitor_id</text><text class="t-val t-acc" x="472" y="297" text-anchor="end">8f3a91</text>
<line class="dd-hair" x1="48" y1="306" x2="472" y2="306"/>
<text class="t-mono" x="48" y="323">发送时机</text><text class="t-val" x="472" y="323" text-anchor="end">任何页面里加载了 disqus.com 的 iframe</text>
<text class="t-say" x="32" y="356">cookie 按 disqus.com 存放，不按读者打开的网站存放，</text>
<text class="t-say" x="32" y="374">所以两个站点带出的是同一个 ID。</text>
<rect class="dd-card" x="536" y="72" width="232" height="136" rx="6"/>
<path class="dd-card-head" d="M536.6 104 V78 Q536.6 72.6 542 72.6 H762 Q767.4 72.6 767.4 78 V104 Z"/>
<line class="dd-edge" x1="536" y1="104" x2="768" y2="104"/>
<text class="t-name" x="552" y="93">访问日志</text>
<text class="t-val t-acc" x="752" y="93" text-anchor="end">8f3a91</text>
<text class="t-mono" x="552" y="121">blog-a.example</text><text class="t-val" x="752" y="121" text-anchor="end">/posts/tmux</text>
<line class="dd-hair" x1="552" y1="130" x2="752" y2="130"/>
<text class="t-mono" x="552" y="147">news-b.example</text><text class="t-val" x="752" y="147" text-anchor="end">/2026/10/ai</text>
<line class="dd-hair" x1="552" y1="156" x2="752" y2="156"/>
<text class="t-mono" x="552" y="173">shop-c.example</text><text class="t-val" x="752" y="173" text-anchor="end">/item/4471</text>
<line class="dd-hair" x1="552" y1="182" x2="752" y2="182"/>
<text class="t-note" x="552" y="199">…</text>
<rect class="dd-card" x="536" y="248" width="232" height="110" rx="6"/>
<path class="dd-card-head" d="M536.6 280 V254 Q536.6 248.6 542 248.6 H762 Q767.4 248.6 767.4 254 V280 Z"/>
<line class="dd-edge" x1="536" y1="280" x2="768" y2="280"/>
<text class="t-name" x="552" y="269">画像</text>
<text class="t-val t-acc" x="752" y="269" text-anchor="end">8f3a91</text>
<text class="t-mono" x="552" y="297">兴趣</text><text class="t-val" x="752" y="297" text-anchor="end">终端工具、科技新闻</text>
<line class="dd-hair" x1="552" y1="306" x2="752" y2="306"/>
<text class="t-mono" x="552" y="323">出现站点</text><text class="t-val" x="752" y="323" text-anchor="end">3 个</text>
<line class="dd-hair" x1="552" y1="332" x2="752" y2="332"/>
<text class="t-mono" x="552" y="349">用途</text><text class="t-val" x="752" y="349" text-anchor="end">定向广告</text>
</svg>
</div>
<figcaption>图 3 · 评论框嵌在别人的页面上，cookie 却记在自己的域名下，于是能把同一个读者在不同网站上的足迹拼在一起。站点、ID 和字段均为示意。</figcaption>
</figure>

这里有两点值得多想一下。

第一，**被识别的不只是评论者，而是所有读者**。iframe 对每一个打开页面的人都会加载，不管他有没有登录、有没有评论。

第二，**这份数据是站长替它攒的**。读者从来没有主动访问过 `disqus.com`，是几百万个站长把它嵌进了自己的页面。站长得到了一个免费的评论区，Disqus 得到了覆盖几百万个网站的读者行为数据。

### 这就是 Disqus 真正的产品

明白了这一层，前面的几件事就都说得通了：

- Promoted Discovery 和 Sponsored Comments 能卖出去，是因为 Disqus 知道每个读者大概对什么感兴趣。
- 2017 年 12 月，营销公司 Zeta Global 收购 Disqus，价格没有公开，据报道约 9000 万美元。Disqus 的 CEO 在接受采访时说，这笔交易给 Zeta 带去了 15 亿个 cookie（也就是 15 亿个访客标识），让营销者可以做更多定向[^15]。一家营销公司买一个评论框，买的是什么，已经很清楚了。
- Disqus 的投资人 Fred Wilson 在收购后写道，这家公司是盈利的[^16]。

所以 Disqus 能对站长免费，不是因为评论框不花钱，而是因为**评论框本身就是一个嵌在几百万个网站上的数据采集器，站长是它的分发渠道**。

### 代价

这种模式也有代价，主要落在两头。

站长这一头，免费的条件越来越苛刻。2017 年 2 月，不少免费站点发现自己的评论区里突然出现了广告，质量还很差，Disqus 同时宣布大站要付月费才能去掉广告[^17]。到今天，免费的 Basic 套餐必须展示广告，不能放广告的网站可能需要购买无广告的订阅[^18]。

读者这一头，是隐私。2021 年 5 月，挪威数据保护局宣布拟对 Disqus 罚款 250 万欧元。调查发现，Disqus 插件的默认设置会让网站开启数据共享，这些数据可以用于广告定向；Disqus 依据所谓的“正当利益”做跨站、跨设备的追踪、画像和向营销方披露数据，而监管机构认为这必须取得用户同意。被波及的是挪威 7 家网站上的几十万人，数据可能涉及未成年人和政治观点[^19]。

### 引出新问题

既然这条路这么好用，为什么没有第二个 Disqus？**后来的人还能再走一次吗？**

---

## 五、不可复刻的条件

### 浏览器把空子堵上了

第三方 cookie 能跨站识别同一个人，前提是浏览器给每个第三方域名只留一罐 cookie。从 2017 年开始，浏览器一家接一家地改了这个前提：

- **Safari**：2017 年推出智能防跟踪（ITP），2020 年 Safari 13.1 起默认完全阻止第三方 cookie[^20][^20b]。
- **Firefox**：2019 年起对所有用户默认开启增强跟踪保护，列表里的跟踪者拿不到第三方 cookie；2022 年起默认开启 Total Cookie Protection，给每个网站一个独立的“cookie 罐”[^21]。

后一种做法叫**分区存储**，它正好切断了图 3 里的那条线：

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cmt-part-title cmt-part-desc">
<title id="cmt-part-title">分区存储之后，两个站点上的 disqus.com 各有一罐 cookie</title>
<desc id="cmt-part-desc">浏览器按读者打开的网站给第三方 cookie 分区：blog-a.example 里的 disqus.com iframe 带出 8f3a91，news-b.example 里的带出 2c07e4。服务器只看到两个互不相干的 ID，拼不出跨站画像。</desc>
<defs>
<marker id="cmt-part-arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path class="dd-head" d="M1 1 L7 4 L1 7"/></marker>
<marker id="cmt-part-arrow-acc" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path class="dd-head-acc" d="M1 1 L7 4 L1 7"/></marker>
</defs>
<rect class="dd-frame" width="800" height="400" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="488" height="368" rx="8"/>
<text class="t-zone" x="32" y="44">浏览器 · 同一位读者（分区存储）</text>
<rect class="dd-zone" x="520" y="16" width="264" height="368" rx="8"/>
<text class="t-zone" x="536" y="44">Disqus 服务器</text>
<path class="dd-edge-acc" d="M488 121 H530" marker-end="url(#cmt-part-arrow-acc)"/>
<path class="dd-edge" d="M488 241 H504 Q512 241 512 233 V155 Q512 147 520 147 H530" marker-end="url(#cmt-part-arrow)"/>
<path class="dd-edge dd-dash" d="M652 156 V218" marker-end="url(#cmt-part-arrow)"/>
<rect class="dd-card" x="32" y="72" width="456" height="84" rx="6"/>
<path class="dd-card-head" d="M32.6 104 V78 Q32.6 72.6 38 72.6 H482 Q487.4 72.6 487.4 78 V104 Z"/>
<line class="dd-edge" x1="32" y1="104" x2="488" y2="104"/>
<text class="t-name" x="48" y="93">cookie 罐</text>
<text class="t-note" x="472" y="93" text-anchor="end">分区 blog-a.example · 域 disqus.com</text>
<text class="t-mono" x="48" y="121">visitor_id</text><text class="t-val t-acc" x="472" y="121" text-anchor="end">8f3a91</text>
<line class="dd-hair" x1="48" y1="130" x2="472" y2="130"/>
<text class="t-mono" x="48" y="147">只在这里发送</text><text class="t-val" x="472" y="147" text-anchor="end">blog-a.example 页面里的 disqus.com iframe</text>
<rect class="dd-card" x="32" y="192" width="456" height="84" rx="6"/>
<path class="dd-card-head" d="M32.6 224 V198 Q32.6 192.6 38 192.6 H482 Q487.4 192.6 487.4 198 V224 Z"/>
<line class="dd-edge" x1="32" y1="224" x2="488" y2="224"/>
<text class="t-name" x="48" y="213">cookie 罐</text>
<text class="t-note" x="472" y="213" text-anchor="end">分区 news-b.example · 域 disqus.com</text>
<text class="t-mono" x="48" y="241">visitor_id</text><text class="t-val" x="472" y="241" text-anchor="end">2c07e4</text>
<line class="dd-hair" x1="48" y1="250" x2="472" y2="250"/>
<text class="t-mono" x="48" y="267">只在这里发送</text><text class="t-val" x="472" y="267" text-anchor="end">news-b.example 页面里的 disqus.com iframe</text>
<text class="t-say" x="32" y="312">同一个 disqus.com，在每个网站下各有一罐 cookie，</text>
<text class="t-say" x="32" y="330">两个 ID 互不相识。</text>
<rect class="dd-card" x="536" y="72" width="232" height="84" rx="6"/>
<path class="dd-card-head" d="M536.6 104 V78 Q536.6 72.6 542 72.6 H762 Q767.4 72.6 767.4 78 V104 Z"/>
<line class="dd-edge" x1="536" y1="104" x2="768" y2="104"/>
<text class="t-name" x="552" y="93">访问日志</text>
<text class="t-val t-acc" x="552" y="121">8f3a91</text><text class="t-val" x="752" y="121" text-anchor="end">blog-a.example</text>
<line class="dd-hair" x1="552" y1="130" x2="752" y2="130"/>
<text class="t-val" x="552" y="147">2c07e4</text><text class="t-val" x="752" y="147" text-anchor="end">news-b.example</text>
<rect class="dd-derived" x="536" y="224" width="232" height="76" rx="6"/>
<text class="t-name" x="552" y="250">跨站画像</text>
<text class="t-val" x="552" y="272"><tspan class="t-acc">8f3a91</tspan> ≠ 2c07e4</text>
<text class="t-note" x="552" y="290">无法确认是同一个人</text>
<text class="t-say" x="536" y="330">虚线：这份画像拼不出来了。</text>
</svg>
</div>
<figcaption>图 4 · 分区存储按“读者打开的网站”给第三方 cookie 分罐，同一个评论框在不同网站上拿到的是不同的 ID。站点和 ID 均为示意。</figcaption>
</figure>

Chrome 是个例外。Google 2019 年推出 Privacy Sandbox，计划用它替代第三方 cookie，之后在监管审查下一再推迟；2024 年放弃了直接淘汰第三方 cookie 的计划，2025 年 4 月表示不再改变 Chrome 处理第三方 cookie 的方式，同年 10 月宣布因为采用率低，退役剩下的 Privacy Sandbox 技术[^22]。所以在 Chrome 里，这个空子在技术上至今还开着一部分。

但法律那一头已经关上了。GDPR 2018 年生效，挪威对 Disqus 的处罚说明，即使浏览器允许，不经同意做跨站追踪也是违法的。一个新的评论框如果今天想复制 Disqus 的模式，它面对的是一半浏览器不给数据、另一半浏览器给了也不能随便用。

### 窗口期已经过去

即使不谈 cookie，Disqus 赶上的那个时间窗口也回不来了。2007 到 2012 年是英文独立博客的高峰，Facebook、Twitter、Reddit 还没有把讨论吸走。Disqus 在这个窗口里攒到了规模，规模又让它的广告网络成立：Promoted Discovery 是让几百万个长尾站点按点击分成，这需要一个足够大的英文广告市场来支撑。多说起步时，中文博客已经开始流向微博和公众号，它只覆盖中文站点，也从来没有尝试过变现。

### 同样的架构，不同的法律责任

最后还有一个结构性的差别，它解释了为什么这条路在中国从一开始就走不通。

美国 1996 年的《通信规范法》第 230 条写道：

> No provider or user of an interactive computer service shall be treated as the publisher or speaker of any information provided by another information content provider.[^23]

也就是说，平台不被当作用户内容的发布者。Disqus 替几百万个站点托管评论，并不需要为每一条评论承担发布者的责任，治理可以做到“够用就行”。

而第二节提到的《互联网跟帖评论服务管理规定》，把实名认证、审核巡查、按规模配备审核人员的责任，都放在了服务提供者身上。**同样是“替所有站点托管评论”的架构，在美国是低成本的，在中国则意味着替所有站点承担治理责任。** 多说即使想学 Disqus 放广告，也绕不过这一层。

### 引出新问题

Disqus 的路走不了第二次。那今天还活着的评论系统，靠的是什么？

---

## 六、Disqus 之后的活法

把今天还活着的评论系统按“谁付钱”分一下，大致是三类：

| 谁付钱 | 代表 | 怎么做 |
|---|---|---|
| 站长 | Hyvor Talk、FastComments | 小团队做付费 SaaS，按页面浏览量计价，不放广告 |
| 大媒体 | OpenWeb、Coral | 卖企业软件，评论是媒体的用户留存和第一方数据 |
| 没有人 | giscus、Remark42、Twikoo、Waline | 评论存在 GitHub、站长自己的服务器或 Serverless 账号里 |

### 站长付钱：敢于不免费

Hyvor Talk 的故事几乎是 Disqus 的反面。它的作者 Supun Wimalasena 2018 年为自己的博客写了一个评论系统，起因正是 Disqus 开始放广告。2020 年他和伴侣全职做这件事，团队一共三个人。2020 年 3 月有了第一个付费客户，9 月初在 53 个付费客户时实现盈利。然后在 9 月 5 日，他们做了一个反直觉的决定：**取消免费版**。理由是免费用户涨得比预期快，按浏览量计价时又很难转化成付费用户。取消之后，付费客户在两个月内从 56 个涨到了 100 个[^24][^24b]。

FastComments 也是同样的思路：只卖订阅，最低每月 5.99 美元，宣称从不展示广告、不出售读者数据[^25]。

对评论框来说，“先免费拉用户、再想办法转化”是走不通的。免费用户只会带来存储和治理成本，而它又没有 Disqus 那样的数据可卖。多说走的恰恰就是这条路的前半段。

### 大媒体付钱：评论是业务的一部分

另一类评论系统根本不面向个人博主。OpenWeb（原 Spot.IM）把评论和社区治理技术卖给出版商，2021 年估值 11 亿美元，当年收入约 8000 万美元，服务 1000 多家出版商，投资方里有纽约时报公司[^26]。Coral 2015 年由 Mozilla、纽约时报和华盛顿邮报合作发起，2019 年整个团队并入 Vox Media，和 Vox 的 CMS、广告平台一起卖给新闻机构[^27][^27b]。

对大媒体来说，评论区关系到用户留存、第一方数据和广告库存，所以它们愿意付大钱。但付钱的是媒体，不是博主。国内的大媒体都自建评论，也必须自己承担审核责任，这个市场在国内并不存在。

### 没有人付钱：去掉那家公司

最后一类干脆不需要一家公司来养。

giscus 把评论存在 GitHub Discussions 里：页面加载时，它用 Discussions 的搜索接口按网址或标题找到对应的讨论，没有就在第一次评论时创建；读者通过 GitHub 账号授权评论，审核也在 GitHub 上做[^28]。Remark42 是一个 Go 写的单文件程序，数据嵌在一个文件里，站长自己部署，宣称“doesn't spy on users”[^29]。国内的 Twikoo、Waline 则是一个前端组件加上站长自己的云开发或 Serverless 账号[^30]。

没有公司，就没有“公司业务调整”。成本由站长自己，或者由 GitHub 这样的平台承担。

---

## 七、回到 2017 年

那么，问题解决了吗？

2026 年 1 月 12 日，LeanCloud 发布公告：“为了团队能聚焦打造更优质的产品，经过慎重考虑，我们决定逐步停止 LeanCloud 的服务。”即日起停止新用户注册，**2027 年 1 月 12 日全面停服**，之后数据将依法销毁、不可恢复[^31]。

LeanCloud 是 Valine 默认的存储后端，而 Valine 是很多静态博客在用的评论系统。于是，一批静态博客又开始导出数据、寻找下一个去处：Waline、Twikoo，或者 giscus[^32]。

九年前的那一幕又发生了一次，只是这次倒下的不是评论服务本身，而是它下面的存储服务。依赖并没有消失，只是换了位置：giscus 依赖 GitHub 的政策，Twikoo 依赖云厂商，自托管依赖站长自己有没有时间维护。

回到开头的问题。多说关停的原因，表面上是“公司业务调整”，往下追是**没有人为它付钱**。Disqus 能活下来，是因为它找到了一个付钱的人：广告主。而广告主付钱买的，是第三方 cookie 让它能看见的读者。这个空子正在被浏览器和法律堵上，所以 Disqus 本身也在向站长收钱。

<!-- TODO: 这里可以写作者自己的选择：twwy.net 目前没有评论功能，打算接入哪一种（giscus / 自托管 / 不加评论），以及理由。 -->

---

## 写在最后

从 2017 年两条停服通知出发，我们一路追到了：

1. **评论框的成本主要在治理**：线程映射、身份和存储都不难，垃圾评论和审核才是持续的开销。
2. **多说撑不住，是因为没有人付钱**：它免费、无广告，靠母公司养着；2017 年的跟帖评论规定又让治理成本大幅上升（这一联系是推断）。
3. **Disqus 不是第一个，但它是同一代里唯一保持独立并做大的**：靠评论框自己传播，靠一个跨站通用的账号形成网络效应，2012 年从卖软件转成了广告网络。
4. **Disqus 能免费，是因为第三方 cookie**：嵌在几百万个网站上的 iframe 能认出同一个读者，评论框本身就是数据采集器；代价是强制广告和隐私处罚。
5. **这条路走不了第二次**：浏览器的分区存储和 GDPR 堵上了空子，窗口期也已经过去；在中国，评论服务提供者还要为所有站点承担治理责任。
6. **今天的评论系统要么让站长付钱，要么卖给大媒体，要么干脆不要公司**，但依赖只是换了位置，LeanCloud 停服就是例子。

如果你想亲眼看看第三方 cookie，可以打开一个嵌入了 Disqus 的页面，在开发者工具的 Application（或“存储”）面板里查看 Cookies，会看到 `disqus.com` 下的条目和当前网站的分开列出。在 Firefox 或 Safari 里，再打开另一个嵌入了 Disqus 的网站对比一下，就能看到分区存储的效果。

---

## 参考资料
