Hexo SEO

尝试给自己的博客做一下 SEO。

准备

主题配置文件

我用的是 Next 主题,Next 主题官方提供了 seo 的功能,但是默认是关闭的,需要修改配置文件:

1
2
3
4
canonical: true
seo: true
index_with_subtitle: true
baidu_push: true

站点配置文件

下面的配置要填写:

1
2
3
4
title:  #标题
subtitle: #子标题
description: #描述
url: #url

首页title优化

更改文件 blog\themes\next\layout\index.swig

1
{% block title %} {{ config.title }} {% endblock %}

改成:

1
{% block title %} {{ theme.keywords }} - {{ config.title }} - {{ theme.description }} {% endblock %}

添加 sitemap 站点地图

1
2
3
4
yarn add hexo-generator-sitemap hexo-generator-baidu-sitemap

#or
npm install hexo-generator-sitemap hexo-generator-baidu-sitemap --save

站点配置文件中添加 sitemap 的生成路径:

1
2
3
4
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

在主题配置文件中修改 url 为域名:

1
url: https://www.shipengqi.top

配置好后,执行 hexo g 就能在 your-hexo-site\public 中生成 sitemap.xmlbaidusitemap.xml 了。

添加 robots.txt

your-hexo-site\source 中添加 robots.txt,告诉搜索引擎,哪些是可以爬的,哪些是不可以爬:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
User-agent: *
Allow: /
Allow: /archives/
Allow: /categories/
Allow: /tags/

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

Sitemap: https://www.shipengqi.top/sitemap.xml
Sitemap: https://www.shipengqi.top/baidusitemap.xml

提交 sitemap

sitemap.xml 适合提交给谷歌搜素引擎,baidusitemap.xml 适合提交百度搜索引擎。

给非友情链接的出站链接添加 nofollow 标签

打开 your-hexo-site\themes\next\layout\_partials\footer.swig:

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

改成:

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

修改文章链接

Hexo 默认的文章链接形式为 domain/year/month/day/postname,默认的 url 过长,对搜索引擎不是很友好。修改站点配置文件:

1
permalink: :title/

这样 url 就改成了 domain/postname 的形式。