我是小小强,这是我的第10篇原创文章,阅读需要大约15分钟。
前提
在参考前面的文章,完成博客搭建、域名绑定,但总觉得还缺了点什么。尤其是写了很多东西之后,在互联网上无法被搜索到,实在让人郁闷。尤其对于github来说,百度是无法抓取github内容的。因此,就想到可以自动提交网站给百度或者谷歌。
确认博客是否被收录
在百度或者谷歌搜索框输入site:xiaoxiaoqiang.win
,如果能搜索到说明被收录了,否则就没有。
百度收录网站
下面以个人网站xiaoxiaoqiang.win来说明。
- 登录百度站长搜索引擎入口,增加个人站点。
- 验证网站的所有权,验证网站所有权的方式有三种:文件验证、html标签验证和cname解析验证,使用哪一种方式都可以,都是比较简单的。如果您的网站已使用了百度统计,您可以使用统计账号登录平台,或者绑定站长平台与百度统计账号,站长平台支持您批量导入百度统计中的站点,您不需要再对网站进行验证。
-
文件验证
百度生成xxx.html
文件,存放在source
文件夹下。
当文件放置完成后,部署之后,可通过http://xiaoxiaoqiang.win/xxx.html
访问,如果能正确看到html
文件的内容,说明部署成功了。这里有个坑,参考文末Q&A。
-
CNAME验证
这种方法比较简单,将百度生成的主机路径和主机值添加到阿里云域名对应的cname解析中即可。
- 产生站点地图
我们需要使用npm自动生成网站的sitemap,然后将生成的sitemap提交到百度和其他搜索引擎。站点地图是一种文件,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知Google和其他搜索引擎。Googlebot等搜索引擎网页抓取工具会读取此文件,以便更加智能地抓取您的网站。
- 安装插件
我们要先安装一下,打开你的hexo博客根目录,分别用下面两个命令来安装针对谷歌和百度的插件。
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save
- 产生站点地图(此处奇怪的是即使不修改配置文件,也会产生sitemap)
编辑_config.yml,添加下面代码:
# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml
编辑_config.yml,修改下面代码,用于保证生成的sitemap.xml文件中地址正确
# 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.xml
和baidusitemap.xml
文件。
- 测试
站点地图产生之后,部署成功可以通过http://xiaoxiaoqiang.win/sitemap.xml
和http://xiaoxiaoqiang.win/baidusitemap.xml
访问查看。
- 提交站点地图
在百度站长平台,找到链接提交,这里我们可以看到有两种提交方式,自动提交和手动提交,自动提交又分为主动推送、自动推送和sitemap。
如何选择链接提交方式
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
4、手动提交:一次性提交链接给百度,可以使用此种方式。
一般主动提交比手动提交效果好,这里介绍主动提交的三种方法
从效率上来说:
主动推送>自动推送>sitemap
- 主动推送(未尝试)
安装插件npm install hexo-baidu-url-submit --save
然后再根目录的配置文件中新增字段。
baidu_url_submit:
count: 100 # 提交最新的一个链接
host: www.xiaoxiaoqiang.win # 在百度站长平台中注册的域名
token: 8OGYpxowYnhgVsUM # 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里
加入新的deploye
deploy:
- type:baidu_url_submitter
- 设置自动推送(默认已经实现)
在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
然后就会将一下代码自动推送到百度,位置是./themes/next/layout/_third-party/seo/baidu-push.swig
,这样每次访问博客中的页面就会自动向百度提交sitemap
。
{% 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提交到百度即可。
- 后记
我记得被百度收录过程还是蛮久的,一度让我以为我的方法有问题,提交链接在站长工具中有显示大概是有两天的时候,站点被百度收录大概花了半个月。
谷歌收录网站
谷歌收录的操作与百度差不多,简单写下。
-
登录谷歌搜索引擎入口,增加个人站点。
-
验证网站的所有权。对于html文件验证与百度一样,cname验证略有不同。
在上图中添加阿里云域名解析时,最后的一个.
一定要去掉。 -
提交站点地图
4.后记
如果配置无错误,谷歌收录还是比较快的,大概十分钟左右。
Q&A
- 文件验证html被hexo渲染改变内容
在使用文件验证的时候,需要将产生的百度或者谷歌验证的xxx.html
文件放在soure目录下,此时有个问题,如果是html
文件那么hexo就会将其编译并渲染。导致上传到服务器上时,文件内容已经改变。有两种方法解决:
- 在文件开头加上如下语句(
false
前有空格):
---
layout: false
---
这样就不会被hexo编译。
- 将
xxx.html
文件放在next
主题的source
目录下,该目录下的html
文件不会被渲染,并在执行hexo g
时自动拷贝到public
目录下。
参考
hexo高阶教程:想让你的博客被更多的人在搜索引擎中搜到吗?
Hexo博客收录百度和谷歌-基于Next主题
hexo干货系列:(六)hexo提交搜索引擎(百度+谷歌)
搭建Hexo博客中碰到的坑
hexo博客搭建时遇到的一些问题
感谢
特别感谢cherryblog作者在搭建过程中给予的帮助,本文的一些文字直接摘自她的原创文章(捂脸)。