내 블로그 42개 태그 통폐합과 서치콘솔 40개 정예화 작업기
영문 블로그의 51개 색인 함정을 고쳤다고 안도하던 찰나, 정작 내 개발 블로그의 사이트맵이 42개 단발성 태그와 74개 찌꺼기 URL로 썩어가고 있던 현실을 마주했습니다. 지킬 Chirpy 테마의 태그를 8대 토픽 허브로 전면 통폐합하고 서치콘솔 40개 정합 등록을 달성하기까지의 실전 트러블슈팅을 기록합니다.
“등하불명(燈下不明)”: 남의 집 누수 잡다 내 집 지붕 무너진 줄 몰랐다
어제(10월 14일), 나는 커밋로그 15번째 글에 The Smart Suburbanite의 3개월 치 서치콘솔 데이터를 분석하며 “글은 14편인데 왜 구글에 51개 URL이 등록되어 색인 품질을 갉아먹었는가”에 대한 처절한 회고를 남겼었다.
Astro가 자동으로 생성하던 수십 개의 태그 목록과 페이지네이션 페이지에 noindex, follow를 걸고, sitemap을 28개로 다이어트시키면서 나는 속으로 은근히 뿌듯해하고 있었다.
“그래, 이제 크롤링 예산 낭비의 원인을 완벽히 규명했어. 검색엔진이 쓸데없는 껍데기 페이지를 긁지 못하게 막았으니 시스템이 한 단계 진화한 거야.”
그런데 오늘 오후, 구글 서치콘솔에서 도메인 프로퍼티를 점검하던 중 문득 서늘한 기분이 스쳤다.
“잠깐… 그러고 보니 내가 매일 커밋을 올리는 이 개발 블로그(
natekeem.com)는 사이트맵에 URL이 몇 개나 올라가 있지?”
나는 곧바로 터미널을 열고 배포된 sitemap.xml을 긁어 내려받았다. 그리고 화면에 찍힌 숫자를 본 순간, 나는 그대로 얼어붙고 말았다.
발행된 본문 글은 18편뿐인데, 사이트맵에 등록된 URL 수가 무려 74개였다.
42개로 증식한 태그 좀비와 74개 URL의 실체
어제 영문 블로그의 51개 URL을 보고 경악했으면서, 정작 내가 직접 운영하는 이 개발 블로그는 74개라는 훨씬 더 심각한 비만 상태로 구글봇을 맞이하고 있었던 것이다. 중이 제 머리 못 깎는다는 옛말이 이렇게 뼈아프게 와닿을 수가 없었다.
도대체 본문이 18편밖에 안 되는 블로그에서 어떻게 74개의 URL이 튀어나왔을까? 지킬(Jekyll)과 Chirpy 테마가 사이트맵을 빌드하는 로직을 뜯어보니 원인은 너무나 명백했다.
1
2
3
4
5
6
7
[지킬 빌드 시 사이트맵 팽창 구조]
본문 글 (18개)
+ 카테고리 아카이브 (4개)
+ 기본 정적/유틸리티 페이지 (10개)
+ 🚨 무분별하게 생성된 태그 아카이브 (42개!)
─────────────────────────────────────────────
= 총 74개 URL (본문 비중은 겨우 24%에 불과)
범인은 내가 글을 쓸 때마다 마크다운 frontmatter에 아무 생각 없이 흩뿌려놓았던 단발성 태그들이었다.
- 글 쓸 때
adsense넣고, 다음 글엔google-adsense넣기 - Route 53 만졌다고
route-53태그 달기 - 프롬프트 QA 문서 다뤘다고
prompt-qa태그 달기 - 도메인 설정했다고
custom-domain달기 - 코덱스 얘기했다고
codex달기
Chirpy 테마는 글에 태그가 하나 추가될 때마다 자동으로 /tags/<tag-name>/이라는 전용 아카이브 페이지를 생성하고, 이를 친절하게 sitemap.xml에 집어넣는다.
결과적으로 18편의 글에 무려 42개의 태그가 난립해 있었고, 42개 태그 페이지 중 30개 이상은 “글 달랑 1개 링크 걸린 빈 껍데기 목록”이었다.
구글 크롤러가 natekeem.com을 방문했을 때 보게 되는 풍경을 상상해 보라. 전체 사이트의 60% 이상이 글 1개짜리 깡통 페이지(Thin Content)다. 구글 검색엔진 입장에서 이 사이트는 양질의 기술 지식을 전달하는 블로그가 아니라, 알맹이 없는 키워드 도어웨이(Doorway) 페이지를 무더기로 양산하는 저품질 사이트로 오인받기 딱 좋은 구조였다.
수술대 위에 올린 42개 태그: 8대 정예 토픽 허브로의 통폐합
문제를 인지한 이상 지체할 시간이 없었다. 나는 즉시 18편 전체의 frontmatter를 열고 대대적인 태그 통폐합 수술에 들어갔다.
수술의 대원칙은 하나였다:
“태그는 즉흥적인 키워드 메모장이 아니다. 최소 3편 이상의 글이 모여 독자에게 의미 있는 탐색 경험을 제공하는 ‘토픽 허브(Topic Hub)’여야만 한다.”
42개로 난립하던 단발성 태그들을 8대 핵심 토픽 허브로 압축하여 크롤링 예산을 최적화한 아키텍처
나는 42개의 파편화된 태그를 모두 폐기하고, 블로그의 정체성을 관통하는 8대 핵심 토픽 허브를 확립했다:
Dev Log: 1인 개발자의 인프라 구축, 삽질기, 운영 회고AI: LLM 도입, 프롬프트 엔지니어링, 클로드 및 AI 에이전트 도구 분석Autoblog: Project AI Autoblog 포트폴리오 거버넌스 및 운영 체제Smart Suburbanite: 영문 수익형 블로그 실험 및 데이터 분석SEO: 서치콘솔 색인 최적화, 사이트맵 다이어트, 크롤링 예산 관리QA: 팩트체크 검증, 휴먼인더루프(Human-in-the-loop), 품질 게이트Web Dev: 지킬/Astro 테마 튜닝, 반응형 CSS, 폰트 및 UI 아키텍처Git Trending: 깃허브 급상승 오픈소스 트렌드 주간 분석 연재
그리고 18편의 모든 글을 이 8개 허브 중 가장 밀접한 2~4개 안으로만 엄격히 재배정했다. 즉흥적으로 만들어졌던 route-53, caching, analytics, codex 같은 단발성 태그들은 모조리 소멸되었다.
사이트맵 정합성 공식: 74개에서 정확히 40개로의 다이어트
태그 정리가 끝나자, 사이트맵의 숫자는 마법처럼 단단하고 정갈한 수학적 대칭을 이루기 시작했다.
\[\begin{aligned} \text{Total Sitemap URLs} &= \text{정식 본문 글 (18편)} \\ &+ \text{공식 태그 허브 (8개)} \\ &+ \text{핵심 카테고리 (4개)} \\ &+ \text{필수 정적 페이지 (10개: Home, About, Archives, Tags 등)} \\ &= \mathbf{40\text{개}} \end{aligned}\]단 하나의 유령 페이지도, 글 1개짜리 찌꺼기 아카이브도 존재하지 않는 완벽한 40개 정합 URL 풀이 완성된 것이다. 74개에서 40개로, 전체 URL의 46%를 깎아낸 극단적인 다이어트였다.
나는 이 변경 사항을 지킬 저장소에 커밋(1870752: refactor(tags): prune fragmented tags into 8 focused topic hubs)하고 GitHub Actions를 통해 프로덕션으로 배포했다.
서치콘솔 실시간 검증: “성공 · 40개 발견”
배포가 완료되고 https://natekeem.com/sitemap.xml이 40개 URL로 갱신된 것을 확인한 뒤, 숨을 죽이고 구글 서치콘솔의 사이트맵 메뉴로 향했다.
기존에 등록되어 있던 사이트맵을 다시 제출하고 ‘새로고침’ 버튼을 눌렀다. 잠시 후 화면에 찍힌 상태 메시지:
유형: Sitemap
상태: 성공
발견된 페이지: 40
(2026년 10월 15일 구글 서치콘솔 실시간 수집 결과)
숫자 40. 내가 손으로 계산한 18개 글, 8개 태그, 4개 카테고리, 10개 정적 페이지의 합과 단 1의 오차도 없이 일치하는 순간이었다.
구글봇은 이제 더 이상 알맹이 없는 42개의 태그 미로 속을 헤매지 않는다. 사이트에 들어오면 18편의 충실한 기술 에세이와, 글들이 묵직하게 모여있는 8개의 핵심 토픽 허브만을 정확하게 크롤링하게 된다. 깡통 페이지가 사라지니 사이트 전체의 평균 콘텐츠 밀도는 비약적으로 상승했다.
개발 블로그를 운영하는 동료들에게 전하는 3가지 교훈
이틀에 걸쳐 두 개의 블로그(Astro 기반 The Smart Suburbanite, Jekyll 기반 나태킴의 커밋로그)를 뜯어고치며 얻은 교훈을 정리해 본다.
- 정적 사이트 제너레이터(SSG)의 기본 세팅을 맹신하지 마라:
- Jekyll Chirpy, Hugo, AstroPaper 등 대다수의 테마는 태그를 쓰는 대로 페이지를 무한 생성하도록 기본 설계되어 있다.
- 글이 100편 이상 쌓이기 전까지, 태그 관리를 방치하면 사이트맵은 순식간에 깡통 페이지 밭이 된다.
- 태그는 ‘분류’가 아니라 ‘큐레이션’이다:
- 태그 하나를 만들 때는 “이 태그를 눌렀을 때 독자가 읽을거리가 최소 3편 이상 있는가?”를 반드시 자문해야 한다.
- 단 한 번 쓰고 버릴 단발성 키워드는 본문 텍스트로 녹여내야지, 독립된 URL로 파내서는 안 된다.
- 사이트맵의 ‘분모(Denominator)’를 줄여야 품질이 올라간다:
- 검색엔진과 애드센스는 글의 절대적인 개수만 보지 않는다. 전체 URL 대비 가치 있는 본문의 비율(밀도)을 본다.
- 글을 더 쓰는 것보다, 쓸데없이 색인되고 있는 찌꺼기 URL 30개를 쳐내는 것이 사이트의 신뢰도를 높이는 데 훨씬 빠르고 강력하다.
남의 블로그를 컨설팅하듯 바라보기 전에, 내 발밑의 사이트맵부터 열어보라. 당신의 블로그에도 1개의 글을 매단 채 방치된 수십 개의 태그 좀비들이 구글봇을 가로막고 있을지도 모른다.
