写在前面
先上两张图对比下:
Google-site:blog.mariojd.cn Baidu-site:blog.mariojd.cn由于GitHub Pages是拒绝百度爬虫爬取的,包括用Hexo或Jekyll搭建的博客,因此你的站点再怎么SEO优化,这在国内也是收录和搜索不到的。本文介绍的方案同大多数一样,利用DNS将国内的线路请求到Coding Pages,然后国外的线路还是走GitHub Pages。
上面是在完成以下几步操作几天后截的图,总之谷歌是很快就收录了我的博客站点(听说最多一两天),相反国内的百度是迟迟没有动静,上站长平台各种地址、sitemap提交也是毫无反馈,还是提问后才了解到百度收录站点的速度确实会比较慢,短则一两周长则几个月,还是先做好时间、心理的持久战准备吧!
准备说明
解决过程
- 在Coding.net上创建当前用户名仓库
- 修改hexo根目录下的
_config.yml
- 修改hexo根目录下的
# 注意这里要修改成你的实际仓库地址,都是走SSH的方式所以要提前配置相关环境
# 如果实际分支不是默认的master,请自行修改并在平台上配置
deploy:
type: git
repo:
github: git@github.com:happyjared/happyjared.github.io.git,master
coding: git@git.coding.net:happyjared/happyjared.git,master
- 注册DNSPod并修改域名解析
这里需要两条CNAME主机记录。线路类型是国外的,记录值为:<github username>.github.io.;线路类型是国内的,记录值为:pages.coding.me.(注意,对应静态Pages来说这是个固定值)。
DNSPod- 重新部署Hexo并测试访问
完成上述操作后使用hexo g -d
命令重新部署双平台博客,然后通过访问http://<github username>.github.io
或http://<coding username>.coding.me
查看操作是否成功。
-
- 添加自定义域名和Https
- GitHub Pages的配置在该仓库的
Settings
,参考下图:
- Coding Pages的配置在当前仓库的
Pages服务
,如下图所示:
提示:关于Coding Page的SSL/TLS证书申请 ,主要就是在DNSPod平台上正确的配置解析记录,如果出现验证错误,请参考Coding Pages常见问题。当时我遇到的错误信息是:Fetching http://exmaple.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: xxxxxxxx
,解决方案是先将上述CNAME记录值为pages.coding.me.
的线路类型修改为默认,待验证通过后再调整为国内。
- 关于Coding Pages跳转页
参考Coding.net官网说明,可以配置文字版或图片版,然后验证并解决。我这里使用的是文字版方案,修改了hexo主题layout\_partial
目录下的footer.ejs
。
验证方案
Test Server完成上述操作后,百度蜘蛛爬虫应该就可以成功抓取我们的站点了,下面列出两种测试方案。
模拟百度爬虫请求站点
curl -A "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" https://blog.mariojd.cn
通过百度站长平台抓取验证
- 验证地址:抓取诊断 - 百度站长
站长平台收录及验证
为了加快站点收录,可以通过站长平台(先验证)主动提交站点sitemap,这里可以通过hexo插件生成sitemap,参考如下:
- npm install hexo-generator-sitemap // 这是传统的sitemap
- npm install hexo-generator-baidu-sitemap //这是百度专有的sitemap
安装完插件后,需要在Hexo根目录下配置_config.yml
,使用hexo g
可以在public
目录下看到生成的sitemap.xml文件,最后hexo d
部署到远程仓库即可:
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml
谷歌收录
- 谷歌站长平台
- 添加站点后,在“抓取”->“站点地图”中提交sitemap
百度收录
- 百度站长平台
- 添加站点后,在“数据引入”->“链接提交”中提交sitemap
- 保险起见,可以在每个页面上嵌入百度的自动推送工具代码:
<script>
(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);
})();
</script>
收录验证
通过浏览器输入site:站点
并搜索
site:https://blog.mariojd.cn
参考链接
解决 Github Pages 禁止百度爬虫的方法2--从gitcafe迁移到coding.net
迁移 Github pages 到 coding.net
hexo干货系列:(四)将hexo博客同时托管到github和coding
hexo干货系列:(六)hexo提交搜索引擎(百度+谷歌
Hexo 博客 Coding+Github 双线部署求 https 方案
网友评论