谷歌搜索索引自动化 - Web Search Indexing API

힘센캥거루
2026년 1월 20일(수정됨)
2
20

继上次搞完 IndexNow 之后,也决定在谷歌这边做一下自动化。

查了一下,发现谷歌是通过一个叫 Web Search Indexing 的 API 来支持这个功能的。

谷歌搜索索引自动化 - Web Search Indexing API-1

1. 适用范围

谷歌搜索索引自动化 - Web Search Indexing API-2

官方文档中,这个 API 正式支持的范围是招聘公告和流媒体视频服务。

说是为了给对实时性要求高的内容创建索引用的,但搜了一圈发现,一般的博客们好像也都在疯狂发请求。

2. 在 Cloud Console、Search Console 中配置 API

用于索引的 API 库,谷歌大哥们也已经贴心地帮我们做好了。

别想着自己造轮子了,直接拿来用就行。

要使用这个库来为站点创建索引,首先需要完成认证。

先通过下面这个地址进去,新建一个服务账号。

谷歌搜索索引自动化 - Web Search Indexing API-4

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

谷歌搜索索引自动化 - Web Search Indexing API-5

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

谷歌搜索索引自动化 - Web Search Indexing API-6

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

谷歌搜索索引自动化 - Web Search Indexing API-7谷歌搜索索引自动化 - Web Search Indexing API-8

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 看了看,运转良好。

谷歌搜索索引自动化 - Web Search Indexing API-9

4. 后记

要运营一个自己搭的个人博客,要操心的事情还真不少。

安全问题、被黑,还有开发新功能之类的……

想想其实直接装个 WordPress 再买些模块会省心很多,但这样一点点自己做出来也挺有意思的。

以后也想继续做出更多功能来试试。

관련 글

Next.js 全栈博客开发记
Next.js 全栈博客开发记
在第一次接触网页开发大约 1 年之后,我开始想着想要拥有一个属于自己的博客。于是我就大概花了 6 个月几乎只埋头做这件事。前端部分的功能,参考金度亨先生的博客就已经足够了。我用 mdx 搭建起一个博客,其实连一周都没花到。事实上,仅靠前端也并不会给博客运营带来什么大问题。有一阵子我也觉得,只要写 m...
使用 Caddy 实现 Next.js 无停机部署(本地服务器)
使用 Caddy 实现 Next.js 无停机部署(本地服务器)
每次一有想在主页上加点什么的念头就去 build,结果中间好像偶尔会有人访问。于是 Search Console 上的分数开始一点点往下掉。觉得这样不行,就开始思考要怎么做无停机部署。1. 两个项目文件夹 + 两个终端答案出乎意料地简单:开两个终端。在一个终端里 build,另一个终端里让服务器跑着...
搜索索引生成自动化 - IndexNow
搜索索引生成自动化 - IndexNow
在向 Bing 提交站点收录时才发现,Bing 提供了一个叫做 IndexNow 的功能。核心在于,可以利用 API Key,在写完文章的瞬间就立刻发起索引请求。只要用 fetch 写出类似下面这样的请求,并把它串联到「写文章」流程里,就可以在把文章保存到 DB 的同时发送索引生成请求。POST /...
被入侵的 Nextjs、React 服务器经历
被入侵的 Nextjs、React 服务器经历
我最初接触到这次安全问题是在 12 月 5 日凌晨。据说在 React 中可以在未认证的情况下进行远程代码执行。看到这条新闻后,我虽然告诉了别人,但总觉得自己应该没事,就什么想法也没有地略过了。1. 发现被入侵的痕迹结果当我想登录更新博客代码时,在终端里发现了有命令被执行过的痕迹。/bin/sh:...
在博客中添加多语言功能(NextJS、next-intl、Vercel AI SDK)
在博客中添加多语言功能(NextJS、next-intl、Vercel AI SDK)
最近我觉得博客需要多语言功能。于是决定用 next-intl 来实现多语言服务。1.i18n首先,在做多语言服务时有一些必须遵守的原则。这被称为 internationalization,单词太长,所以把首字母 i 和尾字母 n,以及中间 18 个字母合在一起,写成 i18n。1) i18n 的原则...
配置 Nextjs 的多语言支持
配置 Nextjs 的多语言支持
为了增加我的博客的访问量,我考虑尝试设置多语言。找到了多种方法,首先的一步是为语言设置不同的路由。决定使用 next-intl 来实现。1. 安装 yarn add next-intl 2. 应用...

댓글을 불러오는 중...