首页 > 分享 > seo优化超详细步骤 — hexo

seo优化超详细步骤 — hexo

优化过程中踩了不少坑,这里记录一下,也希望能帮助到需要的人。

优化文章 url,便于收录

缩减链接长度 且 固定链接

hexo 中,文章链接默认是 permalink: :year/:month/:day/:title/ 这种形式。
即是:sitename/year/mounth/day/title 四层的结构,且每次更改文章可能会导致链接变化

搜索引擎认为对于一般的中小型站点,3 层足够承受所有的内容了,所以蜘蛛经常抓取的内容是前三层,而超过三层的内容蜘蛛认为那些内容并不重要,所以不经常爬取。出于这个原因所以 permalink 后面跟着的最好不要超过 2 个斜杠。

而我们的链接由于大多带有中文,转码的时候就会很丑很长,并且更改文章可能还会导致链接变化,有没有一种办法,既可以缩短链接长度又固定链接呢?

利用 abbrlink 插件可以实现,它会在文章生成一个 abbrlink 字段,这个字段永远不会改变,且使链接层次短,利于 seo 收录

配置 abbrlink

在 hexo 根目录安装:

npm install hexo-abbrlink --save

更改 hexo 配置文件_config.yml

1
2
3
4

abbrlink:
alg: crc32
rep: hex
permalink: posts/:abbrlink.html

百度收录规则里面明确强调了,需要 html 结尾的,必须 html 结尾,规范化 url,有利于抓取并提高排名。
所以 :abbrlink.html 会比 :abbrlink 更好一点(?)。但其实不弄也没差

abbrlink 编码规则决定后就不要再改了,不然编码不统一,导致文章链接改变

效果如下

生成的 abbrlink 字段
链接效果

固定链接抛开 seo 优化不谈,本身就很重要,它保证了你链接的完好性

将网站提交给百度搜索引擎

这里只谈百度了,毕竟百度才是国内主要用的,谷歌有墙

安装站点地图 sitemap

站点地图是一种文件,一般为 xml 形式,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知 Google 和其他搜索引擎。Googlebot 等搜索引擎网页抓取工具会读取此文件,以便更加智能地抓取您的网站。

先安装插件

1
2

npm install hexo-generator-sitemap --save 谷歌
npm install hexo-generator-baidu-sitemap --save 百度

貌似还需要在根目录的_config.yml 中添加 sitemap 的路径?但是我不加也能在 public 中生成,酌情添加吧

1
2
3
4

sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

编译博客并生成 xml 文件

hexo g 编译博客后,你会发现你的 public 中多了两个 xml 文件,分别是 sitemap.xml 以及 baidusitemap.xml,里面收录着你博客将被爬虫的链接,此时代表你成功了。

之后再 hexo d 部署到网站上,https://dingzh.cc/baidusitemap.xml 和 https://dingzh.cc/sitemap.xml 验证一下能否跳转即可

添加并验证网站

有三种方式:

添加时让你最好带 www,其实不带也问题不大现在

文件验证:得放在 themes 的 source 下?因为放到根目录的 source 下会破坏原有的格式导致验证失败。这里我也不是很懂 QAQhtml 标签验证:我是 butterfly 主题,自带了 html 标签站长验证,只需要填入 content 就行了

1
2
3
4
5
6
7
8




site_verification:
- name: baidu-site-verification
content: xxx
- name: google-site-verification
content: xxx
CNAME 验证:如果你有域名的话,那么你肯定也会域名解析了,这点我就不说了

验证成功后我们就可以设置推送啦 ^^

设置推送

大致可以分为三种:

主动推送:最快,在你 hexo g -d 时会生成一个 txt 文件,里面记录着你最新提交的 n 个链接,并把其交给百度。

自动推送:最方便,每当有人浏览你网页时,自动推送给百度。

sitemap:传统,将之前生成的 sitemap 文件交给百度,百度会定期检查你提交的 sitemap 文件并进行处理,但收录速度并不快。

其实还有一个手动提交,让你一个个去手动提交。
但是,何必呢……

虽然从效率上来说,主动推送 > 自动推送 > sitemap。但是其实三者可以一起使用,相辅相成,没必要分个高下。

主动推送

据说可以解决百度无法爬虫 github 的问题,因为是我们自己提交给百度的

安装插件 hexo-baidu-url-submit

在 hexo 根目录安装 npm install hexo-baidu-url-submit --save

在根目录的_config.yml 中添加配置先添加 hexo-baidu-url-submit 插件的配置

1
2
3
4
5

baidu_url_submit:
count: 3
host: dingzh.cc
token: token
path: baidu_urls.txt

这里的 token 位推送接口给你的 token

count 的值不要设太高,除非你真的有那么多的链接需要提交。否则多次提交重复内容百度会暂时将你加入黑名单或给你限制提交的次数甚至降低你网站的权值。而且在你调试网页且并没有新链接需要提交时,最好将 count 的值设为 0,防止反复提交

还需要将_config.yml 配置中的 url 改成你在站长平台注册的域名,不过我相信这个你肯定已经弄过了

1

url: https://dingzh.cc

