博文 > Hexo博客收录百度和谷歌!

Hexo博客收录百度和谷歌!

Web 10002016-03-14 22:38:00

Hexo博客收录百度和谷歌-基于Next主题(应该是比较全面的一篇教程)

我们的博客做出来当然是希望别人来访问,但是Github和Coding都做了防爬虫处理,这样子我们博客可能就无法被搜索引擎收录,需要我们手动提交!

本教程基于Hexo博客框架,使用Next主题(其他主题举一反三),博主本人已绑定自己的域名(在下文会点明区别,没有太大影响);很多过程使用了Flow.ci进行自动构建!

原创文章,转载请注明出处
你需要准备的

1.百度站长账号;

没有的申请,很简单,跟百度分析一起使用挺好,不过分析的话还是推荐CNZZ,不过都挂上没有坏处!

2.谷歌账号:

谷歌账号能够享受所有的谷歌服务,当然也包括网站搜索分析服务!不过需要提前准备梯子!

3.Flow.ci用于自动构建网站地图(推荐,非必须):

可参考这篇文章>>配置自动构建,本文会在这基础之上进行提高!

4.最重要的是你有自己的博客!

验证你的站点是否被收录:

一般情况下你的站点是不能被搜到的!你可以用site验证:

验证百度:

  1. site:www.oneonecity.xyz域名换成你自己的,百度还支持site搜索么?如果没有找到你的博客说明没有被收录!

验证谷歌:

  1. site:www.oneonecity.xyz域名换成你自己的,谷歌是一定支持的,不过你需要梯子!如果没有找到你的博客说明没有被收录!

收录百度

措辞是不是有问题?就是你的网站被百度搜索收录!

1.手动提交:

你可以手动提交你的站点到百度搜索,点这里>>,当然这种方法很麻烦,因为如果想让每一篇文章都能被搜索到就需要把所有的页面链接进行提交!

2.验证网站所有权:

通过验证之后百度会认为你是网站所有者,然后能做诸如自动推送、手动推送的高级功能!
点这里>>,输入你的博客首页地址(可以是自己的域名也可以是Coding或者Github的Pages页面地址!),然后点击下一步!

3.进行验证:

这里有三种方法:文件验证、HTML标签验证和CNAME验证。下面分别说一下方法和适用范围!

(1)文件验证:

百度文件验证

a.你需要做的是下载验证文件:是一个html文件,里面存放着你的token信息!
b.然后将这个文件放在你的主题的根目录下,之所以不放在source是因为Next主题在构建过程中会在验证文件中加入很多东西影响验证!
c.接下来就是编译部署你的博客hexo g -d,如果你已经实现自动化部署的话只需要push你的原文件:

  1. git add .
  2. git commit -am "添加验证文件"
  3. git push origin master

关于自动部署,请移步这里>>
d.点击点击这里进行验证,其实是你的博客首页加了验证文件路径;
e.最后点击完成验证如果顺利的话,是能够完成!这种方法比较麻烦,不是很推荐!

(2)HTML标签验证:

这种方法需要根据不同的主题进行配置,博主使用的Next主题,其他主题可以自己摸索,原理一样:都是将HTML验证标签加入到博客每个页面的head里面!注意是红框中完整的标签,而不是一部分!

百度文件验证

第一步:将该标签(红框中完整的,并非只是后面的token);
第二步:在Next主题配置文件(不是博客配置文件)开启提交百度的选项:

百度文件验证

此处设置成true之后,将themes/next/layout/_partials/head.swig

下把默认的百度和 google 验证值替换为搜索引擎为你提供的完整HTML标签即可

  1. google_site_verification: true
  2. baidu_site_verification: true

这里的名字google_site_verification:可以随便起,不过需要与后面的themes/next/layout/_partials/head.swig中相对应,默认都是下划线!
第三步:修改themes/next/layout/_partials/head.swig,添加从百度获取的完整的HTML验证标签,注意名字的对应!

  1. {% if theme.baidu_site_verification %}
  2. <meta name="baidu-site-verification" content="yourtoken" />
  3. {% endif %}

