*.github.io에서 벗어나니 사이트맵이 바로 됐다 - 커스텀 도메인과 GA4

*.github.io에서 벗어나니 사이트맵이 바로 됐다 - 커스텀 도메인과 GA4

GSC 사이트맵 인식 불가 2개월, 원인은 *.github.io 도메인이었습니다. 커스텀 도메인 연결로 즉시 해소한 과정과 GA4 도입까지 정리합니다.

*.github.io에서 벗어나니 사이트맵이 바로 됐다 - 커스텀 도메인과 GA4

TL;DR
GitHub Pages의 *.github.io 도메인에서 GSC(Google Search Console) 사이트맵이 2개월간 “읽을 수 없음” 상태였습니다.
기술적으로는 모두 정상이었고, 커스텀 도메인을 연결하자 즉시 해소되었습니다.
같은 시점에 GA4(Google Analytics 4)도 도입하여 검색 노출(GSC)과 방문자 행동(GA4) 양쪽을 볼 수 있게 되었습니다.

배경 - 색인이 안 되고 있었다

GEO 대응 포스트에서 블로그의 SEO/GEO 인프라를 점검했을 때, 기술적으로는 모두 정상이었습니다. JSON-LD, sitemap.xml, robots.txt, 전부 갖춰져 있었습니다.

문제는 Google이 사이트맵을 읽지 못한다는 것이었습니다.

GSC에서 사이트맵을 제출하면 매번 같은 결과가 돌아왔습니다.

항목상태
사이트맵 상태“사이트맵을 읽을 수 없음”
발견된 페이지0
마지막 읽은 날짜2026-03-20에서 멈춤

2월 19일에 최초 제출한 뒤 2개월간 같은 상태가 지속되었습니다.

기술적으로는 모두 정상이었다

원인을 찾기 위해 가능한 것을 모두 확인했습니다.

점검 항목결과
XML 유효성 (xmllint)통과
HTTP 응답200, application/xml
BOM / 빈 줄없음
Googlebot UA 접근200
IPv6 접근200
리다이렉트없음
noindex / nofollow없음
robots.txtSitemap 경로 명시
사이트맵 내 URL전부 200

모든 항목이 정상이었습니다. XML namespace를 단순화하고, 사이트맵을 jekyll-sitemap 플러그인 자동 생성으로 교체하고, 수동 색인 요청도 해봤지만 결과는 같았습니다.

원인 - *.github.io 도메인 자체의 문제

Chirpy 테마의 이슈 트래커(#2658)에서 같은 현상이 보고되어 있었습니다. *.github.io 도메인에서 GSC 사이트맵 인식이 실패하는 알려진 문제였고, 커스텀 도메인을 연결하면 즉시 해결된다는 것이 확인된 해결책이었습니다.

2개월간 기술적 원인을 파고들었지만, 결국 도메인을 바꾸는 것 외에는 방법이 없었습니다.

도메인 선택 - .dev vs .me

커스텀 도메인을 결정할 때 두 가지를 고려했습니다.

용도 확장성: 블로그 외에 트래블 플래너 등 개인 서비스에도 서브도메인을 쓸 계획이 있었습니다.

후보서브도메인 예시판단
idean3885.devtravel.idean3885.dev비개발 서비스에 어색
idean.metravel.idean.me용도 무관하게 자연스러움

장기 사용: 도메인은 한번 사면 바꾸기 어렵습니다. .dev는 개발자일 때만 의미가 있지만, .me는 방향이 바뀌어도 유효합니다.

idean.me를 선택했습니다. 연 $4 차이(.dev 대비)로, 10년이면 $40. 유연성 대비 저렴한 투자입니다.

연결 과정

1. Cloudflare에서 도메인 구매

Cloudflare를 선택한 이유는 도메인 원가 판매(마크업 없음)와 DNS 관리가 한 곳에서 되기 때문입니다.

2. DNS 설정

Cloudflare DNS에 CNAME 레코드를 추가했습니다.

TypeNameTargetProxy
CNAMEblogidean3885.github.ioDNS only

Proxy status를 반드시 DNS only(회색 구름)로 설정해야 합니다. GitHub Pages의 SSL 인증서 발급에 필요합니다.

3. GitHub Pages 설정

GitHub 레포 Settings > Pages에서 Custom domain에 blog.idean.me를 입력하고, Enforce HTTPS를 활성화했습니다.

4. 블로그 레포 변경

# _config.yml
url: "https://blog.idean.me"

루트에 CNAME 파일을 추가하고, llms.txtCLAUDE.md의 URL도 일괄 변경했습니다.

기존 idean3885.github.io로의 접근은 자동으로 blog.idean.me로 301 리다이렉트됩니다. 이미 공유된 링크나 이력서의 URL이 깨질 걱정은 없습니다.

결과 - 사이트맵 즉시 성공

배포 후 GSC에 사이트맵을 제출했습니다.

2개월간 “읽을 수 없음”이었던 사이트맵이 즉시 성공했습니다.

원인이 기술적 설정이 아니라 도메인 자체에 있었다는 것이 확인된 순간이었습니다.

GA4 도입 - 검색 노출 너머의 데이터

사이트맵이 해소되면서 색인이 시작될 예정이고, 이 시점에 방문자 행동 분석도 함께 시작하기로 했습니다.

GSC vs GA4

도구보는 것범위
GSC어떤 키워드로 노출/클릭됐는지블로그 (검색 → 클릭)
GA4누가, 얼마나 머물렀는지, 어떤 글이 인기인지블로그 (클릭 → 이탈)

GSC만으로도 검색 노출은 파악할 수 있지만, “글을 끝까지 읽었는지”, “다른 글로 이어갔는지” 같은 행동 데이터는 GA4가 필요합니다.

Chirpy에서의 GA4 적용

Chirpy 테마는 GA4를 내장 지원합니다. _config.yml에 측정 ID 한 줄이면 gtag.js가 자동 삽입됩니다.

analytics:
  google:
    id: G-HRWXK11B6L

별도 코드 삽입이나 태그 관리 없이, 페이지뷰·스크롤 90% 도달·이탈 클릭 같은 기본 이벤트가 자동 수집됩니다.

정리

항목BeforeAfter
도메인idean3885.github.ioblog.idean.me
GSC 사이트맵2개월 “읽을 수 없음”즉시 성공
분석 도구GSC만GSC + GA4
비용무료연 ~$16 (도메인)

2개월간 기술적 원인을 파고들었지만 답은 도메인에 있었습니다. 무료에 집착하기보다 연 $16으로 문제를 해소하고, 같은 시점에 GA4까지 도입하여 데이터 기반을 갖추게 되었습니다.

이 글은 Claude와 함께 작업했습니다.

This post is licensed under CC BY 4.0 by the author.