Primafonte

可引用性指数是怎么算出来的

可引用性指数是一个 0 到 100 的分数,用来衡量一个网站能否被生成式模型读懂、理解并引用。

可引用性指数由 33 项检查算出,归入四个加权层面。本页逐项说明:它检查什么、怎么检查、达到什么阈值算通过、权重多少,以及为什么这对模型很重要。

这是哪个版本,它意味着什么?

版本 0.15.0 · 阈值暂定,发布于 2026-09-05。方法论的变更记录在下方,此前的分数不会重算:每份报告都会注明它是用哪个版本生成的。

这 100 分是怎么分配的?

这个指数把 100 分分配到四个层面,而且并非平均。让模型根本读不到你的问题,比只影响它如何描述你的问题分量更重:可访问性和结构各占 30 分,可发现性 25 分,实体权威度 15 分。每个层面旁边都标着它汇集了多少项检查。

可发现性
25 · 7
内容可访问性
30 · 7
语义结构
30 · 12
实体权威度
15 · 7

这 33 项检查看的是什么?

每一项检查都按同样的方式记录:看什么、怎么看、达到什么阈值算通过、权重多少,以及为什么这对生成式模型很重要。最后这一条正是本方法论与传统 SEO 的分界;一项解释不了这一条的检查就是多余的,会被撤掉。

可发现性

robots.txt 可访问且可解析

robots_exists

检查什么
检查 /robots.txt 是否存在、是否返回 200,以及是否含有可识别的指令。
怎么检查
抓取 https://你的域名/robots.txt,查找「字段: 值」形式的行。返回 200 但内容是 HTML 的,不算 robots.txt。
通过阈值
返回 200 且至少有一条有效指令即通过。404、服务器错误,或以 200 返回 HTML,均不通过。
权重
2 (可发现性)
为什么这对模型很重要
robots.txt 是每个爬虫索取的第一个文件。没有它,每个代理都自行决定拿你的网站怎么办,而发布网站的人对这个决定毫无发言权。

对引用你的爬虫所声明的立场

robots_ai_rules

检查什么
检查 robots.txt 是否为每个回答型爬虫声明了独立规则:OAI-SearchBot、ChatGPT-User、Claude-SearchBot、Claude-User、PerplexityBot 和 Perplexity-User。
怎么检查
为每个代理查找对应的 User-agent 区块。放行和屏蔽同等看待:衡量的是有没有声明过一个决定,而不是决定本身。训练型爬虫的规则不必写——数量多且变动频繁。
通过阈值
6 个全部声明即通过。声明了 1 个以上但不全,为部分通过。1 个都没有则不通过;没有 robots.txt 同样不通过,因为那样等于没有声明任何规则。仅当文件无法下载时才判为无结论。
权重
3 (可发现性)
为什么这对模型很重要
一条明确的 Allow 传达的是意图;缺失的规则传达的是疏忽。这些模型的多家运营方,会区别对待那些点名其代理的网站,因为点名说明有人认真想过,而不是继承了一个文件了事。

引用你的爬虫没有被屏蔽

robots_not_blocking

检查什么
检查没有任何回答型爬虫——即在撰写回答时抓取并引用该页面的那些——被挡在根目录之外。
怎么检查
按通常规则对 OAI-SearchBot、ChatGPT-User、Claude-SearchBot、Claude-User、PerplexityBot 和 Perplexity-User 解析 robots.txt:最长的匹配优先,打平时 Allow 优先。训练型爬虫(GPTBot、ClaudeBot、CCBot、Google-Extended、Bytespider)在这里不计入:屏蔽它们不会妨碍任何人引用你。
通过阈值
没有回答型爬虫被挡在 / 之外即通过;没有 robots.txt 同样通过,因为那样谁也没被屏蔽。全部屏蔽算部分通过;只屏蔽其中一些则不通过。仅当文件无法下载时才判为无结论。
权重
3 (可发现性)
为什么这对模型很重要
模型无法引用它在回答时抓不到的东西。这是最常被混淆的一个区分:对训练关门、对回答开门,是一种完全站得住脚的立场,而只有后半截决定你会不会被引用。

训练型爬虫:你的立场,逐一列出

training_crawlers

检查什么
针对每一个为训练模型而采集内容的爬虫,显示你的 robots.txt 是放行还是屏蔽。纯属参考:既不加分也不扣分。
怎么检查
对 GPTBot、ClaudeBot、CCBot、Google-Extended、Bytespider、Applebot-Extended 和 meta-externalagent 解析 robots.txt,逐一列出各自的状态。
通过阈值
没有阈值,也不存在通过或不通过:7 个训练型爬虫连同状态一并列出,放行或屏蔽都不会让可引用性指数变动哪怕 1 分。没有 robots.txt 时,会报告没有任何一个被屏蔽。
权重
0 (可发现性)
为什么这对模型很重要
屏蔽训练并不妨碍模型引用你:这是两件不同的事,由不同的代理来做。这是关于你的作品如何被使用的决定,两个方向都正当,因此只报告而不计分。如果你在意把内容挡在模型训练之外,请在这里核对你的规则是否真的表达了你以为的意思。

sitemap 已声明且可访问

sitemap_declared

检查什么
检查是否存在有效的 XML sitemap,以及 robots.txt 是否公布了它。
怎么检查
读取 robots.txt 中的 Sitemap 指令,没有则尝试 /sitemap.xml。该文件必须返回 200,且含有 urlset 或 sitemapindex。
通过阈值
sitemap 有效且在 robots.txt 中声明即通过。可访问但未公布,为部分通过。缺失或不是有效 XML 则不通过。
权重
2 (可发现性)
为什么这对模型很重要
sitemap 是一个网站认为重要的东西的完整清单。没有它,爬虫只能找到从入口页链接出去的部分,更深的页面可能永远不会被发现。

sitemap 中的修改日期

sitemap_fresh

检查什么
检查 sitemap 中有多大比例的网址声明了较新的 lastmod 日期。
怎么检查
统计 loc 元素和可解析的 lastmod 元素,据此算出日期在最近十二个月内的比例。
通过阈值
超过 50 % 的网址带有较新的 lastmod 即通过。只有一部分,为部分通过。一个日期都没有则不通过。
权重
1 (可发现性)
为什么这对模型很重要
抓取预算有限的爬虫,靠 lastmod 决定重读哪些页面。没有日期的 sitemap 逼它把所有页面一视同仁——昨天变过的东西迟早会被重读,但不会在真正要紧的时候。

llms.txt 文件

llms_txt

检查什么
检查是否存在 Markdown 格式的 /llms.txt,且含有标题和链接。
怎么检查
抓取 https://你的域名/llms.txt,确认它不是 HTML,至少含有一个 Markdown 的 H1 标题,以及至少一个链接。
通过阈值
同时具备 H1 和链接即通过。只有其中之一,为部分通过。缺失,或返回的是 HTML 页面,则不通过。
权重
2 (可发现性)
为什么这对模型很重要
llms.txt 是一份 Markdown 目录,用来让代理明白这个网站在讲什么、该从哪里入手,而不必从导航菜单里去推断。它维护成本很低,而且至今仍然少见。

用于发现的 Link 响应头

link_headers

检查什么
检查首页是否发送带 rel canonical 或 alternate 的 HTTP Link 响应头。
怎么检查
检查首页响应的 Link 头中是否含有 rel="canonical" 或 rel="alternate"。
通过阈值
两者具备其一即通过。没有 Link 头则不通过。
权重
1 (可发现性)
为什么这对模型很重要
只读响应头、不解析 HTML 的爬虫,在下载正文之前就知道了这个页面的规范版本和各语言版本。对于要走完成千上万个网址的代理来说,这个信号解决了重复问题,而且不多花一次请求。

内容可访问性

渲染比

render_ratio

检查什么
衡量可见文本中有多大比例,在 JavaScript 执行之前就已经存在于原始 HTML 里。
怎么检查
分别从原始 HTML,以及在真实浏览器中加载到 networkidle 之后的页面中提取文本,两者都清掉空白字符,然后相除。
通过阈值
比值达到 0,80 以上即通过。介于 0,50 到 0,79 之间,为部分通过。低于 0,50 则不通过。
权重
4 (内容可访问性)
为什么这对模型很重要
多数人工智能爬虫不执行 JavaScript。它们看到的就是页面离开服务器时的样子,如果内容是之后才插进去的,它们拿到的是一份几乎空白的文档,没有任何可引用的东西。这是最多网站栽跟头的一项检查。

不依赖 JavaScript 的主要内容

main_content_in_html

检查什么
检查 H1 和一个正文段落是否存在于原始 HTML 中。
怎么检查
不执行任何脚本,直接在下载到的 HTML 里查找带文字的 H1,以及至少一个十二字以上的段落。
通过阈值
H1 和段落都有即通过。有 H1 但没有段落,为部分通过。没有 H1 则不通过。
权重
3 (内容可访问性)
为什么这对模型很重要
模型正是从 H1 和第一段判断这个页面在讲什么。如果这两样过来时是空的,其余内容就无关紧要了:页面不会出现在回答里,因为没人知道它讲的是什么。

Markdown 的内容协商

markdown_negotiation

检查什么
检查当客户端要求时,服务器是否返回 Markdown。
怎么检查
带上 Accept: text/markdown 请求头抓取首页,核对响应是否为 200 且 content-type 为 text/markdown。
通过阈值
返回 200 且 content-type 为 text/markdown 即通过。否则不通过。
权重
1 (内容可访问性)
为什么这对模型很重要
拿到 Markdown 的代理省去了解析 HTML 的工夫,也不会把菜单、页脚和 Cookie 提示一并拖进它所引用的那一段里。这是一项成本很低、至今仍然少见的优势。

干净的跳转链路

status_and_redirects

检查什么
检查通往首页的路径没有经过多次跳转,且终点是 https。
怎么检查
逐跳跟随跳转并记下所有网址;通过比对已走过的路径来识别循环。
通过阈值
一跳或零跳且终点为 https 即通过。两跳为部分通过。超过两跳、出现循环,或终点不是 https,则不通过。
权重
2 (内容可访问性)
为什么这对模型很重要
每一跳都是一次额外请求,也多一次丢掉响应头、Cookie 甚至爬虫本身的机会。有些客户端不会把链路走到底,对它们来说,这个网站干脆就是没有响应。

首字节时间

ttfb

