收录

site:域名 只搜到首页?
六个隐形原因。

site: 命令只出一条结果,说明你的站要么没被抓,要么被抓了不让收,要么收了但不认。这三种的修法完全不同,这篇一条条对着查。

文 / RESPEC Team 2025-01-09 SEO / 收录

在谷歌里搜 site:你的域名,只出来首页一条,或者出来三五个还是同一批页面。这不代表站做错了,代表谷歌抓到了、但没打算收,或者根本没抓进来。六种原因,症状都是「搜不到」,修法完全不同。

site: 出来的那个数字,到底是什么?

很多人把 site: 的结果数当成「被收录的页面数」,这是个常见误解。它给的是一个估算的抽样,不是精确清单:同一个查询今天和明天可能差很多,翻到第三页就没了。

所以它是用来做定性判断的,不是定量统计。判断标准只有三档:

  • 只出首页一条:整个站基本没进索引,问题在入口层。
  • 出来一批但都是同类页:抓是抓了,但只收了某一种页面,问题在页面层。
  • 出来的数量跟你的页数对得上:收录没问题,那问题在别处(关键词、内容质量、竞争)。

要精确数字,别看 site:,去 Search Console 的「网页」报告。它会明确告诉你:已编入索引多少、已发现但尚未编入索引多少、被 noindex 排除多少。这个报告比 site: 有用十倍,因为它会告诉你原因。

原因一:robots.txt 挡住了整站

最粗暴也最常见。开发环境为了防止被收录,在 robots.txt 里写了一行 Disallow: /,上线时忘了删。表现是 site: 几乎不出东西,Search Console 里也没有抓取记录。

检查方法:直接访问 https://你的域名/robots.txt,看有没有 Disallow: /。注意判断它的作用范围——写在 User-agent: * 下面才是全站,写在某个具体爬虫下面是只针对那一家。

一个容易忽略的细节:robots.txt 是区分大小写的路径。如果有人把文件名写成了 Robots.txt,在某些服务器上(尤其 Linux 静态托管)会 404,爬虫读不到规则,行为就退回到「默认全抓」——这次不是被挡,而是规则压根没生效。

原因二:noindex 残留

和上面相反:能抓,但明确说了「别收」。多语言站、A/B 测试页、测试域名切换后的残留,都容易留下这个标签。技术说明很直接:

“noindex is a rule set with either a <meta> tag or HTTP response header and is used to prevent indexing content by search engines that support the noindex rule, such as Google.” “Important: For the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler.”

注意第二句这个前提条件:noindex 要生效,页面必须没有被 robots.txt 挡住。所以「robots 挡住 + noindex 兜底」这个看起来最保险的组合,其实是有问题的——挡住之后爬虫读不到 noindex,被挡的页面如果以前收过,会一直留在索引里显示旧内容。

Google 搜索中心 · 用 noindex 阻止索引

检查方法两处都要看:一是页面 head 里的 <meta name="robots">,二是响应头里的 X-Robots-Tag。后者是服务器加的,在页面源码里看不见,很多人只查了 meta 就以为没事。

顺带说一个反直觉的点:如果页面已经被收录、现在想让它消失,正确顺序是先去掉 noindex 让它能被抓、再让它读到 noindex,而不是反过来。挡住就永远读不到那条指令。

原因三:JS 渲染出来是空白

如果页面内容是靠 JavaScript 从接口拉回来再渲染的,搜索引擎第一次抓到的 HTML 里可能什么都没有。谷歌有渲染能力,但渲染是排队进行的,不是立刻——一个资源多、脚本重的页面,可能几周才被渲染一次,渲染失败就一直是空白入库。

判断方法很土但有效:浏览器里关掉 JavaScript,刷新页面,看还剩多少内容。如果你自己看到的是空白或者一堆骨架屏,爬虫大概率看到的一样。

修法不是「加个预渲染插件」这么简单。真正省事的做法是让主内容本来就在 HTML 里——产品参数、公司信息、文章正文,这些最该被收录的东西,不该依赖脚本才能出现。

原因四:sitemap 没提交,或者提交了全是错的

