加载中...

Hexo博客的SEO优化


Hexo博客的SEO优化

前言

以前没有怎么优化过seo、站点地图、rss订阅链接、robots 文件,一个都没有写过,最近有空自然这些该加上的东西都需要加一下了。

本篇所使用到的插件:

关于SEO

  • 概念:

    SEO(Search Engine Optimization),即搜索引擎优化,是一种通过利用搜索引擎内在规则,提升网站在相关搜索引擎中自然排名的方法。其目标是使网站在行业内占据领先地位,从而获得品牌效益。搜索引擎优化在很大程度上是一种由网站经营者实施的商业行为,旨在推动自身或公司网站的排名靠前,以获取更大的竞争优势。 ——源自《百度百科》

  • 简单来说就是通过对网站的优化,来提高网站在搜索引擎的排名,从而增加更多的访问量

  • 而搜索引擎的工作过程大致可以分为下面三个阶段(具体基本原理这里不去阐述):

    1. 爬行和抓取:搜索引擎通过跟踪链接访问网页、获得页面 HTML 代码并存入数据库
    2. 预处理:索引程序对抓取来的页面数据进行文字提取、中文分词、索引等处理,以备排名程序调用
    3. 排名:用户输入关键词后,排名程序调用索引数据库,计算相关性,然后按照一个的格式生成搜索结果页面
  • SEO 优化可以分为站内优化和站外优化,而站内优化又分为:网站结构优化网站页面优化,下面的优化内容主要就是针对站内优化的

  • 具体的内容比较繁多,可以看掘金里的-> 这篇博文

网站结构优化

1. 网站地图

无论站点的多少,网站地图都是需要的,网站地图有 HTML 和 XML 两种版本。 HTML 版本的网站地图就是一个页面列出网站的结构;而 XML 版本则是通过在根目录添加 sitemap.xml 文件

要给你的文章生成 sitemap 文件,需要安装如下插件:

npm install hexo-generator-sitemap --save		    # sitemap.xml适合提交给谷歌搜素引擎
npm install hexo-generator-baidu-sitemap --save		# baidusitemap.xml适合提交百度搜索引擎

然后在 站点配置文件 中添加以下代码:

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

这样在每次执行 hexo g 命令后都会在 /public 目录下生成 sitemap.xmlbaidusitemap.xml,这就是你的网站地图。

2. 链接结构

  • SEO 认为,网站的最佳结构是用户从首页 点击三次 就可以到达任何一个页面,很显然,我们使用 hexo 编译的站点打开文章的 url 是:sitename/year/mounth/day/title 四层的结构,这样的 url 结构很不利于 SEO,爬虫就会经常爬不到我们的文章

  • 所以,我们需要对 url 的形式进行优化,将 url 修改为 domain/postname 的形式,修改 站点配置文件 中的 permalink

    permalink: :title.html
    permalink_defaults:

    这样虽然可以优化每篇文章的 url ,但实际上:中文类型的标题还是会被解析为数字乱码(英文并不影响,但我们不可能只采用英文标题),这样给别人的观感并不好,尤其是你想要分享某一篇文章时,别人甚至会以为你这个链接并不怎么安全,所以需要进行如下优化(第三步:链接唯一永久化):

3. 链接唯一永久化

