
命名说明人们输入“a href backlink checker”时,通常指的是 Ahrefs。下方的门控适用于任何提供域名评分的来源,此处我们使用自己的 bulk_dr 操作。该领域的真实工具包括 Ahrefs、Semrush 和 Moz;Google Search Console 仅显示您自己的链接。
门控检查的内容
门控仅读取出站链接。它不查看排名、流量或 Search Console 数据,也无需您的分析数据。
脚本从渲染后的 HTML 中提取所有 <a href> 标签,并将每个 URL 简化为其主机。去除重复项后,通过一次调用将列表发送给 bulk_dr。构建过程中不会传输其他数据。最多 2,000 个主机仅需一个信用点,因此即使文章包含六十个引用,成本也仅为几分之一美分。
在渲染后的 HTML 上运行,而不是在 Markdown 上运行。短代码、嵌入内容和插件会添加您从未输入过的链接。请检查访客实际看到的内容。
运行位置
尽可能晚地放置门控。最佳位置是调度器之前的最后一个构建步骤,即在 CMS 或静态生成器生成最终 HTML 之后。所有地方使用相同的批量调用。
WordPress
将状态更改挂钩到“已计划”,并在该挂钩内运行门控。文章仅在判决结果为 PASS 后才应保持计划状态。一个挂钩,一条规则。
Hugo
在 hugo build 之后添加一个步骤,从 public 文件夹读取生成的 HTML。在部署步骤运行之前,将主机列表发送到批量调用。
Ghost
订阅文章计划事件的网络钩子。处理程序从文章的 HTML 中提取链接并进行相同的调用,从而使 Ghost 和静态站点共享一条规则。
决策树,逐一提问
01是否有主机返回评分为 0 或无数据行?
零分意味着我们的索引中没有该主机的引用域名。对于新站点来说这是正常的,但对于您引用为权威来源的站点则是一个警告。进入问题 2。
02零分主机是否为您在文本中提到的来源?
如果文章将其称为研究、报告或官方页面,则保留文章并发送给编辑。如果是脚注工具或品牌提及,则放行。
03是否有三个或更多主机低于您的阈值?
从您的历史记录中选择阈值(见下文)。一篇文章中出现三个或更多低分主机通常意味着内容被抓取或粘贴了 AI 生成的草稿。保留。
04同一主机是否被链接超过五次?
对单一外部域名的重复链接看起来像是联盟营销模式。将其减少到首次提及。如果脚本无法决定,则保留。

为什么决策树按此顺序提问
问题从成本最低的信号到最需要判断的信号依次进行。每个答案都会缩小下一个问题需要决定的范围,从而减少人工需要阅读的文章数量。
此顺序也保护编辑的时间。带有明确理由的保留操作只需一分钟即可处理,而模糊的标记往往在周末结束时被忽略。
先零分,后上下文
零分是成本最低的信号,因此排在第一位。单独来看,它提供的信息有限。下一个问题决定零分是否重要,这就是为什么决策树不会仅因零分而拦截文章。
考虑一个索引中新出现的主机。它的评分为零,团队中没有人听说过它。如果文章只是顺便引用它,则答案为放行。
阈值先于计数
单个弱主机通常是噪音。一篇草稿中出现多个弱主机则形成模式,而阈值正是为此设定的。在计数之前,请根据历史记录设置阈值,这样计数才有意义。
重复链接最后处理
对同一主机的重复链接更多是风格问题而非质量问题。在质量相关问题处理完之后最后询问。仅凭重复计数很少决定文章的命运。
每个出口在流水线中的操作
退出代码仅为建议;请将其映射到您自己的 CI 系统。| 退出 | 含义 | 流水线操作 | 谁查看 |
|---|
| PASS(放行) | 未触发任何规则 | 文章移至调度器 | 无人 |
|---|
| HOLD(保留) | 触发了一条软规则 | 状态设置为“待审核”,Slack 消息附带主机列表 | 编辑 |
|---|
| BLOCK(拦截) | API 错误 401/402 或列表格式错误 | 作业失败,文章保持草稿状态 | 流水线负责人 |
|---|
编辑在保留时应看到的内容
- 文章标题及其即将在计划中占据的时段。
- 每个被标记的主机及其评分和触发的规则。
- 出现该主机的句子,以便无需搜索整篇草稿。
- 当脚本无法决定时的一行原因说明。
- 发布文章或将其退回给作者的清晰方式。
选择阈值而不借用他人
从您自己的历史记录开始。选取三十篇您满意的文章,并通过 bulk_dr 一次性运行其出站主机。对评分进行排序,然后查看第十百分位数。
该百分位数是一个合理的初始阈值,因为它标记了您已接受的评分中最弱的十分之一。我们的评分是 0 到 100 的对数刻度,Ahrefs DR 和 Moz DA 保持独立的刻度。论坛阈值不可直接转移。
将三十篇文章的样本保留在您的仓库中,并附带日期,以便在样本变化时重新计算阈值。
每季度审查一次阈值。链接图在增长,索引大约每月刷新一次。春季评分为 8 的主机,刷新后可能变为 15。术语表 解释了这些数字背后的术语。
三十行代码实现门控
使用 shell 和 jq 的示例。可替换为您的语言;结构保持不变。
bash
HOSTS=$(grep -o 'href="https\?://[^/"]*' post.html | sed 's|.*//||' | sort -u | paste -sd, -)
RES=$(curl -s -H "Authorization: Bearer $SBB_KEY" \
"https://seoblogbot.com/api.php?action=bulk_dr&domains=$HOSTS")
case $(echo "$RES" | jq -r '.ok') in
true) ;;
*) echo "BLOCK: api error"; exit 2 ;;
esac
# inspect the response once and adapt the jq path to its shape
echo "$RES" | jq '.'

当门控调用失败时
并非所有错误都是对草稿的判决。调用失败是作业中的问题,下面的三种 HTTP 情况需要三种不同的响应。在发布前写下这些响应。不应在夜间即兴处理。
401 是设置问题
401 意味着密钥缺失或错误。将其视为作业故障,而不是对文章的判断。文章保持草稿状态,流水线负责人会收到消息。
402 是预算问题
402 意味着信用点已用完,重试无法解决此问题。停止作业并通知人员。从账户页面充值,然后重新运行失败的批次。
格式错误的回复是错误
如果 JSON 无法解析或 ok 为 false,请将原始回复写入日志并停止。不要猜测缺失的字段。猜测的评分可能会让本应保留的文章通过。
记录每次失败,包括文章 ID、HTTP 状态和时间,以便相同的故障不会无声地重复。
检查结果,而不仅仅是调用
成功的响应意味着调用成功。但这并不能证明文章已以正确的状态发布。请读取回来确认。门控设置为已计划后,在作业完成之前,请确认状态和发布时间。
否则,门控可能在纸面上通过,而 CMS 悄悄丢弃了更改。将读取确认写入同一个作业。此检查成本很低。当状态不匹配时,让失败明显报错。
读取确认还显示了哪个步骤发生了漂移。如果状态错误,门控可能在最终构建之前运行。在下一次发布之前了解这一点。
将读取确认结果与门控判决一起记录在日志中。两者结合显示门控和 CMS 在给定日期是否达成一致。
团队在添加门控前会问的问题
a href 反向链接检查器与此门控相同吗?
不。人们输入该短语时通常指的是 Ahrefs。此门控是一个通过 API 读取链接数据的脚本,它在您的流水线内运行,而不是在浏览器标签页中运行。
门控会减慢发布速度吗?
额外成本是每个草稿一次 API 往返。在决定它是否太慢之前,请在您自己的网络上测量它,因为答案取决于您的构建设置。
第一天如何设置阈值?
使用上文提到的三十篇文章样本。在拥有样本之前,以仅日志模式运行门控,其中它记录判决但不更改状态。
门控会取代编辑吗?
不会。它将草稿分类为 PASS、HOLD 和 BLOCK,以便编辑阅读更少。人工仍需决定 HOLD 对那篇文章意味着什么。
门控可以在非最终草稿上运行吗?
可以,但判决仅描述当时的链接。请在最终 HTML 上再次运行,因为后期编辑可能会添加或删除链接。
零分总是意味着来源不好吗?
不。零分意味着我们的索引中没有该主机的引用域名。对于新站点来说这是正常的,只有当文章将该主机呈现为权威来源时,它才成为警告。
我们的立场
保留多于拦截
过于容易拦截的门控会被第三位不满的编辑关闭。将 BLOCK 保留给基础设施故障,让规则命中成为带有明确理由的 HOLD。
- 记录包含判决的主机列表,以便申诉只需一分钟。
- 运行发布后审计作为第二层。
- 阅读事后复盘,了解促使团队添加此功能的那个失败案例。