Hexo NexT 主题的 SEO 优化

博客搭好了,但是发现搜索引擎根本搜不到,是时候做 SEO 优化了!

添加站点地图

  1. 安装插件

    需要安装两个插件来生成 sitemap 文件,前一个是传统的 sitemap,后一个是百度的 sitemap

    1
    2
    npm install hexo-generator-sitemap --save
    npm install hexo-generator-baidu-sitemap --save
  2. 修改站点配置文件

    将sitemap 文件添加到站点配置文件 _config.yml

    sitemap:
      path: sitemap.xml
    baidusitemap:
      path: baidusitemap.xml

    修改 url 字段的值,其值默认为 http://yoursite.com

    url: https://pengbinlee.github.io

安装完成后执行 hexo g 即会在站点 public 目录下生成 sitemap.xmlbaidusitemap.xml

添加蜘蛛协议

在站点 source 文件夹下新建 robots.txt 文件,文件内容如下:

User-agent: *
Allow: /
Allow: /archives/
Allow: /tags/
Allow: /about/

Disallow: /vendors/
Disallow: /js/
Disallow: /css/
Disallow: /fonts/
Disallow: /vendors/
Disallow: /fancybox/

Sitemap: https://pengbinlee.github.io/sitemap.xml
Sitemap: https://pengbinlee.github.io/baidusitemap.xml

Allow 字段的值即为允许搜索引擎爬区的内容,/ 表示网站首页,/about/ 为关于页面,如果菜单栏还有其他选项都可以按照格式自行添加。

提交站点到 Google

打开 Google Search Console,添加博客地址。由于我已经提交了博客到 Google,所以在页面上能看到博客的缩略图

接下来进行站点验证,Google 给出的推荐方法是上传 HTML 文件,但是不知道为什么一直验证失败,所以我选择了备用方法中的 HTML 标记,将给出的元标记复制到 themes\next\layout\_partials\header.swig 文件中

验证通过后测试 robots.txt 文件

接下来提交 sitemap.xml 文件,点击右上角添加/测试站点地图输入 sitemap.xml 进行测试,测试无误后再提交文件

终于,到了最后一步,如果上方的输入框留空表示抓取首页,填入 about 表示抓取关于页面,抓取完成后可能会有几种状态:完成、部分完成和已重定向等,不过无需担心,这些状态并不会影响提交。此时点击请求编入索引即可,至此博客就成功提交到了 Google,提交博客至百度的操作类似,故不再赘述

添加关键字

修改模板 scaffolds\post.md文件,添加 keywordsdescription 字段

-–
title: Hexo NexT 主题的 SEO 优化
date: 1497987957000
tags:
keywords:
description:
-–

修改博文链接

修改站点配置文件,将 permalink 字段的值改为 :title

#permalink: :year/:month/:day/:title/
permalink: :title/

添加 nofollow 标签

themes\next\layout\_partials\footer.swig 文件中如下内容

1
{{ __('footer.powered', '<a class="theme-link" href="https://hexo.io">Hexo</a>') }}

修改为

1
{{ __('footer.powered', '<a class="theme-link" href="https://hexo.io" rel="external nofollow">Hexo</a>') }}

将如下内容

1
<a class="theme-link" href="https://github.com/iissnan/hexo-theme-next">

修改为

1
<a class="theme-link" href="https://github.com/iissnan/hexo-theme-next" rel="external nofollow">

themes\next\layout\_macro\sidebar.swig 文件中如下内容

1
<a href="{{ link }}" target="_blank" title="{{ name }}">

修改为

1
<a href="{{ link }}" target="_blank" title="{{ name }}" rel="external nofollow">