你的网站在 AI 眼里是什么样:三类「人能看见、AI 看不见」的内容

先给结论 :判断一个页面对 AI 是否可见,不能用浏览器打开看 。浏览器会执行 JS、会渲染结构化数据、会用你的登录态;而 AI 的抓取工具通常什么都不做------它拿到 HTML,剥掉 <script>,读剩下的可见文本。

这中间的落差,能让一个在你眼里内容丰富的页面,在 AI 眼里是一张白纸。

下面三类是实测中最常见的,每类都给判别命令。


一、JSON-LD 结构化数据:SEO 的资产,AI 的盲区

很多站为了 SEO 会在页面里塞 JSON-LD:

html 复制代码
<script type="application/ld+json">
{"@type": "FAQPage", "mainEntity": [
  {"@type": "Question", "name": "怎么配置端点?",
   "acceptedAnswer": {"text": "设置两个环境变量......"}}]}
</script>

搜索引擎认这个,会拿它生成富摘要。但AI 的抓取工具通常只提取可见文本,直接丢弃 <script> 标签的内容------包括 JSON-LD。

所以会出现这种情况:你的 FAQ 在 Google 上有富摘要展示,但 AI 完全不知道你回答过这些问题,因为那些问答只存在于 <script> 里,页面上没有对应的可见文本

判别方法

把页面抓下来,剥掉 <script><style>,看剩多少字:

bash 复制代码
curl -sSL -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0" \
  "https://你的页面" -o p.html

python3 - <<'EOF'
import re, html
s = open('p.html', encoding='utf-8', errors='ignore').read()
b = re.sub(r'(?is)<(script|style)[^>]*>.*?</\1>', '', s)
txt = re.sub(r'\s+', ' ', html.unescape(re.sub(r'(?s)<[^>]+>', ' ', b))).strip()
print(f"HTML 总大小: {len(s)} 字符")
print(f"去掉 script 后的可见文本: {len(txt)} 字符   ← AI 能看到的量")
print(f"前 200 字: {txt[:200]}")
EOF

如果第二个数字远小于第一个,问题就在这里。

正确做法:两者都给

不是把 JSON-LD 删掉------它对搜索引擎仍然有用。而是同一份内容,可见文本和 JSON-LD 各给一份

  • 页面上用正常的 <h3>问题</h3><p>答案</p> 把问答写出来
  • 同时保留 JSON-LD 给搜索引擎

一份内容两种表达,两边都能读到。


二、客户端渲染:HTML 里没有正文

这一类更隐蔽,因为你用浏览器看一切正常

实测过一个内容平台的文章页:HTML 有 63KB,看起来内容很多。但去掉 <script> 之后,可见文本只剩 2200 字符,全是导航和页脚,正文一个字都没有

正文在哪?在 __NEXT_DATA__ 那个 <script> 里,等着 JS 把它渲染出来。

bash 复制代码
# 同样的检测命令,这类页面的特征是:
# HTML 很大,但去 script 后的可见文本极少

这意味着什么

搜索引擎爬虫会执行 JS ,所以它们能看到正文,页面照样能被收录。但多数 AI 抓取工具不执行 JS

所以这类页面走的是「搜索引擎索引」这条路,不是「实时抓取」那条路。两个推论:

  1. 发完不会立刻见效,要等搜索引擎先索引,再等 AI 通过搜索拿到
  2. 如果某个渠道铺了很久没进 AI 信源池,先查它是不是 CSR 且没被索引

三、robots.txt 白名单:从规则上就被排除

前两类是技术实现问题,这一类是规则问题,而且改不了。

有些平台的 robots.txt白名单制------只放行少数几个指定的爬虫,末尾一条通配规则把其他所有的都挡掉:

bash 复制代码
User-agent: 某搜索引擎爬虫
Allow: /某路径

User-agent: *
Disallow: /

这意味着:不在白名单里的抓取工具,从规则上就不该访问。而 AI 用的抓取工具,绝大多数不在那几个名字里。

判别方法

bash 复制代码
curl -s https://某平台/robots.txt | tail -20

看最后有没有 User-agent: * + Disallow: / 这种通配拦截。有的话,再看上面放行了哪几个具名爬虫。

如果放行列表里只有几个搜索引擎,那么在这个平台发内容,对 AI 可见性的贡献是结构性的零------不是「发得不够多」,是发多少都一样。

这个判断能帮你省掉大量无效投入。我就是靠这条排除掉了一个粉丝量很大、看起来很值得做的平台。


四、还有一类:你自己看得见,是因为你登录着