sitemap 不是收录的保证,但它是最省事的告知方式。没有它,谷歌只能靠外链和站内链接慢慢爬。一个新站没有外链,爬虫找到你的速度可能以周计。

提交之后还要看状态。Search Console 的 sitemap 报告会区分「成功」和「有错误」:成功是指文件能被读取,不代表里面的 URL 都被收录。常见错误包括:文件里写了不存在的页面、URL 写成了 http 而站点已经全站 https、以及 sitemap 里的地址和页面 canonical 指向的地址不一致。

还有一条容易被忘:sitemap 里的地址必须是最终地址,不能是会发生 301 的地址。如果 sitemap 写的是 /service.html、而实际访问会跳到 /service/,谷歌会在报告里标成「网页会自动重定向」,这类的处理优先级很低。

原因五:内链断了,爬虫走不进去

爬虫靠链接发现页面。如果一个页面只能从站外某个链接进来、站内没有任何入口,那它就是个孤岛页。孤岛页不是不收录,是很难被持续重抓——内容更新了也没人知道。

外贸站最常见的孤岛:产品页只挂在筛选结果里、文章只出现在博客第一页、旧的活动页从导航撤下来但还留着。检查方法很简单:随便挑五个页面,问自己「从我首页出发,点几下能到」。超过三次点击的,基本算半孤岛。

还有个更隐性的问题:链接是 JS 触发的。onclick="location.href=..." 这种写法,用户能点,爬虫看不到。链接必须是真正的 <a href>。

原因六:整站被当成同一页的不同参数

如果你的 URL 里带一堆参数(?utm_source=、?page_id=、?lang=),谷歌可能把它们都归到同一个页面,只收一个代表。表现就是 site: 出来的数量远小于实际页数。

修法是把 URL 结构收敛成目录式:/products/pump-a/,而不是 /product.php?id=123。已经上线的站改结构要配 301,这一点在迁移那篇里讲得更细。

一张表,按症状对原因

你看到的先查哪怎么确认
site: 几乎不出东西robots.txt访问 /robots.txt,找 Disallow: /
能搜到但内容是旧的noindex + 缓存查 meta 和 X-Robots-Tag,再请求重新抓取
页面打开是空白JS 渲染关掉 JS 刷新,看还剩什么
GSC 显示「已发现但未编入」sitemap + 内链看 sitemap 状态,抽查孤岛页
数量远小于页数URL 参数看 URL 里有没有 ?id= ?lang=
只收了某一类页模板层对比被收和没被收的页面 head 差异

修完之后,怎么让它快点生效?

改动不会自动生效。顺序是:改完 → 在 Search Console 里对几个关键页面用「网址检查」请求编入索引 → 重新提交 sitemap → 等三到七天再搜一次 site:。

「请求编入索引」有配额,一天别刷几十个页面。挑最有价值的五个,产品主页和核心文章页优先。

如果站点规模不大、改动又多,可以走 IndexNow 这条快路——Bing、Yandex、Seznam、Naver 共用这个接口,改完主动推一次,通常几小时就能看到重抓。谷歌不吃这套,只能等。

为什么托管站不太会碰上这事?

静态站的收录问题少一半,原因不神秘:每个 URL 就是一个真实存在的文件,不会出现「路由匹配失败返回 200 空白页」这种软 404;html 里本来就是完整内容,不依赖脚本渲染;sitemap 和 canonical 都是从同一份配置生成的,不会自相矛盾。

要说也不能全免:robots 写错、noindex 忘删、内链没做,这些人为问题照样会发生。区别在于出问题时排查路径短——文件摆在那儿,看一眼就知道是哪一个环节。

搜不到自己的站?把域名发我,我查三处:robots、noindex、sitemap。三分钟能给你结论。

免费

搜不出你的站?
把域名发我,我查三处。

发邮件
  1. 01
    发网址,一句话说清你在担心什么企业微信或邮件都行,不用先填表、不用先注册。
  2. 02
    我按你给的地址实测一遍挑三个有询盘价值的页面,速度、抓取、表单各跑一次。
  3. 03
    当天给结论,能自己改的给清单该换的也直说,并告诉你换完能省下哪几笔。