본문 바로가기
IT

구글 색인 대량 등록, 구글 서치 콘솔 Indexing API 완벽 가이드 및 프로그램 무료 나눔!

by 청솔나무 2025. 4. 18.
반응형

내 콘텐츠를 구글에 더 빨리 알리는 방법 소개!

웹사이트나 블로그를 운영하시면서 '
어떻게 하면 내 콘텐츠를 구글에 더 빨리 알릴 수 있을까?'
고민해 보신 적 있으신가요?

 

새로운 글을 발행하거나 중요한 내용을 업데이트했을 때, 구글 검색 결과에 신속하게 반영되기를 바라는 마음은 모두 같을 거예요.

그런 여러분들을 위해 이번에 구글 서치 콘솔의 'Indexing API'를 활용해 구글이 웹페이지 색인을 자동화하는 방법을 알려드리겠습니다.

그리고 제가 이번에 만든 프로그램을 보여드리면서 대량의 URL을 구글에 직접 알리고 색인 생성을 요청하는 방법을 알려드릴게요!

 

구글 Indexing API란 무엇인가요?

웹사이트 소유자가 구글 검색엔진에 직접 페이지의 추가, 업데이트 또는 삭제를 알릴 수 있도록 설계된 공식적인 방법이에요

기존에는 구글봇이 웹사이트를 크롤링하고 변경사항을 발견하기까지 기다려야 했지만, 구글 Indexing API를 사용하면 이 과정을 기다릴 필요 없이 능동적으로 구글에 알릴 수 있어요.

"구글! 제 웹사이트에 이런 변화가 생겼으니 빨리 확인해주세요!"라고 직접 말하는 것과 같다고 생각하시면 됩니다.

 

Indexing API 사용 시 장점은?

  • 신속한 색인 생성: 구글봇의 크롤링을 기다리지 않고 변경사항을 즉시 알릴 수 있어요.
  • 효율적인 대량 처리: 많은 수의 URL을 효과적으로 관리하고 구글에 알릴 수 있어요. 배치 요청을 사용하면 더욱 효율적이에요.
  • 크롤링 부하 감소: 구글봇이 불필요하게 웹사이트를 자주 크롤링하는 것을 줄여 서버 부하를 낮출 수 있어요.
  • 삭제된 페이지의 빠른 제거: 삭제된 콘텐츠가 검색 결과에 오래 남아있는 것을 방지할 수 있어요.

물론, Indexing API가 사이트맵(Sitemap)을 완전히 대체하는 것은 아니에요. 사이트맵은 여전히 구글이 웹사이트의 전체 구조를 파악하는 데 중요한 역할을 해요. Indexing API는 개별 페이지의 변경사항을 '신속하게' 알리는 보완적인 도구라고 생각하는 것이 좋아요.

 

Indexing API 사용 준비 단계

1. Google Cloud Platform (GCP) 프로젝트 생성 및 API 활성화

먼저 Google Cloud Platform에 접속해서 새 프로젝트를 만들거나 기존 프로젝트를 사용해야 해요. 프로젝트가 준비되면 'API 및 서비스' 메뉴에서 '라이브러리'로 이동하여 'Indexing API'를 검색하고 '사용 설정' 버튼을 클릭해 주세요.

2. 서비스 계정 생성

API를 사용하려면 '서비스 계정'이라는 특별한 계정이 필요해요. 'API 및 서비스'의 '사용자 인증 정보' 메뉴에서 '사용자 인증 정보 만들기'를 클릭하고 '서비스 계정'을 선택하세요. 서비스 계정의 이름과 설명을 입력하고 '만들기 및 계속'을 클릭합니다. 역할은 따로 지정하지 않아도 괜찮아요. '완료'를 클릭하여 서비스 계정 생성을 마칩니다.

3. 서비스 계정 키 생성 (JSON)

생성된 서비스 계정의 이메일 주소를 클릭하고 '키' 탭으로 이동하세요. '키 추가' 버튼을 누르고 '새 키 만들기'를 선택합니다. 키 유형은 'JSON'을 선택하고 '만들기'를 클릭하면 키 파일(.json)이 컴퓨터에 다운로드될 거예요. 이 파일은 API 요청 시 인증에 사용되므로 안전하게 보관해야 해요! 절대 외부에 노출되면 안 됩니다.