检查什么
衡量服务器开始响应所需的时间。
怎么检查
从发出请求,到收到首页第一批响应头之间的时间。
通过阈值
低于 800 毫秒即通过。介于 800 到 1600 毫秒之间,为部分通过。超过 1600 毫秒则不通过。
权重
1 (内容可访问性)
为什么这对模型很重要
响应时间在一定程度上决定了代理每次来访能抓取多少页面。服务器慢并不妨碍某个页面被引用,但会减少实际被读到的页面数量。

给机器人和给人的内容一致

bot_parity

检查什么
比较送给浏览器的文本和送给爬虫的文本。
怎么检查
抓取首页两次,一次用浏览器的 User-agent,一次用 PrimafonteBot 的,然后比较两次响应中可见文本的长度。
通过阈值
差异低于 10 % 即通过。低于 30 % 为部分通过。超过则不通过。
权重
3 (内容可访问性)
为什么这对模型很重要
给机器人送另一个版本的页面就是 cloaking,无论配置缓存的人是否知情。模型记录的是它收到的东西,而不是人看到的东西,这个落差要么带来错误的引用,要么带来零引用。

爬虫没有被拦截

waf_block

检查什么
检查网站不会对机器人 User-agent 返回拦截页或验证码。
怎么检查
用 PrimafonteBot 的 User-agent 抓取首页;检查状态码和响应正文中是否有浏览器校验的迹象。
通过阈值
返回 200 且没有验证码即通过。返回其他非拦截性状态码,为部分通过。返回 401、403、429,或以 200 送出验证码,则不通过。
权重
3 (内容可访问性)
为什么这对模型很重要
一道原则上拦截机器人的防火墙,同样会拦住人工智能爬虫。送出验证码的 200 和 403 一样有效地拦住了对方——而且还额外骗过了所有只看状态码的人。

语义结构

结构化数据存在且有效

jsonld_present

检查什么
检查是否有 JSON-LD 结构化数据,以及它们是否真的能用:JSON 能否解析,每个类型是否带齐 schema.org 标为必填的字段。
怎么检查
统计声明的区块数和成功解析的区块数。然后对每个解析成功的类型核对必填字段。
通过阈值
结构化数据有效且完整即通过。缺一到两个必填字段,为部分通过。没有结构化数据、有区块无法解析,或缺三个以上字段,则不通过。
权重
4 (语义结构)
为什么这对模型很重要
结构化数据是模型确认你身份的方式,不必从行文里去猜。没有它,这个推断就交给了运气;有但是坏的更糟:对模型来说这个区块根本不存在,而写它的人却以为存在。

已声明实体类型与业务类型

jsonld_entity_types

检查什么
检查网站是否声明了由谁发布,以及提供什么。
怎么检查
在已声明的类型中,查找 Organization 或 Person 之类的实体类型,以及 SoftwareApplication、Product、Service 或 Article 之类描述所提供内容的类型。
通过阈值
两者都有即通过。只有一个,为部分通过。两者皆无则不通过。
权重
2 (语义结构)
为什么这对模型很重要
模型要厘清的是两个独立的问题:这些人是谁,以及他们卖什么。只声明其中一个,等于把一半答案留给了猜测,而错误的描述正是从这里来的。

标题层级

heading_hierarchy

检查什么
检查是否只有一个 H1,以及有没有跳过某个层级。
怎么检查
按文档顺序取出所有标题,统计 H1 的数量,并检测跳级,例如从 H2 直接到 H4 而没有 H3。
通过阈值
恰好一个 H1 且没有跳级即通过。两个 H1,或最多两处跳级,为部分通过。没有 H1、超过两个,或多处跳级,则不通过。
权重
2 (语义结构)
为什么这对模型很重要
标题是这份文档的提纲。跳掉一级,就会让一个区块悬在半空无所依附,而模型把页面切成可引用段落时,靠的正是这个结构。

每个标题之后的直接回答

direct_answers

检查什么
检查每个 H2 之后的第一段,是否回答了那个标题。测量是在一个内页内容上做的——一篇文章、一份指南、文档——而不是首页。
怎么检查
从 sitemap 或首页链接中挑一个内页,同一个网站每次都挑同一个。对每个 H2,取紧随其后的第一段并评分:40 到 80 字这一档得 1 分,25 到 120 字得 0,5 分,以依赖上一段的连接词开头得 0 分。如果网站没有可读的内页,就改测首页,并在报告中注明。
通过阈值
平均分达到 60 % 以上即通过。达到 30 % 为部分通过。低于此则不通过。
权重
3 (语义结构)
为什么这对模型很重要
模型引用的不是页面,而是段落。标题之后跟一段回答它的文字,就产出了一个能独立成立的片段;跟的若是过渡句或一张图,就什么可引用的东西都没有。商业网站的首页是一个由五到十个字的短句组成的橱窗:它衡量的是卖得好不好,不是引用得好不好。

写成问句的标题

question_headings

