用一行JavaScript代码从博客归档页批量提取所有文章URL,快速提交到Bing Webmaster Tools(每日限额100条),并保存为浏览器书签实现一键自动化操作。

Table of contents
Open Table of contents
前言
在上一篇文章《通过手动提交工单解决Bing不收录网站问题》中,我分享了如何通过 Bing 官方工单解决网站收录问题。工单回复中除了建议耐心等待索引更新外,还提到可以主动在 Bing Webmaster Tools 提交 URL,该工具每日支持最多提交 100 个 URL。
这个限额,对个人博客来说是绰绰有余的,本文将介绍如何用 JavaScript 代码从归档页批量提取所有文章 URL,并提交到 Bing Webmaster Tools,以及如何将其保存为书签工具实现一键自动化
NOTE
官方文档参考: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 提交页面,把刚才复制的链接一次性粘贴进去,提交即可

对于文章数量不多的个人博客来说,这种方式简单直接,不需要额外配置 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/,对搜索引擎来说,这样依然是可以抓取的,只是中间多了一次跳转。
既然可以直接提交最终地址,就没必要多绕一步,所以还是保留末尾的斜杠吧