AFR v1.1

AFR 标准全文

AFR(AI-Friendliness Rating,AI 友好度评级)给每个网站 0–100 分,衡量它对 AI 爬虫与智能体有多开放。只测公开可复现的事实:每个子项 = 一次人人可重复的 HTTP GET / DNS 查询,每个得分点都能链到原始证据。等级是开放度坐标,不是道德评判。

三层模型

总分 100 = 35 + 40 + 25。可懂层权重最高,因为“内容机器可读”才是 AI 友好的本体:技术上全开放但内容混乱的站,在 AI 实用性上仍然不及格。

层 回答的问题 权重
L1 可达层 AI 能不能来? 35
L2 可懂层 来了能不能读懂? 40
L3 可交互层 能不能替用户干活? 25

全部子项

严格按标准分组。分值固定,不依赖观点、热度或付费。

L1 可达层 35 分

可达层——35 分。AI 爬虫能不能拿到你的内容?其中 25 分在 robots.txt 的 AI 爬虫政策上,按爬虫家族分别记分;没有 robots.txt 即协议缺省(全部允许),按定义记满分。

A1 robots.txt AI 爬虫政策 25 分

按 AI 爬虫家族记分:搜索/引用型 9、混合型 6、训练型 10。每个 UA 取“最具体匹配”的规则组裁定(RFC 9309);部分 Disallow(如仅 /private/)视为允许,全站 Disallow 该家族记 0。

ID 家族 User-agent 分值 测什么
A1.OAI-SearchBot 搜索 / 引用型 OAI-SearchBot 4 robots.txt 放行 OAI-SearchBot 即得该分(搜索 / 引用型 家族);取“最具体匹配”的规则组裁定。
A1.PerplexityBot 搜索 / 引用型 PerplexityBot 3 robots.txt 放行 PerplexityBot 即得该分(搜索 / 引用型 家族);取“最具体匹配”的规则组裁定。
A1.ChatGPT-User 搜索 / 引用型 ChatGPT-User 2 robots.txt 放行 ChatGPT-User 即得该分(搜索 / 引用型 家族);取“最具体匹配”的规则组裁定。
A1.Google-Extended 混合型 Google-Extended 3 robots.txt 放行 Google-Extended 即得该分(混合型 家族);取“最具体匹配”的规则组裁定。
A1.Applebot-Assistant 混合型 Applebot-Assistant 2 robots.txt 放行 Applebot-Assistant 即得该分(混合型 家族);取“最具体匹配”的规则组裁定。
A1.Bingbot 混合型 Bingbot 1 robots.txt 放行 Bingbot 即得该分(混合型 家族);取“最具体匹配”的规则组裁定。
A1.GPTBot 训练型 GPTBot 3 robots.txt 放行 GPTBot 即得该分(训练型 家族);取“最具体匹配”的规则组裁定。
A1.ClaudeBot 训练型 ClaudeBot 2 robots.txt 放行 ClaudeBot 即得该分(训练型 家族);取“最具体匹配”的规则组裁定。
A1.CCBot 训练型 CCBot 1 robots.txt 放行 CCBot 即得该分(训练型 家族);取“最具体匹配”的规则组裁定。
A1.Bytespider 训练型 Bytespider 1 robots.txt 放行 Bytespider 即得该分(训练型 家族);取“最具体匹配”的规则组裁定。
A1.meta-externalagent 训练型 meta-externalagent 1 robots.txt 放行 meta-externalagent 即得该分(训练型 家族);取“最具体匹配”的规则组裁定。
A1.Amazonbot 训练型 Amazonbot 1 robots.txt 放行 Amazonbot 即得该分(训练型 家族);取“最具体匹配”的规则组裁定。
A1.Applebot-Extended 训练型 Applebot-Extended 1 robots.txt 放行 Applebot-Extended 即得该分(训练型 家族);取“最具体匹配”的规则组裁定。
本组合计 25

A2 无技术墙 5 分

不执行 JS 的爬虫也要能读到首页正文,且首页不能是“登录后查看”型的强制登录墙。