检查什么
检查 H2 和 H3 标题中,有多大比例是写成问句的。
怎么检查
在与直接回答相同的内页上测量。标题以问号结尾、以西班牙语的倒问号开头,或以疑问词开头——如何、什么、为什么、何时、哪里、哪个或谁,以及它们在西班牙语中带重音的对应词——即计为问句。
通过阈值
问句标题达到 30 % 以上即通过。至少有两个,为部分通过。低于此则不通过。
权重
2 (语义结构)
为什么这对模型很重要
模型取用段落时,找的是能回答它所收到的那条查询的那一段,而这条查询通常就是一个问句。把标题写成人们真正会打出来的问句,下面再跟一段能独立成立的回答,就产出了这类系统最偏爱的完整配对:标题当索引,段落当内容。像「我们的服务」这样的标题,看上去不像任何一条查询。

脱离上下文仍站得住的段落

chunk_independence

检查什么
检查有多大比例的段落,不必读上一段也能看懂。
怎么检查
取二十字以上的段落,检查其首句中是否出现没有先行词的代词或指示语,例如「它」「这个」「这里」或「上述」。
通过阈值
独立段落达到 50 % 以上即通过。达到 25 % 为部分通过。低于此则不通过。
权重
3 (语义结构)
为什么这对模型很重要
一段文字只有在单独也说得通时才可被引用。以「这个的解决办法是」开头的段落,逼着模型把上一段一起拖过来,而片段一旦被裁下来,它就失去了意思,也就不再能当来源用。

标题与 meta description 的长度

title_meta

检查什么
检查 title 和 meta description 是否放得进各自被分配的空间。
怎么检查
测量首页 title 的字符长度,以及 meta description 的 content 属性的字符长度。
通过阈值
title 在 30 到 60 个字符、description 在 110 到 160 个字符之间即通过。只有一项在范围内,为部分通过。两项都不在,或者缺失,则不通过。
权重
2 (语义结构)
为什么这对模型很重要
title 和 meta description 是一个网站为自己写的摘要,而搜索引擎和模型在呈现这个网站时,都会原样拿去用。被截断的标题或缺失的描述,等于把这份摘要拱手让给读到它的人。

结构化的常见问题

faq_markup

检查什么
检查是否有标记为 FAQPage 的问答区块。
怎么检查
查找 FAQPage 类型的 JSON-LD 区块。同时也识别写成问句的标题和「常见问题」之类的措辞,以便把「有内容但没标记」的网站,和「根本没有」的网站区分开。
通过阈值
有 FAQPage 区块即通过。页面上有问句但未做标记,为部分通过。两者皆无则不通过。
权重
2 (语义结构)
为什么这对模型很重要
常见问题区块是一个网站中被引用最多的部分,因为每个问题本身就已经是一个自成一体的片段,答案就在旁边。没有它并不是中性的:那等于放弃了模型最乐意引用的格式。这是从模型和代理的角度来衡量的,不是从传统搜索排名的角度。

说明性的链接文字

internal_links

检查什么
检查内部链接中,有多大比例用的文字对目标页面毫无交代。
怎么检查
收集首页上的内部链接,把它们的文字与一份通用锚文本清单比对,例如「阅读更多」「这里」或「点击这里」。
通过阈值
通用锚文本低于 10 % 即通过。低于 25 % 为部分通过。高于此则不通过。内部链接少于五个时,本项不计分。
权重
2 (语义结构)
为什么这对模型很重要
链接文字是模型在访问之前,用来判断目标页面讲什么的信号之一。一句「阅读更多」什么也没提供,还把这个链接作为信号的价值浪费掉了。

指向外部来源的链接

external_sources

检查什么
检查内容链接到了多少个站外域名。
怎么检查
统计从内页内容链出的不同域名,排除页脚和导航中的链接、指向本站及其子域名的链接,以及社交媒体主页——那些是身份,不是佐证。
通过阈值
达到三个不同域名以上即通过。一到两个,为部分通过。一个都没有则不通过。
权重
3 (语义结构)
为什么这对模型很重要
这是这个领域里少数经过实测的做法之一:那份关于生成式引擎优化的原始研究发现,引用来源、加入引文并提供数据,最多能让在回答中的可见度提高四成。会为自己的说法附上链接的内容,等于给了模型一个可以核对的凭据,而模型宁可引用它能核实的东西,也不愿引用只能凭信的东西。

内容中的数据

data_points

检查什么
检查有多大比例的段落带有具体数字。
怎么检查
在内页内容中,检查二十字以上的段落里是否出现百分比、金额、带单位的量——包括时间——或带千位分隔符的大数。孤零零的一两位数不算:在网站上,那通常是尺码、步骤序号或列表编号。
通过阈值
带数字的段落达到 25 % 以上即通过。至少有一段,为部分通过。一段都没有则不通过。
权重
2 (语义结构)
为什么这对模型很重要
这是这个领域里少数经过实测的做法之一:那份关于生成式引擎优化的原始研究发现,提供数据,连同引用来源和加入引文,最多能让在回答中的可见度提高四成。带着数字的论断,比不带数字的更容易被检索、被归属,因为那个数字把这一段锚在了可核对的东西上。

列表与表格

scannable_formats

检查什么
检查内容是否使用了列表和表格,而不是只有一段接一段的行文。
怎么检查
统计内页内容中三项以上的列表和表格。一个表格按两个列表计。页脚和导航中的不计入,不过这个排除依赖网站使用语义化标签:用 div 拼出来的菜单,和内容列表分辨不开。
通过阈值
累计达到 3 分即通过,每个列表算 1 分、每个表格算 2 分。至少有一个,为部分通过。一个都没有则不通过。
权重
2 (语义结构)
为什么这对模型很重要
列表和表格天生就是切好的:每一项都能独立成立,模型可以只取其中一项而不必把其余部分一起拖走。把同样六件事用逗号隔开写成一段,说的东西一样多,却没法分块取出。表格还自带表头,那是随着每一行一起走的上下文。

