본문 바로가기
사이드 프로젝트

구글 서치콘솔(Search Console) 인덱싱 자동화 툴 개발 + 사용 방법

by 카프리썬_ 2025. 8. 18.
728x90
728x90

     

    개발 배경

    블로그를 하다보면 자연스럽게 구글 SEO전략에 대해서 고민하게 된다.

    어떻게 하면 내가 발행한 글을 널리 알릴수 있을지!

    아무리 잘 쓴 글이라도 해도 아무도 읽기 않으면 소용이 없기 때문이다.

     

    그 방법중에 하나가 구글 서치콘솔에 인덱스 생성을 요청하는것이다. 

    즉, 구글 검색에 등록 하는 작업이다. 

     

    이번에 알게 된 사실인데, 정말 유감스럽게도 내가 5년동안 운영한 블로그엔 색인이 거의 되지 않은 상태였다.

     

    그래서 서치콘솔에서 인덱스 생성요청을 자동화 하는 방법 없을까 싶어서 개발을 시작하게 되었다.

     

    자동화 하기 전, 수동으로 인덱스를 생성하는 방식은 이렇다.

    색인 생성이 필요한 URL에 일일이 하나씩 접속하고, 일일이 색인생성 요청을 해야한다.

     

    그런데 이 작업은 생각보다 하나의 URL에 대해서 약간의 시간이 걸린다..

    그리고 역시나 일일이 모든 URL에 대해서 수동으로 생성하기가 은근히 귀찮았다.

     

    기획 

    1. 누구에게? 내가 쓰고 싶은 자동화 툴

    2. 어떤 문제를? 일일이 수동으로 인덱스 생성 요청을 해야하는 번거로움을

    3. 어떻게 풀것인가? 구글 인덱싱 API를 통해서 자동화 

    4. 왜 풀고 싶은가? 귀찮음과 시간절약! 

     

    개발 방식 

    역시 나와 비슷한 생각을 하신분이 있었다.

    사실 전반적으로 이분의 프로그램 개발을 참고했다. 

    이분은 파이썬 코드로 작성해서 exe 실행파일을 만드셨는데, 나는 그냥 웹으로 개발하려고 한다. 

    https://blog.naver.com/sshzz0518/223527281074

     

    구글 서치콘솔 자동화 색인 등록 방법, 티스토리 블로그스팟

    블로그를 운영하는 많은 분들이 겪는 고민 중 하나는 발행한 글을 어떻게 널리 알려 방문자를 늘릴 수 있을...

    blog.naver.com

     

     

    간단하게 커서를 통해 작업한 화면은 이렇다. 

     

    인풋은 엑셀파일이다.

    즉, 내가 인덱싱 요청을 할 대상 URL들을 하나의 엑셀파일로 입력받는다.

    그리고 추가적으로 구글 인덱싱 API를 사용하기 위해 구글 서비스 계정 설정이 필요하다.

     

    아웃풋은 인덱싱 결과이다.

    최종적으로 몇개가 성공했는지, 또는 실패했는지 처리결과를 확인할수 있다. 

     

     

    이 웹서비스를 사용하는 방법은 사실 간단하다. 

    인덱싱할 URL들의 엑셀파일과, 인덱싱API를 사용할 서비스 계정 정보를 업로드 하는 것이다. 

     

    사용방법 1 - 인덱싱 URL 엑셀파일  준비

    먼저 색인 생성을 하고 싶은 URL은 서치콘솔에서 바로 excel로 다운로드 할 수 있다.

     

    해당 엑셀파일은 이런식으로 3개의 시트가 생긴다.

     

     

    내부적으로두번째 '테이블'이라는 시트에서 'URL' 컬럼의 값들만 처리할수 있도록 개발해두었다.

    그래서 바로 엑셀 다운로드 한 파일을 업로드 하면 된다!

     

    사용 방법  2 - 서비스 계정 JSON 파일 준비

    서비스 계정에 대한 설정이 조금 진입장벽이 있을것 같다. 

    다행히 나는 구글 클라우드 플랫폼(GCP)을 여러번 사용해봐서 금방  따라할수 있었는데,

    처음 GCP를 통해서 설정한다면 꽤 복잡하게 느껴질수도 있을것 같다.

     

    1. 구글 클라우드 플랫폼에 접속해서 신규 프로젝트를 생성한다. 

     

    사실 프로젝트를 몇개 만들어서 사용하고 있었는데, 이번에 이 작업을 위해 새로 프로젝트를 생성했다.

     

     

    2. web search indexing API  활성화

    프로젝트 대시보드에 있는 검색창에서 <web search indexing>을 검색한다.

     

    우리가 사용할 API이다. "사용"을 누른다.

     

    그러면 해당 API에 대한 세부정보에서 사용자 인증정보를 확인해야한다. 

     

     

    이 API를 사용하기 위한 사용자 인증정보가 필요하다. 즉 누가 사용할 것인지 인증을 받아야한다는 의미로 이해할수 있다.

     

    (잠깐) web search indexing API  Docs 살펴보기

    인덱스 생성 요청을 할 API는 요거다. Post 요청을 한다. 

    POST https://indexing.googleapis.com/v3/urlNotifications:publish

     

    그런데 docs를 자세히 보면 OAuth 범위가 필요합니다.> 라는 승인 범위가 요구된다.

    즉, google auth 2.0 인증이 사전에 진행되어야 한다는 뜻인것 같다.

    https://developers.google.com/search/apis/indexing-api/v3/reference/indexing/rest/v3/urlNotifications/publish?hl=ko

     

    Method: urlNotifications.publish  |  Indexing API  |  Google for Developers

    의견 보내기 Method: urlNotifications.publish 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. URL이 업데이트 또는 삭제되었음을 알립니다. HTTP 요청 POST https://indexing.

    developers.google.com

     

    그래서 요 문서에서 바로 이 API를 execute를 할수 있는데, 이때 구글 로그인 인증을 먼저 하게 된다.

    사실 이 OAuth 인증때문에 조금 헤맸다...빙글빙글..

     

    3. 서비스 계정 생성 

    이제 web searching indexing API를 사용할 서비스 계정을 생성한다.

     

    서비스 계정 이름을 내 맘대로 지엇더니 서비스 계정ID는 알아서 만들어줬다.

    그래서 이상태로 서비스 계정을 만들었다. 

     

    4. 서비스 계정 JSON  파일 다운로드 

    이 서비스계정을 JSON 파일로 다운로드 한다.

    이런식으로 type이 "service_account"이여야한다!! !

     

    이렇게 다운로드한 서비스 계정 JSON 파일을 업로드해야한다.

     

    추가 확인  - 서치콘솔에서 서비스 계정 권한부여 

    사실 이건 개발을 하면서 추가로 알게된 설정이다. 

    게속 해당 인덱스 생성 API를 요청하는데 403 권한 이슈가 있었다. 

     

    "Permission denied. Failed to verify the URL ownership" 라는 에러였는데,

    이 블로그를 통해서 해결했다! 

    https://blog.naver.com/freedoml/223608702946

     

    Google 의 Web Search Indexing API 에서 Permission denied. Failed to verify the URL ownership 오류.

    사이트를 만들어서 구글에 노출시키는 것은 유입의 기본입니다. 블로그도 마찬가지죠. 그런데, 내 블로그나...

    blog.naver.com

     

    즉, GCP에서 생성한 서비스 계정을 서치 콘솔에서도 사용자로 추가해야됐다!!

    그래서 기존에는 그냥 사용자가 구글계정인 (나)만 있었는데, 여기에 서비스 계정의 이메일을 추가해야한다!!

     

     

    테스트

    실제로 이렇게 엑셀파일과 서비스계정 JSON 파일을 업로드하고 인덱싱 요청을 시작했다. 

     

    실시간으로 진행상황이 화면에 나오도록 했고, 서버에서도 이렇게 로깅을 남겼다. 

     

     

    이렇게 총 몇개의 요청중에 몇개를 성공했는지 확인할수 있다! 

     

     

     

    + 비상..버그이슈!!

    비상..그런데 실제로 서치콘솔에서 확인해보면 색인이 제대로 생성된거 같지 않은데..?

     

     

    728x90