4. Google Search Console에서 서비스 계정 등록

이제 Google Search Console로 이동하여 Indexing API를 사용할 웹사이트 속성을 선택하세요. 왼쪽 메뉴 하단의 '설정' > '사용자 및 권한'으로 이동합니다. 오른쪽 상단의 '사용자 추가' 버튼을 클릭하고, 방금 생성한 서비스 계정의 이메일 주소(GCP에서 확인 가능하며, 보통 `...@...iam.gserviceaccount.com` 형식이에요)를 입력하세요. 권한은 반드시 '소유자'로 설정해야 해요. '추가' 버튼을 누르면 완료됩니다.

 

구체적인 방법이 궁금하시다면 아래 두 게시글을 참고해주세요!

https://www.hahwul.com/2021/07/25/automation-seo-with-google-indexing/

 

Ruby와 Google Indexing API를 이용하여 자동으로 신규URL 등록하기

제가 블로그 글을 작성하고 commit - push 시 많은 작업들이 일어납니다. 대표적인 것들을 이야기 드리면, Jekyll build 및 deploy 과정이 진행되고 이미지 중 compress가 필요한 이미지는 compress 처리하여

www.hahwul.com

https://blog.naver.com/moonbird_thinker/222991325667

 

검색 최적화 구글 서치콘솔 색인(indexing) 생성 요청 (API 신청 방법)

안녕하세요 오래간만에 인사드립니다. IT 정보 크리에이터 달새 입니다. 오늘은 구글 서치콘솔의 색인 요...

blog.naver.com

 

구글 Indexing API 설정까지 완료했다면 이제 Indexing API로 우리의 블로그를 등록해볼게요!

 

Indexing API 호출하기

Indexing API는 기본적으로 HTTP POST 요청을 통해 작동해요. 개발 지식이 있다면 직접 코드를 작성하여 요청을 보낼 수도 있고, Python 스크립트나 다양한 자동화 도구를 활용할 수도 있어요.

API 요청 시에는 다음 두 가지 유형 중 하나를 명시해야 해요.

  • URL_UPDATED: 새로운 페이지를 추가했거나 기존 페이지의 내용을 업데이트했을 때 사용해요. 구글에 해당 URL의 색인을 생성하거나 업데이트하도록 요청합니다.
  • URL_DELETED: 페이지를 삭제했을 때 사용해요. 구글에 해당 URL을 검색 결과에서 제거하도록 요청합니다.

요청 본문(body)에는 알리고자 하는 URL과 요청 유형(type)을 JSON 형식으로 포함해야 해요. 예를 들어, 특정 페이지의 업데이트를 알리려면 다음과 같은 형식으로 요청을 보내게 됩니다.

{
  "url": "https://example.com/your-page-url",
  "type": "URL_UPDATED"
}

대량의 URL을 처리하려면 이 요청을 반복적으로 보내거나, 배치(batch) 요청 기능을 사용하여 한 번의 요청으로 최대 100개의 URL 알림을 보낼 수도 있어요. 배치 요청은 개별 요청보다 효율적이며 API 할당량을 절약하는 데 도움이 돼요.

 

 

파이썬으로 쉽게 대량 등록하기

파이썬을 사용하실 줄 아는 분은 아래의 코드로 바로 API 호출을 해보세요!파이썬을 잘 모르시는 분들은 제가 만든 프로그램을 활용해

import sys
import json
import requests
from google.oauth2 import service_account
import google.auth.transport.requests

# 설정
KEY_FILE = 'json_키_파일'
URL_TO_SUBMIT = "등록_url_주소"
SCOPES = ["https://www.googleapis.com/auth/indexing"]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

