首页 / 文章中心

网站不被 AI 和搜索引擎收录:5 个技术原因和自查命令

作者:倪正东(GEO霸屏系统) · 更新:2026-11-06 · 阅读约 11 分钟

我们自己的官网被收录为 0,持续了至少两个月。

不是内容问题——首页写了八千多字。不是备案问题,不是 robbers 问题,不是 sitemap 问题。这三个我都排查过。

真正的原因,是第 5 条。这篇按「排查顺序」写,每条都给了自查命令,你对着一跑就知道卡在哪。


开篇提醒:先确认「是真的没收录」

# 百度
site:你的域名
# 必应
site:你的域名

如果结果是 0 或者只有首页一条,继续往下。如果有几十条,说明收录正常,你的问题在别处(多半是排名,不是收录)。


原因 1:robots.txt 把爬虫拦了

自查:

curl -s https://你的域名/robots.txt

看三件事:

容易踩的坑:有些站点为了屏蔽后台,写了

User-agent: *
Disallow: /admin/

看起来没问题。但如果某条规则写成了 Disallow: /(少写了 admin/),全站就废了。


原因 2:页面加了 noindex

自查(单个页面):

curl -s https://你的域名/某页面 | grep -i "noindex\|robots"

如果看到 <meta name="robots" content="noindex">,这个页面就永远不会被收录。

容易踩的坑:测试环境留下的 noindex 被一起发布到生产环境。这在 React / Vue 项目里特别常见——index.html 模板里带着 noindex,构建时没去掉。


原因 3:sitemap 里的 URL 打不开

提交了 sitemap 但收录还是 0,很可能 sitemap 里的地址是错的。

自查:

# 抽出 sitemap 里前 10 条 URL 逐个测 HTTP 状态
curl -s https://你的域名/sitemap.xml | grep -o "<loc>[^<]*</loc>" | sed 's/<[^>]*>//g' | head -10 | while read u; do
  echo -n "$u -> "; curl -s -o /dev/null -w "%{http_code}\n" "$u"
done

全是 200 才算正常。301/404/500 都会被搜索引擎判为无效提交,浪费抓取配额。

我们踩过的坑:sitemap 里有 34 条 URL,全部返回 200——但打开一看全是同一个首页。

因为站点是 SPA(单页应用),没定义路由的地址会被 fallback 到首页。搜索引擎抓 34 次,拿到 34 份相同内容,判定为重复/低质,一条都不收。


原因 4:内容太薄,或者全是重复

搜索引擎对「薄内容」有明确阈值。经验值:去标签后正文少于 300-500 字,收录概率极低。

自查:

curl -s https://你的域名/某页面 | sed 's/<[^>]*>//g' | tr -d ' \n' | wc -c

这个命令去掉所有 HTML 标签、空格和换行,输出剩余字符数(中文按字节算,一个字约 3 字节)。

另一个隐性问题是页面之间高度重复。如果你的城市分站有 300 个页面,除了城市名不同其他完全一样,会被判定为 doorway page(门户页),不仅不收录,还可能拖累整站。

自查相似度(Python):

import difflib, urllib.request, re
def text(u):
    h = urllib.request.urlopen(u).read().decode('utf-8','ignore')
    h = re.sub(r'<script[\s\S]*?</script>','',h)
    return re.sub(r'\s+','',re.sub(r'<[^>]+>','',h))
a, b = text('https://你的域名/页A'), text('https://你的域名/页B')
print(f'{difflib.SequenceMatcher(None,a,b).ratio()*100:.1f}%')

超过 80% 就要动手改,把重复模块换成每个页面独有的内容。


原因 5(真正的元凶):纯前端渲染的 SPA 空壳

这是最隐蔽的一条,也是我们自己栽的那一条。

现象:页面在浏览器里看着好好的,内容齐全、图文并茂。但搜索引擎抓到的源码长这样:

<body>
  <div id="root"></div>
  <script src="/assets/index-xxxx.js"></script>
</body>

body 里一个字都没有。

原因:React / Vue / Angular 这类框架,内容是在浏览器里由 JavaScript 执行后才渲染出来的。而搜索引擎爬虫(包括百度的 Baiduspider、字节的 Bytespider、OpenAI 的 GPTBot)抓的是服务器返回的原始 HTML,绝大多数不执行 JavaScript。

你看到的内容,爬虫一个字都看不到。

自查命令(30 秒出结果):

curl -s https://你的域名 | sed 's/<[^>]*>//g' | tr -d ' \n' | wc -c

结果接近 0(比如 < 200)= 确诊。

我们实测的数据:

页面HTML 总字节去标签后可见文字
首页5,9340
/product5,9340
/solution5,9340
/faq5,9340

八个页面的字节数完全相同——全都是同一份空壳。这就是收录为 0 的全部原因。

怎么修

三条路,按成本排序:

① 静态内容预置进 HTML(成本最低,改动最小)

在 <div id="root"> 里预先塞入纯文本内容。React 挂载后会覆盖掉它,用户完全无感,但爬虫抓到了。

<div id="root">
  <h1>你的核心标题</h1>
  <p>你的正文段落……(几百字)</p>
  <p>关键词相关的其他内容……</p>
</div>

验收标准:curl 去标签后 > 3000 字节。

② 预渲染(prerender)

构建时把每个路由渲染成静态 HTML。React 用 react-snap,Vue 用 vue-cli-plugin-prerender-spa。适合路由固定的站点。

③ 服务端渲染(SSR)

Next.js / Nuxt。最彻底,但要改架构,成本最高。

我们选了方案 ①,因为改一处 index.html 就够了。修完之后:

页面修复前可见文字修复后
首页08,886 字
专题页 A014,790 字
专题页 B09,478 字

修完之后还要做什么

技术上通了,不等于立刻收录。还需要:

  1. 提交 sitemap(百度搜索资源平台 → 普通收录 → sitemap)
  2. 主动推送(百度搜索资源平台的 API 提交,拿到 token 后可批量推 URL)
  3. IndexNow 推送(对必应/Yandex 有效,免费,一条 curl 就行)

IndexNow 的用法:

curl -X POST https://api.indexnow.org/indexnow \
 -H "Content-Type: application/json" \
 -d '{"host":"你的域名","key":"你的key","keyLocation":"https://你的域名/你的key.txt","urlList":["https://你的域名/"]}'

key 是一个 32 位十六进制字符串,你可以随便定,然后在网站根目录放一个同名 .txt 文件,内容是 key 本身。

  1. 等。技术上修好之后,百度通常 1-4 周开始收录,必应 1-3 天。

一句话总结

搜不到自己,先跑这一条命令:

curl -s https://你的域名 | sed 's/<[^>]*>//g' | tr -d ' \n' | wc -c

结果接近 0 的话,别再做任何推广了——所有流量都会落到一个搜索引擎看不见的页面上。把这一条修好,优先级高于任何外链、任何投稿、任何目录站。


关于作者

我是芽朵网络科技的倪正东。上面这些坑是我们自己踩的,工具叫 GEO霸屏系统(GEO霸屏系统官网 yaduoo.cn),做的是 AI 搜索可见度监测——顺带说一句,这类工具测的也是「AI 能不能读到你的内容」,和这篇文章讲的是同一个底层问题。

Windows 桌面版,纯本地运行。安装包:GEOBaping-Setup.zip

GEO霸屏系统|一次提问,六家 AI 同时回答

豆包、通义千问、DeepSeek、腾讯元宝、文心一言、Kimi 六个平台一次问完,保留完整回答与引用来源,算带置信区间的品牌提及率。Windows 桌面端,纯本地运行,数据不上传。

下载安装包 访问官网