Hexo NexT 博客提交搜索引擎收录

如果你不主动提交你的博客地址给各大搜索引擎,那么即使你站内优化做得再好,搜索引擎根本都不知道你的博客的存在。本文简单介绍如何在各大搜索引擎提交博客。

站点地图生成

站点地图即 sitemap,是一个页面,上面放置了网站上需要搜索引擎抓取的所有页面的链接。站点地图可以告诉搜索引擎网站上有哪些可供抓取的网页,以便搜索引擎可以更加智能地抓取网站。

安装百度和 Google 的站点地图生成插件

1
2
npm install hexo-generator-baidu-sitemap --save
npm install hexo-generator-sitemap --save

修改配置文件

修改站点配置文件_config.yml,添加以下内容:

1
2
3
4
5
# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

hexo g 生成后进入 public 目录,你会发现里面有 sitemap.xmlbaidusitemap.xml 两个文件,这就是生成的站点地图。里面包含了网站上所有页面的链接,搜索引擎通过这两个文件来抓取网站页面。

  • sitemap.xml 用来提交给 Google
  • baidusitemap.xml 用来提交给百度

Google Search Console

查看是否被收录

首先查看你的博客地址是否已经被 Google 收录,在 Google 的搜索栏中搜索:

1
site:weilining.github.io

搜索资源提交

进入 Google Web Master Search Console,首先需要进行站点验证,由于 NexT-7.1.2 已经内置了这个方法,所以这里只需要在主题配置文件_config.yml 把验证代码写上去就可以:

1
2
3
# Google Webmaster tools verification.
# See: https://www.google.com/webmasters
google_site_verification: smrzctX4--4QKjd_jAPttPxWy06c4SLQo2v1sHBA5rE

然后提交 sitemap 即可。

百度站长平台

添加、验证站点

由于 NexT-7.1.2 已经内置了这个方法,所以这里只需要在主题配置文件_config.yml 把验证代码写上去就可以:

1
2
3
# Baidu Webmaster tools verification.
# See: https://ziyuan.baidu.com/site
baidu_site_verification: bfzCl5Q4EF

生成、部署后进行验证即可。

链接提交

百度站长平台的链接提交方式分为自动提交和手动提交两种,此处只讲自动提交,手动提交按照要求操作即可。

主动推送(实时)

主动推送最为快速的提交方式,是被百度收录最快的推送方式。主动推送的实现原理如下:

  • 新链接的产生, hexo generate 会产生一个文本文件,里面包含最新的链接
  • 新链接的提交, hexo deploy 会从上述文件中读取链接,提交至百度搜索引擎

下面是具体的实现:

安装插件:

1
npm install hexo-baidu-url-submit --save

然后在站点配置文件_config.yml 添加:

1
2
3
4
5
baidu_url_submit:
count: 5 ## 提交最新的五个链接
host: weilining.github.io ## 百度站长平台中注册的域名
token: xxxxxxxxxxx ## 准入秘钥
path: baidu_urls.txt ## 文本文档的地址, 新链接会保存在此文本文档里

准入秘钥可以在链接提交-自动提交-主动推送(实时)中查看。

然后我们需要保证站点_config.yml 文件中 url 的值是百度站长平台注册的域名, 比如:

1
2
3
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://weilining.github.io/

最后,加入新的 deployer-baidu_url_submitter:

1
2
3
4
5
6
7
8
9
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
repository: git@github.com:dta0502/dta0502.github.io.git
branch: master
# other deployer
- type: leancloud_counter_security_sync
- type: baidu_url_submitter

自动推送

修改主题配置文件把 baidu_push 设置为 true。

1
baidu_push: true

然后就会将一下代码自动推送到百度,位置是 themes\next\layout_scripts\baidu_push.swig, 这样每次访问博客中的页面就会自动向百度提交 sitemap。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{% if theme.baidu_push %}
<script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
{% endif %}

sitemap 提交

首先访问之前生成的 sitemap 文件测试是否成功:https://weilining.github.io/baidusitemap.xml

然后我们可以在链接提交-自动提交-sitemap提交中进行站点地图的提交。

输入验证码后提交即可,一般情况下,百度会在一小时内处理该文件,并提取其中的 url。

部署 Hexo 到 VPS 并且开启 HTTPS

由于百度蜘蛛采集链接信息之前需要访问 baidusitemap.xml 文件,而这个文件是在 GitHub Pages 里面的,但是 GitHub Pages 是禁止百度蜘蛛爬取的,所以百度蜘蛛在获取 baidusitemap.xml 文件这一步骤就被禁止了,GitHub Pages 返回 403 错误,因此抓取失败(哪怕获取到 baidusitemap.xml 文件也不行,因为后续需要采集的静态网页全部是放在 GitHub Pages 中的,全部都会被禁止)。

