三个站长平台跑一遍:验证、sitemap 和 IndexNow
百度
验证方式是往 <head> 里塞一个 meta:
<meta name="baidu-site-verification" content="codeva-xxxxxxx" /> |
Butterfly 有现成的位置,_config.butterfly.yml 的 inject.head 里加一行:
inject: |
验证过了之后提交 sitemap,会看到一个意料之外的东西:配额 0。
sitemap 提交页 0,API 提交页也是 0。
新站就是这样。配额按站点信用动态给,要等收录几十篇之后才会涨上去。
但它限制的只是「你主动推」这一条路。robots.txt 里写好了 Sitemap: 声明,蜘蛛正式抓取之前一定会先读 robots.txt,读到就会来找——这条路不占配额。
顺带还遇到一次抓取诊断报 DNS无法解析IP,0.001 秒就返回了。同一时间四个公共 DNS 加权威 NS 全是正常的,是它工具自己抽风。隔了半小时再点,过了:
220.181.108.145 GET / 200 15048 |
220.181.108.x 是百度蜘蛛的官方段。
文件验证。下载回来那个 googleXXXXXXXX.html,丢到 source/ 根目录。
有个地方要处理一下——hexo 有可能把它当普通文件复制,也可能套上主题模板,那就废了。加进 skip_render 保险:
skip_render: |
文件内容就一行:
google-site-verification: googleXXXXXXXX.html |
上线之后 curl 一下,确认返回的是这行纯文本,不是一堆 HTML。
Bing
后台点了几次都是 Unexpected error occurred。从 Google Search Console 导入也不行,提示找不到站点。
meta 验证码它倒是给了,但后台本身挂了,验证码也用不上。
绕过去:IndexNow
IndexNow 这套协议不需要在后台验证站点。规则就一条:在站点根目录放一个以 key 命名的文本文件,文件内容就是 key 本身。
https://cyk.pink/a984ba7b3eb04e828fea37c652a9ef09.txt |
然后 POST 一批 URL 过去:
curl -X POST https://api.indexnow.org/indexnow \ |
{ |
第一次在本机发的,一直 403。同一个 key 换成 GET 方式、把参数拼到 URL 上,返回 200。
区别只在参数放 body 还是放 URL。本地有个代理会改写 POST 的 body,到服务端的时候已经是空的了。
改到服务器上直接 curl,200,217 条一次推完。
一小时后 Bingbot 就来了:
157.55.39.60 GET /sitemap.xml 200 ×2 |
现在三家什么状态
| 平台 | 验证 | 抓取 |
|---|---|---|
| 百度 | meta 通过 | 首次抓取成功 |
| 文件通过 | 47 次 | |
| Bing | 后台仍报错,用 IndexNow 绕过 | 已抓 sitemap |
平台后台不是必须的。sitemap 和 robots 做对,蜘蛛自己会来;IndexNow 是另一条不需要账号的路。
