Hexo博客提交百度谷歌收录

最近发现百度上搜索不到我的博客,原来是一直没有弄搜索引擎收录的原因,就捣鼓了一下。

百度收录

访问百度搜索资源平台官网,注册或者登陆百度账号,依次选择【用户中心】-【站点管理】,添加你的网站

选择文件验证,将文件放到 Source 根目录下。

选择 HTML标签验证,放到head.ejs(D:\Desktop\blog\themes\ayer\layout_partial\head.ejs),<head></head>标签之间。

两种方式,这两种方式我都失败了,都提示原因:301 网页存在跳转。

尝试对网页 https://vincerezhou.github.io 进行收录,失败

尝试对网页 https://vincere.fun (去除 www)进行收录,文件验证失败原因如下,选择HTML标签验证,

原因:验证的文件内容错误。
问题分析&解决办法: 验证文件的内容与我们提供的不符,请确定是原样上传搜索资源平台的问题,检查方式:访问验证文件——查看源代码检查,部分服务器会自动加上一些内容导致校验失败。

有人说应该这么做

网上大多数的说法都是说直接把该文件放到Hexo博客根目录的source目录下,然后编译打包上传到远程仓库,但是事实上这种做法是有问题的,当执行hexo g生成静态界面的时候,hexo会把多余的内容添加到source目录下的这个html验证文件中,导致百度、谷歌验证失败。

正确做法

验证文件存放在Hexo博客根目录的source目录下,在验证文件头部添加layout: false,以谷歌验证文件为例:

1
2
3
4
---
layout: false
---
google-site-verification: googlexxxxxx.html

这样hexo g执行成功后,这个html验证文件中就不会有多余的内容,然后执行hexo d上传到远程仓库,这样百度、谷歌都验证成功了,为了保证一直验证成功,建议不要删除这个验证文件。

选择HTML标签验证,放到head.ejs(D:\Desktop\blog\themes\ayer\layout_partial\head.ejs),<head></head>标签之间,成功了

https://vincere.fun验证成功

建议您向百度搜索主动推送资源,缩短爬虫发现网页链接时间。提交资源

提交百度搜索

sitemap 提交

  1. 执行命令,安装站点地图生成插件。
1
2
cnpm install hexo-generator-sitemap --save
cnpm install hexo-generator-baidu-sitemap --save
  1. 在博客根目录下的配置文件_config.yml中修改 ·url: 部分为真实网址
1
https://vincere.fun
  1. 在博客根目录下的配置文件_config.yml中配置 sitemap
1
2
3
4
5
# automatically generate sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml
  1. 执行hexo g -d,会在博客根目录/public中生成两个文件, sitemap.xml 文件是搜索引擎通用的 sitemap 文件,baidusitemap.xml 是百度专用的 sitemap 文件。然后访问 你的首页/sitemap.xml 或者 你的首页/baidusitemap.xml 就可以看到网站地图了

  2. 然后来到百度站长平台的 sitemap 提交页面,将你的 sitemap 地址提交即可(好像要两个都提交,一天只能提交一个文件),如果成功的话状态会显示为正常,初次提交要等几分钟,sitemap.xml 相比 baidusitemap.xml 来说等待时间也会更长,如果以后你博客有新的文章或其他页面,可以点击手动更新文件,更新一下新的 sitemap。

解决无法抓取的问题

提交完 sitemap 后显示无法抓取,按照网上的说法设置如下,好像还是显示无法抓取。

配置完sitemap可能还是不行,然后通过google搜索后发现,大家都有遇到类似的问题,根据大神的说法,可能不是Hexo的问题,应该是Github Pages的问题。Github Pages默认是基于Jekyll构建的,如果不是基于此方式构建的,Github Pages会忽略掉一些文件和文件夹。

因此,在Hexo博客的source文件夹下添加一个.nojekyll空文件,该文件会告诉Github Pages当前网站不是基于Jekyll构建的,不要忽略掉一些文件和文件夹。然后打开根目录下的_config.yml,找到include files区域,修改成下面这样

1
2
3
4
5
6
# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
- .nojekyll
exclude: null
ignore: null

然后再deploy区域,添加ignore_hidden属性并设为false (我设置了两行,一个 -type 下面放一行)。

1
2
3
4
5
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
# 上面部分省略
ignore_hidden: false

这样在hexo g时就会把.nojekyll文件添加到public目录下,hexo d时会把.nojekyll文件推送到github上。

主动提交

首先在博客根目录中安装插件

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

然后在根目录 _config.yml 文件里写入以下配置:

1
2
3
4
5
6
# 提交百度搜索
baidu_url_submit:
count: 10 # 提交最新的多少个链接
host: vincere.fun # 在百度站长平台中添加的域名
token: your_token # 秘钥
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里

其中的 token 可以在【链接提交】-【API提交】下面看到,接口调用地址最后面 token=xxxxx 即为你的 token

推送接口
接口调用地址:http://data.zz.baidu.com/urls?site=https://vincere.fun&token=???

然后在博客根目录下的配置文件_config.yml中修改 ·url: 部分为真实网址

1
https://vincere.fun

最后,加入新的 deployer:

1
2
3
4
deploy:
***
***
- type: baidu_url_submitter # 这是新加的主动推送

最后执行 hexo g -d 部署一遍即可实现主动推送,推送成功的标志是:在执行部署命令最后会显示类似如下代码:

1
2
{"remain":89,"success":10}
INFO Deploy done: baidu_url_submitter

这表示有 10 个页面已经主动推送成功,remain 的意思是当天剩余的可推送 89 条。

谷歌收录

进入 google search console ,按照类似的方式进行收录,我是用了 CNAME 的方式。

提交sitemap

点击添加站点地图,选择要添加的网站,如下,点击【提交】。

1
https://vincere.fun/sitemap.xml

会提示正在处理数据,请在一天左右的时间内再次检查。

参考文献

  1. https://zhuanlan.zhihu.com/p/100922816

  2. https://marmalade.vip/baidugoogleseo.html

  3. https://chengzhy.github.io/2022/hexo-seo-note/

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2023 Vincere Zhou
  • 访问人数: | 浏览次数:

请我喝杯茶吧~

支付宝
微信