Hexo 博客搭建之 SEO 搜索引擎篇

[TOC]

如果你不主动向各大搜索引擎提交你的博客地址,那么你的网站优化做得再好,搜索引擎也根本无法知道你的博客的存在。若要让大家知道你在存在,就有先学会推销自己,而像谷歌或百度等搜索引擎就是让众人了解你的渠道,文本就是讲解主流 SEO 的基本配置哈!😎

SEO 配置

默认情况下,百度搜索引擎会缓存并重写你的网站,为移动端用户提供网页快照。这可以通过是否启动 disable_baidu_transformation 来解决。另外你还可以将网站配置文件的 subitle 信息添加到索引页面。

1
2
3
4
5
6
# 在移动设备上禁用百度转换
disable_baidu_transformation: true

# 是否将站点字幕添加到索引页面
# Remember to set up your site-subtitle in Hexo `_config.yml` (e.g. subtitle: Subtitle)
index_with_subtitle: true

开启 Exturl

此配置可以更好地优化 SEO,禁止通过网络钓鱼链接来混淆最终用户的任何尝试!详细信息请查阅官方文档。

1
2
# 使用Base64加密和解密自动添加外部URL
exturl: true

站点地图

站点地图即 sitemap,是一个 xml 格式的页面,存放了网站上需要搜索引擎抓取本网站的所有页面的链接。站点地图可以告诉搜索引擎网站上有哪些可供抓取的网页,以便搜索引擎可以更加智能地抓取网站。sitemap 网站地图不仅可以给用户带来良好的体验,还有利于搜索引擎和爬虫抓取,对网站的收录和排名都有较好作用。
温馨提示:sitemap_template.xml 的内容可以直接从这里复制不需要修改。

安装 Google 和百度站点地图生成插件:

1
2
3
4
5
cd hexo
cnpm install hexo-generator-sitemap --save
cnpm install hexo-generator-baidu-sitemap --save
cnpm list --depth=0|grep hexo-generator-sitemap
cnpm list --depth=0|grep hexo-generator-baidu-sitemap

修改网站根配置文件_config.yml,内容如下:

1
2
3
4
5
# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

修改主题配置文件_config.next.yml,内容如下:

1
2
3
menu:
sitemap: /sitemap.xml || fa fa-sitemap
baidusitemap: /baidusitemap.xml || fa fa-cloud

修改 blog/source/_data/languages.yml 文件,新增 baidusitemap: 百度站点地图,内容如下:

1
2
3
4
zh-CN:  
menu:
sitemap: 站点地图
baidusitemap: 百度站点地图

配置完成之后执行 hexo g,即会在站点的 public 目录下生成 sitemap.xmlbaidusitemap.xml 文件,其中 sitemap.xml 用来提交给 Google,而 baidusitemap.xml 用来提交给百度。

添加蜘蛛协议

创建 hexo/source/robots.txt 文件,编辑内容如下:

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

Disallow: /js/
Disallow: /css/
Disallow: /lib/
Disallow: /fonts/
Disallow: /images/
Disallow: /fancybox/

Sitemap: https://www.99yue.club/sitemap.xml
Sitemap: https://www.99yue.club/baidusitemap.xml

Allow 字段的值即为允许搜索引擎爬区的内容,可以对应到主题配置文件中的 menu 配置,如果菜单栏还有其他选项都可以按照格式自行添加。

Google Search Console

添加站点

登录 Google 网站管理员工具,使用你的谷歌账号登录,最终的目的是获取验证字符串用于提交站点地图。

  1. 填写博客网站的地址,然后点击 “继续” 谷歌进行验证。

    img

  2. 接下来就是进行 DNS 验证了,验证的方法也就比较多,PO 主这选择 DNS解析,建议使用 HTML文件。注意:必须先按方法要求配置,最后才点击 “验证” 按钮。

    img

  3. 如果选择 HTML文件直接把下载文件上传到网站根目录即可,选择 DNS解析的需要到您的域名提供商网站填写解析记录,建议两种方法都操作哈!😛

    img

  4. 验证完成后进入 Google Seacrch Console 主页,点击设置–> 所有验证权限–>HTML Tag,您将获得如下代码:

    1
    <meta name="google-site-verification" content="XXXXXXXXXXXXXXXXXXXXXXX">

    复制 content 的值,修改主题配置文件_config,内容如下:

    1
    google_site_verification: XXXXXXXXXXXXXXXXXXXXXXX

