지난번 IndexNow에 이어, 구글도 자동화를 해보기로 했다.
찾아보니 구글은 API로 Web Search Indexing이라는 걸 지원하고 있었다.

1. 허용범위

공식적으로 해당 API가 지원하는 범위는 채용공고와 스트리밍 영상 서비스이다.
실시간이 중요한 내용에 대해 색인을 생성하기 위함이라고 하는데, 찾아보니 일반 블로그도 죄다 요청 넣는 중인 것 같다
2. 클라우드 콘솔, 서치콘솔에서 API 설정하기
인덱싱용 API 라이브러리도 구글 형님들이 친절하게 만들어 두셨다.
만들 생각하지말고 그냥 갖다 쓰자.
이 라이브러리를 이용해 사이트 색인 생성을 하려면 먼저 인증이 이루어져야 한다.
아래의 주소로 들어가 서비스 계정을 하나 만들어주자.

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

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

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


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와 함께 적용해 주었다.
그럼 이제 글을 쓰기만 하면 등록은 자동으로 이루어지는 것.
디버깅용 콘솔을 직어보니 잘 작동한다.

4. 후기
개인이 만들어쓰는 블로그를 운영하려고 하니 신경쓸게 많다.
보안문제와 해킹, 그리고 새로운 기능 만들기 등...
생각해보면 그냥 워드프레스를 깔고 모듈들을 사는게 맘편하긴 하지만, 이렇게 하나씩 만들어가는 재미도 있는 듯 하다.
앞으로도 많은 기능들을 만들어 보고 싶다.
댓글을 불러오는 중...