提交 robots.txt

robots.txt 是一种存放于网站根目录下的 ASCII 编码的文本文件,它的作用是告诉搜索引擎此网站中哪些内容是可以被爬取的,哪些是禁止爬取的。robots.txt 放在博客主题目录下的 source 文件夹中,博客生成后在站点主题 /public/ 下。

# 允许所有用户代理的浏览器爬虫进行访问(爬取数据)
User-agent: *
Allow: /
Allow: /archives/

# 不允许访问的内容
Disallow: /img/
Disallow: /css/
Disallow: /js/
Disallow: /photos/
Disallow: /*.css
Disallow: /*.js
Disallow: /vendors/
Disallow: /css/
Disallow: /fonts/
Disallow: /fancybox/
Disallow: /assets/
Disallow: /img/

Sitemap: http://gungnir.top/sitemap.xml
Sitemap: http://gungnir.top/baidusitemap.xml

向Google提交网站

Google Search Console 提交网站并验证

相比于百度,google的效率实在不能更快,貌似十分钟左右站点就被收录了,其实方法是和百度是一样的,都是先验证你的站点所有权,然后提交sitemap google站点平台:https://www.google.com/webmasters/, 然后就是注册账号、验证站点、提交sitemap,一步一步来就好,过不了过久就可以被google收录了

  1. 前往 Google Search Console,登录谷歌账号。

  2. 提交域名后,会要求验证网站的归属,Google提供了多种验证方式:

按照推荐方式验证即可

image-20221128142744492

下载 HTML 验证文件,拷贝到 主题/sources/ 文件夹下。

需要注意:如果是放在根目录的/sources/下面,需要对该文件取消渲染

在博客根目录下的配置文件( _config.yml ),配置 skip_render,其目的就是跳过渲染

skip_render:
- '文件名'
- 'robots.txt'

如果这个方式验证出问题就换其他方式~~

  1. 其他验证方式:推荐向您网站的首页添加元标记方法

如果需要搜索引擎收录网站,可能需要登录对应搜索引擎的管理平台进行提交。

各自的验证码可从各自管理平台拿到

修改 butterfly主题配置文件,注意格式

site_verification:
google-site-verification: 0ho56qYr8aBwTAZ0mZJlCwLdhdylPN0YSw46t5X
# - name: google-site-verification
# content: 0ho56qYr8aBwTAZ0mZJlCwLdhdylPN0YSw46t5XRZpw
# - name: baidu-site-verification
# content: xxxxxxx

重新部署博客后,可以看到网页源码生成如下标签:

<meta name="baidu-site-verification" content="code-KqL9BODSoj"/>

生成网站地图

告诉搜索引擎你的网站结构等信息,让搜索引擎更智能抓取内容。

  1. 安装插件
npm install hexo-generator-sitemap --save

hexojs/hexo-generator-sitemap:Hexo的站点地图生成器。 (github.com)

  1. 打开 Hexo 目录下的 _config.yml 文件,在最下方添加如下字段:
# 自动生成sitemap
sitemap:
path: sitemap.xml
tags: false
categories: false
  1. 然后重新编译部署
hexo clean
hexo g -d

配置完成执行hexo g后会在站点根目录/public生成相应的sitemap.xml

提交sitemap

进入 Google Search Console - 抓取 - 站点地图,点击「添加/测试站点地图」,输入你的博客网址。若无报错则站点地图提交成功

image-20221128174545327

一开始可能提交失败,24h后再试

如果失败也有可能是生成的地图有问题,谷歌站点地图声明不规范

以下是谷歌官方给出的基本格式:

< ?xml version="1.0" encoding="UTF-8"? >
< urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" >
< url >
< loc >http://www.example.com/foo.html < /loc >
< lastmod >2020-02-24 < /lastmod >
< /url >
< /urlset >

如果出了问题就这样提交sitemap

# get请求
http://www.google.com/ping?sitemap=http://gungnir.top/sitemap.xml

Google 抓取工具

利用 Google 抓取工具可以测试 Google 会如何抓取或呈现您的网站上某个网址。

进入Google Search Console - 抓取 - Google 抓取工具 ,在这里填上需要抓取的 URL,不填表示抓取首页。抓取方式可以选择桌面、智能手机等等,自行根据需要选择。填好 URL 之后,点击抓取。然后可能会出现几种情况,如:完成、部分完成、重定向等,这三种情况是可以提交的。

提交完成后,提交至索引,根据提示操作就可以了,我的提交:

以上就是 Google Search Console 的相关配置,完成后可搜索博客首页或文章标题进行测试是否被谷歌收录。

Google提交sitemap出现无法读取sitemap的情况

出现该问题最大的可能性是网站url没有优化好,比如我第一次提交,所有文章都在网站根目录,Google并没有接受这种提交~

索引问题:已抓取,尚未编入索引

原因分析:

如果您经常在大型网站(10.000多页)上遇到此问题,这可能是由以下原因引起的:

  1. 内部链接结构差:这些页面没有足够的链接。如果你发现了你真正想要排名的重要页面,请从网站架构中较高的页面添加更多内部链接。
  2. 内容质量差:这些页面可能被谷歌搁置一旁,因为他们认为内容质量欠佳。仔细检查您的内容是否可能满足用户意图(searcher intent),并比其他网站上的竞争内容增加更多价值。
  3. 重复(Duplicate):这些页面(接近)与其他页面重复,实际上应该规范化(canonicalized)。
  4. 域权限过低:如果您已验证上述步骤1、2和3不是问题所在,则可能是您的域权限过低。你发布的内容比谷歌愿意为你的网站索引的内容多。获得更多的反向链接(backlink)将增加您的域权限(Domain Authority)。

常规的改善做法:

  • 改善内链;
  • 调整关键词根据搜索意图对内容进行更新;
  • 根据关键词所指向的内容进行细化,增加图片视频等要素,提供读者更多价值;
  • 以及做论坛博客之类增加指向这个页面的外链。

如何修复 “已发现 - 尚未编入索引” (ahrefs.com)

Google 提示 “已发现 - 尚未编入索引” 怎么办 (zhidaow.com)

百度提交网站并验证

提交和验证步骤大都和Google相同

参考该blogHexo+Butterfly进行百度、Google收录 | 小嘉的部落格 (imzjw.cn)

npm install hexo-baidu-url-submit --save

npm uninstall hexo-baidu-url-submit --save

修改根目录配置文件

deploy: # 定义部署
- type: git
repo:
github: https://github.com/XXX/XXX.git,master
- type: baidu_url_submitter

# 百度主动推送
baidu_url_submit:
count: 100 # 提交最新的100个链接
host: imzjw.cn # 在百度站长平台中注册的域名
token: YourToken # 请注意这是你百度站长平台主动推送的的秘钥, 所以请不要把博客源代码发布在公众仓库里!
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里

bing提交网站并验证

基本上和Google一样的操作

bing提交sitemap可能出现的问题

提交检查的索引:
http://gungnir.top/posts/4710.html

问题

在bing中检查索引,提示:该 URL 无法由必应进行索引编制

该 URL 无法进行索引编制,因为该页面是类似页面的替代版本,你已使用 <link rel="canonical"> 标记将类似页面指定为规范版本。必应不会对该替代版本进行索引编制。

规范 URL :http://gungnir.top/posts/4710

检查

找到源码:查看canonical标签

image-20221202034336553

我一直在琢磨,哪里出了问题呢???

原来是Butterfly主题生成的canonical所指向的url和sitemap提交的url不一样!!!

canonical指向的权威url没有后缀。我都无语了哎

解决

解决问题的话很简单,要么url都要.html的后缀,要么都不要~~

修改配置:
permalink: posts/:abbrlink/

这样子的话,url总算和canonical指向一致了

image-20221202042341692

主动推送URL

hexo-submit-urls-to-search-engine 中文文档 | 峡州仙士之页 (cjh0613.com)

npm install --save hexo-submit-urls-to-search-engine
hexo_submit_urls_to_search_engine:
submit_condition: count #链接被提交的条件,可选值:count | period 现仅支持count
count: 10 # 提交最新的10个链接
period: 900 # 提交修改时间在 900 秒内的链接
google: 0 # 是否向Google提交,可选值:1 | 0(0:否;1:是)
bing: 1 # 是否向bing提交,可选值:1 | 0(0:否;1:是)
baidu: 1 # 是否向baidu提交,可选值:1 | 0(0:否;1:是)
txt_path: submit_urls.txt ## 文本文档名, 需要推送的链接会保存在此文本文档里
baidu_host: https://cjh0613.github.io ## 在百度站长平台中注册的域名
baidu_token: 请按照文档说明获取 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
bing_host: https://cjh0613.github.io ## 在bing站长平台中注册的域名
bing_token: 请按照文档说明获取 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
google_host: https://cjh0613.github.io ## 在google站长平台中注册的域名
google_key_file: Project.json #存放google key的json文件,放于网站根目录(与hexo _config.yml文件位置相同),请不要把json文件内容直接发布在公众仓库里!
google_proxy: http://127.0.0.1:8080 # 向谷歌提交网址所使用的系统 http 代理,填 0 不使用
replace: 0 # 是否替换链接中的部分字符串,可选值:1 | 0(0:否;1:是)
find_what: http://cjh0613.github.io/blog
replace_with: https://cjh0613.com
deploy:
- type: cjh_google_url_submitter
- type: cjh_bing_url_submitter
- type: cjh_baidu_url_submitter

sitemap方式推送URL

sitemap方式推送百度

npm install hexo-generator-baidu-sitemap --save
# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

最后在 自动提交->sitemap 页面填入sitemap的地址并提交:

image-20221129005941208
baidu_url_submit:
count: 100 # 提交最新的多少个链接,可以提高一些
host: https://moonshuo.cn/ # 在百度站长平台中添加的域名
token: your_token # 秘钥
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里

其他同理

集成百度分析

  1. 注册百度统计,新增自己的网站,在百度统计-管理-代码管理-代码获取中找到以下代码
hm.src = "https://hm.baidu.com/hm.js?c0b27e00db8b5ba6c61a2341566b61a1";

其中c0b27e00db8b5ba6c61a2341566b61a1便是我的百度分析的key,大家以自己的为准

  1. _config_butterfly.yml中修改配置key
# Baidu Analytics
# https://tongji.baidu.com/web/welcome/login
baidu_analytics: c0b27e00db8b5ba6c61a2341566b61a1
  1. 此时生成的静态网页中查看源代码可以看到以下代码
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?c0b27e00db8b5ba6c61a2341566b61a1";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
  1. 后续可以在百度统计里面看到自己网站的流量报告
    菜单坐标: 百度统计-基础报告

hexo-html标签优化

选用成熟的 Hexo 主题。它们会自动生成对 SEO 比较重要的 Html 标签。如果您的主题不会自动生成这些标签,请自行修改主题源码以支持。

这些重要的标签设置有:

  • rel=“canonical”,选定的规范网页
  • nofollow ,避免爬取站外链接传递权重,可用 hexo 插件实现,请不要给友情链接加此属性
  • img alt ,图片说明
  • Meta description,便于搜索引擎智能摘要
  • author
  • property=“article:……”,便于搜索引擎智能摘要
  • property=“og:……”,便于搜索引擎智能摘要
  • ……

插件

首选网页 canonical

npm install --save hexo-auto-canonical

SEO 友好,为重复网址或重复网页/类似网页指定规范网址。
加进主题的 \themes\cards\layout\_partial\head\index.ejs

<%- autoCanonical(config, page) %>

比如我这里无论是 http://127.0.0.1:4000/tags/ 、https://coding.loafing.cn/tags/ 还是 https://blog.loafing.cn/tags/ 都自动在网页源码的 </head> 标签之前加入<link rel="canonical" href="https://loafing.cn/tags/">
有利于将搜索结果全部引导至首选域名。

参考:整合重复网址 - Google Search Console

死链检查

npm install hexo-broken-links-checker --save-dev
npx hexo check-links

喝杯茶等一会儿……

WARN  The following links are broken:
- https://

refer

声明:

  1. 若文章存在错误,望诸君不吝指正^

  2. 部分笔记由于年代久远,做的笔记找不到最初是引用谁的,若是不允许引用转载,请联系我