前言
能看到这里,说明大家都跟我一样,已经把博客搭起来并洋洋洒洒写了几篇博文,正春风得意感觉良好的时候,搭建博客有屎以来最大的危机出现在没有准备的我面前,百度+谷歌都无法搜索到我的博客。装逼还没几天就这样,真是不能忍。 于是就研究了几天,鼓捣出了这篇文章。教大家如何脱坑。
正文
下面准备分别介绍谷歌和百度如何提交搜索引擎,其中有一些共同的地方,这里先说明
先确认博客是否被收录
在百度或者谷歌上面输入下面格式来判断,如果能搜索到就说明被收录,否则就没有,用你的域名替代我的tengj.top
site:tengj.top
我目前搜索结果如图:
验证网站
两个搜索引擎入口:
为什么要验证网站
站长平台推荐站长添加主站(您网站的链接也许会使用www 和非 www 两种网址,建议添加用户能够真实访问到的网址),添加并验证后,可证明您是该域名的拥有者,可以快捷批量添加子站点,查看所有子站数据,无需再一一验证您的子站点。
如何验证网站
首先如果您的网站已使用了百度统计,您可以使用统计账号登录平台,或者绑定站长平台与百度统计账号,站长平台支持您批量导入百度统计中的站点,您不需要再对网站进行验证。
百度站长平台为未使用百度统计的站点提供三种验证方式:文件验证、html标签验证、CNAME验证。
1.文件验证:您需要下载验证文件,将文件上传至您的服务器,放置于域名根目录下。
2.html标签验证:将html标签添加至网站首页html代码的<head>标签与</head>标签之间。
3.CNAME验证:您需要登录域名提供商或托管服务提供商的网站,添加新的DNS记录。
验证完成后,我们将会认为您是网站的拥有者。为使您的网站一直保持验证通过的状态,请保留验证的文件、html标签或CNAME记录,我们会去定期检查验证记录。
不管谷歌还是百度都要先添加域名,然后验证网站,这里统一都使用文件验证,就是下载对应的html文件,放到域名根目录下,也就收博客根目录下的source下面
然后部署到服务器,输入地址:http://tengj.top/googlead0e22632f59a368.html 能访问到就可以点验证按钮。
站点地图
站点地图是一种文件,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知Google和其他搜索引擎。Googlebot等搜索引擎网页抓取工具会读取此文件,以便更加智能地抓取您的网站。
我们要先安装一下,打开你的hexo博客根目录,分别用下面两个命令来安装针对谷歌和百度的插件
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save
在博客目录的_config.yml中添加如下代码(我不加也可以)
# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml
编译你的博客
hexo g
如果你在你的博客根目录的public
下面发现生成了sitemap.xml
以及baidusitemap.xml
就表示成功了。
这时候sitemap.xml
跟baidusitemap.xml
里面的内容一样,但是文章链接都是tengj.github.io的,这里我就很奇怪了,我博客同时对应github和coding的,为啥生成的sitemap.xml
对应的域名都指向了github,sitemap.xml
我是要提交谷歌的,对应github的域名没问题,但是baidusitemap.xml
里面域名还对应github问题就大了,因为github禁止了百度爬虫,提交了百度也是不会访问的。所以我把baidusitemap.xml
里面的改成了我的个人域名tengj.top,因为国内用户访问tengj.top其实是访问coding上面。
部署后你分别访问
http://tengj.top/sitemap.xml
http://tengj.top/baidusitemap.xml
效果如下图:
让谷歌收录我们的博客
谷歌操作比较简单,就是向Google站长工具提交sitemap
登录Google账号,添加了站点验证通过后,选择站点,之后在抓取
——站点地图
中就能看到添加/测试站点地图
,如下图:
谷歌我提交过了一天就能搜索到我的博客了,效率很高。
让百度收录我们的博客
谷歌很好搞定,百度就感觉很难,我从提交百度到现在写这篇博客,在百度那边也只能搜索到一条我的博客,真不容易。
正常情况,是要等百度爬虫来爬到你的网站,才会被收录。
但是github屏蔽了百度爬虫目前,所以我们要主动出击,我们自己把网站提交给百度。
这就要使用到百度站长平台
验证网站
验证网站最上面提过了,这里直接截图
网页抓取
上面步骤成功后,进入站点管理,找到网页抓取这边详情点进去
我们主动提交博客文章链接
如何选择链接提交方式
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
4、手动提交:一次性提交链接给百度,可以使用此种方式。
一般主动提交比手动提交效果好,这里介绍主动提交的三种方法
从效率上来说:
主动推送>自动推送>sitemap
主动推送
主动推送是百度搜索为站长们快速提交数据针对性开发的最快捷工具,但是也最难,没有代码功底的小伙伴估计就不会了。
没事,博主既然写了这篇博客就表示博主找到方法了,我自己用java写了个post的推送示例,部署到了coding,我也不知道能部署多久,好像部署在coding的演示那边每天都会扣除码币。
地址:戳我
说明:
选择数据类型,默认推送数据,也有更新数据,删除数据。后面2个一般用不到
填写站点,也就是你的域名,我的是tengj.top
填写token,token在主动推送例子那边有一串。实在找不到就按下CTRL+F
查找token
填写文章地址,填写你要提交的文章链接,每行一条记录
成功提示:
地址错误提示:
自动推送
自动推送很简单,就是在你代码里面嵌入自动推送JS代码,在页面被访问时,页面URL将立即被推送给百度
代码如下:
<script>
(function(){
var bp = document.createElement('script');
bp.src = '//push.zhanzhang.baidu.com/push.js';
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
我是放在\themes\jacman\layout\_partial\after_footer.ejs
中,添加到下面就行。
sitemap提交
sitemap
提交最上面提过了,直接提交http://tengj.top/baidusitemap.xml 就行,大家看下图就知道,一开始我是提交 sitemap.xml
,里面是指向github
的,结果主域校验失败了,后来切换到指向tengj.top
域名的baidusitemap.xml
就提交成功。
最后大家看下我最近提交的情况
为什么自动推送可以更快的将页面推送给百度搜索?基于自动推送的实现原理问题,当新页面每次被浏览时,页面URL会自动推送给百度,无需站长汇总URL再进行主动推送操作。
借助用户的浏览行为来触发推送动作,省去了站长人工操作的时间。
自动推送和链接提交有什么区别?已经在使用链接提交的网站还需要再部署自动推送代码吗?
二者之间互不冲突,互为补充。已经使用主动推送的站点,依然可以部署自动推送的JS代码,二者一起使用。
什么样的网站更适合使用自动推送?自动推送由于实现便捷和后续维护成本低的特点,适合技术能力相对薄弱,无能力支持全天候实时主动推送程序的站长。
站长仅需一次部署自动推送JS代码的操作,就可以实现新页面被浏览即推送的效果,低成本实现链接自动提交。
同时,我们也支持主动推送和自动推送代码配合使用,二者互不影响。
参考
总结
写了3个小时终于写差不多了,很早就想写这篇的,结果百度不给力,一直不给收录所以拖到今天,昨天花了点时间写了下主动推送的接口方便大家,地址上面有。
3月8号 分别用sitemap
和baidusitemap
提交到谷歌和百度
3月9号 谷歌的收录了,可以搜索到我的博客
3月10号 百度收录了