「记录」摸着良心做 SEO 优化

原创

本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。

严格来说,搜索引擎优化应该叫 SE 优化,缩写中的 O 本身就是 “Optimization(优化)” 的意思,SEO 这个说法犯了成分赘余1的毛病。(类似汉语中经常被堆在一起用的 “诸” 和 “之于” )
不过咱今天不扯语病,回归主题,水一篇 SE O 优化,记录本站(基于 hexo )的一些具体优化细节。

一味追求搜索结果数量的投机操作不在本文范围内。
净化中文网络空间,从你我做起🧐

🚧 缓慢施工中

必备功能

永久链接

安装 hexo-abbrlink
npm install hexo-abbrlink --save

修改 _config.yml 自定义永久链接格式
注释掉原来的 permalink: :year/:month/:day/:title/
改成下面的任一形式:

  • permalink: posts/:abbrlink.html
    这样生成的文章会全部带上 .html 后缀,例如 http://127.0.0.1:4000/posts/SEO-Notes.html 亲测本地预览时去掉后缀也能打开。
    但上线后打开 https://loafing.cn/posts/SEO-Notes 却显示 404 Not Found,暂不清楚如何优化。
    注意: Valine 评论系统的 url 判断比较 “呆”,打开同一篇文章,带与不带 .html,评论是分开的,很让人迷惑。DisqusJs 更智能一些,无此问题。

  • permalink: p/:abbrlink/
    如果嫌弃上一种方式得到的链接太长,那就试试这种不显示 .html 后缀的写法。
    这样一来,本文的链接就该变成 http://127.0.0.1:4000/p/SEO-Notes/ ,且不论是本地预览还是正式上线,去掉最后一个 / 都能正常打开。

第一种方式生成的文章静态文件全部在 public/posts/ 下面,一篇文章对应一个 title.html。
第二种方式则是在 /public/p/ 文件夹下面,以标题命名一堆文件夹,每个文件夹下面单独放一个 index.html,浏览器展现链接时自动将 index.html 省略显示,在 /p/title/ 后面补上它,同样能打开。

综合来看:
第一种方式最直观,明明白白地告诉搜索引擎和读者,这是一个静态网页。
据说这种方式对 SEO 稍友好,有一个臭名昭著的垃圾污染源网站的链接就是如此安排的。
hot
第二种方式对读者友好得多,尤其是手机用户。
如果域名本身不够短,再加上长长的目录层级、文件名、后缀名……链接很容易过长,浏览器地址栏显示不全,看不见全部链接是很讨人厌的一件事。
并非所有 “犹抱琵琶半遮面” 都是美的。

此插件将自动在文章的 Front-matter 加上 abbrlink: (一串固定的随机数字),默认使用 crc16 和 dec 算法(俺也不懂是啥),可自动生成的最大数字为 65535,好在对个人博客而言完全够用。
你也可以自己手动修改 abbrlink 后面的内容,尽量使用有意义、短小精悍的英文(缩写)、拼音或数字组合,以便于后期辨认,快速定位文章。
空格使用 - 或者 _代替,我的习惯是:短语使用短杠连接各个单词,较长的句子使用下划线,例 “The-Great-Wall”、“An_Unsent_Apple_on_Christmas_Eve_in_2016”。
至于大小写,如果想显得专业一点可以遵守英文标题大小写规则2(对考试也有所裨益😏)

点击展开

一般实词(名词、动词、代词、形容词、副词等)首字母大写,虚词(介词、冠词、连词、感叹词)首字母小写。标题第一个单词、最后一个单词无论词性首字母应该大写。超过5个字母的虚词,如 between、without、alongside、underneath 等应该大写。如果是重要提示性标题,或者是专有名称标题,可以全部字母都用大写,但这种用法应慎重(给阅读增加难度)。

但大写单词多了容易让人抓不住重点,输入也麻烦,所以我在使用长标题的时候倾向于尽量小写,需要特别关注的单词才大写,例 “Content_is_far_more_important_than_name”。

想清楚再选一个固定的,避免后续变心 😕

首选链接