因为上面的链接并不美观,所以进行如下优化:

  1. 安装 hexo-abbrlink 插件:

    npm install hexo-abbrlink --save
  2. 修改配置

    站点配置文件 中添加如下代码,并修改 permalink 的格式

    permalink: posts/:abbrlink.html
    
    # abbrlink配置
    abbrlink:
      alg: crc32  # 算法:crc16(default) and crc32
      rep: dec    # 进制:dec(default) and hex | 输出进制:十进制和十六进制,默认为10进制。丨dec为十进制,hex为十六进制

    关于属性值:

    crc16 & hex:
    http://wuyea.top/posts/66c8.html
    crc16 & dec:
    http://wuyea.top/posts/65535.html
    crc32 & hex:
    http://wuyea.top/posts/8ddf18fb.html
    crc32 & dec:
    http://wuyea.top/posts/1690090958.html
  3. 修改 Front-matter

    abbrlink: xxx 永久固定在 Front-matter 中,在 hexo/scaffolds/ 路径中找到 post.md 文档,在其中添加如下一行即可:

    ---
    title: {{ title }}
    date: {{ date }}
    tags:
    abbrlink:
    ---
    • 如果不在每篇文章的 Front-matter 中指定 abbrlink: xxx 的值,那么就会根据算法随机生成数字;如果你指定了值的话,就会以指定内容显示
    • 当重新执行 hexo clean && hexo g 命令时,该插件就会自动为没有设置 abbrlink 值的文章生成相应的编号,这样编号不变,该文章的 url 就不变,可以随意修改文件名,文章标题

4. 外链跳转设置

外链跳转插件主要用于指示搜索引擎不要追踪(即抓取)网页上的带有 nofollow 属性的任何出站链接,以减少垃圾链接分散网站权重

通常为网站使用到的所有外链添加 rel="noopener external nofollow noreferrer" , 可以有效地加强网站SEO和防止权重流失可以有效地加强网站SEO和防止权重流失。

这里列举几个插件,用哪个都可以:

站点配置文件 中添加以下代码:

hexo_external_link:
  enable: true
  enable_base64_encode: false # 是否对跳转url使用base64编码 – 默认 fasle
  url_param_name: 'u' # 参数名,在跳转到外链传递给html_file_name的参数名 – 默认 ‘u’
  html_file_name: 'go.html' # 跳转到外链的页面文件路径 – 默认 ‘go.html’
  target_blank: true
  link_rel: 'external nofollow noopener noreferrer'
  domain: 'wuyea.top' # 如果开启了防盗链,填写你的域名
  safety_chain: true # 为了防止外链盗用 对域名进行的判断

这样插件会将博客中的出站链接自动加上 nofollow 标签

5. 蜘蛛协议robots.txt

说明:

  • 搜索引擎用来爬行和抓取页面的程序也就是我们熟知的蜘蛛(spider),也称为机器人(bot)。spider 访问网站页面类似于普通用户使用的浏览器。spider 发出页面访问请求后,服务器返回 HTML 代码,spider 把收到的程序存入原始页面数据库。为了提高爬行和抓取速度,搜索引擎通常或多个 spider 并行爬行
  • spider 访问任何一个网站时,都会先访问该网站根目录下的 rotbots.txt 文件。该文件可以告诉 spider 哪些文件或目录可以抓取或者禁止抓取
  • 根据以上内容,我们可以通过设置 rotbots.txt 文件来进行相应设置

配置方法:

可以直接在hexo 项目下的 source 目录添加 robots.txt 文件,文件内容如下:

User-agent: Googlebot
Crawl-delay: 5

User-agent: Bingbot
Crawl-delay: 10

User-agent: Baiduspider
Sitemap: https://你的域名/baidumap.xml
Crawl-delay: 5