ID 家族 User-agent 分值 测什么
A2.no-js-body — — 3 无 JS 的 UA 能取到可读正文(文本 ≥ 80 词或含 <noscript> 内容)。
A2.no-login-wall — — 2 首页无全站强制登录墙。
本组合计 5

A3 基础可用性 5 分

HTTPS 且证书有效、首页响应 < 2.5s(3 次取中位)、无可疑跳转链(≤2 跳且同域族)。

ID 家族 User-agent 分值 测什么
A3.https-valid — — 2 HTTPS 且证书有效。
A3.response-time — — 2 首页响应 < 2.5s(3 次取中位)。
A3.redirect-chain — — 1 无可疑跳转链(≤2 跳且同域族)。
本组合计 5

L2 可懂层 40 分

可懂层——40 分。爬虫来了,能不能读懂页面?llms.txt、结构化数据、语义化 HTML、sitemap 与内容信号。诚实披露:llms.txt 是机器可读性加分项,不是 AI 引用保证。

B1 llms.txt 家族 14 分

面向 AI 阅读者的机器可读内容地图。诚实披露:llms.txt 是可读性加分项,并非 AI 引用的排名信号。

ID 家族 User-agent 分值 测什么
B1.llms-txt — — 8 /llms.txt 存在且返回 200。
B1.format — — 4 格式合规:H1 + 简介 + 可解析的 Markdown 链接列表。
B1.llms-full-txt — — 2 /llms-full.txt 存在。
本组合计 14

B2 结构化数据 8 分

JSON-LD 或 microdata,以及让智能体理解页面主题的实体类型。

ID 家族 User-agent 分值 测什么
B2.json-ld — — 2 页面含 JSON-LD 或 microdata。
B2.core-entity — — 4 含核心实体类型:Organization / WebSite / Article / Product。
B2.rich-type — — 2 含丰富类型:FAQPage / HowTo / BreadcrumbList。
本组合计 8

B3 语义化 HTML 8 分

标题层级、图片 alt 覆盖率、OG 标签与 html lang 声明。

ID 家族 User-agent 分值 测什么
B3.unique-h1 — — 1 全页唯一 <h1>。
B3.heading-order — — 2 标题层级无跳级(h1 → h2 → h3)。
B3.img-alt — — 2 <img> alt 覆盖率 ≥ 60%。
B3.og-tags — — 2 存在 og:title / og:description。
B3.html-lang — — 1 声明 <html lang>。
本组合计 8

B4 Sitemap 4 分

/sitemap.xml 可达、含 lastmod,并覆盖首页抽样链接。

ID 家族 User-agent 分值 测什么
B4.sitemap-reachable — — 2 /sitemap.xml 可达(robots.txt 声明或直接命中)。
B4.lastmod — — 1 sitemap 条目含 lastmod。
B4.link-coverage — — 1 首页抽样 10 条链接,≥80% 在 sitemap 中。
本组合计 4

B5 内容信号 6 分

可提取文本量、机器可读日期与可达的 About / 联系路径。

ID 家族 User-agent 分值 测什么
B5.word-count — — 2 首页可提取文本 ≥ 500 词。
B5.machine-dates — — 2 机器可读日期(<time datetime> 或 ISO 格式)。
B5.about-contact — — 2 首页含 about / contact 链接且可达。
本组合计 6

L3 可交互层 25 分

可交互层——25 分。AI 能不能替用户干活:调用公开 API、读取 Agent 指令、通过 MCP 连接、或使用站内 AI 功能?

C1 公开 API 8 分

智能体能直接调用的 API、人类可读文档与机器可读 OpenAPI spec。

ID 家族 User-agent 分值 测什么
C1.public-api — — 5 检测到公开 API(llms.txt / 常见路径 / 开发者子域)。
C1.api-docs — — 2 人类可读的 API 文档。
C1.openapi-spec — — 1 机器可读 OpenAPI spec(/.well-known/openapi.yaml 或文档页 schema 引用)。
本组合计 8

C2 Agent 指令 4 分

/agents.md,以及 llms.txt 中的 agent 使用政策段(Optional 部分)。

ID 家族 User-agent 分值 测什么
C2.agents-md — — 2 /agents.md 存在。
C2.llms-agent-policy — — 2 llms.txt 中含 agent 使用政策 / 指令段。
本组合计 4

