티스토리 블로그 운영자라면 구글 서치 콘솔 외에 Bing(빙)에도 사이트를 등록하고 색인(인덱싱)을 요청하는 게 중요합니다. Bing의 Content Submission API는 단순 URL 제출을 넘어 실제 콘텐츠(HTML, 이미지 등)를 직접 제출해 Bingbot 크롤링 없이 즉시 색인할 수 있게 해줍니다. 이는 새로운 포스트나 업데이트된 콘텐츠를 빠르게 Bing 검색에 노출시키는 데 유용하며, 서버 부하를 줄여줍니다.
이 가이드는 티스토리 블로그에 초점을 맞춰 단계별로 설명합니다. API는 JSON 형식으로 작동하며, API 키가 필요합니다. (참고: Bing은 IndexNow 프로토콜을 더 추천하지만, Content Submission API는 고급 사용 사례에 여전히 지원됩니다.)
1. 사전 준비: Bing Webmaster Tools 계정 설정 및 사이트 등록
Content Submission API를 사용하려면 Bing Webmaster Tools에서 사이트를 인증해야 합니다. 티스토리 블로그를 등록하세요.
- Bing Webmaster Tools 접속: www.bing.com/webmasters로 이동해 Microsoft, Google 또는 Facebook 계정으로 로그인.
- 사이트 추가:
- "사이트 추가" 클릭.
- 티스토리 블로그 URL 입력 (예: https://yourblog.tistory.com).
- 인증 방법 선택: HTML 메타 태그 추천 (티스토리 스킨 편집에서 <head> 태그에 추가).
- Bing에서 제공한 메타 태그 코드를 복사.
- 티스토리 관리자 > 꾸미기 > 스킨 편집 > HTML 편집으로 이동.
- <head>와 </head> 사이에 <meta name="msvalidate.01" content="YOUR_CODE" /> 형식으로 붙여넣기.
- 저장 후 Bing에서 "인증 확인" 클릭.
- 사이트맵 제출 (선택, 하지만 추천): 티스토리 RSS 피드(https://yourblog.tistory.com/rss)나 sitemap.xml을 "Sitemaps" 섹션에 제출. 이는 API와 함께 사용해 전체 블로그를 효율적으로 색인합니다.
인증 완료 후 대시보드에서 사이트 상태를 확인하세요. 구글 서치 콘솔과 연동 가능 (Bing에서 "가져오기" 버튼 클릭).
2. API 키 생성
API 호출에 필수입니다.
- Bing Webmaster Tools 대시보드 > 설정 > API 액세스.
- "API 키 생성" 클릭. (키는 사용자별로 생성되며, 모든 인증된 사이트에 사용 가능. 변경 시 30분 대기.)
- 키를 안전하게 저장 (예: sampleapikeyEDECC1EA4AE341CC8B6 형식).
3. Content Submission API 이해
- 엔드포인트: https://ssl.bing.com/webmaster/api.svc/json/SubmitContent
- 메서드: POST (JSON 형식).
- 일일 쿼터: 기본 10,000 URL/일 (초과 시 지원 티켓으로 요청).
- 제출 내용:
- URL만: URL Submission API 사용.
- 콘텐츠 전체: Content Submission API로 HTML 응답 본문(base64 인코딩) 제출.
- 장점: 크롤링 없이 직접 색인 → 티스토리처럼 동적 콘텐츠에 적합.
- 주의: Bing Webmaster 가이드라인 준수 (스팸 금지). 404 URL도 제출 가능.
4. API 호출 예시 (티스토리 포스트 제출)
티스토리 포스트를 제출하려면, 포스트의 HTML 콘텐츠를 가져와 base64로 인코딩해야 합니다. 수동으로는 어렵지만, Python 스크립트로 자동화하세요. (아래 예시는 sitemap.xml에서 URL 추출 후 API 호출.)
Python 자동화 스크립트 (티스토리 sitemap 활용)
티스토리 sitemap.xml을 파싱해 최근 포스트 URL을 추출하고, 각 포스트의 HTML을 가져와 API로 제출합니다. (requests, base64 라이브러리 필요.)
import requests
import base64
import xml.etree.ElementTree as ET
from urllib.parse import urljoin
# 설정
BING_API_KEY = 'YOUR_BING_API_KEY' # 2단계에서 생성한 키
SITE_URL = 'https://yourblog.tistory.com' # 티스토리 블로그 URL
SITEMAP_URL = f'{SITE_URL}/sitemap.xml' # 또는 RSS: f'{SITE_URL}/rss'
# 1. sitemap.xml에서 최근 URL 추출 (마지막 10개 예시)
def get_urls_from_sitemap(sitemap_url, limit=10):
response = requests.get(sitemap_url)
root = ET.fromstring(response.content)
urls = [elem.text for elem in root.findall('.//{http://www.sitemaps.org/schemas/sitemap/0.9}loc')][-limit:]
return urls
# 2. 포스트 HTML 가져오기 (티스토리 포스트 예시)
def get_post_html(post_url):
response = requests.get(post_url)
if response.status_code == 200:
# 전체 HTML 반환 (실제로는 body만 추출 가능)
return response.text.encode('utf-8')
return None
# 3. API 호출
def submit_to_bing(site_url, post_url, html_content, api_key):
endpoint = 'https://ssl.bing.com/webmaster/api.svc/json/SubmitContent'
# Base64 인코딩된 HTTP 메시지 예시 (실제 응답 헤더 + body)
http_message = base64.b64encode(f'HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n{html_content.decode("utf-8")}'.encode('utf-8')).decode('utf-8')
payload = {
'siteUrl': site_url,
'url': post_url,
'httpMessage': http_message,
'structuredData': '', # JSON-LD 등 구조화 데이터 (선택)
'dynamicServing': '0' # 0: 기본, 1: PC, 2: 모바일 등
}
headers = {'Content-Type': 'application/json; charset=utf-8'}
params = {'apikey': api_key}
response = requests.post(endpoint, json=payload, headers=headers, params=params)
return response.status_code == 200
# 실행
urls = get_urls_from_sitemap(SITEMAP_URL)
for url in urls:
html = get_post_html(url)
if html:
success = submit_to_bing(SITE_URL, url, html, BING_API_KEY)
print(f'제출 결과: {url} -> {success}')
- 실행 방법:
- Python 설치 (3.8+).
- pip install requests (필요 라이브러리).
- YOUR_BING_API_KEY와 SITE_URL 수정 후 실행.
- 콘솔에서 성공 여부 확인 (HTTP 200: 성공).
- 티스토리 팁: 포스트 발행 후 cron job이나 GitHub Actions으로 스크립트 자동 실행. RSS 피드 사용 시 feedparser 라이브러리로 URL 추출.
cURL 수동 테스트 (단일 포스트)
curl -X POST "https://ssl.bing.com/webmaster/api.svc/json/SubmitContent?apikey=YOUR_API_KEY" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"siteUrl": "https://yourblog.tistory.com",
"url": "https://yourblog.tistory.com/123",
"httpMessage": "BASE64_ENCODED_HTML_HERE",
"structuredData": "",
"dynamicServing": "0"
}'
- BASE64_ENCODED_HTML_HERE: 포스트 HTML을 base64로 인코딩 (온라인 도구 사용).
5. 색인 확인 및 최적화
- Bing Webmaster Tools > URL 제출 > 제출된 URL: 상태 확인 (색인됨/대기/오류).
- URL 검사 도구: 개별 포스트 검색 (site:yourblog.tistory.com)으로 Bing 검색 결과 확인.
- 티스토리 최적화 팁:
- 포스트에 H1~H3 태그, 메타 설명, alt 텍스트 사용 (Bing은 on-page SEO를 중시).
- 모바일/데스크톱 호환: Bing은 데스크톱 우선 인덱싱.
- 소셜 공유: Facebook/Twitter 공유 증가 (Bing 랭킹 팩터).
- 오류 해결: 크롤 오류나 블록된 리소스 확인.
- 문제 발생 시: bwtsupport@microsoft.com으로 문의. 쿼터 초과는 지원 티켓 제출.
6. 추가 팁: 자동화와 모니터링
- IndexNow 대안: Content Submission API 대신 IndexNow를 고려. 플러그인 없이 URL만 ping (티스토리 스크립트에 통합 가능).
- 자동화 도구: Zapier나 IFTTT로 포스트 발행 시 API 트리거.
- 효과 측정: Bing Webmaster > 검색 성능으로 트래픽/키워드 확인. 티스토리 애널리틱스와 연동.
이 방법으로 티스토리 포스트가 Bing에 24시간 이내 색인될 수 있습니다. 초기 설정 후 스크립트로 유지보수하세요.
'IT관련' 카테고리의 다른 글
| 고해상도 모니터에서 포토샵 UI(메뉴, 툴바)가 너무 작게 보일 때 해결 방법 (0) | 2025.12.11 |
|---|---|
| IndexNow 키 vs Bing URL Submission API 키 비교 (0) | 2025.12.11 |
| 웹에서 복사한 텍스트를 내용만 깔끔하게 붙여넣기 하는 방법 정리 (0) | 2025.12.07 |
| 파이썬 초보도 5분 만에 끝내는 엑셀 파일 불러오기 완벽 정리 (pandas) (0) | 2025.12.07 |
| 구글 시트에서 세로 데이터를 가로로 변환하는 방법 (0) | 2025.12.05 |