Hexo博客搭建教程《四、功能强化》

本文针对于功能性做了一些优化和建议。包括:

  • 多线部署(Github 和 Coding Page)
  • 博客文章链接优化
  • 百度URL主动推送(搜索)
  • 添加评论功能
  • SEO优化

多线部署

由于众所周知的原因,在Github Page上的网页在国内的网速并不是很好。所以很多人都会在国内同样部署(码云、Coding Page),这样一来有多个Git文档需要同步,怎么操作呢?

hexoblog/
1
2
3
4
5
6
7
deploy:
- type: git
repo:
coding: https://e.coding.net/vectorcode/vector.git
# github: https://github.com/MichaelVector/michaelvector.github.io.git
# gitee: https://gitee.com/michaelvector/michaelvector.git
branch: master

博客文章链接优化

博客网址链接 URL 唯一且永久化

使用插件 hexo-abbrlink可以做到自定义文章链接,而且没有年月日等多级目录,SEO搜索也方便很多。

代码官方链接
1
npm install hexo-abbrlink --save

修改配置文件

_config.yml
1
2
3
4
permalink: posts/:abbrlink/
abbrlink: #abbrlink配置
alg: crc32 # 算法:crc16(default) and crc32
rep: dec # 进制:dec(default) and hex

样例

代码效果
1
2
3
4
5
6
7
8
#crc16 & hex
https://post.zz173.com/posts/66c8.html
#crc16 & dec
https://post.zz173.com/posts/65535.html
#crc32 & hex
https://post.zz173.com/posts/8ddf18fb.html
#crc32 & dec
https://post.zz173.com/posts/1690090958.html

这样就确保了博文链接的唯一化,只要不修改md文件的abbrlink的值,URL就永久不会改变。
如此 md 文件名和文件内容也可以随便改了。这样也有利于 SEO 优化。

百度URL主动推送(搜索)

主动推送Hexo博客新链接至百度搜索引擎,解决百度爬虫被禁止访问的问题,提升网站收录质量和速度。

SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”。SEO是指通过站内优化比如网站结构调整、网站内容建设、网站代码优化等以及站外优化。

四种方式对比

  • 主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录
  • 自动推送:是轻量级链接提交组件,将自动推送的 JS 代码放置在站点每一个页面源代码中,当页面被访问时,页面链接会自动推送给百度,有利于新页面更快被百度发现
  • sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送
  • 手动提交:如果您不想通过程序提交,那么可以采用此种方式,手动将链接提交给百度

网站在没有提交搜索引擎收录之前,直接搜索你网站的内容是搜不到的,只有提交搜索引擎之后,搜索引擎才能收录你的站点,通过爬虫抓取你网站的东西,对于 hexo 博客来说,如果你是部署在 GitHub Pages,那么你是无法被百度收录的,因为 GitHub 禁止了百度爬虫,最常见的解决办法是双线部署到 Coding Pages 和 GitHub Pages,因为百度爬虫可以爬取到 Coding 上的内容,从而实现百度收录。另外百度收录的所需的时间较长,大约半个月左右才会看到效果!

主动推送(推荐)

在博客根目录安装插件

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

然后在根目录 _config.yml 文件里写入以下配置:

_config.yml官方链接
1
2
3
4
5
6
7
8
baidu_url_submit:
count: 100 # 提交最新的1000个链接
host: https://vector.today # 在百度站长平台中注册的域名
token: XXXXXXX # 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里

deploy:
- type: baidu_url_submitter # 默认每次重新部署

自动推送

关于自动推送百度官网给出的解释是:自动推送是百度搜索资源平台为提高站点新增网页发现速度推出的工具,安装自动推送JS代码的网页,在页面被访问时,页面URL将立即被推送给百度。

此时要注意,有些 hexo 主题集成了这项功能,比如 next 主题,在 themes\next\layout\third-party\baidu-push.swig文件,我们只需要把如下代码粘贴到该文件,然后在主题配置文件设置 baidu_push: true 即可。

themes\next\layout\third-party\baidu-push.swig
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

首先我们在网页根目录要使用以下命令生成一个网站地图:

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

这里也注意一下,将根目录的 _config.yml 文件,URL 改为在百度站长平台添加的域名,也就是你网站的首页地址:

_config.yml
1
2
url: https://vector.today
root: /

配置如下(在根目录的_config.yml里进行添加):

1
2
3
4
5
# hexo sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

然后使用命令 hexo g -d 将网站部署上去,然后访问 你的首页/sitemap.xml 或者 你的首页/baidusitemap.xml 就可以看到网站地图了

其中 sitemap.xml 文件是搜索引擎通用的 sitemap 文件,baidusitemap.xml 是百度专用的 sitemap 文件。

然后来到百度站长平台的 sitemap 提交页面,将你的 sitemap 地址提交即可,如果成功的话状态会显示为正常,初次提交要等几分钟,sitemap.xml 相比 baidusitemap.xml 来说等待时间也会更长,如果以后你博客有新的文章或其他页面,可以点击手动更新文件,更新一下新的 sitemap。