/ 인사이트 / 사이트 이전·리뉴얼 301
검색·AI 심화

사이트를 옮길 때, 검색 순위는 안 잃기.

도메인을 바꾸거나 사이트를 리뉴얼하면 주소가 전부 달라집니다. 이때 기존 페이지가 쌓아온 검색 평가는 자동으로 따라오지 않습니다. 301 영구 리다이렉트로 옛 주소와 새 주소를 1:1로 이어줘야 순위·트래픽이 보존됩니다. 가장 흔한 실수는 “일단 전부 홈으로” 보내는 것 — 그 순간 자산이 증발합니다.

한 줄 직답

사이트 이전에서 검색 자산을 지키는 핵심은 ‘옛 URL → 새 URL’을 301로 1:1 매핑하고, 새 sitemap을 재제출하고, 내부 링크를 새 주소로 갱신한 뒤 색인·트래픽을 점진적으로 모니터링하는 것입니다. 모든 옛 페이지를 홈으로 몰아 보내는 것은 평가를 버리는 가장 흔한 실수입니다.

요약

  • 도메인·URL이 바뀌면 검색 평가는 자동 이전되지 않는다 — 301로 직접 이어줘야 한다.
  • 핵심은 1:1 매핑. 옛 페이지 하나하나를 가장 관련 있는 새 페이지로 보낸다.
  • 전부 홈(/)으로 리다이렉트하면 soft 404로 취급돼 순위가 사라진다.
  • 새 sitemap 재제출 + 내부링크 갱신 + 수 주간 색인 모니터링까지가 한 세트다.

리뉴얼이 끝나고 새 사이트를 띄운 다음 날, 트래픽 그래프가 절벽처럼 떨어지는 화면을 본 적 있으신가요. 디자인은 더 좋아졌고 속도도 빨라졌는데, 검색 유입만 사라집니다. 원인은 거의 항상 같습니다. 주소가 바뀌었는데 옛 주소를 새 주소로 이어주지 않은 것. 검색엔진 입장에서는 평가하던 페이지가 통째로 사라진 셈이라, 쌓아둔 순위도 함께 내려놓습니다.

왜 사이트를 옮기면 순위가 날아가나요?

검색엔진은 ‘페이지’가 아니라 ‘URL’을 평가합니다. /blog/old-slug가 몇 년에 걸쳐 모은 링크·신뢰·랭킹 신호는 그 주소에 묶여 있습니다. 도메인을 바꾸거나 URL 구조를 갈아엎으면 그 주소가 더 이상 존재하지 않으므로, 엔진은 새 주소를 ‘처음 보는 페이지’로 다시 평가하기 시작합니다. 그 사이 순위는 비어버립니다. 301은 “이 주소는 영구히 저기로 옮겨갔다”고 엔진에 명시해, 옛 주소의 평가를 새 주소로 넘기게 하는 유일하게 안정적인 방법입니다.

301과 302, 무엇을 써야 하나요?

이전에는 반드시 301(영구 이전)입니다. 302는 ‘임시 이전’으로 해석돼 검색엔진이 옛 URL을 색인에 계속 남겨둡니다. 잠깐 점검 페이지로 돌릴 때나 A/B 테스트처럼 정말 임시일 때만 302를 씁니다. 도메인 변경·리뉴얼은 영구적인 변화이므로 302를 쓰면 평가가 새 주소로 넘어가지 않아 손해를 봅니다.

핵심은 ‘1:1 매핑’ — 어떻게 만드나요?

이전의 절반은 매핑표 작성입니다. 옛 사이트의 모든 URL을 뽑아(크롤러나 기존 sitemap·로그에서) 각각 새 사이트에서 가장 가까운 페이지로 연결합니다. 1:1이 원칙입니다. 대응되는 페이지가 사라졌다면 홈이 아니라 ‘가장 가까운 상위·카테고리 페이지’로 보냅니다.

직접 해보기 · Live

301 리다이렉트 규칙 — 복사

정적 호스팅 _redirects 예시(1:1 매핑).