实体权威度

品牌名称的一致性

name_consistency

检查什么
检查品牌在 JSON-LD、Open Graph 和 title 中的写法是否一致。
怎么检查
以 JSON-LD 中声明的名称为基准,与 og:site_name 以及 title 的各段比对,忽略大小写、重音和标点。
通过阈值
所有可用来源都一致即通过。有一处不一致,为部分通过。全都不一致则不通过。只有单一来源时,本项不计分。
权重
3 (实体权威度)
为什么这对模型很重要
模型必须把这个品牌归结到唯一一个实体上。同一个页面上出现三种名称写法,就产生了三个候选,而本该聚到一个身上的权威,被摊到了三份上。

描述的一致性

description_consistency

检查什么
检查 meta description、Open Graph 的描述和 JSON-LD 的描述说的是不是同一件事。
怎么检查
两两之间按词用 Dice 系数比对,忽略大小写和重音;以最差的那一对为准。
通过阈值
相似度达到 0,80 以上即通过。达到 0,50 为部分通过。低于此则不通过。只有一份描述时,本项不计分。
权重
3 (实体权威度)
为什么这对模型很重要
描述就是模型引用这个网站时,用来介绍它的那句话。两个不同的版本逼着模型二选一,而被选中的那个未必是发布者想要的那个。

可辨认的公司或作者页面

about_page

检查什么
检查是否有一个页面说明网站背后是谁。
怎么检查
查找目标或文字指向「关于」「关于我们」「公司」或「团队」页面的链接;若没有,则查找 JSON-LD 中带 url 或 @id 的已声明实体。
通过阈值
有指向该页面的链接即通过。只有 JSON-LD 中声明的实体,为部分通过。两者皆无则不通过。
权重
2 (实体权威度)
为什么这对模型很重要
「关于我们」页面是模型确认网站背后确有一个真实实体的地方。它的缺席不会妨碍被引用,但会降低对那些无法归属给任何人的内容的信任。

可读取的联系方式

contact_verifiable

检查什么
检查是否有机器能读取的邮箱或电话号码。
怎么检查
在可见文本以及 mailto 和 tel 链接中查找邮箱或电话;若没有,则在 JSON-LD 的 email 和 telephone 字段中查找。
通过阈值
联系方式出现在可见文本或链接中即通过。只在 JSON-LD 中声明,或电话出现但没有链接,为部分通过。两者皆无则不通过。
权重
2 (实体权威度)
为什么这对模型很重要
模型不会去填表单。只藏在表单背后、放在图片里,或用 JavaScript 混淆过的联系方式,既无法被引用也无法被核实,而它恰恰是辨认一家真实企业的标志之一。

用 sameAs 声明的外部主页

sameas_links

检查什么
检查网站通过 sameAs 属性声明了多少个外部主页。
怎么检查
收集各 JSON-LD 区块中所有的 sameAs 值。如果一个都没有,就检查 HTML 中是否有指向已知主页的链接。
通过阈值
达到两条 sameAs 以上即通过。只有一条,或有两个已链接但未声明的主页,为部分通过。一个都没有则不通过。
权重
3 (实体权威度)
为什么这对模型很重要
sameAs 是模型把这个网站和同一实体的其他所有痕迹连起来的依据:LinkedIn、GitHub、工商登记。没有这条纽带,每个痕迹都会被当作独立的实体,谁也攒不够足以被引用的信号。

发布日期与修订日期

content_freshness

检查什么
检查内容是否说明了它写于何时,或最后一次修订于何时。
怎么检查
在内页内容的结构化数据中查找 datePublished 和 dateModified,取较新的那个。只采用已声明的日期:跨多种语言和二十种格式去识别页面上可见的日期很不可靠,而一项判断错误的检查,减去的比加上的多。
通过阈值
日期在十二个月以内即通过。至多三十六个月,为部分通过。更早,或者根本没有,则不通过。
权重
2 (实体权威度)
为什么这对模型很重要
回答易变话题的模型,更偏爱它能确定时间的来源。没有声明日期,就无从判断这份内容是否仍然成立,而在拿不准的时候,先被引用的是那些能被定位在时间里的东西。这个阈值是故意放宽的:有些内容不会过期,为了没去动它而扣分,等于在奖励表面功夫。

已声明的署名

author_declared

检查什么
检查内容是否说明了由谁撰写。
怎么检查
在内页内容的结构化数据中查找 author 字段,且它必须带有名字。author 为空,或者没有名字,只算装饰性的标记。
通过阈值
有署名的作者即通过。字段存在但没有名字,为部分通过。没有 author 则不通过。
权重
1 (实体权威度)
为什么这对模型很重要
没有署名,模型就没有可以把所引内容归属过去的对象,而归属本身就是引用的一部分。这一点会影响被引用的证据来自观察到的案例,而不是来自测量,因此本项权重很低:它合乎情理、修起来也便宜,但并不像数据和来源那样已被证实。

