다중 도메인 SEO 모니터링, 메타 분기로 깔끔하게
목차
여러 이커머스/콘텐츠 플랫폼을 운영하면서 Google Search Console(이하 GSC) 통합 관리의 필요성이 계속 커지고 있었다. 기존에는 도메인마다 따로 모니터링하던 traffic-watcher를 확장해서, 한 대시보드에서 여러 도메인의 검색 트래픽을 관리할 수 있게 개선했다.
다중 도메인 GSC 통합의 배경
우리 조직은 여러 개의 서비스 도메인을 분리해서 운영 중이다. 각 도메인마다:
- 타겟 지역이 다름 (국내, 해외)
- 콘텐츠 언어가 다름 (한글, 영어, 혼합)
- SEO 정책이 미묘하게 다름
그런데 기존 traffic-watcher는 도메인 단위로 따로 실행되었다. 즉, 각 서비스 담당팀이 독립적으로 GSC에 등록하고, 각자 모니터링 스크립트를 관리했다. 문제는:
| 상황 | 기존 (도메인별 독립) | 개선 후 (다중 GSC) |
|---|---|---|
| 새 도메인 추가 | 스크립트 복제 + 수동 설정 | config에만 추가 |
| 메타 태그 정책 변경 | 여러 곳 수정 필요 | 한 곳에서 관리 |
| 모니터링 대시보드 | 각자 따로 봄 | 중앙화된 뷰 |
| GSC 자격증명 | 각자 관리 (보안 분산) | 중앙화 (권한 제어 명확) |
이제 다행히 한 대시보드에서 여러 도메인을 한번에 볼 수 있으니, 팀 간 SEO 성과 비교도 쉬워지고, 도메인 간 트렌드 차이도 빠르게 발견할 수 있다.
영문 메타 태그, 왜 분기가 필요했나
여러 도메인을 통합하다 보니 즉시 마주친 문제가 메타 태그 전략의 다양성였다. 예를 들어:
- 일부 도메인은 한글 메타만 필요 (국내 타겟)
- 다른 도메인은 한글 + 영문 메타 dual 필요 (글로벌 SEO)
- 또 다른 서비스는 영문만 필요
원래는 각 도메인 코드에 메타 생성 로직이 하드코딩되어 있었다. traffic-watcher는 여기서 한 발 물러서서, 각 도메인이 "내 메타 생성 방식은 이거야"라고 선언하고, 스크립트는 그것을 존중하는 구조로 바꿨다.
이렇게 하면:
- 각 서비스가 독립적으로 자신의 메타 전략을 결정 가능
- traffic-watcher는 중립적 수집자 역할만 수행
- 메타 생성 정책이 변해도 traffic-watcher 코드는 건드릴 필요 없음
# 의사코드: 도메인별 메타 생성 전략
DOMAIN_CONFIG = {
'opsvoro': {'meta_lang': 'ko'},
'curiodot': {'meta_lang': 'en_US'},
'kpopdex': {'meta_lang': 'ko_and_en'},
}
# traffic-watcher는 도메인의 선언에 따라 메타를 수집
def collect_meta(domain, page_content):
strategy = DOMAIN_CONFIG[domain]['meta_lang']
return extract_meta_by_strategy(page_content, strategy)
META_EXCLUDE로 세밀한 제어
또 하나 추가한 것이 META_EXCLUDE 옵션이다. 이건 "이 페이지의 메타는 GSC에 제출하지 말아"라는 신호다.
실제로 필요한 시나리오들:
- 테스트/스테이징 페이지는 검색 색인에 올리고 싶지 않음
- 관리자/로그인 페이지는 robots.txt와 별도로 메타 수준에서도 제외하고 싶음
- 임시 프로모션 페이지는 검색 노출 기간이 정해져 있음
meta tag의 noindex 속성으로도 처리할 수 있지만, SEO 관점에서 더 명확한 신호는 GSC에 등록 자체를 하지 않는 것이다. traffic-watcher가 해당 페이지를 건너뛰면, 애초에 GSC 큐에 들어가지 않는다.
# META_EXCLUDE 활용 예시
def should_process_page(domain, page_url):
if domain in DOMAIN_CONFIG:
excluded = DOMAIN_CONFIG[domain].get('meta_exclude_patterns', [])
for pattern in excluded:
if pattern in page_url:
return False
return True
팀 차원의 의사결정과 회고
이 작업을 추진하면서 팀 내에서 몇 가지 토론이 있었다.
첫 번째 논점: 중앙화 vs 분산
일부 팀원은 "도메인마다 독립적 모니터링이 더 자유로운데?" 했지만, 결국:
- SEO 성과 리포팅 시 전사 통합 데이터가 필요
- 도메인별 전담팀이 없으면 중앙 모니터링이 더 효율적
- 각 도메인이 여전히 자신의 config를 수정할 권한은 유지
이렇게 결정했다.
두 번째 논점: 메타 분기의 범위
영어만 할지, 중국어/일본어도 미리 지원할지? 결국 "영문부터 시작, 필요할 때 확장" 하기로 했다. 과도한 선설계는 나중에 코드 부채가 되는 경험이 많았으니까.
세 번째: META_EXCLUDE는 정말 필요한가?
robots.txt와 중복 아닌가 했지만, robots.txt는 크롤링 제어(수집기 관점), META_EXCLUDE는 우리 플랫폼 내 "이 페이지는 GSC 색인 후보에서 제외" (발행자 의도). 둘을 분리하는 게 맞았다.
다음은
다중 도메인 통합이 기본이 되니, 이제는 도메인 간 크로스 SEO 인사이트(예: 한 도메인의 성공 키워드를 다른 도메인에 적용)도 시도할 수 있는 기반이 생겼다. traffic-watcher가 단순 수집 도구에서 정보 의사결정의 허브로 한 단계 올라간 느낌이다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.