Hexo博客SEO优化

文章介绍了Hexo搭建的博客的基本SEO优化,包括怎样提交到搜索引擎、站点地图的生成、网站统计、CDN加速、设置网站为HTTPS等内容

为了让我们的博客被搜索引擎爬取和收录,我们需要对博客进行SEO优化。

搜索引擎优化(英语:search engine optimization,缩写为SEO),是一种透过了解搜索引擎的运作规则来调整网站,以及提高目的网站在有关搜索引擎内排名的方式。

站点地图

站点地图描述了一个网站的架构 它可以是一个任意形式的文档,用作网页设计的设计工具,也可以是列出网站中所有页面的一个网页,通常采用分级形式。这有助于访问者以及搜索引擎的机器人找到网站中的页面。

  • 站点地图的作用
    • 为搜索引擎爬虫提供可以浏览整个网站的链接;
    • 为搜索引擎爬虫提供一些链接,指向动态页面或者采用其他方法比较难以到达的页面;
    • 如果访问者试图访问网站所在域内并不存在的URL,那么这个访问者就会被转到“无法找到文件”的错误页面,而网站地图可以作为该页面的“准”内容。

生成步骤:

  1. 在hexo根目录下,运行以下指令安装站点地图生成的插件
  • Google

    1
    npm install hexo-generator-sitemap --save
  • Baidu

    1
    npm install hexo-generator-baidu-sitemap --save
  1. 插件安装完毕后,每次运行hexo g会自动生成站点地图,位置在${hexo}\public文件夹下。

    Google和Baidu分别生成sitemap.xml,baidusitemap.xml

    在hexo配置文件_config.yml中,添加如下配置:

    1
    2
    3
    4
    sitemap:
    path: sitemap.xml
    baidusitemap:
    path: baidusitemap.xml
  2. 运行hexo d进行部署,然后在浏览器访问你的域名/sitemap.xml,如果看到xml文件,那么就说明站点地图部署成功了。

创建robots.txt

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。具体实例可见这里

${hexo根目录}\source添加robots.txt,内容如下,可以根据需要自行修改拦截和允许通过等

1
2
3
4
5
6
7
8
9
10
11
12
13
# hexo robots.txt
User-agent: *
Allow: /
Allow: /archives/

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

Sitemap: yourwebsiteurl/sitemap.xml
Sitemap: yourwebsiteurl/baidusitemap.xml

当运行hexo d部署后,该文件就会在网站的根目录下,搜索引擎就可以根据该文件进行爬取。

数据统计与分析

使用搜索网站提供的数据分析服务可以直观的了解网站的各种运行数据,这里介绍两种常用的分析工具。

  • Google Analysis
  1. 登录 Google Analysis,获得Google跟踪ID。
  2. 编辑 主题配置文件, 修改字段 google_analytics, 值设置成你的 Google 跟踪 ID。跟踪 ID 通常是以 UA- 开头。

1550123640721

  • 百度统计
  1. 登录 百度统计,定位到站点的代码获取页面
  2. 复制 hm.js? 后面那串统计脚本 id,如下图所示:
1
2
3
4
5
6
7
8
9
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?你的统计id";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
  1. 编辑 主题配置文件, 修改字段 baidu_analytics,值设置成你的百度统计脚本 id。

使用CloudFlare

在百度进行HTTPS认证时,出现如下提示:

1550453191650

解决方法:在www.cloudflare.com中注册账号,根据官网提示进行相关配置

1. 更改域名服务商的Name Servers

将你的域名服务商的域名服务器改为cloudflare提供的两个,如下图

1550454986495

2. page rules设置

等待域名服务商的域名服务器更新生效,dashboard的overview出现下图所示表示应用成功

1550455204080

然后在dashboard的page rules选项卡中进行如下配置

1550453144169

3. HSTS设置

该段转自https://molunerfinn.com/hexo-travisci-https

我们访问自己的网站是走HTTP->301/307重定向->HTTPS。这个是浏览器跟服务器进行了一次通信之后才发生的跳转。那有没有可能做到,访问的是HTTP,但是浏览器识别之后自动转成HTTPS访问,而不经过重定向那一层操作呢?答案是有的。通过HSTS的Preload List。

可以参考这篇文章对HSTS进行更深入的了解。简单来说,HSTS能够使我们的网站安全性更上一层楼。

CloudFare自带HSTS功能,开启之后就能很好的满足我们的需要。

Crypto选项下,开启HSTS,配置如下:

1550456001693

然后可以去HSTS Preload List的网站把我们的域名进行检查并收录(不能是子域名,必须是一级域名),如果没通过会给出修改建议,按照建议修改就行。如果通过了,就会放入审核列表。之后可以时不时回来看看自己的网站被收录了没有。网上的说法普遍是几周内。所以耐心等待收录。一旦被收录就会应用到主流浏览器上,这样你的网站就更加安全。

我在第一次提交时出现如下问题,大意是http://wuleshen.com需要直接定向到https://wuleshen.com,而现在是先定向到https://www.wuleshen.com这个子域

1550457188872

HSTS Preload List

配置 .htaccess

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。当然最多的还是rewrite功能,即URL重写,PHP中实现伪静态的一个重要途径,也是被公认为SEO中搜索引擎友好的极为有效的一个手段。

首先,在${hexo根目录}\source下生成.htaccess,可以用touch .htaccess命令

然后,可以通过这个网站进行快速生成.htaccess,将内容复制到.htaccess文件中

1
2
3
4
5
6
7
8
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.wuleshen\.com)(:80)? [NC]
RewriteRule ^(.*) https://wuleshen.com/$1 [R=301,L]
Redirect permanent http://wuleshen.com https://wuleshen.com
order deny,allow

此外,要让该文件生效,需要在hexo配置文件_config.yml中添加以下内容:

1
2
include:
- .htaccess

最后,hexo d将文件部署。


参考