hexo-butterfly-SEO优化
hexo-butterfly-SEO优化
1.网站收录
网站收录主要包括网站验证、链接提交两个核心步骤,此外还可扩展自动推送、robots、rel配置
hexo项目插件引入:生成站点地图
分为手动提交和自动提交,此处采用sitemap方式自动提交
1 | # 引入组件生成站点地图 |
配置完成执行hexo g
后会在站点根目录/public生成相应的sitemap.xml
,部署网站后,提交到百度/谷歌
1 | # 站点地图地址 |
百度收录:百度搜索资源平台
上述步骤完成,在百度搜索框内输入site:域名
,查看收录情况,如果没有收录则提交网址进行收录,登录百度账号->用户中心->站点管理->添加网站(输入网站、配置站点属性、验证网站)
验证网站有多种方式,采用文件验证的方式,下载baidu_verify_code-xxxx.html验证文件,随后将文件放置在配置域名的根目录下,此处放置在hexo博客项目source下,每次打包发布则不会被覆盖。
我采用的是CNAME验证的方式进行验证,根据提示将指定的记录使用CNAME解析到ziyuan.baidu.com
即可(例如使用github二级域名则为code-xxxxxxx.用户名.github.io
,如果是自定义域名则参考提示进行配置)。例如使用自定义域名可以通过DNSPOD进行解析
主机记录 | 记录类型 | 记录值 |
---|---|---|
code-xxxxxxx.用户名.github.io | CNAME | ziyuan.baidu.com |
- 普通收录方式
验证通过之后则可进入普通收录页面,上传sitemap文件
PS:百度对 github 托管的 sitemap 不太友好,如果网站是使用 github page 发布,建议删掉百度站长平台的 sitemap ,用 API 主动提交,避免出现抓取失败,影响网站权重。用 API 推送后,索引量迅速回升
如果需要搜索引擎收录网站,则需要对应搜索引擎的管理平台进行提交,各自的验证码可以从管理平台获取
- API提交方式收录(curl/post/php/ruby等多种不同的方式进行推送)
1 | 1.编写一个urls.txt文件,将要提交的链接按照每行一条的格式写入 |
// 查看推送结果(具体可参考推送反馈)
字段 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
success | 是 | int | 成功推送的url条数 |
remain | 是 | int | 当天剩余的可推送url条数 |
not_same_site | 否 | array | 由于不是本站url而未处理的url列表 |
not_valid | 否 | array | 不合法的url列表 |
必应:必应站长平台
访问必应站长平台,可通过Google Search Console自动导入或者手动添加的方式构建(为了便于管理,可采用google账号登录链接或者用Microsoft账号登录绑定google search console)
随后在Sitemaps选项卡中添加站点地图即可
google:Google Search Console
登录->网址所有权验证
域名验证参考文档说明:验证网站所有权、验证域名(针对托管服务商)
DNSPOD 进行所有权验证
主机记录 | 记录类型 | 记录值 |
---|---|---|
域名或者子域名配置对应 | TXT | google提供的TXT验证 |
站点地图->添加新的站点地图,填充站点地图地址即可
2.自动推送
构建说明
<1>配置各个搜索引擎的站长平台秘钥
<2>引入hexo-submit-urls-to-search-engine插件,主配置文件_config.yml中引入配置
<3>hexo clean & hexo g & hexo deploy 自动推送
配置参考
<1>配置各个搜索引擎的站长平台秘钥
登录百度搜索资源平台,访问用户中心->站点管理->普通收录->API提交(记录秘钥)
对应的token则参考相应的推送接口URL中的token即可
登录必应站长平台,访问设置->API access(API访问)->API Key(API秘钥)->Generate API Key,生成并记录API Key即可
(需科学上网)访问Google Indexing API ,根据提示在Google开发者平台创建项目、服务账号(IAM管理->服务账号),将服务账号添加为Google Search Console所有者,获取到相应的访问令牌
- 创建项目
- 添加服务账号(IAM管理->服务账号)
填充账号信息,跳过权限(可选配置)设置相关,创建完成则“管理秘钥”->“添加秘钥”(创建新秘钥,选择JSON格式),随后保存下载的JSON秘钥即可(仅此一份需妥善保存)
随后将获取到的 json 密匙文件放于 hexo 根目录(与hexo _config.yml文件位置相同)
- Webmaster Center授予服务账号所有者权限
在此之前需要验证网站所有权,随后点击进入相应的内容添加所有者权限
代理者服务账号:上述下载的JSON私钥中的client_email字段或者在服务账号管理页面中查看
<2>引入hexo-submit-urls-to-search-engine插件,主配置文件_config.yml中引入配置
引入插件
1 | npm install --save hexo-submit-urls-to-search-engine |
文件配置
为了避免token直接暴露在仓库中(尤其是针对公共的仓库,可以通过CI的环境变量设置记录秘钥保证安全性)
1 | hexo_submit_urls_to_search_engine: |
上述配置完成,执行hexo g指令会生成txt文件存储要推送的连接,可检查文件内容是否正常
配置步骤说明
<1>在hexo_submit_urls_to_search_engine:
的配置项baidu_token:
与bing_token:
处填写0
<2>设置环境变量BAIDU_TOKEN
,BING_TOKEN
,值为已获取的token
此处可构建Travis CI配置,自动部署hexo项目,使用Travis持续集成
<3>如果使用 Github Action ,还需在 yml
文件中设置环境变量
github对应hexo发布仓库:Settings->Secrets->Actions->New repository secret
参数 | 说明 |
---|---|
BAIDU_TOKEN | 根据文档指示生成 |
BING_TOKEN | 根据文档指示生成 |
1 | # github action自动部署,对应yml文件配置 |
<4>hexo clean && hexo generate && hexo deploy
自动推送
注意事项
如果使用CI自动部署,则必须在每个页面的front-matter中配置updated属性用于标示hexo修正文章最后更改时间(如果没有指定,则hexo读取文件属性是以CI自动部署概念git资源clone的时间为参考,从而导致修改时间显示异常)
此外区分本地部署和CI部署,如果是本地部署则需指定BAIDU_TOKEN、BING_TOKEN的值,如果是CI部署则将baidu_token&bing_token设置为0并配置相应的环境变量(Github Actions、Travis CI);还需区分Google环境配置是否正常(本地通过google key直接配置),CI则相应考虑对应的配置是否正常,一一排查,需注意不同环境部署的切换触发的不同结果,根据响应结果进行排查
如果三种方式都要满足,则相应要满足对应的条件:
参数配置 | 本地部署 | 远程 |
---|---|---|
配置开关 baidu\bing\google |
1 | 1 |
baidu_token | 对应token值 | 设置为0并配置CI环境变量 |
bing_token | 对应token值 | 设置为0并配置CI环境变量 |
baidu_token | google key引入、代理服务支持(可引入本地代理) | google key引入、代理服务支持(需集成代理环境) |
google_proxy:向谷歌提交网址所使用的系统 http 代理
格式:http://proxyhost:port
Hexo 部署于境外可填 0 不使用。使用科学上网软件,proxyhost
一般为127.0.0.1
,port
可在软件中查看设置,一般为8080
。Win10 可在 设置->代理处查看
replace:URL替换
针对域名解析的情况可将生成的github.io类型的url替换为对应的自定义域名,或者将中文域名替换成转码后的域名
1 | replace: 0 # 是否替换链接中的部分字符串,可选值:1 | 0(0:否;1:是) |
发布
1 | 配置_config.yml deploy属性(通过"-"符号区分不同的发布url) |
- 响应结果
1 | # baidu |
<3>hexo clean & hexo g & hexo deploy 自动推送
指令执行完成,可查看响应状态(根据响应报文检查数据推送是否正常),搜索引擎每天有一定数量的链接提交限制,如果是提交失败的url则相应进行检查,手动修改自动提交的txt文件中的url,去除已经成功推送的内容,随后重新尝试推送即可
结果查询
索引查询
打开任意搜索引擎,输入site:网站,访问是否正常,如果是新站索引量0->1需要一定的时间,收录速度也收其他因素影响
推送记录查询
登录相应的站长平台,随后访问对应网域资源,查看统计数据统计
3.优化项
添加rel
为网站使用到的所有外链添加rel=”noopener external nofollow noreferrer”, 可以有效地加强网站SEO和防止权重流失
- 装载组件:hexo-filter-nofollow
1 | npm i hexo-filter-nofollow --save |
- 修改主配置文件
1 | nofollow: |