Hexo博客SEO与个性化的一些问题

重启博客后很兴奋的写了两篇,安装好百度统计代码然后每天看到个位数的访问量都很无奈(更可怕的是仅有的几次访问还是自己的测试记录/(ㄒoㄒ)/~~)。想起来之前玩Wordpress的时候有不少SEO方案,Hexo虽然功能简单但是只要动手还是可以提高一点曝光度的,于是搜索了一些Hexo的SEO优化手段试试效果,再根据自己的想法进行一些界面的修改。虽然是个没什么难度的事情,还是记录下中间遇到的坑吧。

提交搜索引擎过程中的验证问题

这里给出了一些让搜索引擎及时收录博客内容的方法。在向搜索引擎提交站点的时候需要验证所有权:

一般都用文件验证的办法,只需要把下载下来的验证文件放到网站根目录下即可。最初直接把它放到/hexo/public下面提交就能通过验证,但是一旦执行了hexo clean就被删掉了,而Google的平台说一直保留这个验证文件。那就只能把它放到/hexo/source文件夹下,但是验证的时候就会失败:hexo在生成静态文件的时候渲染了这个验证文件,导致搜索引擎无法识别到对应的验证码。后来在这里看到,只需要在站点配置文件中设置skip-render项即可。比如我的配置(验证文件放在/hexo/source下):

1
2
skip_render:
- 'baidu_verify_*****.html'

定制Hexo菜单项

习惯了之前Wordpress站点里菜单栏可以直接显示文章分类,装好Hexo和NexT主题后发现默认菜单项只有home, archives, tags这么几个默认项。不过还是找到了解决办法:

  1. 在Hexo站点配置文件中category_map下添加分类项,比如我的:

    1
    2
    3
    4
    category_map:
    编程: programming
    生活: life
    阅读: reading
  2. 在NexT主题配置文件中menu下添加菜单项名称和对应的链接地址:

    1
    2
    3
    4
    5
    6
    menu:
    home: /
    programming: /categories/programming
    reading: /categories/reading
    life: /categories/life
    archives: /archives
  3. 在NexT主题目录下的 languages/{language}.yml添加对应的语言文本:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    menu:
    home: 首页
    archives: 归档
    categories: 分类
    schedule: 日程
    tags: 标签
    about: 关于
    search: 搜索
    commonweal: 公益404
    programming: 编程
    reading: 阅读
    life: 日常
  4. 设置对应的菜单项图标,可以自己去 fontawesome 寻找合适的图标:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    menu_icons:
    enable: true
    home: home
    categories: th
    archives: archive
    sitemap: sitemap
    programming: code
    reading: book
    life: street-view
  5. 这样主页菜单就可以显示文章分类了。当然,第二步设置每个菜单项都链接到对应的分类页面,而这个页面只有在存在对应分类文章的情况下才会被建立,所以为了避免404的尴尬可以暂时隐藏还没有文章的分类项。我的效果图:

    来自NexT文档

Gitpages失效问题

我把Hexo博客同时托管在Gitcafe和Github上,根据访问者IP通过DNS分流到对应的平台上去。然而最近发现了一个问题,经常在更新博客之后发现Github版本无法访问。直接访问博客域名结果:

通过github二级域名跳转结果:

于是去Github仓库查看设置发现对应的自定义域名选项被重置了,重新设置恢复正常,然而再次更新博客后又无法访问。手动设置了域名之后终于找到了原因:Gitpages设置自定义域名之后在根目录新建了一个CNAME文件,而博客更新之后会把它删除造成无法访问,那么解决方案就很简单了:

  1. 下载CNAME文件到/hexo/source文件夹,或者直接新建一个名为CNAME的文件,并在里面写入博客域名。
  2. 站点配置文件 的skip-render项添加CNAME文件即可:
    1
    2
    3
    4
    5
    6
    7
    8
    skip_render:
    - 'CNAME'
    ### 其他
    * 启用了访客计数
    * 启用了百度自动推送
    * [备份源码](http://zhujiegao.com/2015/12/06/automatic-backup/)
Kangbing Zhao wechat
欢迎订阅我的微信公众号-小码农的LifeHacker之路