解决百度蜘蛛无法爬取Hexo博客的问题

写在前面

  先上两张图对比下:

Google-site:blog.mariojd.cn

Baidu-site:blog.mariojd.cn

  由于GitHub Pages是拒绝百度爬虫爬取的,包括用Hexo或Jekyll搭建的博客,因此你的站点再怎么SEO优化,这在国内也是收录和搜索不到的。本文介绍的方案同大多数一样,利用DNS将国内的线路请求到Coding Pages,然后国外的线路还是走GitHub Pages。

  上面是在完成以下几步操作几天后截的图,总之谷歌是很快就收录了我的博客站点(听说最多一两天),相反国内的百度是迟迟没有动静,上站长平台各种地址、sitemap提交也是毫无反馈,还是提问后才了解到百度收录站点的速度确实会比较慢,短则一两周长则几个月,还是先做好时间、心理的持久战准备吧!

准备说明

解决过程

    1. 在Coding.net上创建当前用户名仓库

happyjared - Coding.net

    1. 修改hexo根目录下的_config.yml
# 注意这里要修改成你的实际仓库地址,都是走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
    1. 注册DNSPod并修改域名解析

  这里需要两条CNAME主机记录。线路类型是国外的,记录值为:<github username>.github.io.;线路类型是国内的,记录值为:pages.coding.me.(注意,对应静态Pages来说这是个固定值)。

DNSPod

    1. 重新部署Hexo并测试访问

  完成上述操作后使用hexo g -d命令重新部署双平台博客,然后通过访问http://<github username>.github.iohttp://<coding username>.coding.me查看操作是否成功。

    1. 添加自定义域名和Https
    • GitHub Pages的配置在该仓库的Settings,参考下图:

GitHub Page Setting

  • Coding Pages的配置在当前仓库的Pages服务,如下图所示:

Coding Page Setting

提示:关于Coding Page的SSL/TLS证书申请 ,主要就是在DNSPod平台上正确的配置解析记录,如果出现验证错误,请参考Coding Pages常见问题。当时我遇到的错误信息是:Fetching http://exmaple.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: xxxxxxxx,解决方案是先将上述CNAME记录值为pages.coding.me.的线路类型修改为默认,待验证通过后再调整为国内。

    1. 关于Coding Pages跳转页

  参考Coding.net官网说明,可以配置文字版或图片版,然后验证并解决。我这里使用的是文字版方案,修改了hexo主题layout\_partial目录下的footer.ejs

Hosted by Coding Pages

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 - Google

百度收录

  • 百度站长平台
  • 添加站点后,在“数据引入”->“链接提交”中提交sitemap

sitemap - Baidu

  • 保险起见,可以在每个页面上嵌入百度的自动推送工具代码:
<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 方案

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

【BlackHat 2017 议题剖析】连接的力量:GitHub 企业版漏洞攻击链构造之旅

作者:Orange (orange@chroot.org ) 知道创宇404实验室 独家授权翻译 原文地址:http://blog.orange.tw/201...

40616
来自专栏高性能服务器开发

(八)高性能服务器架构设计总结4——以flamigo服务器代码为例

二、架构篇 一个项目的服务器端往往由很多服务组成,就算单个服务在性能上做到极致,支持的并发数量也是有限的,举个简单的例子,假如一个聊天服务器,每个用户的信息是1...

5064
来自专栏FreeBuf

来自后方世界的隐匿威胁:后门与持久代理(一)

干了十几年安全工作,发现一些同行只是把简单的工具扫描和渗透测试当成了全部工作,拿到需要的数据及测试结果既为完成工作。可各位兄弟,咱扪心自问,这样的安全测试能叫真...

2625
来自专栏FreeBuf

Python渗透工具的架构探讨

本文原创作者:VillanCh,本文属FreeBuf原创奖励计划,未经许可禁止转载 在最近忙活的一些事情中,体会到:如果你写的不是一个脚本,那么作为一个有命令行...

2145
来自专栏农夫安全

【学习规划路线】如何成为一名web安全工程师

时间:1周 环境的搭建 熟悉基本的虚拟机配置, Kali linux,centos,Windows实验虚拟机 自己搭建IIS和apache 部署php或者asp...

3996
来自专栏飞雪无情的博客

Android 源码目录结构详解

这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。Android源代码的下载请参考官网

1422
来自专栏高性能服务器开发

(八)高性能服务器架构设计总结4——以flamigo服务器代码为例

一个项目的服务器端往往由很多服务组成,就算单个服务在性能上做到极致,支持的并发数量也是有限的。举个简单的例子,假如一个聊天服务器,每个用户的信息是1k,那对于一...

1155
来自专栏北京马哥教育

【译】5个对Linux新手来说最好的包管理器

译者按:作为Linux新手来说,选择一个Linux发行版、熟悉Linux系统,无论做什么都离不开软件的安装与卸载。那么,软件包管理器的相关知识就显得非常重要了。...

4034
来自专栏施炯的IoT开发专栏

Application Architecture Guide 2.0 - CH 19 - Mobile Applications(4)

本文翻译"Porting"、"Power"、"Synchronization"、"User Interface"和"Performance Considerat...

1915
来自专栏Java3y

从零开始写项目【总结】

从零开发项目概述 最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等… ...

44710

扫码关注云+社区

领取腾讯云代金券