什么是IndexNow
引用IndexNow官网的介绍:“IndexNow 是一种让网站所有者立即能够将其网站的最新内容更改告知搜索引擎的简单方式。在其最简单的形式中,IndexNow 是一个简单的 Ping,以使搜索引擎了解一个 URL 及其内容已被添加、更新或删除,使搜索引擎能够在其搜索结果中快速反映这一更改。”文章源自黄强博客-https://huangqiang.me/98.html
文章源自黄强博客-https://huangqiang.me/98.html
简单点说,就是你的网站有新的文章、新的链接产生,老式的网站地图sitemap效率太低,很久都不会被搜索引擎的爬虫爬取。现在,你可以使用IndexNow主动告诉搜素引擎,我这有新的链接,快点来收录吧。目前IndexNow已经被Bing、Yandex支持。文章源自黄强博客-https://huangqiang.me/98.html
IndexNow一个显著特点是,只要提交新链接给一个搜索引擎就可以了,其他支持IndexNow的搜索引擎会共享数据。如提交给Bing,就不用再提交给Yandex了。文章源自黄强博客-https://huangqiang.me/98.html
注意:目前IndexNow有10000条链接/天的提交限额。文章源自黄强博客-https://huangqiang.me/98.html
如何使用IndexNow
可以参考IndexNow和Bing的技术文档:文章源自黄强博客-https://huangqiang.me/98.html
其实就2个步骤:文章源自黄强博客-https://huangqiang.me/98.html
第一步,自行生成一个8位以上的字符串key,以这个key为文件名和内容,txt文件形式存到网站根目录下。不懂怎么弄的可以用Bing的工具生成并下载:GenerateApiKey文章源自黄强博客-https://huangqiang.me/98.html
第二步,把你要提交的URL和第一步生成的key以GET方式提交给IndexNow就可以了,如:https://www.bing.com/indexnow?url=你的链接&key=你的key
文章源自黄强博客-https://huangqiang.me/98.html
拼接好以上链接后直接把链接填到浏览器的网址栏并回车就是一次手动提交。文章源自黄强博客-https://huangqiang.me/98.html
IndexNow目前有3个提交节点,任意提交到一个就可以了(Bing的节点在国内稍微快一点):文章源自黄强博客-https://huangqiang.me/98.html
- IndexNow https://api.indexnow.org/indexnow?url=你的链接&key=你的key
- Microsoft Bing https://www.bing.com/indexnow?url=你的链接&key=你的key
- Yandex https://yandex.com/indexnow?url=你的链接&key=你的key
WordPress IndexNow 插件
目前微软Bing官方已经给WordPress开发了IndexNow插件,下载安装激活即可直接使用,插件默认开启链接主动提交,也可以在插件设置页进行手动提交链接。文章源自黄强博客-https://huangqiang.me/98.html
插件安装和使用跟其他插件类似,申请自己的key设置好就行了。文章源自黄强博客-https://huangqiang.me/98.html
IndexNow主动提交代码版(一)
在我玩WordPress的那个年代,很多人不喜欢用插件,相同功能偏偏喜欢在functions.php写代码来实现。老规矩,这里也介绍怎么使用代码实现:文章源自黄强博客-https://huangqiang.me/98.html
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');
代码版(一)使用方法:
先按照本文上面第二步的说明生成一个key并放到网站根目录下。文章源自黄强博客-https://huangqiang.me/98.html
然后用文本编辑器打开你当前主题的functions.php文件,在第一个 <?php 后面另起一行,粘贴以上代码,然后把代码里的key和邮箱地址改成你自己的就可以了。以后发布新文章或者修改后保存文章,就会自动将链接提交给IndexNow,成功与否会给你的邮箱发一个通知邮件。文章源自黄强博客-https://huangqiang.me/98.html
IndexNow主动提交代码版(二)
测试了网上分享的各个接口,并且给自己的所有网站升级支持 IndexNow 协议,由于有的朋友不喜欢安装插件,就把相关的 WordPress IndexNow 提交代码分享出来,代码如下(放置在当前使用主题的 functions.php 文件中即可):文章源自黄强博客-https://huangqiang.me/98.html
//WordPress IndexNow 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: 8 – 128 个十六进制字符。密钥只能包含以下字符:小写字母(a-z),大写字母(A-Z),数字(0-9),以及短破折号(-)。文章源自黄强博客-https://huangqiang.me/98.html
$api:https://api.indexnow.org/indexnow 或 https://www.bing.com/indexnow 或 https://yandex.com/indexnow 三选一,推荐第一个或第二个。文章源自黄强博客-https://huangqiang.me/98.html
以上代码中$key 和$api 的值是可以修改的,同时$key 的值放置在当前网站根目录需要放置同名 txt 文件,例如:$key = ‘4fe21022a6554c5ca88ee4beb621f9f4’;那么需要建立一个4fe21022a6554c5ca88ee4beb621f9f4.txt 文件,且 txt 文件内容也为 4fe21022a6554c5ca88ee4beb621f9f4,放置在网站根目录。文章源自黄强博客-https://huangqiang.me/98.html
若有不明白的可以在 IndexNow官网、Microsoft Bing查看相关文档。文章源自黄强博客-https://huangqiang.me/98.html
评论