在 Cloudflare 上为 Astro 站点启用 IndexNow,有两种主流方案:Cloudflare Crawler Hints(零代码、自动) 和 astro-indexnow 集成(构建时自动提交)。
下面是完整配置步骤。
方案一:Cloudflare Crawler Hints(推荐,零代码)
Cloudflare 内置 IndexNow 支持,开启后自动向 Bing、Yandex 等推送更新,无需修改 Astro 代码。
1. 前提
- 域名已接入 Cloudflare 并正常解析
- Astro 站点已部署到 Cloudflare Pages/Workers
2. 开启 Crawler Hints
- 登录 Cloudflare Dashboard → 进入你的域名
- 左侧菜单:Caching → Configuration
- 找到 Crawler Hints → 开启 Enable Crawler Hints
- 保存设置
Cloudflare 会自动监控站点内容变化,通过 IndexNow 协议通知搜索引擎。
方案二:astro-indexnow 集成(构建时提交,精准可控)
使用官方集成 astro-indexnow,在 Astro 构建时自动提交变更 URL,适合需要精确控制提交时机的场景。
1. 安装集成
# npm
npm install astro-indexnow --save-dev
# 或使用 Astro CLI
npx astro add astro-indexnow
2. 生成并托管 IndexNow API Key
- 生成 Key:访问 IndexNow 官网 生成 API Key(如 19ea3a37344a414fb6c09554549114a9)
- 创建 Key 文件:在 Astro 项目 public/ 目录下新建文本文件,命名为 [你的Key].txt,内容仅为 Key 本身
- 确保可访问:部署后 https://你的域名/[Key].txt 能正常打开
3. 配置 Astro
编辑 astro.config.mjs,添加 astro-indexnow 集成并配置站点与 Key:
import { defineConfig } from 'astro/config';
import indexnow from 'astro-indexnow';
export default defineConfig({
// 必须配置你的站点域名
site: 'https://your-domain.com',
integrations: [
indexnow({
// 你的 IndexNow API Key
key: '19ea3a37344a414fb6c09554549114a9',
// Key 文件路径(默认根目录,与 public 对应)
keyLocation: '/19ea3a37344a414fb6c09554549114a9.txt',
// 可选:提交引擎(默认 Bing、Yandex)
engines: ['bing', 'yandex'],
}),
],
});
4. 部署到 Cloudflare
- Cloudflare Pages:连接 Git 仓库,构建设置:
- 构建命令:npm run build
- 输出目录:dist
- Cloudflare Workers:安装 @astrojs/cloudflare 适配器,配置 output: ‘server’,用 wrangler deploy 部署
5. 验证提交
- 构建日志:查看 astro build 输出,确认提交成功
- Bing 站长工具:进入 IndexNow 面板,查看提交记录
三、两种方案对比
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Cloudflare Crawler Hints | 零代码、自动、免费、无需维护 | 提交时机不可控、依赖 Cloudflare 监控 | 快速启用、追求极简 |
| astro-indexnow | 构建时精准提交、仅提交变更、可配置引擎 | 需安装集成、配置 Key、维护文件 | 需精确控制、多站点管理 |












