我将我的 Hexo 博客方案分为了三篇:

(一)搭建
(二)优化
(三)图床

Hexo 插件

hexo-abbrlink 插件可以为每一篇文章通过通过算法生成一个唯一且永久的链接,截止到 2024 年 03 月 23 日为止,这个插件已经有两年没有更新了,但是仍然可以使用。

我个人喜欢比较简短的链接,比如 https://lvxianchao.com/5d23b6a.html 这种,至于把博文标题给转为拼音放到链接里去那种,弄得链接又臭又长的,看着很难受,虽然利于 SEO,但我宁愿不要。

安装

1
bun add hexo-abbrlink --save

我的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# _config.yml
permalink: :abbrlink.html

# hexo-abbrlink
abbrlink:
alg: crc32 #support crc16(default) and crc32
rep: hex #support dec(default) and hex
drafts: true #(true)Process draft,(false)Do not process draft. false(default)
# Generate categories from directory-tree
# depth: the max_depth of directory-tree you want to generate, should > 0
auto_category:
enable: true #true(default)
depth: #3(default)
over_write: false
auto_title: false #enable auto title, it can auto fill the title by path
auto_date: false #enable auto date, it can auto fill the date by time today
force: false #enable force mode,in this mode, the plugin will ignore the cache, and calc the abbrlink for every post even it already had abbrlink.

使用注意

想要这个插件生效,就不能写完了一篇博文以后直接使用 hexo d 部署到服务器上了,这样会使得插件来不及生成文章的绝对链接。

需要先使用 hexo g 生成文章,插件会在每一篇博文的头加一个 abbrlink 属性,比如:

1
2
3
4
5
6
---
title: 2024 年我的 Hexo 终极博客搭建方案
abbrlink: 5c44a860
date: 2024-03-23 10:51:40
tags:
---

虽然不能直接使用 hexo d 了,但可以使用 hexo g -d 来达到同样的效果。

hexo-filter-nofollow

hexo-filter-nofollow 插件可自动将 nofollow 属性添加到所有的外部链接,它会在外部链接的 a 标签上加上 rel="noopener external nofollow noreferrer" 属性,以确保安全、隐私和 利于 SEO 。

rel="noopener external nofollow noreferrer" 是一个集合了多个值的 rel 属性,这些值通常用于 <a> 标签(锚点)以设定链接与打开它们的当前文档之间的关系。每个值的意义如下:

  1. noopener - 安全性:打开新的浏览器标签时,阻止新页面通过 window.opener 访问打开它的页面。这有助于提升安全性。
  2. external - 一般用于指示这个链接将会导向一个外部、与当前网站不属于同一域名的资源。这个值本身并不改变浏览器的默认行为,它更多被用作语义标记,有时用于样式化或特殊处理外部链接。
  3. nofollow - 指示搜索引擎不要追踪(即不传递权重)这个链接导向的网页。这在 SEO(搜索引擎优化)中很有用,尤其是当你不希望支持或增强指向的页面的权重时。
  4. noreferrer - 隐私和安全性:指示浏览器在请求目标页面时,不发送来源页面的地址(HTTP Referer Header)。这能够保护用户隐私,并且和 noopener 一样,可以提升安全性。

使用这个属性组合的时候,就是在告诉浏览器:

  • 打开这个链接不应该有访问来源页面 JavaScript 环境的权限 (noopener)。
  • 这个链接指向的是一个外部网站,但这不会影响浏览器行为,只是额外信息(external)。
  • 不应该影响搜索引擎排名(nofollow)。
  • 请求时不应发送HTTP Referer头部,作为用户隐私的保护(noreferrer)。
  • 将这些值一起使用为链接提供了额外的安全和隐私保障,并能够控制搜索引擎对链接的处理,而且能够表明链接导向的是一个外部站点。

安装

1
bun add hexo-filter-nofollow --save

配置

hexo-filter-nofollow 支持以下配置:

1
2
3
4
5
6
nofollow:
enable: true
field: site
exclude:
- 'exclude1.com'
- 'exclude2.com'

插件安装以后是默认开启的状态,由于我没有特殊需要,所以我并没有将这些配置写入到 _config.yml

hexo-generator-sitemap

hexo-generator-sitemap 插件可以自动生成站点地图,利于 SEO。

1
bun add hexo-generator-sitemap --save

hexo-generator-baidu-sitemap

针对百度的 sitemap。

1
bun add hexo-generator-baidu-sitemap --save

百度主动推送

百度的普通收录工具是网站主动向百度搜索推送数据的工具,可以缩短爬虫发现网站链接时间,实时向搜索推送数据。

普通收录工具主要包含 API 推送sitemap手动提交 三种方式,我只选择 API 推送,因为这种方式可以通过 Hexo 插件实现,最快最方便,不需要人工操心。

添加站点

https://ziyuan.baidu.com/site/index 里添加一个网站,协议选择 HTTPS,域名填写 lvxianchao.com

验证方式

验证方式里选择一个适合的,我这里选择的是 HTML 文件验证,将下载下来的 HTMl 文件上传到服务器的博客站点根目录即可。

hexo-baidu-url-submit

通过 Hexo 插件 hexo-baidu-url-submit 来实现自动主动推送。

安装

1
bun add hexo-baidu-url-submit --save

配置

_config.yml 中添加以下配置内容:

1
2
3
4
5
6
#设置百度主动推送
baidu_url_submit:
count: 200 #比如200,代表提交最新的200个链接
host: lvxianchao.com # 在百度站长平台中注册的域名,这个改为你自己的域名
token: XXXXXXXXXXX # 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里,这个默认

这里需要注意,host 配置项的值需要与你在百度资源平台里添加的网站域名相同。

deploy 配置项里添加一条部署类型:- type: baidu_url_submitter,比如我的:

1
2
3
4
5
deploy:
- type: git
repository: xxxxxxxxxxxx
branch: main
- type: baidu_url_submitter ## 这条是我新添加的

在之后执行 hexo d 的时候就会推送到百度了。

Google Search Console

Google Search Console 页面,选择资源类型 网域 ,只需要在 DNS 服务商处添加一条 TXT 记录即可。

Google Search Console 添加网域

点击 继续 以后,在新的弹出窗口中复制 TXT 记录,并去 DNS 服务商那里添加上,然后点击 验证

通过 DNS 记录验证域名所有权

之后可以 站点地图 菜单中主动提交 sitemap。

不过我个人感觉 Google 的收录频率非常高,可比百度强多了,不需要我手动,如果之后能有自动主动提交的工具再来更新。

必应

必应可以直接同步 Google Search Console 的数据,所以可以直接在 https://www.bing.com/webmasters 以 Google 账号登录上去选择 从 GSC 导入你的网站 就可以了。

必应网站管理员工具

从 Google Search Console 导入

网站添加成功