工作中运营上遇到了技术问题,有关SEO的东西还挺多的,整理记录一下,以Google搜索引擎为例

网站所有权验证

Google

首先要让搜索引擎先验证我们对网站的所有权,Google搜索引擎提交的入口为:Google Search Console

验证你对该网站的所有权有多种方式,我这里使用的是Hexo->butterfly主题中提供的”Google Analytics”验证方式

主题配置文件_config.butterfly.yml中可以找到google_analytics字段,到Google Analytics中生成你自己的 google_analytics 代码,将这个代码粘贴到主题配置文件_config.butterfly.ymlgoogle_analytics 字段后面,像这样:
网站所有权验证

添加后部署一下,在Google Search ConsoleGoogle Analytics中刷新一下,就能看到验证成功了


- 2024.5.10更新 -

SEO优化记录

搜索结果显示

简单说就是截图的这玩意儿

标题及摘要

图中 红框 标注的部分

这个其实是index.html文件中的<title>标签和<meta name="description">标签内容,改掉即可

但是,工作上要求支持多语言,换句话说,中国人搜谷歌会出现中文的搜索结果,ニホンジン搜Google会出现ニホンゴ的搜索结果。

要想满足这个条件,只能为每种语言单独设置一个index.html页面,并且url要添加对应的后缀-zh-CN-ja
(待补充·急)


- 2024.5.10更新 -

站内链接

图中 绿框 标注的部分

它的实现原理是,诸如谷歌一类的搜索引擎,有一个爬虫程序,会定期爬取你的网站,然后根据爬取到的内容,生成一个索引并展现在搜索结果中。

因此,只要在新增 路由 routes命名是符合常识的,谷歌的爬虫程序也就能猜得到,也就自然能爬到,不管都没事儿

否则,可能需要单独添加 站点地图 sitemap.xml文件

站点地图

Hexo为例,添加站点地图

点击查看内容
  • 生成sitemap文件

    • 安装相关插件
      1
      npm install hexo-generator-sitemap --save
    • 修改配置
      修改站点主题配置文件_config.butterfly.yml, 添加如下两段配置
      1
      2
      3
      # hexo sitemap
      sitemap:
      path: sitemap.xml
  • 重新编译博客:hexo g
    看看在public文件夹里面是不是出现了sitemap.xml文件,你还可以本地访问 http://localhost:4000/sitemap.xml 查看效果,说明配置成功

  • 搜索引擎收录
    谷歌操作比较简单,就是向Google Search Console提交sitemap
    谷歌提交sitemap

值得注意的一点是,尽量不要在站点 URL(Universal Resource Locator,统一资源定位符) 上加#符号

#,井号:表示网页中的一个位置,被称之为锚点,常用于 单一页面中不同位置的跳转

简单的说就是在一个网页中,URL不变的情况下,通过添加“#buy”的字符在URL最后可以跳转到当前网页中已经定义好的锚点(id=“buy”)位置

比如我们写Hexo博客就可以利用这个跳转不同标题H1H2H3:
https://xie-tiao.github.io/posts/2643705521/#Google (访问该链接就可以直接跳转到该文章顶部 网站所有权验证Google栏目,跟点击右边目录的作用是一样的)

搜索引擎的爬虫程序会默认#之后的url为锚点,这样在生成站内链接时也会产生影响

因此,在新增路由 routes时最好使用History模式,而非Hash模式:

vue为例:

点击查看内容
1
2
3
4
5
6
7
8
9
10
import routes from "./routes";
import { createRouter, createWebHistory,createWebHashHistory } from 'vue-router';

const router = createRouter({
// History模式
history: createWebHistory(),
// Hash模式
history: createWebHashHistory(),
routes
});

其他优化

文章链接优化

点击查看内容

Hexo 默认的文章链接形式为 domain/year/month/day/postname,分级较多,造成URL较长,不利于搜索引擎检索,我们可根据需要缩短URL,方法可参考:

添加蜘蛛协议robots.txt

点击查看内容

robots.txt(统一小写)是一种存放于网站根目录下的 ASCII 编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。

在根目录 source 文件下新建 robots.txt 文件,添加以下文件内容(将 Sitemap 中的域名切换成自己网站域名)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
User-agent: *
Allow: /
Allow: /archives/
Allow: /tags/
Allow: /categories/
Allow: /about/

Disallow: /vendors/
Disallow: /js/
Disallow: /css/
Disallow: /fonts/
Disallow: /vendors/
Disallow: /fancybox/

Sitemap: https://xie-tiao.github.io/sitemap.xml

参数说明: User-agent: * 允许所有 robot 访问,Allow 允许访问 X 目录,Disallow 禁止访问 X 目录

数据结构化标记

Google搜索支持的结构化数据标记

这个功能需要根据结构化语法自己写,示例谷歌官方已给出,不再赘述

其他抓取优化

link标签

相似的域名可能会让爬虫程序混乱,比如baidu.comwww.baidu.com,这种情况下最好单独指定网址

可通过在每个非规范版本的 HTML 网页的<head>部分中,添加一个rel="canonical"链接来进行指定规范网址。

1
2
<!-- href填写要作为标准的网址 -->
<link rel="canonical" href="http://baidu.com">

语义化标签

<h1> <h2> <p> 之类的就不用说了,这里主要强调<img>

添加<img>最好把alt属性也加上,内容留空也行,但是不能没有

参考文献

  1. 辛苦搭建的网站为什么搜不到,原因找到了..
  2. Hexo搭建博客进阶之SEO搜索引擎优化
  3. URL 链接中 #、?、连接符& 分别有什么作用?
  4. Vue使用sitemap-webpack-plugin根据路由地址生成sitemap.xml
  5. Simple Sitemap For Vue Router
  6. Canonical URL是什么? Canonical设定助你提升Google seo排名!