IndexNow 是微软必应推出的搜索引擎实时推送协议,提交一次URL,会同步分发到 Bing、Yandex、Naver 等支持该协议的搜索引擎。 当你在WordPress发布新文章,或者修改旧文章后,程序自动调用IndexNow接口提交页面,搜索引擎可以更快发现、抓取你的页面。
⚠️ 注意:百度搜索引擎不支持IndexNow,百度收录需要单独使用百度资源平台API推送。
一、准备工作
- 去 IndexNow 官网生成密钥,拿到一串随机密钥字符串。
- 在网站根目录新建密钥文本文件:
密钥字符串.txt,文件里面只放密钥字符串。 - 确认你的网站支持HTTPS,IndexNow要求使用HTTPS提交。
二、代码实现,添加到主题 functions.php
/**
* IndexNow 自动推送文章链接
* @param $post_id
*/
function indexnow_submit_post($post_id)
{
// 跳过自动保存、修订、非文章类型
if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id) || get_post_type($post_id) !== 'post') {
return;
}
$post_url = get_permalink($post_id);
$key = "这里替换成你的IndexNow密钥";
$keyUrl = "https://你的域名/" . $key . ".txt";
$args = [
'body' => json_encode([
'host' => parse_url(get_site_url(), PHP_URL_HOST),
'key' => $key,
'keyLocation' => $keyUrl,
'urlList' => [$post_url]
]),
'headers' => [
'Content-Type' => 'application/json; charset=utf-8'
],
'timeout' => 10
];
$res = wp_remote_post('[https://api.indexnow.org/indexnow](https://api.indexnow.org/indexnow)', $args);
}
add_action('save_post', 'indexnow_submit_post');
三、代码说明
save_post钩子:新增文章、修改文章保存时触发。- 自动过滤草稿、自动保存、文章修订版本,避免重复无效提交。
- 提交成功没有返回提示,属于后台静默执行,用户发布文章无感知。
四、测试验证
- 发布一篇新文章,或者保存修改旧文章。
- 打开 IndexNow 官网提交检测工具,手动填入文章URL,验证密钥文件是否可访问。
- 登录 Bing 网站管理后台,查看提交记录。
五、补充说明
- IndexNow 不限提交次数,但是不要短时间批量疯狂提交。
- 密钥文件必须外网可直接访问,404会直接提交失败。
- 不保证提交就一定收录,只是加快爬虫发现页面,收录与否取决于搜索引擎本身。