WordPress中使用IndexNow主动提交链接让搜索引擎快速收录

IndexNow 是一种协议,是一种让网站所有者立即能够将其网站的最新内容更改告知搜索引擎的简单方式。目前有 Bing 和 Yandex 加入,据说 Google 也正在尝试接入 IndexNow。在其最简单的形式中,IndexNow 是一个简单的 Ping,以使搜索引擎了解一个 URL 及其内容已被添加、更新或删除,使搜索引擎能够在其搜索结果中快速反映这一更改。你只需要在网站页面发生变更时去通过这个协议 Ping 一下搜索引擎,这届加入 IndexNow 的搜索引擎就会被成功通知到,有利于搜索引擎快速的发现新 URL,实现网站的快速收录。

简单点说,就是你的网站有新的文章、新的链接产生,老式的网站地图 sitemap 效率太低,很久都不会被搜索引擎的爬虫爬取。现在,你可以使用 IndexNow 主动告诉搜素引擎,我这有新的链接,快点来收录吧。据微软称,许多大型网站(如 eBay、LinkedIn、MSN 和 GitHub)已经采用了 Bing Webmaster URL 提交 API 并计划迁移到 IndexNow。

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 的节点在国内稍微快一点):

  • 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

目前微软 Bing 官方已经给 WordPress 开发了 IndexNow 插件,下载安装激活即可直接使用,插件默认开启链接主动提交,也可以在插件设置页进行手动提交链接。插件下载地址:IndexNow Plugin

section

很多人不喜欢用插件,相同功能偏偏喜欢在 functions.php 写代码来实现。代码如下(放置在当前使用主题的 functions.php 文件中即可):

代码一

  1. function ludouIndexNowPing($post_id) {
  2. if (wp_is_post_revision($post_id) || get_post_status($post_id) != 'publish')
  3. return;
  4. // 这里改成你自己的key
  5. $key = '1586308b2fdd4cc52681fd52a9575628';
  6. // 这里改成你自己的邮箱
  7. $mail = 'ex@example.com';
  8. $url = get_permalink($post_id);
  9. $api = 'https://www.bing.com/indexnow?url=' . $url . '&key=' . $key;
  10. $request = new WP_Http;
  11. $result = $request->get( $api );
  12. if ($result['response']['code'] == '200')
  13. @wp_mail($mail, '新文章通知IndexNow', '成功: ' . $url);
  14. else
  15. @wp_mail($mail, '新文章通知IndexNow', '失败: ' . $url);
  16. }
  17. add_action('save_post', 'ludouIndexNowPing');

代码二

  1. add_action('save_post','fanly_indexnow',10,3);
  2. function fanly_indexnow($post_id, $post, $update){
  3. if($post->post_status!='publish') return;
  4. $key = '4fe21022a6554c5ca88ee4beb621f9f4';
  5. $api = 'https://api.indexnow.org/indexnow';
  6. $url = get_permalink($post_id);
  7. wp_remote_post( add_query_arg( ['url'=>$url,'key'=>$key], $api ), [
  8. 'headers' => ['Content-Type'=>'application/json; charset=utf-8'],
  9. 'timeout' => 10,
  10. 'sslverify' => false,
  11. 'blocking' => true,
  12. 'body' => json_encode([
  13. 'host' => parse_url($url)['host'],
  14. 'key' => $key,
  15. 'urlList' => [$url]
  16. ])
  17. ]);
  18. }

以上两种,二选一自己看情况所有那种。

先按照本文第二点的说明生成一个 key 并放到网站根目录下。然后用文本编辑器打开你当前主题的 functions.php 文件,在第一个 <?php 后面另起一行,粘贴以上代码,然后把代码里的 key 和邮箱地址改成你自己的就可以了。以后发布新文章或者修改后保存文章,就会自动将链接提交给 IndexNow,成功与否会给你的邮箱发一个通知邮件。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress 判断页面函数is_page()怎么使用

2022-3-22 11:02:40

WordPress教程

Advanced Custom Fields 高级自定义字段插件详细使用教程

2022-3-22 20:26:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索