链接提交

  1. 测试 robots.txt 文件,点击旧版工具和报告–> 抓取统计信息–> 帮助–> 使用robots.txt测试工具测试robots.txt,出现如下页面之后点击提交,选择弹出框的 “请 Google 进行更新”,并点击提交,完成后再点击右下角的测试按钮,检测是否 OK👌。

    img

  2. 最后一步,点击站点地图把你的 sitemap.xml 填写上并提交。

    img

  3. 检测您的博客是否已经 Googel 收录,被 Googel 收录一般需要等 1 天左右时间,所以急不可,先浪两天再说哈!😛在浏览器地址栏直接输入 site:https://www.99yue.club,对应域名换成您自己。

百度站长平台

添加站点

知道 Google 的 SEO 配置后,其他平台也是大同小异,设置百度网站管理员工具的验证字符串用于提交站点地图。温馨提示:配置完成后的 SEO 是不会立即生效的,一般都要等待 1 天时间左右才能看到效果。😂😂😂

Get Verification Code

登录到百度网站管理员工具,然后转到验证方法并选择 HTML Tag,您将获得如下代码:

1
<meta name="baidu-site-verification" content="XXXXXXXXXXXXXXXXXXXXXXX">
Next Config

修改主题配置文件 next.yml,复制 content 的值,并配置给 baidu_site_verification

1
baidu_site_verification: XXXXXXXXXXXXXXXXXXXXXXX

链接提交

百度站长平台的链接提交方式分为自动提交和手动提交两种,此处只讲自动提交,手动提交按照要求操作。

主动推送(实时)

主动推送最为快速的提交方式,是被百度收录最快的推送方式。主动推送的实现原理如下:

  1. 新链接的产生, hexo generate 会产生一个文本文件,里面包含最新的链接。
  2. 新链接的提交, hexo deploy 会从上述文件中读取链接,提交至百度搜索引擎。

安装 hexo-baidu-url-submit插件:

1
2
3
$ cd hexo
$ cnpm i hexo-baidu-url-submit --save
$ cnpm list depth=0|grep hexo-baidu-url-submit

修改根配置文件_config.yml,内容如下:
温馨提示:准入秘钥可以在链接提交–> 自动提交–> 主动推送(实时)中查看。

1
2
3
4
5
6
# 百度收录主动推送
baidu_url_submit:
count: 5 ## 提交最新的五个链接
host: www.99yue.club ## 百度站长平台中注册的域名
token: XXXXXXXXXXXXXXX ## 准入秘钥
path: baidu_urls.txt ## 文本文档的地址, 新链接会保存在此文本文档里

接着加入新的 deployer-baidu_url_submitter:

1
2
3
4
5
6
7
8
9
10
11
12
13
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://www.99yue.club

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
repo: git@www.99yue.club:/repo/hexo/blog.git
branch: master #表示选择的分支
# other deployer
- type: leancloud_counter_security_sync
- type: baidu_url_submitter
自动推送

Next 本身已经支持百度推送,修改根配置文件_config.yml,内容如下:

1
baidu_push: true

以下代码就是实现自动推送到百度,位置是 themes/next/layout/_third-party/baidu-push.swig,这样每次访问博客中的页面就会自动向百度提交 sitemap。

1
2
3
4
5
6
7
8
9
10
11
12
$ cd hexo && find . -name "baidu*"
{%- if theme.baidu_push %}
<script{{ pjax }}>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
bp.src = (curProtocol === 'https') ? 'https://zz.bdstatic.com/linksubmit/push.js' : 'http://push.zhanzhang.baidu.com/push.js';
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
{%- endif %}
sitemap 提交

先访问之前生成的 baidusitemap.xml 文件,测试是否成功:https://www.99yue.club/baidusitemap.xml,接着我们就可以在`链接提交`–> 自动提交–>sitemap提交中进行站点地图的提交。输入验证码后提交,一般情况下,百度会在一小时内处理该文件,并提取其中的 url。