# _redirects (Cloudflare Pages / Netlify)
/old-page        /new-page        301
/blog/old-slug   /insights/new    301
/products/:id    /shop/:id        301
# 주의: 전부 홈(/)으로 보내지 말 것 — 1:1 매핑

위는 Cloudflare Pages·Netlify의 _redirects 파일 문법입니다. 정적 매핑(/old-page → /new-page)과 패턴 매핑(/products/:id → /shop/:id)을 함께 쓸 수 있습니다. Apache는 .htaccessRewriteRule … [R=301,L], Nginx는 return 301으로 같은 일을 합니다. 환경마다 문법이 다르니 본인 호스팅 문서를 한 번 확인하세요.

가장 흔한 실수 — “일단 전부 홈으로”

시간이 없다는 이유로 옛 URL을 모조리 /로 보내는 경우가 많습니다. 이게 최악입니다. 검색엔진은 ‘내용이 다른 페이지를 홈으로 몰아 보내는 것’을 soft 404에 가깝게 취급해 평가를 넘기지 않습니다. 결과적으로 리다이렉트는 걸려 있는데 순위는 그대로 사라집니다. 번거롭더라도 1:1 매핑이 정답입니다.

새 sitemap은 어떻게 재제출하나요?

새 URL만 담은 sitemap.xml을 만들어 Google Search Console네이버 서치어드바이저에 재제출합니다. 옛 URL은 sitemap에서 빼되 리다이렉트는 살려둡니다 — 그래야 엔진이 “옛 주소는 사라졌고, 여기 새 주소가 있다”를 동시에 파악합니다. Search Console에는 ‘주소 변경(Change of Address)’ 도구가 따로 있어 도메인 통째로 옮길 때 함께 쓰면 인식이 빨라집니다.

내부 링크와 모니터링은요?

본문·메뉴·푸터·이미지 경로의 내부 링크를 전부 새 URL로 직접 갱신합니다. 내부 링크가 옛 주소를 가리키면 클릭마다 리다이렉트가 한 번 더 일어나 느려지고 크롤 예산도 낭비됩니다. 리다이렉트는 어디까지나 외부 유입을 받는 안전망으로만 남깁니다. 이전 직후에는 색인 수·트래픽·검색어 순위를 수 주간 점진적으로 모니터링하면서, 누락된 매핑이나 깨진 리다이렉트가 없는지 확인합니다.

항목막 이전(전부 홈으로)301 1:1 매핑 이전
검색 순위평가 미전달 → 순위 증발옛 평가가 새 URL로 보존
옛 URL 접속홈으로 → soft 404 취급정확한 새 페이지로 도착
트래픽이전 직후 급락·미회복일시 변동 후 수 주 내 회복

제가 이전 프로젝트에서 가장 먼저 챙기는 건 호스팅별 리다이렉트 문법입니다. 정적 호스팅이 아니라면 서버 설정 파일에 직접 규칙을 적어야 하는데, Apache·Nginx 두 환경의 1:1 매핑을 같은 모양으로 정리해 둡니다.

서버 설정 · 301 1:1 매핑(Apache / Nginx)
# Apache (.htaccess) — 영구 이전
RewriteEngine On
RewriteRule ^blog/old-slug$   /insights/new   [R=301,L]
RewriteRule ^products/([0-9]+)$  /shop/$1       [R=301,L]

# Nginx (server 블록) — 영구 이전
location = /blog/old-slug   { return 301 /insights/new; }
location ~ ^/products/(\d+)$ { return 301 /shop/$1; }
# 금지: location / { return 301 /; }  ← 전부 홈으로(soft 404)

Apache는 .htaccess, Nginx는 server 블록에 넣고 재적용하면 됩니다. 두 환경 모두 ‘옛 경로 → 정확한 새 경로’로 1:1을 지키는 게 핵심입니다.

매핑표를 짤 때 저는 옛 URL의 ‘상태’를 먼저 분류합니다. 대응 페이지가 있는지, 사라졌는지, 통합됐는지에 따라 보낼 곳과 코드가 달라지기 때문입니다.

