博客提交百度和谷歌收录

我是小小强,这是我的第10篇原创文章,阅读需要大约15分钟。


前提

在参考前面的文章,完成博客搭建、域名绑定,但总觉得还缺了点什么。尤其是写了很多东西之后,在互联网上无法被搜索到,实在让人郁闷。尤其对于github来说,百度是无法抓取github内容的。因此,就想到可以自动提交网站给百度或者谷歌。

确认博客是否被收录

在百度或者谷歌搜索框输入site:xiaoxiaoqiang.win,如果能搜索到说明被收录了,否则就没有。

百度收录网站

下面以个人网站xiaoxiaoqiang.win来说明。

  1. 登录百度站长搜索引擎入口,增加个人站点。

  1. 验证网站的所有权,验证网站所有权的方式有三种:文件验证、html标签验证和cname解析验证,使用哪一种方式都可以,都是比较简单的。如果您的网站已使用了百度统计,您可以使用统计账号登录平台,或者绑定站长平台与百度统计账号,站长平台支持您批量导入百度统计中的站点,您不需要再对网站进行验证。

    • 文件验证
      百度生成xxx.html文件,存放在source文件夹下。
      当文件放置完成后,部署之后,可通过http://xiaoxiaoqiang.win/xxx.html访问,如果能正确看到html文件的内容,说明部署成功了。这里有个坑,参考文末Q&A。


    • CNAME验证
      这种方法比较简单,将百度生成的主机路径和主机值添加到阿里云域名对应的cname解析中即可。

  2. 产生站点地图
    我们需要使用npm自动生成网站的sitemap,然后将生成的sitemap提交到百度和其他搜索引擎。站点地图是一种文件,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知Google和其他搜索引擎。Googlebot等搜索引擎网页抓取工具会读取此文件,以便更加智能地抓取您的网站。

    • 安装插件
      我们要先安装一下,打开你的hexo博客根目录,分别用下面两个命令来安装针对谷歌和百度的插件。

      1
      2
      npm install hexo-generator-sitemap --save
      npm install hexo-generator-baidu-sitemap --save
    • 产生站点地图(此处奇怪的是即使不修改配置文件,也会产生sitemap)

编辑_config.yml,添加下面代码:

1
2
3
4
5
# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

编辑_config.yml,修改下面代码,用于保证生成的sitemap.xml文件中地址正确

1
2
3
4
5
6
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://xiaoxiaoqiang.win
root: /
permalink: :title.html
permalink_defaults:

修改完成后,执行hexo g会在public目录下产生sitemap.xmlbaidusitemap.xml文件。

  • 测试
    站点地图产生之后,部署成功可以通过http://xiaoxiaoqiang.win/sitemap.xmlhttp://xiaoxiaoqiang.win/baidusitemap.xml访问查看。
  1. 提交站点地图

在百度站长平台,找到链接提交,这里我们可以看到有两种提交方式,自动提交和手动提交,自动提交又分为主动推送、自动推送和sitemap。

如何选择链接提交方式
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
4、手动提交:一次性提交链接给百度,可以使用此种方式。

一般主动提交比手动提交效果好,这里介绍主动提交的三种方法
从效率上来说:

主动推送>自动推送>sitemap

  • 主动推送(未尝试)
    安装插件npm install hexo-baidu-url-submit --save
    然后再根目录的配置文件中新增字段。
    1
    2
    3
    4
    5
    baidu_url_submit:
    count: 100 # 提交最新的一个链接
    host: www.xiaoxiaoqiang.win # 在百度站长平台中注册的域名
    token: 8OGYpxowYnhgVsUM # 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!
    path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里

加入新的deploye

1
2
deploy:
- type:baidu_url_submitter

  • 设置自动推送(默认已经实现)
    在next主题配置文件下设置,将baidu_push设置为true:
    1
    2
    3
    # Enable baidu push so that the blog will push the url to baidu
    # automatically which is very helpful for SEO
    baidu_push: true

然后就会将一下代码自动推送到百度,位置是./themes/next/layout/_third-party/seo/baidu-push.swig,这样每次访问博客中的页面就会自动向百度提交sitemap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{% if theme.baidu_push %}
<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>
{% endif %}

  • sitemap提交
    将产生的sitemap提交到百度即可。
  1. 后记

我记得被百度收录过程还是蛮久的,一度让我以为我的方法有问题,提交链接在站长工具中有显示大概是有两天的时候,站点被百度收录大概花了半个月。

谷歌收录网站

谷歌收录的操作与百度差不多,简单写下。

  1. 登录谷歌搜索引擎入口,增加个人站点。

  2. 验证网站的所有权。对于html文件验证与百度一样,cname验证略有不同。


    在上图中添加阿里云域名解析时,最后的一个.一定要去掉。

  3. 提交站点地图


4.后记
如果配置无错误,谷歌收录还是比较快的,大概十分钟左右。

Q&A

  1. 文件验证html被hexo渲染改变内容

在使用文件验证的时候,需要将产生的百度或者谷歌验证的xxx.html文件放在soure目录下,此时有个问题,如果是html文件那么hexo就会将其编译并渲染。导致上传到服务器上时,文件内容已经改变。有两种方法解决:

  • 在文件开头加上如下语句(false前有空格):
1
2
3
---
layout: false
---

这样就不会被hexo编译。

  • xxx.html文件放在next主题的source目录下,该目录下的html文件不会被渲染,并在执行hexo g时自动拷贝到public目录下。

参考

hexo高阶教程:想让你的博客被更多的人在搜索引擎中搜到吗?
Hexo博客收录百度和谷歌-基于Next主题
hexo干货系列:(六)hexo提交搜索引擎(百度+谷歌)
搭建Hexo博客中碰到的坑
hexo博客搭建时遇到的一些问题

感谢

特别感谢cherryblog作者在搭建过程中给予的帮助,本文的一些文字直接摘自她的原创文章(捂脸)。

坚持原创技术分享,您的支持将鼓励我继续创作!