这个指数不衡量什么?

可引用性指数不衡量你内容的质量、你的声誉、你的外部链接,也不衡量今天是否有模型提到你。它衡量的是:被引用这件事,在技术上和结构上有没有可能发生。

它有哪些局限?

公开一项测量的局限,看似是在给自己减分,实则相反:这正是方法论与宣传册的区别。下面这五条是我们已知的,写出来是为了让任何人都能自行判断,在自己的情形下该给某个具体数字多少信任。

  • 生成式引擎不公开它们挑选来源时所用的内部权重。可引用性指数衡量的是可观察、有依据的信号,而不是从某个特定模型复刻出来的公式。
  • 结果因引擎而异。一个网站可以对某个爬虫完全可读,却因为并非技术性的筛选标准,被挡在另一个引擎的回答之外。
  • 所检查的几项标准仍在制定之中。最明显的是 llms.txt:它有事实上的约定,但没有定稿的规范,其权重可能会变。
  • 检查针对的是首页及其所声明的资源,外加一个内页内容。一个网站的内部板块,行为可能与首页并不相同。
  • 渲染比是用一个确实会执行 JavaScript 的浏览器测出来的,而每个人工智能爬虫都自行决定是否执行、执行到什么程度。这个比值指示的是风险,而不是某个特定引擎的确切行为。
  • 内容类检查并非对所有语言一视同仁。在任何文字中,词都能被正确计数,包括那些不用空格分隔的;但用来识别「无法独立成立的段落」的连接词和指示语清单,只有西班牙语和英语两份。在其他语言里,这些标记识别不出来,段落就算通过。这种偏差始终朝同一个方向:拿不准时不扣分。

这套方法论依据的是什么?

这些检查并非出自对「网页应该是什么样」的某种看法。每一项都落实了一条已发布的标准或一个经过测量的结论,以下就是引擎逐字照做的四份依据,而不是推荐读物。

  • GEO: Generative Engine Optimization

    这项研究测量了引用来源、提供数据和加入引文的效果:在回答中的可见度最多可提高四成。两项内容类检查的权重就来自它。

  • schema.org

    结构化数据据以校验的词汇表:有哪些类型,以及每个类型把哪些字段标为必填。两项 JSON-LD 检查都用它。

  • RFC 9309

    规定 robots.txt 如何解读的标准,包括「最长的匹配优先、打平时 Allow 优先」这条规则。三项爬虫检查用的就是它。

  • llms.txt

    面向智能体的 Markdown 索引文件提案。它是事实上的约定,而非定稿的规范,因此权重可能会变。

什么时候改了什么?