옛 URL 상태별 매핑 결정표
옛 URL 상태보낼 곳상태코드이유
똑같은 내용이 새 주소에 있음대응 새 URL(1:1)301평가를 그대로 새 주소로 승계
대응 페이지가 사라짐가장 가까운 상위·카테고리301홈 몰아보내기(soft 404) 회피
여러 옛 글이 하나로 통합됨통합된 새 글 하나301분산된 신호를 한 곳으로 합침
완전히 폐기·재생성 안 함해당 URL 자체410의도된 영구 삭제임을 명시
점검·A/B 등 임시 이동임시 대상302임시임을 알려 옛 색인 유지

대부분은 301로 끝나지만, 진짜 폐기한 페이지까지 301로 돌리면 평가를 엉뚱한 곳으로 흘려보내게 됩니다. 그래서 410·302를 분리해 적는 표가 실수를 막아 줍니다.

요약하면, 이전은 ‘옮기는 일’이 아니라 ‘잇는 일’

사이트 이전의 본질은 파일을 새 서버에 올리는 게 아니라, 옛 주소가 쌓은 검색 자산을 새 주소로 끊김 없이 잇는 일입니다. 301 1:1 매핑, sitemap 재제출, 내부링크 갱신, 점진 모니터링 — 이 네 가지가 한 세트입니다. Findable은 리뉴얼·도메인 이전 프로젝트에서 이 매핑표를 먼저 만들고 출시합니다. 순위를 잃지 않는 이전, 같이 설계해 드릴까요?

301과 302 리다이렉트는 무엇이 다른가요?
301은 ‘영구 이전’이고 302는 ‘임시 이전’입니다. 도메인이나 URL을 완전히 바꿀 때는 반드시 301을 써야 검색엔진이 기존 페이지의 평가(랭킹 신호)를 새 주소로 넘깁니다. 302는 임시로 해석돼 기존 URL이 색인에 계속 남으므로 이전에는 적합하지 않습니다.
옛 페이지를 전부 홈으로 리다이렉트해도 되나요?
안 됩니다. 검색엔진은 내용이 다른 페이지를 홈으로 몰아 보내는 것을 ‘soft 404’에 가깝게 취급해 평가를 넘기지 않습니다. 옛 URL은 가장 관련 있는 새 URL로 1:1 매핑해야 순위와 트래픽이 보존됩니다. 대응 페이지가 사라졌다면 가장 가까운 카테고리·상위 페이지로 보냅니다.
리다이렉트 후 sitemap은 어떻게 하나요?
새 URL만 담은 sitemap.xml을 만들어 Google Search Console·네이버 서치어드바이저에 재제출합니다. 옛 URL은 sitemap에서 빼되, 리다이렉트는 살려둬야 검색엔진이 이전을 인식하고 색인을 갱신합니다.
이전 후 순위가 잠깐 흔들리는 건 정상인가요?
네, 대규모 이전 직후 일시적 변동은 흔합니다. 검색엔진이 새 구조를 다시 크롤링·평가하는 데 시간이 걸리기 때문입니다. 301이 정확히 1:1로 걸려 있고 내부링크·sitemap이 갱신돼 있으면 보통 수 주 내에 회복합니다. 그동안 색인·트래픽을 모니터링합니다.
내부 링크도 꼭 바꿔야 하나요?
바꿔야 합니다. 내부 링크가 옛 URL을 가리키면 매 클릭마다 리다이렉트가 한 번 더 일어나 속도가 느려지고, 크롤 예산도 낭비됩니다. 본문·메뉴·푸터의 링크를 새 URL로 직접 갱신해 리다이렉트는 외부 유입을 받는 안전망으로만 남깁니다.

순위를 잃지 않는 이전, 설계해 드립니다

리뉴얼이나 도메인 이전을 앞두고 있다면, 매핑표부터 시작하세요. 무료 진단으로 현재 URL 자산을 점검해 드립니다.

무료 진단 받기

리다이렉트 문법은 호스팅 환경(Cloudflare Pages·Netlify·Apache·Nginx)마다 다르므로 본인 환경 문서를 확인하세요. 회복 기간·순위 변동은 일반 원칙이며 특정 성과를 보장하지 않습니다. 날조된 사례·수치는 사용하지 않았습니다.