在搭建个人博客或技术文档网站时,如何让搜索引擎快速发现和收录新内容是一个重要问题。本文将详细介绍如何在 Docusaurus 中集成 IndexNow,实现内容的快速收录。
1. IndexNow 简介
1.1 什么是 IndexNow
IndexNow 是一个开放协议,允许网站所有者即时通知搜索引擎其内容的变更。它由微软和 Yandex 共同开发,目前已得到多家搜索引擎的支持。
支持的搜索引擎
目前支持 IndexNow 的搜索引擎包括:
- Bing
- Yandex
- Seznam.cz
- Naver
- DuckDuckGo(通过 Bing)
1.2 为什么需要 IndexNow
传统的网站收录方式主要依赖:
- 搜索引擎定期爬取
- 提交 Sitemap
- 手动提交 URL
这些方式都存在一定的延迟。而 IndexNow 提供了一种主动推送的方式,可以:
- 实时通知搜索引擎内容更新
- 减少搜索引擎资源浪费
- 加快内容收录速度
2. 集成准备
2.1 获取 API Key
- 访问 IndexNow 官网
- 生成一个唯一的 API Key(32位字符串)
- 在网站根目录验证 Key 文件
2.2 项目配置
在 Docusaurus 配置文件中添加 IndexNow 相关配置:
// docusaurus.config.ts
export default {
// ... 其他配置
customFields: {
indexNow: {
key: '57cbafe50d9f4792b8056c635a805aa0'
}
}
}
3. 实现步骤
3.1 创建 IndexNow 工具
首先创建一个处理 IndexNow API 请求的工具文件:
// src/plugin/plugin-content-blog/IndexNow.js
const axios = require('axios');
async function submitToIndexNow(urlList, { host, key }) {
try {
const response = await axios.post('https://api.indexnow.org/indexnow', {
host,
key,
keyLocation: `https://${host}/${key}.txt`,
urlList: urlList
}, {
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
});
console.log('IndexNow submission successful:', response.data);
return response.data;
} catch (error) {
console.error('Error submitting to IndexNow:', error);
throw error;
}
}
module.exports = {
submitToIndexNow
};