302 리다이렉트는 요청한 페이지나 파일이 일시적으로 다른 URL에 있음을 알리는 HTTP 응답입니다. 브라우저는 응답의 Location 헤더에 적힌 주소로 이동합니다. Google은 이를 임시 이동으로 해석하므로 검색결과에는 원래 URL을 유지할 수 있습니다.
301과 302의 차이
리디렉션을 설정할 때는 원래 주소로 돌아올 계획이 있는지부터 정합니다. 주소를 완전히 바꾸면 영구 이동, 일정 기간 뒤 되돌리면 임시 이동에 해당합니다.
| 구분 | 상태 코드 | Google의 대표 URL 판단 |
|---|---|---|
| 영구 이동 | 301, 308 | 새 주소를 대표 URL로 선택하라는 강한 신호 |
| 임시 이동 | 302, 307 | 대표 URL 선택에 쓰는 약한 신호. 원래 주소가 검색결과에 남을 수 있음 |
302가 원래 주소의 유지를 보장하지는 않습니다. Google은 리디렉션 외에 canonical과 내부 링크 등도 고려해 대표 URL을 선택하므로 다른 신호에 따라 새 주소를 대표로 고를 수 있습니다.
302가 맞는 경우
원래 페이지를 다시 열 예정이라면 다음과 같은 상황에서 302를 사용할 수 있습니다.
- 서비스를 잠시 중단해 별도의 안내 페이지로 보낼 때
- 기간이 정해진 이벤트 페이지로 임시로 보낼 때
- A안과 B안을 시험하는 동안 잠시 트래픽을 나눌 때
일시 품절 상품은 리디렉션부터 설정할 일이 아닙니다. Google은 상품 페이지를 유지하고 품절 상태를 표시하도록 안내합니다. 페이지는 그대로 제공하면서 구매만 제한할 수 있다면 방문자를 다른 주소로 보낼 필요가 없습니다.
사이트 이전, URL 체계 변경, HTTPS 전환처럼 새 주소를 계속 쓸 때는 영구 리디렉션을 설정합니다. 이런 이동에 302를 쓰면 검색엔진이 기존 URL을 대표로 유지해 새 주소 반영이 늦어질 수 있습니다.
의도치 않은 302 점검법
서버나 플랫폼의 기본 설정 때문에 영구 이동한 URL에서도 302가 나올 수 있습니다. 브라우저 개발자 도구의 네트워크 탭에서 원래 URL의 응답 코드와 Location 헤더를 확인합니다. 도착한 페이지의 200 응답만 보면 중간의 302를 놓칠 수 있습니다.
영구 이동이 맞다면 301이나 308로 고칩니다. 이후 URL 검사에서 Google이 어느 URL을 대표로 선택했는지 확인합니다. 현재 서버 응답과 Google의 색인 결과는 갱신 시점이 다를 수 있으므로 각각 점검합니다.
임시 이동과 영구 이동 예시
쇼핑몰이 /summer-event를 사흘 동안 닫고 /event-notice에서 재개 일정을 안내한다면 302를 쓸 수 있습니다. 행사가 시작되면 원래 URL을 다시 열 계획이기 때문입니다.
/old-service를 폐지하고 내용을 /new-service로 완전히 옮겼다면 301이나 308을 설정합니다. 기존 주소를 다시 쓸 계획이 없으므로 영구 이동으로 알려야 합니다.
자주 묻는 질문
302를 쓰면 링크 평가가 전달되지 않나요?
Google의 John Mueller는 2022년 공식 팟캐스트에서 301과 302 중 어느 쪽을 쓰느냐 때문에 PageRank가 사라지는 것은 아니라고 설명했습니다. 신호가 원래 URL에 남는지 새 URL에 모이는지의 차이로 설명한 것입니다. 원래 주소를 다시 쓸 계획이라면 302, 새 주소를 계속 쓸 계획이라면 301이나 308을 선택합니다.
302와 307은 무엇이 다른가요?
둘 다 임시 이동이지만 요청 메서드 처리에 차이가 있습니다. 302에서는 브라우저가 POST 요청을 GET으로 바꿀 수 있고, 307에서는 원래 메서드를 유지해야 합니다. 전송한 요청을 같은 메서드로 다시 보내야 한다면 307을 검토합니다.
임시 이동이 끝나면 무엇을 해야 하나요?
302 설정을 해제하고 원래 URL이 정상 페이지로 응답하는지 확인합니다. 다른 페이지로 안내한 기간이 길었다면 서치콘솔에서 원래 URL의 색인 상태도 확인하세요.
함께 알아두면 좋은 용어
- 301 리디렉션: 영구 이동을 알리는 응답
- 리디렉션: URL 이동 처리 전반
- HTTP 상태 코드: 서버 응답을 알려주는 숫자 코드
- 캐노니컬 태그: 대표 URL을 알리는 태그