개발 slecs

블로그 서브도메인 통합과 301 리다이렉트로 URL 단절 방지

목차

개인 블로그의 정보 아키텍처를 정리하면서 6개의 포스트를 blog.hedvion 도메인에서 www/insights 경로로 옮겼다. 이 과정에서 nginx 설정에 301 리다이렉트 규칙들을 추가해 기존 링크들이 깨지지 않도록 처리했는데, 단순해 보이는 작업이지만 안고 있는 배경과 고려사항들이 생각보다 많더라.

왜 블로그 도메인을 통합했나

처음엔 블로그 섹션을 별도 서브도메인(blog.hedvion)으로 분리했었다. 초기에는 명확해 보였다 — 블로그는 블로그, 메인은 메인. 하지만 시간이 지나면서 불편함이 생겼다. 내 사이드 프로젝트 소개와 블로그 글이 사실상 같은 맥락이고, 방문자 입장에서도 두 도메인을 오갔어야 했다. 결국 통합하기로 결정했고, 기존 포스트들을 메인 도메인 아래 /insights 경로로 정리하는 게 자연스럽다고 판단했다.

이건 팀 프로젝트였다면 더 신중하게 했을 텐데, 내 사이드 프로젝트라 해도 온라인에 공개된 콘텐츠다. 검색 엔진에 이미 인덱싱된 URL들이 있을 가능성이 크다. 그래서 단순히 파일을 옮기는 게 아니라 이전 경로들을 추적하고 새 위치로 인도하는 메커니즘이 필수였다.

301 리다이렉트: SEO와 사용자 경험을 모두 챙기기

HTTP 301은 "영구 이동(Moved Permanently)"을 뜻한다. 검색 엔진들은 이 상태 코드를 보고 "아, 이 페이지는 이제 저기에 있구나"라고 인식한다. 그리고 시간이 지나면서 기존 URL의 SEO 가중치를 새로운 URL로 이전시킨다. 302(임시 이동)를 쓰면 검색 엔진이 원래 URL을 계속 중요하게 여겨서, 여러 URL이 중복으로 인덱싱될 수 있다.

사용자 경험 관점에서도 중요하다. 예전에 SNS나 다른 블로그에서 공유된 링크를 누른 방문자들이 404 에러를 마주치는 건 최악이다. 301 리다이렉트를 제대로 설정하면 그 사람들이 자동으로 새 위치로 이동되어서 콘텐츠를 볼 수 있다.

nginx에서 이걸 구현하려면:

# blog.hedvion.com.conf
server {
    server_name blog.hedvion;
    # 블로그 도메인 하의 모든 요청을
    # www.hedvion/insights로 영구 이동
    location / {
        return 301 http://www.hedvion/insights$request_uri;
    }
}

더 정교하게는 특정 포스트 URL만 매핑하려면:

location ~ ^/posts/([a-z-]+)/?$ {
    return 301 http://www.hedvion/insights/$1;
}

이런 식으로 6개 포스트를 추적했다. 물론 모든 포스트마다 일일이 규칙을 쓸 수도 있지만, 패턴이 명확하면 정규식으로 일괄 처리하는 게 유지보수하기 쉽다.

마이그레이션 작업의 체크리스트

이번 작업을 하면서 깨달은 건, 단순한 파일 이동이 아니라 꽤 여러 레이어를 신경써야 한다는 것.

  • DNS & 도메인: 기존 blog.hedvion 도메인이 계속 동작하는가? (유지할 필요는 없지만, 최소 몇 주간은 리다이렉트할 수 있도록)
  • 웹 서버 설정: nginx/apache에서 정확한 상태 코드와 경로로 리다이렉트하는가?
  • SEO 추적: Google Search Console이나 Analytics에서 리다이렉트가 정상 동작하는지 모니터링
  • 내부 링크: 블로그 내 글들이 서로 링크할 때, 기존 상대경로가 깨지지 않는가?
  • RSS 피드: 구독자들이 있다면, 피드 URL도 업데이트되었는가?

회고: 작은 프로젝트에서 배운 베스트 프랙티스

이 작은 마이그레이션이 주는 교훈:

  1. 변화는 추적해야 한다 — 아무리 작은 사이드 프로젝트라도 URL이 공개되면 어디선가 참조될 수 있다. 무책임하게 404를 반환하는 것보다 리다이렉트로 사용자를 배려하자.

  2. 설정 코드도 유지보수의 대상 — nginx 설정처럼 "한 번 쓰면 끝"인 것처럼 보이는 것도 주기적으로 검토할 가치가 있다. 이번 기회에 모든 리다이렉트 규칙을 한 파일로 정리하고 주석을 달았다.

  3. 조직이 작을수록 더 엄밀해야 한다 — 팀이 있으면 코드 리뷰가 있고, 문서가 있고, 체크리스트가 있다. 혼자서 개인 프로젝트를 할 때는 그런 장치가 없어서, 오히려 더 신중하게 임해야 한다.

이제 몇 주일 뒤에 Google Search Console에서 리다이렉트 상태를 확인해보고, 검색 결과에 새 URL이 반영되는지 살펴볼 차례다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.