自动提交网址给搜索引擎(IndexNow)

🚀

开启之后,你每次发布网站或改动内容,Creght 会自动把变化的网址推送给搜索引擎,不用再手动去提交。

覆盖 Bing、Yandex、Seznam、Naver 四家(它们共用 IndexNow 这个协议)。Google 不支持这个协议,它那边仍然靠 sitemap 和 Search Console。

有什么用

不开的话,搜索引擎靠自己来爬,发现一个新页面通常要数天到数周。开了之后,发布完几分钟内它们就会收到通知。

最明显的收益是新页面:新写的文章、新上架的商品、新做的落地页,能快很多被收录。

怎么开

  1. 确认网站已经绑定自定义域名并且发布过。没绑域名这个功能不会出现,因为搜索引擎不收录预览地址。
  2. 打开编辑器左侧的 SEO → 搜索引擎收录
  3. 把「自动提交(IndexNow)」的开关打开。

就这样,没有第四步。不需要注册账号,也不需要去任何搜索引擎后台拿密钥。

刚打开时会发生什么

平台会立刻跑一次,把你网站上最近更新的一批网址提交出去(最多 1000 条)。更早的历史页面不提交,交给 sitemap 正常收录就行。IndexNow 的价值在于「有变化时立刻告诉搜索引擎」,不在于一次性把老内容推一遍。

面板上那几行是什么意思

字段含义
上次同步最近一次提交的时间和条数。它回答的是「这东西还在工作吗」
累计开启以来一共提交过多少条
校验文件一个放在你网站根目录的小文件,搜索引擎用它确认「提交的人确实是这个网站的主人」。点开能看到一串字符就是正常的

如果某次提交失败,这里会显示红色的错误说明,一般能直接看出该改什么。

什么时候会自动提交

三种情况都会触发:发布网站修改 CMS 内容、以及每天一次的兜底检查(防止前两种因为各种原因漏掉)。

连续操作不会重复提交:一分钟内的多次改动会合并成一次。

常见问题

会提交我的草稿或者没发布的页面吗?

不会。提交的清单来自你网站的 sitemap.xml,也就是搜索引擎本来就看得到的那些网址。预览地址、系统临时域名都不会提交。

校验文件里那串字符要保密吗?

不用。它是协议要求公开的,作用只是证明「这个网站归你管」。别人拿到它也只能替你提交你自己网站的网址,做不了别的。所以也不需要定期更换。

我改了 5 次首页,会提交 5 次吗?

通常不会。平台是拿当前 sitemap 和上次提交过的记录做对比,只提交真的变了的那些网址。同一天内反复改同一个页面,一般只提交一次。

为什么我改了页面,却显示「0 个网址」?

最常见的原因是还没发布。编辑器里的改动要发布之后才会进入正式网站,也才会被提交。

另外两种情况也会是 0:

  • 同一天内反复改同一个页面。平台按天判断「变了没有」,当天第一次发布提交过之后,后面几次就不再重复提交。
  • 这次发布没有实际改动。原地重新发布一次不会产生新版本,页面也就不算变过。

平台怎么知道一个页面什么时候变的?

分两种:

  • 内容页(文章、商品这类由 CMS 驱动的详情页):用内容记录自己的更新时间,精确到具体某一条内容。
  • 代码页(首页、功能页这类):用网站这一版发布的时间

代码页之所以不按单个文件算,是因为页面之间会互相引用:首页用了某个组件,组件改了首页的显示也会变,但首页那个文件本身没动过。按文件算会漏掉这种情况,而且看起来像是对的。用发布时间虽然粗一点(这一版里只要有改动,所有代码页都算变了),但不会漏报。

怎么让内容页的更新也被识别?

跟 AI 说一句就行:

给动态路由页面加上 generateStaticParams,返回内容列表并带上 lastModified(用 CMS 记录的 updated_at)。

这同时还解决另一个更要紧的问题:动态路由不写这个函数的话,那些详情页压根不会出现在 sitemap 里,搜索引擎根本找不到它们。SEO 页面上如果看到黄色的提醒说「这些路由在 sitemap 里一个页面都没有」,说的就是这件事,优先修它。

我自己写了 sitemap.ts,是不是就都能识别了?

能,而且不用你操心时间

规则是:某一条你写了 lastModified 就用你写的,没写的平台自动补上这一版的发布时间。所以只在你确实知道准确时间的地方写(比如 CMS 内容的 updated_at),其余留空就好。

不要写 new Date()

Creght 的 sitemap 是每次被访问时现算的,new Date() 于是每次都不一样,平台会误以为整站一直在变、反复重复提交。

这一点和 Next.js 不同:那边的 sitemap 在构建时生成一次,new Date() 正好等于部署时间,所以它的官方示例这么写没问题。照抄过来就会出问题,而且不会有任何报错。

关掉之后会怎样?

不再自动提交,已经提交过的不受影响。随时可以再打开,记录还在。

Google 怎么办?

Google 不支持 IndexNow。它靠 sitemap 自己来爬,你也可以在同一个页面上点「主动提交」去 Google Search Console 手动提交一次。

相关

Render diagnostics