Bing 站长平台

Bing 是微软的搜索引擎,设置 Bing 网站管理员工具的验证字符串用于提交站点地图。

Get Verification Code

登录到 Bing 网站管理员工具,然后转到验证方法并选择 HTML Tag,您将获得如下代码:

1
<meta name="msvalidate.01" content="5C84BC77E02800759CE29C4ACCE487BD" />

Next Config

复制 content 的值,通过_config.next.yml配置给 bing_site_verification 即可。

1
bing_site_verification: 5C84BC77E02800759CE29C4ACCE487BD

Yandex 站长平台

Yandex 是俄罗斯搜索引擎,设置 Yandex 网站管理员工具 的验证字符串用于提交站点地图。

Get Verification Code

登录到 Yandex 网站管理员工具,然后转到验证方法并选择 HTML Meta 标记,您将获得如下代码:

1
<meta name="yandex-verification" content="07424f58c065e546" />

Next Config

复制 content 的值,并通过_config.next.yml配置给 yandex_site_verification 即可。

1
yandex_site_verification: 07424f58c065e546

搜狗站长平台(一直重复验证可以成功)

设置搜狗站长平台的验证字符串用于提交站点地图。

Get Verification Code

登录到搜狗网站管理员工具,然后转到验证方法并选择 HTML Tag,您将获得如下代码:

1
<meta name="sogou_site_verification" content="UGxaN2C1Uw"/>

复制这段代码,并写到文件blog/source/_data/head.njk,若文件不存在则创建,内容如下:

1
2
3
{% if theme.sogou_site_verification %}
<meta name="sogou_site_verification" content="{{ theme.sogou_site_verification }}"/>
{% endif %}

Next Config

修改主题配置文件_config.next.yml,复制 content 的值,并配置给 sogou_site_verification 即可。

1
2
3
4
5
custom_file_path:
head: source/_data/head.njk

# Sougou Webmaster tools verification.
sogou_site_verification: UGxaN2C1Uw

360 站长平台

设置 360 站长平台的验证字符串用于提交站点地图。

Get Verification Code

登录到 360 网站管理员工具,然后转到验证方法并选择 HTML Tag,您将获得如下代码:

1
<meta name="360-site-verification" content="aef214b8143da130f135f76dc0d09a5c" />

复制这段代码,并写到文件 blog/source/_data/head.njk,若文件不存在则创建,内容如下:

1
2
3
{% if theme.so_site_verification %}
<meta name="360-site-verification" content="{{ theme.so_site_verification }}"/>
{% endif %}

Next Config

修改主题配置文件_config.next.yml,复制 content 的值,并配置给 so_site_verification 即可。

1
2
3
4
5
custom_file_path:
head: source/_data/head.njk

# 360 Webmaster tools verification.
so_site_verification: aef214b8143da130f135f76dc0d09a5c

神马站长平台

设置神马站长平台的验证字符串用于提交站点地图。

Get Verification Code

登录到神马网站管理员工具,然后转到验证方法并选择 HTML Tag,您将获得如下代码:

1
<meta name="shenma-site-verification" content="c11353fb5283358f50d1a100421c8991_1601476078">

复制这段代码,并写到文件 blog/source/_data/head.njk,若文件不存在则创建,内容如下:

1
2
3
{% if theme.shenma_site_verification %}
<meta name="shenma-site-verification" content="{{ theme.shenma_site_verification }}"/>
{% endif %}

Next Config

修改主题配置文件_config.next.yml,复制 content 的值,并配置给 so_site_verification 即可。

1
2
3
4
5
custom_file_path:
head: source/_data/head.njk

# shenma Webmaster tools verification.
shenma_site_verification: c11353fb5283358f50d1a100421c8991_1601476078

参考资料

Hexo-NexT 博客提交搜索引擎收录
[Hexo 博客 Next 主题 SEO 优化方法](https://hoxis.github.io/Hexo+Next SEO优化.html)
Hexo 博客搭建之 SEO 搜索引擎篇