安装 hexo-auto-canonical
npm install --save hexo-auto-canonical
用法:以 Cards 主题为例,修改 \themes\cards\layout\_partial\head\index.ejs,将以下内容添加至 </head> 标签前面

<%- autoCanonical(config, page) %>

我这里无论是 http://127.0.0.1:4000/tags/https://coding.loafing.cn/tags/ 还是 https://blog.loafing.cn/tags/ 都自动在网页源码的标签之前加入
<link rel="canonical" href="https://loafing.cn/tags/">
此插件生效后,有利于将搜索结果全部引导至首选域名,其它域名将成为 “备用域名”,可在 “search.google.com - 覆盖率 - 已排除” 找到它们。

点击展开

Screenshot

但是谷歌似乎对带 www. 的域名有些偏爱?(明明内容都是一样的)
Screenshot_20201115

站点地图

安装 hexo-generator-sitemap
npm install hexo-generator-sitemap --save

编辑 _config.yml

点击展开
sitemap:
path: sitemap.xml
# template: ./sitemap_template.xml # 自定义模板,不会用。
rel: false # 如果为 true,则会在网页头部添加一条 <link rel="sitemap" href="/sitemap.xml" /> 指向标准的站点地图,否则搜索引擎可能会把 rss.xml 、atom.xml 当作站点地图。(我感觉必要性不大,它爱抓就抓吧)
tags: true
categories: true

有希望被别人看见的页面自然也有不想给别人看的内容:
给不必要加入站点地图的文章 Front-matter 加上 sitemap: false

点击展开
---
title: 日记
date: 2020-10-01
sitemap: false
---

noindex

如果想更严格一些,还可以给相应页面内容中的 <head> 部分添加含有 noindex 指令的 <meta> 标签
继续修改主题的 head.ejs,加上几行判断

{% if page.noindex %}
<meta name="robots" content="noindex"/>
{% endif %}

保存退出,今后在不想被搜索引擎收录的页面的 Front-matter 中添加一行 noindex: true 即可。

重要提示

要想让 noindex 指令生效,就不得使用 robots.txt 文件屏蔽相应网页。如果该网页被 robots.txt 文件屏蔽了,抓取工具将永远无法看到 noindex 指令,因此该网页可能仍会显示在搜索结果中(例如,如果有其他网页链接到该网页的话)。4

此外还有 hexo-hide-postshexo-blog-encrypt 插件可供使用,自由地隐藏、加密文章,实现更完备的展现方案。

robots.txt

外链筛选

安装 hexo-filter-nofollow
npm i hexo-filter-nofollow --save
为全站外链自动添加 rel="external nofollow noreferrer" 属性
rel 属性介绍

点击展开
  • external: 告诉搜索引擎,这是一个外链。
  • nofollow: 告诉搜索引擎,我不想传递这些外链的权重,防止将 SEO 链接排名传递给链接的网站,屏蔽那些垃圾链接。(避免徒做嫁衣?毕竟别人的排名高了就意味着自己的排名被降低。)
  • noreferrer: referrer 是推荐人的意思,
    当有流量由其他网站的链接进入本站时,正常情况下,在我的 Google Analytics 会看到这些网站导入的流量被编入 referral 分类。
    但如果链接加了 noreferrer,所有流量会编入 direct。

编辑 _config.yml

点击展开
nofollow:
enable: true
field: site
exclude:
- 'loafing.cn'
- 'www.loafing.cn'
- 'py.loafing.cn'
- 'coding.loafing.cn'

写作规范

主题明确

层级清晰

其它细节

用正确的元素做正确的事。

改善链接的形式
尽量使用简单明了的方式展现链接

[谷歌](https://google.cn/) 和 google.cn 的可读性远好于直接甩链接 https://google.cn/

谷歌google.cn 的可读性远好于直接甩链接 https://google.cn/

记得填写图片标题

逻辑语法屈从:读者习惯 > 搜索引擎偏好

内容为王,配合前期的用心优化,实现小破站的发光发热!

本文作者:青菜芋子

本文链接: https://loafing.cn/posts/SEO-Notes.html

文章默认采用 CC BY-NC-SA 4.0 许可协议,如有转载请注意遵循。

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。