반응형
티스토리 블로그를 오래 운영하다 보면 구글 서치콘솔에 색인되지 않은 페이지가 쌓이는 경우가 많다. 색인 요청을 하나씩 수동으로 보내는 것은 시간이 많이 걸린다. 구글의 Indexing API를 이용하면 이 과정을 자동화할 수 있다. 이번 글에서는 파이썬을 이용해 색인 생성 요청을 자동으로 보내는 방법을 정리하겠다. 원래는 개발일지에 작성하려고 했지만 새로나온 gpt5의 도움을 많이 받았기에 양심에 찔려서 공구함에 올린다.
사전 준비
자동 색인 요청을 사용하려면 다음이 필요하다.
- 파이썬설치
- Google Cloud Platform(GCP) 설정
- 프로젝트 생성
- Indexing API 활성화
- 서비스 계정 생성 후 JSON 키 파일 다운로드
- 서비스 계정 이메일을 구글 서치콘솔 소유자에 추가
- URL 목록 엑셀 파일 준비
- 첫 번째 컬럼에 색인 생성이 필요한 URL을 입력
- 첫 줄은 헤더로 두고, URL은 두 번째 줄부터 입력
파이썬 자동화 코드
아래 코드는 엑셀에서 URL 목록을 불러와 순차적으로 Indexing API 요청을 보내는 기능을 한다.
import time
import pandas as pd
from google.oauth2 import service_account
from google.auth.transport.requests import AuthorizedSession
# 1. 엑셀에서 URL 읽기
def get_urls_from_excel(file_path):
df = pd.read_excel(file_path, header=None)
urls = df[0].dropna().tolist()[1:] # 첫 줄 헤더 제외
return urls
# 2. Google Indexing API 인증
def get_authorized_session(key_path):
SCOPES = ["https://www.googleapis.com/auth/indexing"]
credentials = service_account.Credentials.from_service_account_file(
key_path, scopes=SCOPES
)
return AuthorizedSession(credentials)
# 3. 색인 요청
def request_indexing(urls, authed_session):
endpoint = "https://indexing.googleapis.com/v3/urlNotifications:publish"
failed = []
for i, url in enumerate(urls, start=1):
payload = {"url": url, "type": "URL_UPDATED"}
try:
response = authed_session.post(endpoint, json=payload)
if response.status_code == 200:
print(f"성공 ({i}/{len(urls)}): {url}")
else:
print(f"실패 ({i}/{len(urls)}): {url} - {response.text}")
failed.append(url)
except Exception as e:
print(f"오류 ({i}/{len(urls)}): {url} - {e}")
failed.append(url)
time.sleep(0.2) # 0.2초 대기
print("\n[실패한 URL]")
if failed:
print("\n".join(failed))
else:
print("없음")
# 4. 실행
if __name__ == "__main__":
file_path = "./urls.xlsx" # URL 목록 파일 경로
key_path = "./service_account.json" # 서비스 계정 JSON 키 파일
urls = get_urls_from_excel(file_path)
print(f"총 {len(urls)}개의 URL을 색인 요청합니다.")
session = get_authorized_session(key_path)
request_indexing(urls, session)
설치 및 실행 방법
1.필요한 라이브러리 설치
pip install pandas google-auth google-auth-oauthlib openpyxl
2.urls.xlsx와 service_account.json을 코드와 같은 폴더에 둔다.
3실행
python index.py
코드 특징
- pandas로 URL 목록을 쉽게 처리
- google-auth로 Indexing API 인증
- 0.2초 간격 요청으로 API 제한 방지
- 실패한 URL 자동 출력
마무리
이 코드를 사용하면 티스토리 블로그의 색인 누락 문제를 빠르게 해결할 수 있다. 새 글 발행 후 수동으로 색인 요청을 보내지 않아도 되고, 주기적으로 실행해 두면 색인 생성이 자동으로 관리된다.
원한다면 이 스크립트를 윈도우 작업 스케줄러나 리눅스 crontab에 등록해 매일 한 번씩 자동 실행되도록 설정할 수도 있다. 이렇게 하면 완전한 무인 자동화가 가능하다.
반응형
'공구함 (tools & utils)' 카테고리의 다른 글
VS Code에서 Windsurf 사용하기 (3) | 2025.08.13 |
---|---|
Power Mode 확장으로 파워풀한 코딩하기 [vscode extension 모음 1편] (4) | 2025.08.11 |
OpenAI TTS 사용법 + OpenAI.fm - 무료 ai tts 사이트 (Chat GPT 목소리) (5) | 2025.08.06 |
모니터 모드 지원 가성비 무선 랜카드 - iptime N3U (5) | 2025.08.02 |
바탕화면 펫 피카츄 키우기 프로그램 (3) | 2025.08.01 |