seo优化超详细步骤 — hexo_butterfly
优化过程中踩了不少坑,这里记录一下,也希望能帮助到需要的人。
优化文章url,便于收录
缩减链接长度 且 固定链接
hexo中,文章链接默认是 permalink: :year/:month/:day/:title/
这种形式。
即是:sitename/year/mounth/day/title四层的结构,且每次更改文章可能会导致链接变化
搜索引擎认为对于一般的中小型站点,3层足够承受所有的内容了,所以蜘蛛经常抓取的内容是前三层,而超过三层的内容蜘蛛认为那些内容并不重要,所以不经常爬取。出于这个原因所以permalink后面跟着的最好不要超过2个斜杠。
而我们的链接由于大多带有中文,转码的时候就会很丑很长,并且更改文章可能还会导致链接变化,有没有一种办法,既可以缩短链接长度又固定链接呢?
利用 abbrlink 插件可以实现,它会在文章生成一个abbrlink字段,这个字段永远不会改变,且使链接层次短,利于seo收录
配置abbrlink
在hexo根目录安装:
1 | npm install hexo-abbrlink --save |
更改hexo配置文件_config.yml
1 | abbrlink: # 新增abbrlink配置 |
abbrlink编码规则决定后就不要再改了,不然编码不统一,导致文章链接改变
效果如下
生成的abbrlink字段
链接效果
固定链接抛开seo优化不谈,本身就很重要,它保证了你链接的完好性
将网站提交给百度搜索引擎
这里只谈百度了,毕竟百度才是国内主要用的,谷歌有墙
安装站点地图sitemap
站点地图是一种文件,一般为xml形式,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知Google和其他搜索引擎。Googlebot等搜索引擎网页抓取工具会读取此文件,以便更加智能地抓取您的网站。
先安装插件
1 | npm install hexo-generator-sitemap --save 谷歌 |
需要在根目录的_config.yml配置文件中添加sitemap
1 | sitemap: |
编译博客并生成xml文件
hexo g编译博客后,你会发现你的public中多了两个xml文件,分别是sitemap.xml以及baidusitemap.xml,里面收录着你博客将被爬虫的链接,此时代表你成功了。
之后再hexo d部署到网站上https://www.CodeObservatory.cn/baidusitemap.xml
和https://www.CodeObservatory.cn/sitemap.xml
验证一下能否跳转即可
设置推送
大致可以分为三种:
主动推送:最快,在你 hexo g -d 时会生成一个txt文件,里面记录着你最新提交的n个链接,并把其交给百度。
自动推送:最方便,每当有人浏览你网页时,自动推送给百度。
sitemap:传统,将之前生成的sitemap文件交给百度,百度会定期检查你提交的sitemap文件并进行处理,但收录速度并不快。
虽然从效率上来说,主动推送>自动推送>sitemap。但是其实三者可以一起使用,相辅相成,没必要分个高下。
主动推送
据说可以解决百度无法爬虫github的问题,因为是我们自己提交给百度的
安装插件 hexo-baidu-url-submit
在hexo根目录安装 npm install hexo-baidu-url-submit –save
在根目录的_config.yml中添加配置
先添加 hexo-baidu-url-submit 插件的配置
1 | baidu_url_submit: |
这里的token位推送接口给你的token
count 的值不要设太高,除非你真的有那么多的链接需要提交。否则多次提交重复内容百度会暂时将你加入黑名单或给你限制提交的次数甚至降低你网站的权值。而且在你调试网页且并没有新链接需要提交时,最好将count的值设为0,防止反复提交
还需要将_config.yml配置中的url改成你在站长平台注册的域名,不过我相信这个你肯定已经弄过了
1 | url: https://CodeObservatory.cn |
最后修改一下deployer,让你推送时顺便推给百度
1 | deploy: |
注意 yml 文件的缩进是由严格要求的,为2个空格,不然hexo编译时会报错
hexo d -g 推送博客
都配置好后 hexo g -d 推送博文,出现这个就算成功啦!!
remain:一天内剩余提交量
success:本次提交成功的链接数
自动推送
根据百度原话,只要将 js代码 放到博客的每一个页面下就行了
1 | (function(){ |
问题是怎么把这段代码放到每一个页面下?
网上大都只有 next 主题的方法,在主题配置文件中,令 baidu_push 设置为 true 即可,非常简单。而我是 butterfly 主题的该怎么做呢?
其实也非常简单,只需要利用主题配置文件中的 inject 配置项,在head 和 body 间引入这段 js代码 即可。在 themes/butterfly/source/js/ 下新建 baidu_sub.js ,将代码复制粘贴进去,然后在主题配置文件的 inject 中引入即可。
1 | inject: |
可以看到,这段js成功出现在了每个html页面的head中
sitemap推送
很简单,把你之前生成的 sitemap.xml 在百度上提交即可
到此,主动推送三种方式具体如何实现到介绍完啦~
拓展:robots.txt 文件的设置
以下是百度原话:
1 | 一、使用说明 |
总的来说,就是如果你不想让百度爬你某些链接,你就得设置 robots.txt 文件
设置 robots.txt 可以防止大量垃圾链接提交给百度,提高你文章的权重
而且听说设置 rotbot.txt 可以提高收录概率,所以就算你没有不希望被爬取的内容,也可以设置一个空的 robots.txt 文件
若你没有不希望被爬取的内容
1 | User-agent: * |
若你有不希望被爬取的内容
比如说,我的文章全部放在 /archives 中,那么我就可以只让百度爬取我 /archives 中的内容,具体设置如下。
1 | User-agent: * |
Allow 的优先级大于 Disallow
最后可以放你的 sitemap.xml 文件链接
你可以通过以下步骤验证你的 robots.txt 文件是否配置成功
hexo g -d 后输入链接,看能否成功跳转到你的 robots.txt
在百度站长平台 robots 验证中检查显示成功即可。