사이트 주소를 바꿨더니 검색·링크가 다 날아갔어요 — 301의 정체
도메인을 옮기거나 URL 구조를 바꾼 뒤 검색 유입과 순위가 사라지는 이유는 예전 주소가 새 주소로 연결되지 않았기 때문입니다. 301(영구 이동)과 302(임시)의 차이, 옛 링크의 신뢰도를 새 주소로 넘기는 리다이렉트 설정법을 정리했습니다.
내 얘기: 리뉴얼 이후 방문자가 뚝 끊겼다
사이트를 새로 단장하면서 도메인을 바꾸거나, 게시판 주소 구조를 손봤습니다. 새 사이트는 깔끔하고 잘 나오는데, 며칠 뒤 방문자 통계를 보니 검색 유입이 절벽처럼 떨어졌습니다. 예전에 잘 나오던 글을 검색해 보면, 클릭했을 때 "페이지를 찾을 수 없음(404)"이 뜹니다.
문제는 새 사이트가 아니라 "옛 주소"입니다. 검색엔진에 쌓여 있던 색인, 다른 사이트가 걸어 둔 링크, 즐겨찾기 — 이 모든 것이 여전히 옛 주소를 가리키는데, 그 주소가 사라졌으니 전부 막다른 길이 된 것입니다. 옛 주소를 새 주소로 이어 주기만 하면 대부분 회복됩니다.
301과 302, 이 숫자가 신뢰도를 좌우한다
주소를 다른 주소로 넘기는 것을 리다이렉트(redirect)라고 합니다. 그런데 검색엔진에게는 "영구히 옮겼다"와 "잠깐만 다른 데로 보낸다"가 완전히 다른 의미입니다. 이걸 알려 주는 것이 상태 코드입니다.
301(Moved Permanently)은 "이 주소는 영구히 새 주소로 바뀌었다"는 뜻입니다. 검색엔진은 이 신호를 받으면 옛 주소가 쌓아 온 신뢰도(링크 가치)를 새 주소로 넘기고, 색인도 새 주소로 갱신합니다. 반면 302(Found·임시)는 "원래 주소는 그대로 두고 잠깐만 딴 데로 보낸다"는 뜻이라, 신뢰도가 넘어가지 않고 옛 주소가 계속 색인에 남습니다. 이사를 갔으면 반드시 301을 써야 합니다.
| 상태 코드 | 의미 | 신뢰도 이전 | 이럴 때 |
|---|---|---|---|
| 301 | 영구 이동 | 새 주소로 넘어감 | 도메인·URL 영구 변경 |
| 302 | 임시 이동 | 넘어가지 않음 | 점검 페이지·일시 우회 |
| 404 | 없음 | 해당 없음(링크 소멸) | 리다이렉트를 안 걸었을 때 |
옛 주소를 새 주소로 잇는 법
핵심은 "예전에 있던 모든 주소"를 "대응하는 새 주소"로 1:1 연결하는 규칙을 서버에 넣는 것입니다. 웹서버 종류(Nginx·Apache)에 따라 문법이 다르지만 원리는 같습니다. 옛 경로를 만나면 301 상태로 새 경로를 돌려주는 것이죠.
주소가 몇 개 안 되면 손으로 쓰면 되지만, 수십·수백 개면 실수하기 쉽습니다. 옛 주소와 새 주소를 짝지어 넣으면 서버 설정 문법(Nginx location, Apache RewriteRule 등)을 자동으로 만들어 주는 도구를 쓰면 빠르고 정확합니다.
옮긴 뒤 확인할 것
리다이렉트를 걸었다면 아래를 점검하세요.
- 대표적인 옛 주소 몇 개를 브라우저에 넣어 새 주소로 잘 넘어가는지 확인
- 개발자도구 네트워크 탭에서 상태가 302가 아니라 301인지 확인
- 리다이렉트가 두세 번 연쇄로 일어나지 않는지(체인 최소화)
- 새 사이트의 사이트맵을 갱신하고 검색엔진에 재제출
- 옛 도메인을 유지 중이면 옛 도메인 전체를 새 도메인으로 301
자주 묻는 질문
301을 걸면 검색 순위가 그대로 유지되나요?
대부분의 신뢰도가 새 주소로 넘어가지만, 이전 직후 잠시 순위가 출렁일 수 있습니다. 검색엔진이 새 주소를 다시 크롤링·색인하는 데 시간이 걸리기 때문입니다. 1:1로 정확히 매핑하고 사이트맵을 재제출하면 보통 몇 주 안에 회복됩니다.
옛 도메인은 언제까지 유지해야 하나요?
가능하면 최소 1년 이상 유지하며 301을 걸어 두는 것이 안전합니다. 다른 사이트의 링크와 검색 색인이 새 주소로 완전히 옮겨가는 데 시간이 걸리기 때문입니다. 도메인을 놓아 버리면 남아 있던 링크 자산도 함께 사라집니다.
302를 써도 사용자는 똑같이 새 페이지로 가는데 왜 문제인가요?
사용자 입장에선 차이가 없지만, 검색엔진은 302를 "임시"로 보아 옛 주소를 색인에 계속 유지하고 신뢰도를 넘기지 않습니다. 영구 이전인데 302를 쓰면 검색 자산이 옛 주소에 묶여 새 주소가 좀처럼 뜨지 않습니다.