def load_credentials(key_file: str):
    """서비스 계정 키 파일로부터 Credentials 객체 생성"""
    try:
        creds = service_account.Credentials.from_service_account_file(
            key_file, scopes=SCOPES
        )
        return creds
    except FileNotFoundError:
        print(f"❌ 키 파일을 찾을 수 없습니다: {key_file}")
        sys.exit(1)
    except ValueError as e:
        print(f"❌ 키 파일이 잘못되었습니다: {e}")
        sys.exit(1)
    except Exception as e:
        print(f"❌ 인증 정보 로드 중 오류: {e}")
        sys.exit(1)

def refresh_token(creds):
    """토큰 갱신"""
    try:
        request = google.auth.transport.requests.Request()
        creds.refresh(request)
    except Exception as e:
        print(f"❌ 토큰 갱신 중 오류: {e}")
        sys.exit(1)

def submit_url(creds, url: str, notif_type: str = "URL_UPDATED"):
    """Indexing API에 URL 제출"""
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {creds.token}"
    }
    payload = {"url": url, "type": notif_type}

    try:
        response = requests.post(ENDPOINT, headers=headers, json=payload, timeout=10)
    except requests.exceptions.Timeout:
        print("❌ 요청이 타임아웃되었습니다.")
        return
    except requests.exceptions.ConnectionError as e:
        print(f"❌ 네트워크 오류: {e}")
        return
    except Exception as e:
        print(f"❌ 요청 중 오류: {e}")
        return

    # 상태 코드별 처리
    if response.ok:
        try:
            data = response.json()
            print(f"✅ 성공: {url}")
            print(json.dumps(data, indent=2, ensure_ascii=False))
        except json.JSONDecodeError:
            print(f"✅ 성공했으나, 응답 파싱 실패. 응답 원본:\n{response.text}")
    else:
        print(f"❌ 실패: {url}")
        print(f"   상태 코드: {response.status_code}")
        print(f"   응답 내용: {response.text}")

def main():
    # 1) 인증 로드
    creds = load_credentials(KEY_FILE)
    # 2) 토큰 갱신
    refresh_token(creds)
    # 3) URL 제출
    submit_url(creds, URL_TO_SUBMIT, notif_type="URL_UPDATED")

if __name__ == "__main__":
    main()

 

 

프로그램으로 쉽게 대량 등록하기

제가 직접 제작한 프로그램을 보내드립니다! 블로그에 좋아요와 구독을 눌러주신 분들에게는 댓글로 프로그램을 신청해주시면 직접 제작한 URL 색인 대량등록 프로그램을 무료 나눔하도록 하겠습니다:) (15,000원으로 판매 중인 프로그램)

 

주의사항 및 제한 사항

Indexing API는 매우 강력한 도구지만, 몇 가지 주의할 점과 제한 사항이 있어요.

  • 일일 할당량(Quota): 각 GCP 프로젝트별로 하루에 보낼 수 있는 API 요청 수가 제한되어 있어요. 기본 할당량은 보통 하루에 200개의 게시 요청과 600개의 메타데이터 가져오기 요청이지만, Google Cloud Console에서 현재 할당량을 확인하고 필요한 경우 상향 조정을 요청할 수 있어요. 할당량을 초과하면 오류가 발생하니 주의해야 해요.
  • 모든 페이지에 대한 보장은 아님: API 요청이 성공했다고 해서 해당 페이지가 반드시 구글 검색 결과 상위에 노출되거나 색인이 보장되는 것은 아니에요. 구글의 다른 품질 기준과 알고리즘도 여전히 중요하게 작용해요.
  • 사이트맵 대체 불가: 앞서 언급했듯이, Indexing API는 사이트맵을 대체하지 않아요. 웹사이트의 전체 구조를 알리기 위해서는 여전히 사이트맵 제출이 필요해요.
  • 남용 금지: 중요하지 않은 페이지 변경이나 단순히 순위를 높이기 위한 목적으로 API를 과도하게 사용하는 것은 권장되지 않아요. 구글은 API 남용을 감지하고 제재를 가할 수도 있어요.

 

오늘 알려드린 내용을 바탕으로 여러분의 소중한 콘텐츠가 더 빨리, 더 많은 사람에게 전달될 수 있기를 바랍니다!

궁금한 점이 있다면 언제든지 댓글로 남겨주세요.

반응형