继上次搞完 IndexNow 之后,也决定在谷歌这边做一下自动化。
查了一下,发现谷歌是通过一个叫 Web Search Indexing 的 API 来支持这个功能的。

1. 适用范围

官方文档中,这个 API 正式支持的范围是招聘公告和流媒体视频服务。
说是为了给对实时性要求高的内容创建索引用的,但搜了一圈发现,一般的博客们好像也都在疯狂发请求。
2. 在 Cloud Console、Search Console 中配置 API
用于索引的 API 库,谷歌大哥们也已经贴心地帮我们做好了。
别想着自己造轮子了,直接拿来用就行。
要使用这个库来为站点创建索引,首先需要完成认证。
先通过下面这个地址进去,新建一个服务账号。

然后复制该账号的 email 地址,到 Search Console 的“设置 -> 用户和权限”里添加进去。

下面这张图里权限是“全部”,但这里一定要注册为所有者。

然后回到服务账号那里再发一个 json 密钥,基本的准备工作就完成了。


3. 在服务器端发送请求
我是用官方文档中基本要求最底部的那段代码来写的。
果不其然,这里也沾了 ChatGPT 大哥的光。
import key from "@/utils/seo/다운받은json.json";
import { google } from "googleapis";
type IndexingType = "URL_UPDATED" | "URL_DELETED";
export async function publishIndexing(url: string, type: IndexingType = "URL_UPDATED") {
const jwtClient = new google.auth.JWT({
email: key.client_email,
key: key.private_key,
scopes: ["https://www.googleapis.com/auth/indexing"],
});
await jwtClient.authorize();
const indexing = google.indexing({ version: "v3", auth: jwtClient });
const res = await indexing.urlNotifications.publish({
requestBody: { url, type },
});
return res.data;
}现在把这玩意和 IndexNow 一起挂到各个 API endpoint 上就行了。
这样以后只要写文章,收录就会自动完成。
开个调试用的 console 看了看,运转良好。

4. 后记
要运营一个自己搭的个人博客,要操心的事情还真不少。
安全问题、被黑,还有开发新功能之类的……
想想其实直接装个 WordPress 再买些模块会省心很多,但这样一点点自己做出来也挺有意思的。
以后也想继续做出更多功能来试试。
댓글을 불러오는 중...