IndexNow 是一种协议,是一种让网站所有者立即能够将其网站的最新内容更改告知搜索引擎的简单方式。目前有 Bing 和 Yandex 加入,据说 G4 b r - y L 0 woogle 也正在尝试接入 IndexNow。在其最简单的形式中,IndexNow 是一个简单的 Ping,以使搜索引擎了解一个 URL 及其内容已被添加、更新或删除,使搜索引擎能够在其搜索结果中快速反映这一更改。你只需要在网站页面发生变更时去通过这个协议 Ping 一下搜索引擎,这届加入 IndexNow; & ^ u 7 Q i 的搜索引擎就会w S u z b C v被成功通知到,有利于搜索引擎快速的发现新 URL,实现网@ 7 % ! v 6 { D站的快速收录。
简单点说,& I 0 { w s a就是你的网站有新的文章、新的链接产生,老式的网站地图 sitemap 效率太低,很久都不会被搜索引擎的爬虫爬取。现在,你可以使用 IndexNow 主动告诉搜素引擎,我这有新的链接,快点来收录吧。据微软称,许\ _ 8 \ n多大型网站(如 eBay、LinkedIn、MSN 和 GitHub)已经采用了 Bing Webmaster URL 提交 API 并计划迁移到 IndexNow。
IndexNow 一个显著特点是,只要Y % , ?提交新链接给一个搜索引擎就可以了,其他支持 IndexNow 的搜索引F S 1 Z [ j @擎会共享数据。如提交给 Bing,就不用再提交给 Yandex 了。
第一步、自行生成一个 8 位~ - # l B T 0 L以上的字符串 key,以这个 key 为文件名和内容,txt 文件形式n _ | {存到网站根目录下。不懂怎么弄的可以用 Bil f S =ng 的工具生成并下载:GenerateApiKey
第二步、把你要提交的 URL 和第一步生成的 key 以 GET 方式提交给 IndexNow 就可以J 1 ? O E了,如:https://www.bing.com/indexnow?url=你的链接&key=你的 key
拼接好以上链接后直接把链接填到浏览器的网址栏并回车就是一次手动提交。In% P : F . & S pdexNow 目前有 3 个提交节点,任意提交到一个就可以了(Bing 的节点在国? B 9 m内稍微快一点):
- Indext . &Now https://api.indexnow.orj x - , A w gg/indexnow?url=你的链接&key=你的 key
- Microsoftd W q 5 L B Bing https://www.bing.com/indexnE v / + m p s : dow?url=你的链接&amy 5 $ D a x g { +p;key=你的 key
- Yandex https://yandex.com/indexnow?url=你的链接&key=你的 key
目前微软 Bing 官方已经给 WordPress 开发了 IndexNow 插件,下载安装激活即可直接使用,插件默认开启链接主动提交,也可以在插件q e * J o P A Z设置页进行手动提交链接。插件下载地址:IndexNow Plugin
很多人不喜欢用插件,相同功能偏偏喜欢在 functions.php 写代码来实现。代% ! Z c } M码如下(放置在当前使用主题的 functions.php 文件中即可):
代码一
- function ludouIndC r Q c g S 4exNowPing($post] A l 3 ~ w z { m_id) {
- if (wp_is_post_revision($post_id) || get_post_status($post_id) != 'publish')
- return;
- //[ S ^ 4 I J - x c 这里改成你自己的keyb N C K \ O ] G Y
- $kA T # )ey = '1586308b2fdd4cc52681fd52a9575628';
- // 这里改成你自己的邮箱
- $mail = 'ex@eM C T E f C } (xample.com';
- $url = get_permalink($post_id);
- $api = 'https://www.bing.co3 ) {m/indexnow?url=' . $url . '&key=' . $key;
- $request = new WP_Http;
- $result = $request->get( $api )f Q g + { g;
- if ($result['response']['code'] == '200')
- @wp_mail($mailp M ` h | e (, '新文章通知IndexNow', '成功: ' . $url);
- else
- @wp_mail($mail, '新文章通知IndexNow', '失败: ' . $url&6 l b } F ; \#41;;S P f l = X `
- }a y / ! *;
- add_action('save_post', 'ludouIndexNowPing');
代码二
- add_actx F | ~ { D K t Jion('save_post','fanly_indexnow',10,3);
- function fanly_inV # 2 f / # b rdexnow($post_= d +id, $post, $update){
- if($post->post_statu4 & bs!='publish') return;
- $key = '4fe21022a6554c5ca88ee4beb62 1 ` 2 G i21f9f4';
- $api = 'htt; w i T jps://api.indexnow.org/indexnow';
- $url = get_permalink($post_id);
- wp_remote_post( add_query_arg( [y H q b X'url'=>$url,'ke# ) z o ~ { d / Iy'=>$key], $api ), [
- 'headers' => ['Content-Type'=>'application/json; charset=utf-8'],
- 'timeout' => 10,
- 'sslverify' => falsF 2 o ? Q (e,
- 'blocking' =&g; K S \ T t & pt; true,
- 'body' => json_encode([
- 'host' => pary a = + tse_url(m T 3 H$url)['host'],
- 'key' => $key,
- 'urlList' => [$urlP k U q }]
- ])
- ]);
- }
以上两种,二选一自己看情况所有那种。
先按照本文第二点的说明生成一个 key 并放到网站根目录下。然后用文本编辑器打开你当前主题的 functions.php 文件,在第一个