《创世纪》:如何让博客被GoogleSE收录
远大目标:在2022年内实现网站流量的0突破。
某天突然想到这个网站至今还没提交站点地图,遂开始操作。
npm安装sitemap插件
hexo框架的blog可以直接用npm指令安装sitemap插件,自动生成sitemap.xml。
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save
然后在_config.xml文件里配置插件及对应的站点地图路径。
Plugins:
- hexo-generator-baidu-sitemap
- hexo-generator-sitemap
baidusitemap:
path: baidusitemap.xml
sitemap:
path: sitemap.xml
hexo g后可以查看生成的stemap.xml,检查下网址是否有错误。npm安装的插件路径在”根目录\node_modules\hexo-generator-sitemap”下,其中sitemap.xml定义了自动生成sitemap的方法。阅读可知post和tag会取permalink,而其他网页会取 _config.xml下的url配置。 请保证这一配置正确。
正常流程下,hexo g后hexo d即可一键部署。但本博客用的是Travis-CI部署,所以正常提交然后等build通过即可。
Google SEC验证
站点地图生成后,需要去Google Search Engine Console里提交。第一次进入的话,首先需要注册个Google账号,本人当然是有的,然后要验证你对该网站的所有权。Google提供了一堆选项,本人用的是Https验证,即下载Google提供的html并扔到自己的站点里。
hexo框架下,hexo d一键部署会自动推送并覆盖Github Page分支,所以最好不要自己手动去上传。我们要做的,是把html扔到Source下,并禁止hexo对它进行渲染。
禁止的方法有两种。一是在html文件内开头写--- layout: false ---
,不是用任何layout模板进行渲染;二是在配置文件里配个not render,把这个html文件写进去。
上传成功后,可以尝试跳转到该html网址,看看是否能成功访问。在Google那边确认认证,如果卡了没过就多点几次,点到通过为止。
站点地图提交
验证成功后会自动跳转到Google Search Console主页,这是Google提供的站长网页管理平台。目前看来工具和数据不多,不好用且有些bug,毕竟是免费的午餐服务。
在索引→站点地图里,输入sitemap.xml并提交,就可以提交站点地图了。
站点地图无法读取?
这个问题困扰了我半天,最后找到了解决方法,或者说本质原因。
我最开始以为是站点地图本身出了问题,于是直接访问,并抽选了几个确认下网址,都可以正常跳转。
先是使用中文进行搜索,看到有人尝试解决这个问题,做法是修改hexo-sitemap插件的url读取配置。但问题是,他的修改初衷是国内国外用了不同域名,所以需要在不同情况下传不同参。我没有这个需求,而这个做法显然也对我无效。
后来改用英文搜索,(一早就该用英文)搜出来的结果五花八门,大开眼界的同时马上定位到了问题。
用Google Console想检验sitemap有效性的话,不应该进行Google索引测试,因为sitemap其实是不希望被搜索引擎收录的网页。真正要进行的是Live Test,即测试实际版本。只要在这个测试里显示为“可编入索引”,就说明站点地图没问题,目前的状态其实是pending,而不是读取失败。显示成读取失败只能说是设计bug
接下来只要等待站点地图被Google读取并编入内容索引即可。
在Google中搜索site:https://uynad.github.io/ 可以初步看到,主页已经被编入索引,主页上的内容能被Google抓取了。
这是《创世纪》的第一步,接下来就是姜太公钓鱼,意思是只有傻子才会点进此博客。
《创世纪》:如何让博客被GoogleSE收录