Hexo之SEO优化
SEO(Search Engine Optimization),即搜索引擎优化。简单来说,SEO就是您可以使用提升网站排名的所有方法的总称,SEO用于确保您的网站及其内容在搜索引擎结果页面(SERP)上的可见性。
验证网站
验证自己的网站,让博客被搜索引擎找到,查看博客是否被收入。
在谷歌或者百度的搜索链接中,使用以下格式可以直接搜索自己的域名, 如果能搜索到就说明已经被收录,反之则没有。可以直接搜索自己的域名,或者加一些关键词来更好地判断,例如:
1 | site: https://mysticalguest.github.io/ |
提交博客网站
若未被搜索引擎收录,则需进行以下配置,首先要让搜索引擎先验证我们对网站的所有权,两个搜索引擎提交的入口分别为:Google Search Console和百度站长平台
首先介绍谷歌
当然需要登录谷歌账号,然后访问出现以下界面。选择第二个,输入博客的网址。
点击继续,弹出以下对话框。点击下载这个指定文件即可。
处理这个html文件
有多种验证方式,这里推荐
HTML
文件上传方式。下载HTML
验证文件,拷贝到../sources/
文件夹下,为了使 hexo 不处理这两个验证文件,并且不生成关于这两个文件的sitemap
,我们需要打开验证文件,在最上面添加以下代码,html变为:1
2
3
4layout: false
---
google-site-verification: google************.html
然后执行 hexo 部署命令
1
2
3hexo clean
hexo g
hexo d
回到刚才的页面点击继续,完成验证
然后介绍百度
输入博客网址,选择属性,验证网站
如何添加标签验证
根据自己的主题情况选择,可以直接写在
jsx
文件中;我是写在了我的主题的配置文件_config.yml
中:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29# Page metadata configurations
head:
...
# https://hexo.io/docs/helpers.html#open-graph
open_graph:
# Page title (og:title) (optional)
# You should leave this blank for most of the time
title:
...
# Structured data of the page
# https://developers.google.com/search/docs/guides/intro-structured-data
structured_data:
# Page title (optional)
# You should leave this blank for most of the time
title:
...
# Additional HTML meta tags in an array
meta:
# Meta tag specified in <attribute>=<value> style
# E.g., name=theme-color;content=#123456 =>
# <meta name="theme-color" content="#123456">=
# - ''
-
# baidu SEO
name=baidu-site-verification;content=code-kyGo8s2mM1
# URL or path to the website's RSS atom.xml
rss: /atom.xml
...
...
然后执行 hexo 部署命令
1
2
3hexo clean
hexo g
hexo d
最后返回验证页面,就可以查看验证是否通过了
生成Sitemap
Sitemap即网站地图,它的作用在于便于搜索引擎更加智能地抓取网站。最简单和常见的sitemap形式,是XML文件,在其中列出网站中的网址以及关于每个网址的其他元数据
安装sitemap生成插件
1 | npm install hexo-generator-sitemap --save |
编辑配置文件
站点目录下的_config.yml,添加以下字段,直接放在最末就可以了
1 | #hexo sitemap |
向百度提交
直接向百度交sitemap.xml
,登录 百度站长平台,点击 资源提交
下的普通收录
,在 资源提交
中选择 sitemap
标签,输入自己的域名加 baidusitemap.xml 即可,之后可查看 url 提取是否成功。
由于 GitHub 屏蔽了百度的爬虫,即使提交成功,百度知道这里有可供抓取的链接,也不一定能抓取成功。 首先我们先检测一下百度爬虫是否可以抓取网页。在百度站长平台数据统计
下的抓取诊断
中,选择PC UA
点击抓取 , 查看抓取状态, 如果显示 抓取失败
, 则需要进一步的配置。我的直接抓取成功了。
添加robots.txt
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它的作用是告诉搜索引擎此网站中哪些内容是可以被爬取的,哪些是禁止爬取的。
在
source
目录下增加rebots.txt
文件,网站生成后在网站的根目录(站点目录/public/
)下。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15User-agent: *
Allow: /
Allow: /archives/
Allow: /categories/
Allow: /tags/
Disallow: /vendors/
Disallow: /js/
Disallow: /css/
Disallow: /fonts/
Disallow: /vendors/
Disallow: /fancybox/
Sitemap: https://你的域名/sitemap.xml
Sitemap: https://你的域名/baidusitemap.xmlAllow
表示允许被访问的,Disallow
是不允许的意思。注意后面两个Sitemap就是网站地图了。而网站地图前面说了是给爬虫用的。这里配置在robots中。验证robots文件
向谷歌提交
向谷歌提交 sitemap 比较简单,登录 Google Search Console ,选择已经验证过的站点,在站点地图
中,可看到 添加新的站点地图
,添加 sitemap.xml
的链接即可,谷歌效率较高,一般当天或者第二天就能收到结果吧。如图:
结果,等到第二天百度还没有结果,谷歌已经有了结果:
Url持久化
我们可以发现hexo默认生成的文章地址路径是{网站名称/年/月/日/文章名称}。
这种链接对搜索爬虫是很不友好的,第一它的url结构超过了三层,太深了。
下面我推荐一种方式:
1 | npm install hexo-abbrlink --save |
根目录下配置_config.yml
1 | # permalink: :year/:month/:day/:title/ |
之后部署一下,就看到你的链接变成了这样:
添加 nofollow 标签
给非友情链接的出站链接添加「nofollow」标签,nofollow 标签是由谷歌领头创新的一个「反垃圾链接」的标签,并被百度、yahoo 等各大搜索引擎广泛支持,引用 nofollow 标签的目的是:用于指示搜索引擎不要追踪(即抓取)网页上的带有 nofollow 属性的任何出站链接,以减少垃圾链接的分散网站权重。
有意者可以查看noopener与之区别。
无论主题的区别,在footer.*
文件中做如下修改:
1 | <a ... rel="noopener">Hexo</a> & |
改为:
1 | <a ... rel="noopener nofollow">Hexo</a> & |