Hexo SEO

博客搭建也有大半年了,发现在百度上却搜索不到,于是决定调研一下,hexo 的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的形式。