返回博客
4 分钟

上线三周,搜索引擎只收录了我的首页

页面都在,sitemap 也提交了,site: 却只出来一个结果。按顺序排查四个原因,最后一个是我自己写进代码里的。

SEO收录上线
本文目录

上线第三周,我在 Google 里搜 site:patet.xyz。

一个结果。首页。

那会儿站里有二十多个页面,全部能正常打开,互相之间也有链接。

先说什么时候算正常

新站收录慢是正常的。从提交到被爬、被索引,几天到几周都算常见。所以前两周我什么都没做,只是等。

第三周还是只有一页,那就不是慢了。是堵了。

下面是排查顺序,按「从最明显到最隐蔽」排。我实际上也确实是这么一路查下来的。

一、robots.txt 是不是在拦

第一个该看的。我那份是从某个 starter 抄来的,一直没读第二行:

User-agent: *
Disallow: /

整站屏蔽。写了跟没写一样,搜索引擎礼貌地一个都没进来。

Search Console 里能直接区分这件事:「已被 robots.txt 屏蔽」和「已发现,尚未编入索引」是两个完全不同的状态。前者是你在拒绝,后者是它在排队。

这个话题我在上一篇第八节提过,这里快速带过。改完,重新提交,等。

一周后,还是只有一页。

二、页面上有没有 noindex

翻源码,<head> 里很干净,没有。那就换个地方找。

noindex 有三个藏身处,除了 <meta> 标签还有两个:

  • X-Robots-Tag 响应头。 最容易漏,因为它根本不在 HTML 里。
  • 构建时被注入。 有些模板在生产环境判断里留了开关,或者某个插件默认给非首页加 noindex。

用命令行确认比在浏览器里翻源码快:

curl -sI https://你的域名/某篇文章 | grep -i x-robots-tag
curl -s https://你的域名/某篇文章 | grep -i 'name="robots"'

两条都空。排除。

三、canonical 指向了哪里

到这一步我有点没头绪,就把一个内页丢进 Search Console 的 URL 检查。

结果是「备用网页(有适当的规范标记)」:它认为这篇文章的正式版本在另一个地址。

那个地址是 http://localhost:3000。

我在代码里定义了一个 siteUrl 常量,用来拼 canonical、Open Graph 和 sitemap 里的绝对地址。部署那天我改了域名解析,改了环境变量,唯独忘了改这个常量。于是每一页的 <head> 里都写着同一句话:

<link rel="canonical" href="http://localhost:3000/blog/xxx"/>

搜索引擎读到的是:这些页面的正式版本都在一个它访问不了的地址上。那它当然一个都不收。

这个坑之所以隐蔽,是因为页面本身完全正常——打开它、点链接、看排版,一点问题都没有。只有去翻网页源代码,或者看 Search Console 的规范标记报告,才会露馅。

顺手提醒一句:如果你的 canonical 指向 www 而实际域名是裸域(或者反过来),会得到一模一样的结果。这两个购买域名那篇里建议过,一开始就定好一个,另一个 301 过去。

四、sitemap 里真的有网址吗

最后一条,也是我最蠢的一条。

我确实提交了 sitemap.xml,Search Console 也确实显示「已读取」。但我从来没点开看里面有多少条。

我的 sitemap.xml 是构建时生成的,而生成它的那段代码读的是一份手写的路由清单。我后来加了页面,忘了往清单里加。结果 <urlset> 标签齐全,里面一条 <url> 都没有。

Search Console 那边只显示「成功」,不显示「发现了 0 个网址」。

教训:「已读取」不等于「有内容」。提交完顺手数一下:

curl -s https://你的域名/sitemap.xml | grep -c "<loc>"

修完的结果

四条都改完的第二天,搜索结果开始变多。一周内大部分页面进了索引。

但我想说清楚一件事:收录不等于排名。

上面做的全是「让搜索引擎愿意进来、并且看得懂」。至于排在第几位,那是内容质量和外链的事,跟这篇无关。

三条结论

  1. 收录问题,绝大多数是「你自己告诉搜索引擎别收录」。 robots、noindex、canonical 这三件事,全是你自己写进去的,不是搜索引擎在针对你。
  2. site: 只是个粗略参考,数字不准,别拿它当 KPI。要看真实状态,用 Search Console 的覆盖率报告。
  3. 每一步都要验证,别假设。 我这次栽的三个跟头,全是「我以为我配好了」。

站里的 SEO 优化 是正面清单,讲该做什么;这篇是反面清单,讲做错了长什么样。两份对着看,收录这条路基本能走通。

最后说个巧合:我上面栽的那三个跟头——robots、sitemap、canonical——正好就是上线自查清单里「SEO 与可发现性」那一节的三条。当时我要是先过一遍这份清单,能省下三周。

相关文章