每个版本都写明改动了什么、为什么,而且几乎总是把促成改动的那个数字摆在前面。此前的分数从不重算:一份报告描述的是那个网站在测量当天的状态,用的是当天的标准,所以每一份都印着自己的版本号。

  1. 0.15.0 · 2026-09-05

    引擎混淆了两件并不相同的事:没能读取一个文件,和读取之后确认它并不存在。404 是一个可以据以推断的事实——没有 robots.txt,就没有屏蔽任何人——此时检查项必须给出结论。而 401、403 或 429 说的恰恰相反:文件存在,只是不让我们看。由于一处与 200 的比较把这个差别吞掉了,这种情况一直和 404 归在一起,于是同时产生了两种错误说法。对一个受 Web 应用防火墙保护的网站,我们一边说它没有可读的 robots.txt、没有声明站点地图、没有发布 llms.txt、也不响应 Markdown 协商——这四句话针对的都是确实存在且正常工作的文件;一边又判定它的 robots.txt 没有屏蔽任何回答型抓取器,而这是对一个从未读到的文件给出的通过。在校准样本中,二百九十九个网站里有五十个如此,六分之一。从本版本起,这三个状态码会让受影响的五个检查项不作结论,而屏蔽本身仍由专门负责报告它的检查项来说明。同时修正了重定向链的标题:它始终在谈跳转次数,导致被屏蔽的网站看到的是「抵达首页需要经过 0 次跳转」,把最优状态写成了缺陷。与跳转无关的分支——响应状态码,以及最终停在 http 的目标地址——现在有了各自的文案。此前的评分不会重新计算。

  2. 0.14.0 · 2026-08-19

    两项检查不再因为中文、日文和韩文写得更密而扣它们的分。其一:写成问句的标题识别不出来,因为这些语言用的是全角的「?」,而检查只找拉丁键盘上的那个。在我们自己的中文方法论页面上,四十一个标题里识别出零个,尽管所有的章节标题都是问句。其二:标题和描述的长度区间是按拉丁字母校准的——三十到六十个字符、一百一十到一百六十个字符——它们之所以存在,是因为搜索引擎按宽度截断。一个汉字占的宽度是拉丁字母的两倍,承载的信息也多得多:同一个页面的标题只有二十二个字符,传达的内容和西班牙语的五十个字符一样多,却因为说得更省地方而不通过。在这些文字中,区间取原来的一半。在这些文字之外,什么都不会变;针对 299 个欧美域名样本所做的校准,正是为了核实这一点。此前的分数不会重算。

  3. 0.13.0 · 2026-08-18

    对「内页选取」做了两处修正,而这一步同时决定着五项检查。其一:「www.example.com」和「example.com」是同一个网站,引擎却把它们当作不同的来源。在中文技术博客 ruanyifeng.com 上,其自家目录里指向文章的十八个链接写的是「http://www.ruanyifeng.com/blog/...」;如果扫描的是不带「www」的域名,这十八个就全被丢掉,候选里一篇文章都不剩,内容类检查最后量的是一份标题清单。其二:如果选中的页面原来是某个栏目的索引,引擎现在会往下走一次,取它的第一篇文章。只走一次而不是多次,因为这次抓取是串行的,和整个扫描共用同一份时间预算;如果这一跳没带回更好的东西,就仍旧保留索引,因为量到差一点的东西也胜过什么都量不到。选取依然是确定的:同一个网站每次都给出同一个页面,否则分数就不再可复现。尚未解决的是另一种情形:选中的页面与网站其余部分不是同一种语言。此前的分数不会重算。

  4. 0.12.0 · 2026-08-18

    「脱离上下文仍站得住的段落」这项检查,几乎让所有西班牙语网站都不通过。它靠查找代词和指示语来判断段落是否依赖上一段,但清单里混进了「la」「los」「las」——那是冠词,不是指示语——而且是在整句里查找,而不是只看开头。于是「Los umbrales se calibraron midiendo una muestra propia」也被判成了依赖上文。句子中间的指示语,其指代对象通常就在同一句里,属于已经绑定;真正让段落悬空的,是开头那一个。现在只看开头,而且只算那些毫无歧义的代词形式:「esto」「eso」「ello」「it」「lo anterior」以及明确的回指。「Este」和「this」被刻意排除在外,因为它们既能当代词也能当限定词,没有词法分析就分不开:拿不准时不扣分,这正是本层声明的规则。已经发布的修改建议早就是这么写的,代码却不是。此前的分数不会重算,因此校准研究中这一项的数字对应的仍是旧标准。

  5. 0.11.0 · 2026-08-18

    引擎现在在中文、日文和韩文中真正按词计数。这些语言不用空格分隔词,而引擎一直是按空格切开来数的:在一个中文技术博客的五篇真实文章上,1579 个段落中能通过二十词过滤的恰好只有 2 个。数对了则是 560 个。这让任何一个中文、日文或韩文网站,无论是「脱离上下文仍站得住的段落」还是「内容中的数据」都无物可量,而「直接回答」则即便完美回答了标题也照样不通过。模块自己的注释声明,语言上的偏差始终朝同一个方向,拿不准时不扣分;而在这里,它恰恰朝着相反的方向。现在改用系统的分词器来数,它确实能切分这些语言,而不是靠一个拍脑袋定下的换算系数。在这些文字之外,计数与以往逐字相同:西班牙语、英语、德语、法语、意大利语或葡萄牙语网站的分数不会变动哪怕一分,并且有一项测试对照本站全部已发布的文字做了校验。此前的分数不会重算。

  6. 0.10.0 · 2026-08-06

    五项新检查,以及所测量页面的一处变更。五项中的两项,来自这个领域里唯一经过严格测量的东西:那份关于生成式引擎优化的原始研究发现,引用来源、提供数据并加入引文,最多能让在回答中的可见度提高四成。由此有了「指向外部来源的链接」,统计内容链向多少个站外域名;以及「内容中的数据」,看有多大比例的段落带有具体数字。另外三项来自已发表的建议:列表与表格,它们是天生就切好的片段;结构化数据中声明的发布与修订日期;以及署名,它的权重故意压得很低,因为它的证据来自观察到的案例而不是测量。内页的挑选方式也变了:文章现在优先于机构性页面。这源于我们发现,在 Xataka 上测的是团队页,那是一页人物简介,六十九个段落里内容类检查全部为零。Xataka 并没有写得不好;是我们看错了页面。计分的检查从 28 项增加到 33 项。此前的分数不会重算。

  7. 0.9.0 · 2026-08-06

    描述一致性这项检查,不再拿发布方的描述去和页面的描述比对。按 schema.org 的定义,Organization 描述的是发布方,而在一家有多条业务线的公司里,它本来就没有理由和页面相像:把两者放在一起比,等于逼着其中一方写出一份假描述——要么把公司描述得像是产品,要么反过来。现在比对的是那个说明网站提供什么的实体的描述——SoftwareApplication、Product、Service、Article 及同类——只有在完全没有这类实体时,才退回去用发布方的描述:那是没有产品的公司网站的情形,此时公司描述确实就是页面描述。这次修正不是大赦:与页面自相矛盾的产品描述照样不通过,两份彼此不一致的 meta description 也一样,而后者本来就是这项检查一直判得很准的情形。此前的分数不会重算。

  8. 0.8.0 · 2026-08-05

    新增一项检查:标题是否写成问句。此前已经在检查每个标题后面是否跟着一段 40 到 80 字、能独立成立的回答,但没有检查标题本身看上去是不是人们真会打出来的样子。这些检索系统偏爱的单位是完整的配对——上面一个能认出来的问句,下面一段能独立成立的回答——而我们只测了这个配对的一半。它在与直接回答相同的内页上测量,因为在不同页面上测,描述的会是两个地方,而不是一个配对。标题带问号即计为问句,以带重音的疑问词开头也算,因为在西班牙语里,正是那个重音把疑问词和关系词分开。这些阈值只是起点,将来会对着校准样本重新审视。计分的检查从 27 项增加到 28 项。此前的分数不会重算。

  9. 0.7.0 · 2026-08-04

    位于页脚、导航和侧边栏里的标题,不再计为内容。对一批真实网站的测量显示,43 % 的标题住在 <footer> 或 <nav> 里——HubSpot 是 81 %,Mailchimp 是 53 %——而它们统统被算了进去。页脚里的 <h2>服务</h2> 下面没有段落,因为它本来就不该有;于是它的存在,让任何一个有正常页脚的网站都过不了直接回答这项检查:只有 5 % 通过,而原因不在于人们怎么写,而在于我们怎么数。这影响到直接回答、标题层级和常见问题的识别,三者的准确度都因此提高。页眉里的 H1 仍然计入:很多网站把它放在那里。此前的分数不会重算。

  10. 0.6.0 · 2026-08-04

    第一个对着大样本校准过的版本:299 个网站,来自西班牙、英国、美国和欧洲其他地区,涵盖品牌、服务和中型企业。从这批数据得出三处改动。两项结构化数据检查合并为一项:有效性那一项,在能走到它面前的网站中有 95 % 通过,而对其余 26 % 根本不适用,因为 JSON-LD 几乎没人手写,插件生成的东西也很少是坏的;现在由一项检查区分「没有」「坏的」和「对的」,权重不变。能独立成立的段落,现在改在内页上测量,就像直接回答早已如此:在完整测完的 215 个网站中,有 78 个的首页凑不出三段二十字以上的文字,而在没有可读的内容页时,这项检查现在会判不通过,而不是保持沉默。另外,可下载徽章的门槛从 80 分降到 70 分:在 80 分时,215 个网站里只有 6 个够得着,而一枚几乎没人能挂上去的徽章是流通不起来的。计分的检查从 28 项减少到 27 项。此前的分数不会重算。

  11. 0.5.0 · 2026-08-04

    两项检查不再在其实能判断的地方宣称自己判断不了。没有标记为 FAQPage 的问答区块,现在判为不通过,而不是「不适用」:那是生成式模型引用得最多的东西,所以没有它的网站,在被引用这件事上确实比有它的准备得更差,而把它的权重摊给其他项,等于在主张相反的结论。问题就在屏幕上却没有做标记,判为部分通过,因为那十分钟就能补上,而从零开始写不是。另外,没有可访问 sitemap 的网站,现在在新鲜度这项检查上判为不通过,而不是返回无结论——包括服务器对 /sitemap.xml 返回 200 却给出 HTML 首页的情形,单页框架就是这么干的。「无结论」只保留在真正未知的地方:网络故障,或者服务器存在却不让我们查看。在一批 24 个网站的样本中,这两项分别在 67 % 和 42 % 的情况下没有计分。「草案」这个后缀从版本号里移到正文中,并按语言翻译。此前的分数不会重算。

  12. 0.4.0 · 2026-08-04

    直接回答改在一个内页内容上测量,而不是首页。对 24 个真实网站的校准发现,24 个全都不通过,Stripe 和 Cloudflare 也在其中:商业网站的首页是一个橱窗,其标题后面的段落长度在五到十七个字之间,因为它们是为了一眼扫过而写的,不是为了被引用。一项人人都过不了的检查,无论多么属实,都区分不出任何人。现在会从 sitemap 或首页链接中挑一个内页——同一个网站每次都挑同一个,以保证分数可复现——并在那里测量;如果网站没有可读的内页,就改用首页,并在报告中注明测的是哪一个。此前的分数不会重算。

  13. 0.3.0 · 2026-08-03

    那些依赖 robots.txt 的检查,不再在文件不存在时宣称自己判断不了。一个网站没有 robots.txt,不是「不知道」,而是一个有后果的事实:既然没有文件,就没有人被屏蔽,所以屏蔽那项检查现在判为通过,而已声明规则那项判为不通过,因为一条规则都没有。此前这两项连同关于训练的那项参考性检查一起,都停留在无结论,而单是这三项,就把任何没有 robots.txt 的网站推到了「部分报告」的门槛上,从而被排除在统计之外。「无结论」只保留在文件无法下载时,那才是我们真的不知道。此前的分数不会重算。

  14. 0.2.0 · 2026-08-03

    人工智能爬虫被分成两类。屏蔽训练类的那些(GPTBot、ClaudeBot、CCBot、Google-Extended、Bytespider)不再扣分:那是关于你的作品如何被使用的正当决定,并不妨碍模型引用你。只有屏蔽回答类爬虫(OAI-SearchBot、ChatGPT-User、Claude-SearchBot、Claude-User、PerplexityBot、Perplexity-User)才会被扣分,因为正是它们在回答的过程中抓取页面。此前两类是合在一起数的,结果把今天最站得住脚的做法判成了严重错误。此前的分数不会重算。

  15. 0.1.0 · 2026-08-02

    方法论的第一个公开版本。各项阈值都是暂定的,将在 1.0 版本中冻结,届时会先对着 200 个网站的样本完成校准。在此之前,两次分析之间的分数可能会有出入。

可引用性指数方法论 — Primafonte