第四步:同文件验证的c.步骤:编译部署你的博客!进入你的博客首页或者任意文章,按F12,如果再head标签中看到了验证标签,就可以了!

百度文件验证

第五步:点击验证按钮!,如果过程没问题则会验证成功!

(3)CNAME验证,如果你绑定了自己的域名,这种方式是最简单的!

第一步:你要有自己的域名并使用CNAME解析,如果没有请移步这里>>
第二步:如图添加一条新的CNAME解析:记录类型是CNAME,主机记录是你的token,,记录值是zz.baidu.com,其他默认:

百度文件验证

第三步:点击验证!这一种方法最简单,推荐!

收录谷歌:

HTML 标签验证,参考百度验证!

  1. {% if theme.google_site_verification %}
  2. <meta name="google-site-verification" content="yourtoken" />
  3. {% endif %}

生成站点地图:

这一步很重要,通过构建网站地图能够让搜索引擎更好的抓取你的网站内容!

1.安装sitmap插件:

  1. cnpm install hexo-generator-sitemap --save
  2. cnpm install hexo-generator-baidu-sitemap --save

如果你搭建了基于Flow.ci的自动构建,请修改Flow.ci的自定义脚本:

2.修改博客配置文件:

a.修改URL为你博客首页,这样是为了保证生成的sitemap.xml文件中地址正确:

百度文件验证

b.指定生成文件名及路径,在配置文件最后添加一下代码:

自动生成sitemap

  1. sitemap:
  2. path: sitemap.xml
  3. baidusitemap:
  4. path: baidusitemap.xml

c.执行构建hexo g,正常情况下会在source文件夹下看到多出两个文件:sitemap.xml和baidusitemap.xml,这就是sitemap文件。

(1.如有报错

  1. ERROR Plugin load failed: hexo-generator-baidu-sitemap
  2. SyntaxError: Unexpected token : while compiling ejs

请执行一下命令

Node.js:SyntaxError:意外的令牌:编译ejs时

我已经使用包管理器安装了ejs,它正在使用带有过滤器(:)的普通脚本。下载的EJS版本是最新版本 - 2.3.3,节点版本为0.12.4。

  1. cnpm install ejs

当前版本的ejs(v2.3.3)不支持从版本2中删除的过滤器。如果要使用过滤器,则需要安装1.x版本:

  1. cnpm install ejs@1.x

(2.如有报错

  1. ERROR Plugin load failed: hexo-generator-json-content
  2. Error: Cannot find module 'underscore'

执行以下命令

  1. cnpm i hexo-generator-json-content --save

此后等待搜索引擎抓取或者配置自动推送或者主动推送!

自动推送

自动推送sitemap到百度:

基于Next主题,其他主题原理一样:

修改主题配置文件

将baidu_push状态改成true:

# Enable baidu push so that the blog will push the url to baidu automatically which is very helpful for SEO
baidu_push: true
修改baidu_push.swig:

位置是themes\next\layout_scripts\baidu_push.swig,添加以下代码(代码来自百度自动推送):

  1. {% if theme.baidu_push %}
  2. <script>
  3. (function(){
  4. var bp = document.createElement('script');
  5. var curProtocol = window.location.protocol.split(':')[0];
  6. if (curProtocol === 'https') {
  7. bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
  8. }
  9. else {
  10. bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  11. }
  12. var s = document.getElementsByTagName("script")[0];
  13. s.parentNode.insertBefore(bp, s);
  14. })();
  15. </script>
  16. {% endif %}

这样子的话每次访问博客中的页面会自动向百度提交。

提交Google站点地图:

添加/测试站点地图

点此>>进入Google Search Console控制台,需要翻墙。
点击你的站点,如果没有请先添加站点;
然后点击控制台—>抓取—>站点地图,点击右上角添加/测试站点地图按钮,将你的sitemap.xml提交测试,测试成功之后重复该步骤进行添加!

手动推送

  1. hexo-baidu-url-submit

首先,在Hexo根目录下,安装本插件:

  1. cnpm install hexo-baidu-url-submit --save

谷歌sitemap