默认永久链接格式的问题和唯一化的意义
不利于SEO:
Hexo永久链接的默认格式是
:year/:month/:day/:title/
,如果文章标题是中文的话,文章路径中就含有中文字符,不利于seo。不利于Google、百度等抓取:
路径包含了年月日三个层级,太深不利于抓取。
不利于社会化分享和搜索:
使用
:year/:month/:day/:title/
默认链接格式时,如AddThis分享后就无法跳转到blog的源链接,而Algolia也存在搜索结果跳转关联页面时报404。
所以,就要考虑:
- 简化永久链接格式,即:简短化
- 使链接唯一化,即:文件标题随意修改,文章的链接也永远不变,而不会像原来采用
:year/:month/:day/:title/
的链接格式会因文章标题改变,而导致最初的链接失效造成死链。
所以,寻寻觅觅后发现大神落月rozbo
搞出插件hexo-abbrlink(GitHub)、hexo-abbrlink(npmjs.com)为我们解决了这个问题。
让我们来看看如此精妙的实现方式!
安装插件
安装hexo-abbrlink
插件,在站点根目录执行:
1 | $ npm install hexo-abbrlink --save |
执行结果如下:
1 | $ cd taoblog |
修改站点配置文件
修改站点配置文件_config.yml
,注释原先的permalink
、permalink_defaults
,并添加如下设置:
1 | # permalink: :year/:month/:day/:title/ |
生成并部署
1 | $ hexo clean |
执行$ hexo g
时,提示信息的开头与原来有区别如下,这显示了已为文章生成了永久链接:
1 | $ hexo clean |
同时还会在文章的front-matter中加入abbrlink:
,如下:
1 | title: Hexo上NexT主题配置WidgetPack的Rating widget文章投票功能 |
之后的$ hexo d
顺利完成。
最终生成的永久链接形式如:
https://adago2x.github.io/posts/786cd75a.html
,
Blog上分享链接后,在第三方社区跳转链接毫无问题,很完美!
建议
永久链接的设置最好在Hexo部署到位后,开始着手发布文章前进行设置。
在中途设置就会导致之前发布文章后原来相关的社会化分享链接、搜索失效,评论、投票等数据会清零,如果个人不介意的话倒也无所谓。
~END~