KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
SEO 治理速查手册 — keel 龙骨
SEO 拔高 的参考信息:SEO 治理速查手册
本页是《SEO 拔高》的随身速查:把十二章里最该随时查阅的对照表、公式、命令与门禁集中在一处。详细论证见各章。
一、抓取预算(第 01 章)
每日可抓取上限 ≈ min( 速率上限 × 86400 , 需求驱动的实际量 )
速率上限(请求/秒) ≈ 爬虫并发 / 平均响应时间(秒)
浪费占比 = (3xx + 4xx + 5xx + 参数页) / 总抓取量
| 浪费类型 |
治理 |
| 重定向 |
sitemap/内链直指终址 |
| 死链 |
清理 sitemap 与内链 |
| 5xx |
修服务 |
| 参数爆炸 |
robots 屏蔽 + canonical |
二、日志事实表(第 02 章)
# 解析为 TSV:ts bot status rt uri
zcat -f $LOG | perl -ne '
my @f = split /\t/; next unless @f >= 8;
my ($ip,$ts,$st,$rt,$b,$m,$uri,$ua)=@f[0..7];
my $bot = $ua=~/Googlebot/i?"googlebot":$ua=~/bingbot/i?"bingbot":$ua=~/Baiduspider/i?"baiduspider":"human";
print join("\t",$ts,$bot,$st,$rt,$uri),"\n";' > /tmp/crawl.tsv
sqlite3 /tmp/seo.db "CREATE TABLE crawl(ts TEXT,bot TEXT,status INT,rt REAL,uri TEXT);
.mode tabs
.import /tmp/crawl.tsv crawl"
| 判据 |
含义 |
| 抓取量 < 均值 30% |
异常 |
| 5xx 与抓取量负相关 |
服务故障 |
| 抓取正常但收录降 |
索引问题 |
三、渲染一致性(第 03 章)
| 字段 |
要求 |
| title |
无 JS 版 = 渲染版 |
| canonical |
无 JS 版 = 渲染版 |
| 正文长度 |
无 JS 版 ≥ 渲染版 50% |
curl -s URL > /tmp/no-js.html # 爬虫第一波
# 用 playwright 渲染后取最终 DOM → /tmp/rendered.html
diff <(grep -oiE '<title>[^<]*' /tmp/no-js.html) \
<(grep -oiE '<title>[^<]*' /tmp/rendered.html)
四、实体图谱(第 04 章)
| 层次 |
做法 |
| L1 词汇表 |
用对 @type 与字段 |
| L2 实体身份 |
每个实体有稳定 @id(绝对 URL + #片段) |
| L3 图谱 |
用 @id 互相引用,用 sameAs 对齐外部 |
| 反模式 |
修法 |
| 每页重复定义 Organization |
权威页定义,其余引用 |
| @id 用相对路径 |
改绝对 URL |
| 标记与内容不符 |
删除无支撑字段 |
五、信息架构(第 05 章)
| 判据 |
标准 |
| 页面深度 |
首页到重要页 ≤ 4 跳 |
| 孤儿页 |
0 |
| 死胡同 |
0 |
| hub 被首页直链 |
是 |
| 分页 |
真实 <a href> + 独立 URL |
六、hreflang(第 06 章)
| 规则 |
要求 |
| 双向自洽 |
A→B 则 B→A |
| 含自身 |
列表包含自己 |
| href 为终址 |
200、非 301 前地址 |
| canonical |
各指自己,不冲突 |
| x-default |
建议有 |
| 位置 |
head 或 sitemap,只一处 |
curl -s URL | grep -oE 'hreflang="[^"]+"'
七、迁移(第 07 章)
| 验证项 |
通过标准 |
| 覆盖率 |
100% |
| 状态码 |
全 301 |
| 目标 |
全 200 终址 |
| 跳数 |
单跳 |
| 变体 |
带参/尾斜杠也 301 |
| 观察期 |
现象 |
判读 |
| 0–2 周 |
下滑、抓取激增 |
正常 |
| 2–6 周 |
逐步回升 |
正常 |
| > 6 周 |
未回升 |
评估回滚 |
八、性能预算(第 09 章)
| 指标 |
良好阈值 |
| LCP |
≤ 2.5s |
| INP |
≤ 200ms |
| CLS |
≤ 0.1 |
| 首屏 JS |
≤ 170KB(gzip) |
| 数据源 |
用途 |
| CrUX/RUM |
判定是否达标(第 75 百分位) |
| Lighthouse |
定位与回归 |
九、归因判定(第 10 章)
下降
├─ 24h 内有发版? → 上线事故(diff 配置/模板)
├─ 抓取骤降/5xx 升? → 抓取故障
├─ 站点级同降、无改动? → 疑似算法更新
└─ 单页降? → 内容竞争
| 三源同降 | 站点级事件 |
| GSC 降、日志正常 | 排序层 |
| 分析降、其余正常 | 用户侧 |
十、AI 爬虫(第 11 章)
| 类别 |
UA |
robots 建议 |
| 训练 |
GPTBot / ClaudeBot / Google-Extended |
自行选择 |
| 搜索 |
OAI-SearchBot / PerplexityBot |
通常放行 |
| 用户触发 |
ChatGPT-User / Claude-User |
通常放行 |
| 事实 |
说明 |
| Google-Extended 不管搜索 |
屏蔽不影响 Google 搜索 |
| llms.txt 非标准 |
社区提议,无强保证,当实验 |
| 引用 ≠ 点击 |
用品牌/引用口径衡量 |
十一、门禁单入口(第 12 章)
#!/usr/bin/env bash
set -e; fail=0
[ "$(curl -s https://www.xxxxxx.cn/learning/courses/tools/lessons/1/ | grep -c '本章目标')" -gt 0 ] || { echo "❌ 正文未直出"; fail=1; }
curl -s https://www.xxxxxx.cn/learning/ | grep -q 'rel="canonical"' || { echo "❌ 缺 canonical"; fail=1; }
[ "$(curl -s -o /dev/null -w '%{http_code}' https://www.xxxxxx.cn/robots.txt)" = 200 ] || { echo "❌ robots 非 200"; fail=1; }
[ "$(curl -s -o /dev/null -w '%{http_code}' https://www.xxxxxx.cn/learning/nope/)" = 404 ] || { echo "❌ 软 404"; fail=1; }
[ $fail -eq 0 ] && echo "✅ SEO 门禁通过" || exit 1
十二、治理五件套
| 件 |
缺了的后果 |
| 角色 |
无人负责 |
| 节奏 |
时做时不做 |
| 门禁 |
回退无人拦 |
| 看板 |
变化看不见 |
| 预案 |
出事靠慌 |
底线:任何 SEO 改动,都要能回答"怎么衡量、怎么回滚"。
进入 keel 阅读