User-agent: *
Disallow: /friends/
Disallow: /contact/
Disallow: /js/
Disallow: /css/
Disallow: /libs/
Disallow: /fonts/
Disallow: /medias/
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.gif$
Disallow: /*.png$
Disallow: /*.bmp$
Sitemap: https://你的域名/sitemap.xml

解释:

  • User-agent:爬虫名称,比如 Baiduspider、Googlebot、Bingbot 等。
  • Disallow:指示不允许爬虫抓取的目录或文件。
  • Allow:明确允许爬虫抓取的特定路径,即使在 Disallow 中被禁止。
  • Crawl-delay:用于控制爬虫抓取内容的频率,以防止爬虫抓取过快,影响服务器性能。通常设置为几秒钟的间隔。
  • Host:用于指定首选的域名,如果你有多个域名指向同一个网站,可以通过此指令明确告诉爬虫优先抓取哪个域名。(部分网站不支持)

网站推送优化

1. 查看博客是否被收录

  • 在谷歌或者百度的搜索链接中,使用以下格式可以直接搜索自己的域名,如果能搜索到就说明已经被收录,反之则没有
  • 可以直接搜索自己的域名,或者加一些关键词来更好地判断
  • 例如: site: https://wuyea.top

2. 搜索引擎提交

常见的搜索引擎提交地址:

以百度为例:

  1. 进入 百度站点平台 ,使用百度账号登录
  2. 绑定自己的域名,这里不做过多介绍,和谷歌类似,网上教程也有,自行搜索
  3. 在左侧 资源提交 中找到 普通收录-sitemap,然后将网站的sitemap地址填入即可(因百度调整,申请门槛较高,无法使用sitemap,故需要使用API提交)。

3. 自动提交收录文章

因为手动调用API太繁琐,不如让它自动提交最新改动文章即可。操作如下:

  1. 安装插件:hexo-submit-urls-to-search-engine,官方文档:https://cjh0613.com/20200603HexoSubmitUrlsToSearchEngine#%E7%99%BE%E5%BA%A6

    npm install --save hexo-submit-urls-to-search-engine
  2. 站点配置文件 中添加如下配置:

    hexo_submit_urls_to_search_engine:
      submit_condition: count #链接被提交的条件,可选值:count | period 现仅支持count
      count: 10 # 提交最新的10个链接
      period: 900 # 提交修改时间在 900 秒内的链接
      google: 0 # 是否向Google提交,可选值:1 | 0(0:否;1:是)
      bing: 0 # 是否向bing提交,可选值:1 | 0(0:否;1:是)
      baidu: 1 # 是否向baidu提交,可选值:1 | 0(0:否;1:是)
      txt_path: submit_urls.txt ## 文本文档名, 需要推送的链接会保存在此文本文档里
      baidu_host: https://wuyea.top ## 在百度站长平台中注册的域名
      baidu_token: 请按照文档说明获取 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
      bing_host: <你的域名> ## 在bing站长平台中注册的域名
      bing_token: 请按照文档说明获取 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
      google_host: <你的域名> ## 在google站长平台中注册的域名
      google_key_file: Project.json #存放google key的json文件,放于网站根目录(与hexo _config.yml文件位置相同),请不要把json文件内容直接发布在公众仓库里!
      google_proxy: 0 # 向谷歌提交网址所使用的系统 http 代理,填 0 不使用
      replace: 0  # 是否替换链接中的部分字符串,可选值:1 | 0(0:否;1:是)
      find_what: http://cjh0613.github.io/blog # 要替换的内容
      replace_with: https://cjh0613.com  # 替换之后的内容

    完成上述配置后,你在 Hexo 根目录下运行 hexo generate 指令时,会生成一个 .txt 文件来存储要推送的链接。

    您可以打开此文件查看链接是否正确,如不正确,请访问 hexo 的 _config.yml 进行配置。您也可以手动修改此 .txt 文件后再推送链接。

  3. depoly

    如果您之前没有添加过 deploy: 配置项,直接将下方粘贴至 hexo 的 _config.yml ,覆盖默认的 deploy: 配置项。

    deploy:
    - type: cjh_google_url_submitter
    - type: cjh_bing_url_submitter
    - type: cjh_baidu_url_submitter

    完成这一步之后,运行 hexo deploy 命令时就可以自动推送链接至搜索引擎了。

    注意:您必须运行 hexo deployhexo d 命令以触发推送,无论您之前是否使用这条命令进行部署。

    如果已设置过 deploy: 配置项,直接粘贴上述代码块会提示 配置冲突,直接在已有 deploy: 配置项下添加即可。如:

    deploy:
    - type: git
      repo: 
        coding: git@xxx
      branch: master 
      
      #添加本插件的配置项:
    - type: cjh_google_url_submitter
    - type: cjh_bing_url_submitter
    - type: cjh_baidu_url_submitter

    **注意:上面每个 type: 前都有 -**。

    正常情况下即可提交成功!


文章作者: 无夜
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 无夜 !
评论
  目录