IndexNow 是一种协议,是一种让网站所有者立即能够将其网站的最新内容更改告知搜索引擎的简单方式。目前有 Bing 和 Yandex 加入,据说 Google 也正在尝试接入 IndexNow。在其最简单的形式中,IndexNow 是一个简单的 Ping,以使搜索引擎了解一个 URL 及其内容已被添加、更新或删除,使搜索引擎能够在其搜索结果中快速反映这一更改。你只需要在网站页面发生变更时去通过这个协议 Ping 一下搜索引擎,这届加入 IndexNow 的搜索引擎就会被成功通知到,有利于搜索引擎快速的发现新 URL,实现网站的快速收录。
简单点说,就是你的网站有新的文章、新的链接产生,老式的网站地图 sitemap 效率太低,很久都不会被搜索引擎的爬虫爬取。现在,你可以使用 IndexNow 主动告诉搜素引擎,我这有新的链接,快点来收录吧。据微软称,许多大型网站(如 eBay、LinkedIn、MSN 和 GitHub)已经采用了 Bing Webmaster URL 提交 API 并计划迁移到 IndexNow。
section
IndexNow 一个显著特点是,只要提交新链接给一个搜索引擎就可以了,其他支持 IndexNow 的搜索引擎会共享数据。如提交给 Bing,就不用再提交给 Yandex 了。
第一步、自行生成一个 8 位以上的字符串 key,以这个 key 为文件名和内容,txt 文件形式存到网站根目录下。不懂怎么弄的可以用 Bing 的工具生成并下载:GenerateApiKey
第二步、把你要提交的 URL 和第一步生成的 key 以 GET 方式提交给 IndexNow 就可以了,如:https://www.bing.com/indexnow?url=你的链接&key=你的 key
拼接好以上链接后直接把链接填到浏览器的网址栏并回车就是一次手动提交。IndexNow 目前有 3 个提交节点,任意提交到一个就可以了(Bing 的节点在国内稍微快一点):
目前微软 Bing 官方已经给 WordPress 开发了 IndexNow 插件,下载安装激活即可直接使用,插件默认开启链接主动提交,也可以在插件设置页进行手动提交链接。插件下载地址:IndexNow Plugin
section
很多人不喜欢用插件,相同功能偏偏喜欢在 functions.php 写代码来实现。代码如下(放置在当前使用主题的 functions.php 文件中即可):
function ludouIndexNowPing($post_id) {
if (wp_is_post_revision($post_id) || get_post_status($post_id) != 'publish')
return;
// 这里改成你自己的key
$key = '1586308b2fdd4cc52681fd52a9575628';
// 这里改成你自己的邮箱
$mail = 'ex@example.com';
$url = get_permalink($post_id);
$api = 'https://www.bing.com/indexnow?url=' . $url . '&key=' . $key;
$request = new WP_Http;
$result = $request->get( $api );
if ($result['response']['code'] == '200')
@wp_mail($mail, '新文章通知IndexNow', '成功: ' . $url);
else
@wp_mail($mail, '新文章通知IndexNow', '失败: ' . $url);
}
add_action('save_post', 'ludouIndexNowPing');
add_action('save_post','fanly_indexnow',10,3);
function fanly_indexnow($post_id, $post, $update){
if($post->post_status!='publish') return;
$key = '4fe21022a6554c5ca88ee4beb621f9f4';
$api = 'https://api.indexnow.org/indexnow';
$url = get_permalink($post_id);
wp_remote_post( add_query_arg( ['url'=>$url,'key'=>$key], $api ), [
'headers' => ['Content-Type'=>'application/json; charset=utf-8'],
'timeout' => 10,
'sslverify' => false,
'blocking' => true,
'body' => json_encode([
'host' => parse_url($url)['host'],
'key' => $key,
'urlList' => [$url]
])
]);
}
以上两种,二选一自己看情况所有那种。
先按照本文第二点的说明生成一个 key 并放到网站根目录下。然后用文本编辑器打开你当前主题的 functions.php 文件,在第一个
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!