← 전체 글로 돌아가기

Next.js

개인 도메인을 바꿀 때 SEO에서 놓치기 쉬운 것들

도메인을 이전하면 기술적인 301 리다이렉트 외에도 검색 엔진 입장에서 꼼꼼히 챙겨야 할 것들이 생각보다 많다.

도메인을 바꿨다. 기존 도메인에서 새 도메인으로. 기술적으로는 별거 없다고 생각했는데, 막상 마이그레이션을 마치고 나서 보니 놓친 게 꽤 있었다.

리다이렉트만 하면 끝이 아니다

가장 흔한 착각이다. Nginx나 CDN 설정에서 301 리다이렉트를 걸었으니 됐다고 생각하기 쉽다. 그런데 검색 엔진 입장에서는 리다이렉트가 설정됐다고 해서 바로 새 URL로 인덱스를 옮겨주지 않는다. 시간이 걸린다. 그리고 그 사이에 canonical 태그가 새 도메인을 제대로 가리키지 않으면 혼선이 생긴다.

# 새 도메인 배포 후 바로 확인할 것
curl -s https://newdomain.com/some-post | grep -Ei 'canonical|og:url'

<link rel="canonical" href="https://newdomain.com/..." />og:url이 둘 다 새 도메인을 가리켜야 한다. Next.js의 metadata.alternates.canonical이나 openGraph.url을 빠뜨리면 OG 카드가 계속 옛날 URL을 참조한다.

sitemap.xml과 robots.txt

sitemap의 URL이 새 도메인으로 업데이트됐는지 확인한다. 코드 안에 baseUrl을 하드코딩해둔 경우 환경 변수로 빼지 않으면 그대로 구 도메인이 남아 있다.

curl https://newdomain.com/sitemap.xml | grep '<loc>' | head -5

robots.txt의 Sitemap: 줄도 새 주소로 바꿔야 한다. 작은 것처럼 보이지만 Googlebot이 sitemap 위치를 참조한다.

Google Search Console 재등록

Google Search Console에서 새 도메인을 속성으로 추가하고, 소유권 확인을 마친 뒤 주소 변경(Address Change) 도구를 쓰는 게 정석이다. 이 도구를 쓰면 구 도메인의 인덱스를 새 도메인으로 이전하겠다는 신호를 Google에 명시적으로 보낼 수 있다.

  1. 새 도메인 속성 추가 및 소유권 확인
  2. 구 도메인 속성 → 설정 → 주소 변경
  3. 새 sitemap 제출

RSS 피드 URL

블로그라면 RSS 피드가 있을 텐데, 피드 안의 <link><item> URL도 새 도메인을 가리켜야 한다. 구독자 클라이언트가 글 링크를 구 도메인으로 기억하면 리다이렉트를 타게 된다. 직접적인 SEO 문제는 아니지만, 피드 정합성 차원에서 맞춰두는 게 낫다.

구 도메인 유지 기간

301 리다이렉트가 살아 있어야 Google이 링크 주스를 새 도메인으로 넘겨준다. 구 도메인을 너무 빨리 내리면 외부 링크 전체가 404로 죽는다. 최소 6개월 이상 리다이렉트를 유지하는 것을 권장한다.

도메인 변경은 단순한 설정 교체가 아니라 검색 엔진에게 "나 이사했어"를 설득하는 과정이다. 리다이렉트 한 줄로 끝나지 않는다는 걸 이번에 다시 확인했다.