IndexNow 是微软必应推出的搜索引擎实时推送协议,提交一次URL,会同步分发到 Bing、Yandex、Naver 等支持该协议的搜索引擎。 当你在WordPress发布新文章,或者修改旧文章后,程序自动调用IndexNow接口提交页面,搜索引擎可以更快发现、抓取你的页面。

⚠️ 注意:百度搜索引擎不支持IndexNow,百度收录需要单独使用百度资源平台API推送。

一、准备工作

  1. 去 IndexNow 官网生成密钥,拿到一串随机密钥字符串。
  2. 在网站根目录新建密钥文本文件:密钥字符串.txt,文件里面只放密钥字符串。
  3. 确认你的网站支持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');

三、代码说明

  1. save_post钩子:新增文章、修改文章保存时触发。
  2. 自动过滤草稿、自动保存、文章修订版本,避免重复无效提交。
  3. 提交成功没有返回提示,属于后台静默执行,用户发布文章无感知。

四、测试验证

  1. 发布一篇新文章,或者保存修改旧文章。
  2. 打开 IndexNow 官网提交检测工具,手动填入文章URL,验证密钥文件是否可访问。
  3. 登录 Bing 网站管理后台,查看提交记录。

五、补充说明

  • IndexNow 不限提交次数,但是不要短时间批量疯狂提交。
  • 密钥文件必须外网可直接访问,404会直接提交失败。
  • 不保证提交就一定收录,只是加快爬虫发现页面,收录与否取决于搜索引擎本身。