前言

前两天处理 Bing 搜索不到自己的网站,在工单回复里,除了建议耐心等待索引更新外,还提到可以主动在 Bing Webmaster Tools 中提交 URL,这个工具每天最多支持提交 100 个 URL,而我这个小破站的文章数量刚好在这个范围内,于是决定直接用手动提交 URL 的方式,一次性把已有文章都提交上去。

另外,关于 URL 提交,其实还有多种方式,官方文档也写得很清楚,可以参考: URL submission

通过归档页获取所有文章的 URL

思路很简单,看了下 Papermod 主题的归档页代码,这个归档页已经把所有文章 URL 明明白白地暴露在 DOM 里了,用控制台一把梭就行,具体操作如下:

首先,打开博客的归档页,然后按 F12 打开开发者工具,切换到 Console(控制台),把下面这段 JavaScript 代码粘贴进去并执行:

console.log(
  [...document.querySelectorAll(".archive-entry a.entry-link")]
    .map((a) => a.href)
    .join("\n")
);

执行后,Console 中会输出当前归档页中所有文章的完整 URL,例如:

https://example.com/posts/abc/
https://example.com/posts/def/
https://example.com/posts/ghi/

直接全选复制,然后粘贴到 Bing Webmaster Tools 的「提交 URL」页面即可

控制台打印文章链接

在 Bing Webmaster Tools 中提交 URL

进入 Bing Webmaster Tools 的 URL 提交页面,把刚才复制的链接一次性粘贴进去,提交即可

Bing Webmaster Tools 提交 URL

对于文章数量不多的个人博客来说,这种方式简单直接,不需要额外配置 sitemap 或接口,等以后量多了再考虑自动化吧。

以后还能用的小技巧

如果以后还需要反复提交(比如新文章集中发布),可以把上面的 JavaScript 代码保存成一个浏览器书签(Bookmarklet)

javascript:(()=>{console.log([...document.querySelectorAll('.archive-entry a.entry-link')].map(a=>a.href).join('\n'))})()

下面以 Edge 浏览器为例,简单记录一下步骤:

(1)浏览器访问 edge://favorites/,打开收藏夹页面

(2)点击 添加收藏夹

添加收藏夹

(3)填写名称(比如:获取归档页文章 URL),URL 处粘贴上面的 JavaScript 代码

添加收藏夹时填写的信息

以后只要打开归档页,点击这个书签,就能在控制台里一次性拿到所有文章的 URL,复制提交即可

其他说明

提交 URL 的时候,需要把最后面的 “/” 放进去吗?

通过前面的代码获取到的文章链接,形式一般是:

https://example.com/posts/abc/

这里最后的斜杠并不是多余的,它的实际含义是:

/posts/abc/ : 目录 /posts/abc/index.html : 真正的页面

如果提交的是:

https://example.com/posts/abc

浏览器会先发生一次 301/308 重定向,再跳转到 /posts/abc/,对搜索引擎来说,这样依然是可以抓取的,只是中间多了一次跳转。

既然可以直接提交最终地址,就没必要多绕一步,所以还是保留末尾的斜杠吧

如果本文对你有所帮助,可以请我喝杯咖啡

(完)