구글 검색 색인 자동화 - Web Search Indexing API

힘센캥거루
2025년 12월 13일(수정됨)
2
20

지난번 IndexNow에 이어, 구글도 자동화를 해보기로 했다.

찾아보니 구글은 API로 Web Search Indexing이라는 걸 지원하고 있었다.

구글 검색 색인 자동화 - Web Search Indexing API-1

1. 허용범위

구글 검색 색인 자동화 - Web Search Indexing API-2

공식적으로 해당 API가 지원하는 범위는 채용공고와 스트리밍 영상 서비스이다.

실시간이 중요한 내용에 대해 색인을 생성하기 위함이라고 하는데, 찾아보니 일반 블로그도 죄다 요청 넣는 중인 것 같다

2. 클라우드 콘솔, 서치콘솔에서 API 설정하기

인덱싱용 API 라이브러리도 구글 형님들이 친절하게 만들어 두셨다.

만들 생각하지말고 그냥 갖다 쓰자.

이 라이브러리를 이용해 사이트 색인 생성을 하려면 먼저 인증이 이루어져야 한다.

아래의 주소로 들어가 서비스 계정을 하나 만들어주자.

구글 검색 색인 자동화 - Web Search Indexing API-4

그리고 해당 계정의 email 주소를 따서 서치콘솔의 설정 -> 사용자 및 권한 에 넣어주자.

구글 검색 색인 자동화 - Web Search Indexing API-5

아래 사진에서는 권한이 전체로 되어 있는데, 반드시 소유자로 등록해주어야 한다.

구글 검색 색인 자동화 - Web Search Indexing API-6

그리고 다시 서비스로 돌아와 json 키를 하나 발급하면, 대략적인 준비는 끝난다.

구글 검색 색인 자동화 - Web Search Indexing API-7구글 검색 색인 자동화 - Web Search Indexing API-8

3. 서버에서 요청 날리기

공식 문서의 기본 요건 에서 최 하단에 있는 코드를 이용해 만들어보았다.

역시나 지피티 큰형님의 손길이 닿아있다.

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;
}

이제 이걸 각각의 API 앤드 포인트에 IndexNow와 함께 적용해 주었다.

그럼 이제 글을 쓰기만 하면 등록은 자동으로 이루어지는 것.

디버깅용 콘솔을 직어보니 잘 작동한다.

구글 검색 색인 자동화 - Web Search Indexing API-9

4. 후기

개인이 만들어쓰는 블로그를 운영하려고 하니 신경쓸게 많다.

보안문제와 해킹, 그리고 새로운 기능 만들기 등...

생각해보면 그냥 워드프레스를 깔고 모듈들을 사는게 맘편하긴 하지만, 이렇게 하나씩 만들어가는 재미도 있는 듯 하다.

앞으로도 많은 기능들을 만들어 보고 싶다.

관련 글

Next.js 풀스택 블로그 개발기
Next.js 풀스택 블로그 개발기
웹개발을 처음 접한지 1년정도 되었을 때, 나만의 블로그를 갖고싶다는 생각을 하게 되었다.그래서 6개월 정도 여기에만 매달려서 만들어보게 되었다.프론트 앤드에서의 기능은 아래 김도형님의 블로그를 참고하는 것으로 충분할 듯하다.나도 mdx를 이용해 블로그를 만드는데는 채...
Caddy를 이용한 Nextjs 무중단 배포(로컬서버)
Caddy를 이용한 Nextjs 무중단 배포(로컬서버)
홈페이지에 뭔가 자꾸 얹고 싶은 욕심이 들 때 마다 빌드를 했더니, 그 사이에 가끔 접속하는 사람이 종종 있긴 한것 같다.그러다 보니 서치콘솔에서 점수가 점점 하락하는 현상이 발생했다.이대로는 안될 것 같아 무중단 배포를 하는 방법을 생각해 보게 되었다.1. 대표적인 ...
검색 색인 생성 자동화 - IndexNow
검색 색인 생성 자동화 - IndexNow
Bing에 검색등록을 하다가 알게 되었는데, Bing에서는 IndexNow라는 기능을 제공한다.핵심은 API 키를 이용해서 글을 쓰자마자 바로 색인 요청을 날릴 수 있다는 것.아래와 같은 요청을 fetch로 만들고, 글쓰기에 연동해 놓으면 글을 DB에 저장함과 동시에 ...
Nextjs, React 서버 해킹당한 경험 - React2Shell
Nextjs, React 서버 해킹당한 경험 - React2Shell
맨 처음 보안 이슈를 접했던건 12월 5일 새벽이었다.리액트에서 인증 없이 원격 코드 실행이 가능하다는 것.해당 뉴스를 접하고 다른 사람에게 알렸지만, 나는 괜찮으려니 싶어 아무 생각없이 넘겼다.1. 해킹 흔적 발견그런데 블로그 코드를 업데이트 하려고 접속했더니 터미널...
블로그에 다국어 기능 추가하기(NextJS, next-intl, Vercel AI SDK)
블로그에 다국어 기능 추가하기(NextJS, next-intl, Vercel AI SDK)
최근 블로그에 다국어 기능이 필요하다는 생각이 들었다.그래서 next-intl을 이용해 다국어 서비스를 구현해보기로 했다.1.i18n먼저 다국어 서비스를 할 때는 지켜야 할 원칙들이 있다.이걸 internationalization이라고 하는데, 무척 길기에 첫글자 i와...
Nextjs에 다국어 설정하기
Nextjs에 다국어 설정하기
내 블로그에 대한 유입을 늘리기 위해 어떻게 해야 할까 고민하다가 다국어 설정을 해보기로 했다.다양한 방법을 찾아 보았는데, 일단 첫걸음은 언어에 대해 다른 라우팅을 하는 것.next-intl을 이용해 해보기로 했다.1. 설치yarn add next-intl2. 적용적...

댓글을 불러오는 중...