这一类最容易误判,因为症状和「页面正常」完全一样

排查时我遇到过:一个页面在浏览器里内容完整,但 AI 抓不到。用未登录的环境测才发现------未登录访问会被 302 到登录页

bash 复制代码
# 关键是加 -L 看最终落点,不能只看第一个状态码
curl -sS -o /dev/null -w "%{http_code} → %{url_effective}\n" -L \
  -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0" \
  "https://你的页面"

如果 url_effective 变成了登录页,那这个页面对任何未登录访问者(包括所有 AI 抓取工具)都是不可见的。

⚠️ 验证这一类必须用「干净」的环境:不带 cookie、不带登录态。用你日常的浏览器测,测出来的永远是「正常」。


五、一套完整的自检流程

按顺序跑,每一步都能排除一类问题:

bash 复制代码
URL="https://你的页面"
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0"

# ① 未登录能不能访问,最终落在哪
curl -sS -o p.html -w "HTTP %{http_code} → %{url_effective}\n" -L -A "$UA" "$URL"

# ② 去掉 script 后还剩多少可见文本
python3 -c "
import re,html
s=open('p.html',encoding='utf-8',errors='ignore').read()
b=re.sub(r'(?is)<(script|style)[^>]*>.*?</\1>','',s)
t=re.sub(r'\s+',' ',html.unescape(re.sub(r'(?s)<[^>]+>',' ',b))).strip()
print(f'HTML {len(s)} → 可见文本 {len(t)}')
print('前 200 字:', t[:200])"

# ③ 关键内容在不在可见文本里(换成你自己的关键词)
grep -c "你的核心关键词" p.html

判读:

结果 结论
① 落到登录页 对 AI 完全不可见,先解决访问权限
② 可见文本 < HTML 的 5% 大概率是 CSR,正文在 <script>
③ 关键词只在 script 里出现 内容只存在于 JSON-LD 或数据块,AI 读不到
三项都正常 技术层没问题,剩下的是内容和权重问题

六、一条容易搞反的因果

最后说一个我自己犯过的错。

看到某个域名在 AI 的引用来源里出现频率很高,很容易得出「在这个平台发内容效果好」。

域名级的数据不等于账号级的可达性

我曾经因为某平台在信源统计里排第四,判断它是个明显的机会,于是把发布链路做通、文章发出去,事后才发现:那个账号的内容未登录根本访问不了(第四类问题)。域名有价值,但我们发的内容不可达,贡献是零。

开一个新渠道时,先验证「我们发的东西能不能被访问」,再谈这个域名值不值。 顺序反了,前面所有工作都是空转。


小结

类型 症状 判别 能不能解决
JSON-LD 只在 script 里 有富摘要但 AI 不知道 去 script 后文本量 ✅ 同时给可见文本
客户端渲染 HTML 大但可见文本少 同上 ⚠️ 靠搜索引擎索引,慢
robots 白名单排除 发多少都进不了 看 robots.txt 的通配规则行 ❌ 结构性的,换平台
未登录不可访问 自己看正常,AI 看不到 干净环境 + -L 追踪落点 ✅ 但要平台侧解决

一句话:别用你的浏览器判断 AI 能看到什么。 你的浏览器执行 JS、渲染结构化数据、带着登录态------这三样 AI 的抓取工具一样都没有。

相关推荐
zx_741484816 小时前
【Python入门】爬虫实战:Requests + XPath 从基础到实战
开发语言·爬虫·python
for_ever_love__8 小时前
python爬虫: GET请求与POST请求
开发语言·爬虫·python·网络编程
IT毕设实战小研10 小时前
基于安卓的考研资讯系统设计与实现
android·大数据·vue.js·爬虫·python·考研·课程设计
IT毕设实战小研19 小时前
基于安卓的空气质量查询系统
android·大数据·vue.js·爬虫·python·django·课程设计
benchmark_cc1 天前
1000只ETF的5分钟K线如何批量获取?QuantDash分页策略与高性能Python实践
开发语言·人工智能·爬虫·python·算法·quantdash·量化数据源
跨境观察员小周1 天前
Crawl4AI 零基础入门:网页爬虫保姆级教程
爬虫
绘梨衣5472 天前
异步任务队列-学习2
爬虫·python·学习·任务队列
Python大数据分析@2 天前
推荐一个好用的爬虫CLI工具
爬虫·网络爬虫
傻啦嘿哟2 天前
某宝商品爬虫:破解反爬的终极方案(含IP代理池+User-Agent轮换)
爬虫·网络协议·tcp/ip