C3 MCP 接口 6 分

站点或其文档声明的公开 MCP server,URL 可达。

ID 家族 User-agent 分值 测什么
C3.mcp-server — — 6 声明了公开 MCP server,且 URL 可达。
本组合计 6

C4 站内 AI 功能 7 分

站内 AI 助手 / AI 搜索 / 生成式功能——唯一允许在自动化之外做人工抽检的子项。

ID 家族 User-agent 分值 测什么
C4.ai-features — — 7 站内 AI 助手 / AI 搜索 / 生成式功能。
本组合计 7

等级阈值

现行阈值 A ≥75 / B ≥60 / C ≥42 / D ≥25,2026-11-10 依据首批 Top-1000 扫描分布校准;此后仅在季度边界按分布复核调整,历史分数按其当时的引擎版本保留展示。

等级 分数区间 名称 含义
A 75–100 AI-Open 全开放
B 60–74 AI-Friendly 友好
C 42–59 AI-Neutral 中性
D 25–41 AI-Restricted 受限
F 0–24 AI-Closed 封闭

策略标签

仅由 robots.txt 得出的第二条独立坐标。标签与等级并列展示,不参与扣分——它解释分数背后的策略。

  • AI-Open 允许全部 AI 爬虫:搜索型、混合型与训练型。
  • Middle-Path 放行搜索型爬虫,拦截训练型爬虫。
  • Training-Open 开放训练型爬虫,同时限制搜索型爬虫。
  • AI-Closed 全站封锁所有 AI 爬虫。
  • Unconfigured robots.txt 无任何 AI 相关规则,按协议缺省语义处理。

引擎版本

每次扫描都会记录产出它的引擎版本,本站任何分数都可被逐位复算。

书面标准 AFR v1.1
评分引擎 afr-1.1.0
扫描器 scanner-0.1.0
爬虫 User-Agent afrScanner/0.1 (+https://afr.im/bot; AI-friendliness research crawler)

每份快照都存 engine_version;历史分数绝不用新引擎重算——始终绑定产出它的那个版本。

当书面标准与引擎实现不一致时,以每次扫描记录的引擎版本为准进行复算。

自己复算任何评分

评分引擎是纯函数:无 IO、无时钟、无网络。克隆仓库、跑测试,再把记录好的快照喂回引擎即可。

1. 克隆仓库并运行引擎测试(Node ≥ 22,零依赖):

git clone https://github.com/AFR-IM/AFR-web
cd AFR-web
npm test   # = node --test packages/*/test/*.test.ts

2. 把记录好的快照(每站 { signals, afr })喂回引擎:

import { scoreAfr } from './packages/afr/src/index.ts';
import snapshot from './scans/github.com.json' with { type: 'json' };

const result = scoreAfr(snapshot.signals);
console.log(result.score, result.grade, result.engineVersion);

中立性承诺

付费不能改分。

原文照录——这是产品立身之本。

  • 付费永远不能改变排名或等级。自然排行始终是纯 AFR 分数降序;付费买到的是独立 Sponsored 区块的曝光位,绝不会改变自然榜位次,也绝买不到更好看的等级。
  • 每个广告位都强制展示该站真实的等级色环与分数——F 级站可以买曝光,但买不到 A 级外观。
  • 广告以带固定 “Sponsored” 角标的独立区块呈现,绝不与自然结果混排;hover 广告不会改变任何等级色。
  • 站长验证、徽章、证据链与评分变化通知永久免费。免费层绝不设限逼升级。

付费不能改分:评分永远不受付费影响。

数据来源

种子集
Tranco 每日 Top 1M(tranco-list.eu,学术用途免费署名)。
扫描证据
公开快照提交至 github.com/AFR-IM/AFR-data——git 版本化即审计轨迹。
纠错通道
向数据仓提 PR(corrections/)即触发重扫复核;已验证站方可发布声明。

机读标准

整套标准以 JSON 形式提供在 /api/v1/method(三层、每个子项分值、等级阈值),工具无需抓取本页即可消费。

打开 /api/v1/method

AFR v1.1 以 CC BY 4.0 发布——署名后可自由复用。