Hexo之SEO优化

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
    4
    layout: false
    ---

    google-site-verification: google************.html
  • 然后执行 hexo 部署命令

    1
    2
    3
    hexo 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
    3
    hexo clean
    hexo g
    hexo d
  • 最后返回验证页面,就可以查看验证是否通过了

生成Sitemap

Sitemap即网站地图,它的作用在于便于搜索引擎更加智能地抓取网站。最简单和常见的sitemap形式,是XML文件,在其中列出网站中的网址以及关于每个网址的其他元数据

安装sitemap生成插件

1
2
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save

编辑配置文件

站点目录下的_config.yml,添加以下字段,直接放在最末就可以了

1
2
3
4
5
#hexo sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

向百度提交

直接向百度交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
    15
    User-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.xml

    Allow表示允许被访问的,Disallow是不允许的意思。注意后面两个Sitemap就是网站地图了。而网站地图前面说了是给爬虫用的。这里配置在robots中。

  • 验证robots文件

向谷歌提交

向谷歌提交 sitemap 比较简单,登录 Google Search Console ,选择已经验证过的站点,在站点地图 中,可看到 添加新的站点地图,添加 sitemap.xml 的链接即可,谷歌效率较高,一般当天或者第二天就能收到结果吧。如图:

结果,等到第二天百度还没有结果,谷歌已经有了结果:

Url持久化

我们可以发现hexo默认生成的文章地址路径是{网站名称/年/月/日/文章名称}。

这种链接对搜索爬虫是很不友好的,第一它的url结构超过了三层,太深了。
下面我推荐一种方式:

1
npm install hexo-abbrlink --save

根目录下配置_config.yml

1
2
3
4
5
6
7
8
9
# permalink: :year/:month/:day/:title/
# 可选 permalink: abbrlink 短链接模式
# permalink: :title.html #文章的url 如 http://localhost:4000/theme/博客源码分享.html
# permalink: posts/:abbrlink/ #文章的永久链接
# permalink: posts/:abbrlink.html 如:http://localhost:4000/post/article.html
permalink: :category/:abbrlink.html
abbrlink:
alg: crc32 # 算法:crc16(default) and crc32
rep: hex # 进制:dec(default) and hex

之后部署一下,就看到你的链接变成了这样:

添加 nofollow 标签

给非友情链接的出站链接添加「nofollow」标签,nofollow 标签是由谷歌领头创新的一个「反垃圾链接」的标签,并被百度、yahoo 等各大搜索引擎广泛支持,引用 nofollow 标签的目的是:用于指示搜索引擎不要追踪(即抓取)网页上的带有 nofollow 属性的任何出站链接,以减少垃圾链接的分散网站权重。

有意者可以查看noopener与之区别。

无论主题的区别,在footer.*文件中做如下修改:

1
2
<a ... rel="noopener">Hexo</a>&nbsp;&&nbsp;
<a ... target="_blank" rel="noopener">Icarus</a>

改为:

1
2
<a ... rel="noopener nofollow">Hexo</a>&nbsp;&&nbsp;
<a ... target="_blank" rel="noopener nofollow">Icarus</a>

评论