我们可以通过百度站长的抓取诊断来验证是否出现以上情况:

抓取诊断抓取诊断

这里基本可以确定 GitHub Pages 拒绝了百度 Spider 的爬取请求。

下面是 GitHub 的一个回复:

I’ve confirmed that we are currently blocking the Baidu user agent from crawling GitHub Pages sites. We took this action in response to this user agent being responsible for an excessive amount of requests, which was causing availability issues for other GitHub customers. This is unlikely to change any time soon, so if you need the Baidu user agent to be able to crawl your site you will need to host it elsewhere.

因此我需要把 Hexo 部署到自己的 VPS 上,具体的部署过程见:Hexo 博客部署到 VPS

为了能够部署到 VPS,那就需要绑定一个个性域名,具体过程见 GitHub Pages 绑定域名

然后再把 Hexo 升级 HTTPS,具体步骤见:Hexo 升级 HTTPS

同时由于我们知道了百度爬虫的用户代理,那么就可以直接使用 curl 命令来模拟百度爬虫的请求,观察返回的 http 结果是否正常:

1
curl -A "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" https://weilining.github.io/baidusitemap.xml

结果看出模拟请求的结果是正常的。

搜狗站长平台

文件路径:~\themes\next\layout\_partials\head\head.swig,添加以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% if theme.google_site_verification %}
<meta name="google-site-verification" content="{{ theme.google_site_verification }}"/>
{% endif %}

{% if theme.bing_site_verification %}
<meta name="msvalidate.01" content="{{ theme.bing_site_verification }}"/>
{% endif %}

{% if theme.yandex_site_verification %}
<meta name="yandex-verification" content="{{ theme.yandex_site_verification }}"/>
{% endif %}

{% if theme.baidu_site_verification %}
<meta name="baidu-site-verification" content="{{ theme.baidu_site_verification }}"/>
{% endif %}

+{% if theme.sogou_site_verification %}
+ <meta name="sogou_site_verification" content="{{ theme.sogou_site_verification }}"/>
+{% endif %}

主题配置文件_config.yml 添加:

1
2
+# Sougou Webmaster tools verification.
+sogou_site_verification: YXFDrGSL8d

360 搜索站长平台

文件路径:~\themes\next\layout\_partials\head\head.swig,添加以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{% if theme.google_site_verification %}
<meta name="google-site-verification" content="{{ theme.google_site_verification }}"/>
{% endif %}

{% if theme.bing_site_verification %}
<meta name="msvalidate.01" content="{{ theme.bing_site_verification }}"/>
{% endif %}

{% if theme.yandex_site_verification %}
<meta name="yandex-verification" content="{{ theme.yandex_site_verification }}"/>
{% endif %}

{% if theme.baidu_site_verification %}
<meta name="baidu-site-verification" content="{{ theme.baidu_site_verification }}"/>
{% endif %}

{% if theme.sogou_site_verification %}
<meta name="sogou_site_verification" content="{{ theme.sogou_site_verification }}"/>
{% endif %}

+{% if theme.so_site_verification %}
+ <meta name="360-site-verification" content="{{ theme.so_site_verification }}"/>
+{% endif %}

主题配置文件_config.yml 添加:

1
2
+# 360 Webmaster tools verification.
+so_site_verification: b2195ba72e4870178be78acf3163b3ce

神马站长平台

文件路径:~\themes\next\layout\_partials\head\head.swig,添加以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{% if theme.google_site_verification %}
<meta name="google-site-verification" content="{{ theme.google_site_verification }}"/>
{% endif %}

{% if theme.bing_site_verification %}
<meta name="msvalidate.01" content="{{ theme.bing_site_verification }}"/>
{% endif %}

{% if theme.yandex_site_verification %}
<meta name="yandex-verification" content="{{ theme.yandex_site_verification }}"/>
{% endif %}

{% if theme.baidu_site_verification %}
<meta name="baidu-site-verification" content="{{ theme.baidu_site_verification }}"/>
{% endif %}

{% if theme.sogou_site_verification %}
<meta name="sogou_site_verification" content="{{ theme.sogou_site_verification }}"/>
{% endif %}

{% if theme.so_site_verification %}
<meta name="360-site-verification" content="{{ theme.so_site_verification }}"/>
{% endif %}

+{% if theme.shenma_site_verification %}
+ <meta name="shenma-site-verification" content="{{ theme.shenma_site_verification }}"/>
+{% endif %}

主题配置文件_config.yml 添加:

1
2
+# shenma Webmaster tools verification.
+shenma_site_verification: 0febefc87224a8e180455c8bfbf8044a_1566192856

参考

1
https://tding.top/archives/4ea54752.html