最后修改一下 deployer,让你推送时顺便推给百度

1
2
3
4
5

deploy:
- type: git
repository: https://xxxxxx.git
branch: main
- type: baidu_url_submitter

注意 yml 文件的缩进是由严格要求的,为 2 个空格,不然 hexo 编译时会报错

hexo d -g 推送博客

都配置好后 hexo g -d 推送博文,出现这个就算成功啦!!

remain:一天内剩余提交量
success:本次提交成功的链接数

自动推送

根据百度原话,只要将 js 代码 放到博客的每一个页面下就行了

1
2
3
4
5
6
7
8
9
10
11
12

(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();

问题是怎么把这段代码放到每一个页面下?

网上大都只有 next 主题的方法,在主题配置文件中,令 baidu_push 设置为 true 即可,非常简单。而我是 butterfly 主题的该怎么做呢?

其实也非常简单,只需要利用主题配置文件中的 inject 配置项,在 head 和 body 间引入这段 js 代码 即可。在 themes/butterfly/source/js/ 下新建 baidu_sub.js ,将代码复制粘贴进去,然后在主题配置文件的 inject 中引入即可。

1
2
3
4
5
6
7

inject:
head:

- <script defer src="/js/baidu_sub.js"></script>
bottom:


可以看到,这段 js 成功出现在了每个 html 页面的 head 中

sitemap 推送

很简单,把你之前生成的 sitemap.xml 在百度上提交即可

到此,主动推送三种方式具体如何实现到介绍完了,呼~

拓展:robots.txt 文件的设置

以下是百度原话:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

一、使用说明
1. robots.txt可以告诉百度您网站的哪些页面可以被抓取,哪些页面不可以被抓取。
2. 您可以通过Robots工具来创建、校验、更新您的robots.txt文件,或查看您网站robots.txt文件在百度生效的情况。
3. Robots工具目前支持48k的文件内容检测,请保证您的robots.txt文件不要过大,目录最长不超过250个字符。

二、什么是robots文件
Robots是站点与spider沟通的重要渠道,站点通过robots文件声明本网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。

搜索引擎使用spider程序自动访问互联网上的网页并获取网页信息。spider在访问一个网站时,会首先会检查该网站的根域下是否有一个叫做 robots.txt的纯文本文件,这个文件用于指定spider在您网站上的抓取范围。您可以在您的网站中创建一个robots.txt,在文件中声明 该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。

请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。

三、robots.txt文件放在哪里?
robots.txt文件应该放置在网站根目录下。举例来说,当spider访问一个网站(比如 http://www.abc.com)时,首先会检查该网站中是否存在http://www.abc.com/robots.txt这个文件,如果 Spider找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。

总的来说,就是如果你不想让百度爬你某些链接,你就得设置 robots.txt 文件

设置 robots.txt 可以防止大量垃圾链接提交给百度,提高你文章的权重
而且听说设置 rotbot.txt 可以提高收录概率,所以就算你没有不希望被爬取的内容,也可以设置一个空的 robots.txt 文件

具体用法用例,可以参照 https://ziyuan.baidu.com/college/courseinfo?id=267&page=12#h2_article_title28 。我这里只进行个例的演示

若你没有不希望被爬取的内容

1
2
3
4
5

User-agent: *
Allow: /

Sitemap: https://dingzh.cc/baidusitemap.xml
Sitemap: https://dingzh.cc/sitemap.xml

若你有不希望被爬取的内容

比如说,我的文章全部放在 /posts 中,那么我就可以只让百度爬取我 /posts 中的内容,具体设置如下。

1
2
3
4
5
6
7

User-agent: *
Allow: /posts
Disallow: /

Sitemap: https://dingzh.cc/baidusitemap.xml
Sitemap: https://dingzh.cc/sitemap.xml

Allow 的优先级大于 Disallow 最后可以放你的 sitemap.xml 文件链接

你可以通过以下步骤验证你的 robots.txt 文件是否配置成功

hexo g -d 后输入链接,看能否成功跳转到你的 robots.txt

在百度站长平台 robots 验证中检查


总算写完了,这算是我写最长的一篇文章了,好累ヽ ( ̄▽ ̄)و。

就算配置好后,如果你是 github pages 上托管的网站,可能不被收录。
可以采用 cdn 加速域名 或 部署一个国内镜像站 等方法解决。
这里就不介绍了,自行百度

相关知识

企业SEO网站优化的步骤分析
如何诊断网站SEO优化过度?避免网站优化的方法
hexo换主题乱码问题的解决
鲜花的seo策略 鲜花SEO策略:绽放网站流量的秘诀
SEO蜘蛛池如何养护——酷像SEO
小程序商城售卖汽车和自行车养护品的步骤
如何有效进行网络推广?详细步骤与技巧解析
SEO艺术阅读笔记
外贸网站推广谷歌SEO排名,水到底有多深?
花店网站制作的详细流程

网址: seo优化超详细步骤 — hexo https://m.huajiangbk.com/newsview830230.html

所属分类:花卉
上一篇: 《seo搜索引擎优化》思维导图,
下一篇: WordPress SEO教程: