一次未通过的检查,是关于你页面的一个判断,而不是一条指令。本站的规则页正是为此公布四件事: 扫描器测试的条件、失败意味着什么、这项检查不测什么,以及针对每一种失败方式的修复办法。 动手修改之前先读其中三件,决定了你是在修复还是在重写。
失败本身也值得一个数字作为背景。在针对 30 个首页的研究里,53% 被评为 F,7% 达到 B,而几乎每一个低分,都来自若干条互不相关的规则同时失败, 而不是来自某一个灾难性的问题。
一次未通过的检查到底告诉了我什么?
它告诉你某一个条件没有被满足,并附上扫描器测试时看到的证据。它不告诉你原因, 也不告诉你该怎么修——那是规则页上另外的句子。
每条规则页都是同样的结构:这项检查看什么、失败意味着什么、修复步骤, 以及一段说明这项检查不测什么。最后一段最有用,也最常被跳过。规则正是在这里承认自己数的是 存在与否,而不是质量——引用规则对任何 blockquote 都算通过, 实体规则对任何已声明的类型都算通过。
这项检查适用于我这样的页面吗?
通常适用,但并不总是。扫描器有页面类型的豁免,报告会给出一个「不适用」的检查数量, 而不是悄悄把它们记成零分。
字数是最清楚的例子。法律页或联系页不会承载 800 词的正文,用内容页的篇幅去要求它, 测到的是页面类型,而不是写作。如果一条规则出现在你的列表里,说明它适用; 如果报告说某项检查不适用,那么为了满足它而删掉内容,就是对一个从未发生的失败做出的错误反应。
这个数字说的是我的页面,还是那个响应?
先看状态码。401、403、429、202 或 520 意味着这个分数描述的是一个错误响应, 内容上的功夫无法改变它。
这不是假设:在那项研究里,30% 的首页从未产出一个页面, 它们的分数衡量的是拒绝本身。扫描器把它们标记为中止,并将它们排除在均值之外, 但那个数字仍然印在域名旁边,所以读者必须知道自己在看的是哪一类数字。 专门写那九行的那篇文章,把每个状态码逐个过了一遍。
它要的是真正的改进,还是凑出来的数字?
有时候它要的就是一个数字。字数规则在 800 词时通过,300 到 799 词之间算部分通过, 所以一个 796 词的页面,就因为差四个词没到门槛而丢分。
诚实的做法,要么是多讲一些值得讲的内容,要么是接受部分通过。不诚实的做法是填充, 而它比丢掉那几分更糟:一个察觉到注水的读者,对页面其余部分的信任会降低; 而后面那些规则——答案前置、可提取内容、引用——只在真正说了些什么的文字上才起作用。
本站就发布了一个未能通过自己字数规则的页面,而不是去填充它,并且在规则页的说明里 写明了这一点。这是把同一笔取舍公开说出来,而这也是读者唯一能核查的版本。
好的修复和坏的修复分别是什么样?
坏的修复满足条件。好的修复满足条件存在的理由,然后条件自然就满足了。
| 失败 | 满足规则的修复 | 满足理由的修复 |
|---|---|---|
| 字数在 740 词处部分通过 | 补 60 词的重复表述 | 补上读者一直在要的完整示例 |
| 爬虫 user-agent 被禁止 | 在 robots.txt 里加一行 Allow | 检查 CDN,因为防火墙可能仍然返回 403 |
| 页面上没有引文 | 引用本页自己的一句话 | 引用这个说法所依据的第一手来源 |
| 没有 Markdown 替代版本 | 手写一个一个月内就会漂移的孪生版本 | 从同一份来源生成它,或者接受这一项缺失 |
最后一行就是本站自己的例子。首页没有 Markdown 孪生版本,这项检查失败, 而本站选择公布这次失败,而不是放宽规则,或者写一份六周后就会与它所镜像的页面 互相矛盾的副本。一条作者无法诚实满足的规则,是关于这条规则的证据, 它应该写进说明里,而不是绕过去。
什么时候应该忽略一次未通过的检查?
三种情况,而且都应该写下来:规则不适用、这笔取舍是有意为之,或者修复的成本 超过那几分的价值。
- 它不适用。规则的豁免页面类型,或者这条规则测的是你的站点 没有理由携带的信号。报告会说明是哪种。
- 这笔取舍是有意为之。屏蔽一个 AI 爬虫是政策决定; 一个有意做出这个决定的站点,应当预期分数会下降,也不应该为了把分数找回来 而撤销政策。
- 修复的成本超过它带来的收益。一条权重 2%、需要一周工作的规则, 不会紧接着排在一条权重 16%、只需要一个下午的规则之后。权重是公开的, 所以这个比较可以在动手之前做。
怎么才能不把同一件事修两遍?
改完之后重新扫描,然后比较失败列表,而不是比较分数。分数会因为好几个原因同时变动; 列表才是你实际改动的东西。
如果修复是真的,规则会从列表里消失,并且不再回来。如果只是填充, 那么页面下一次变动时它往往会重新出现——这是反对填充的一条务实论据, 与任何人对它的看法无关。