HTTP 301 Moved Permanently
영구 리디렉션: 리소스가 새 URL로 이동했으며 모두가 링크를 업데이트해야 합니다.
HTTP 301의 의미
HTTP 301 Moved Permanently는 요청한 URL이 Location 헤더에 있는 URL로 영구적으로 대체되었음을 클라이언트에 알립니다. 브라우저는 이를 자동으로 따라가며 적극적으로 캐시하고, 검색 엔진은 시간이 지남에 따라 이전 URL의 순위 신호를 새 URL로 이전합니다.
한 가지 주의할 점은, 301은 리다이렉트된 요청에서 클라이언트가 POST를 GET으로 변경하도록 허용한다는 것입니다. 메서드와 본문을 그대로 유지해야 한다면 대신 308 Permanent Redirect를 사용하세요.
301 응답이 발생하는 일반적인 원인
- 사이트가 새 도메인으로 이전했거나 http://에서 https://로 전환한 경우입니다.
- URL 구조가 변경되어(슬러그 이름 변경, 폴더 제거) 이전 경로가 새 경로로 리다이렉트되는 경우입니다.
- www / non-www 또는 트레일링 슬래시 정규화가 서버에서 강제되는 경우입니다.
- 여러 번의 마이그레이션을 거치며 여러 개의 301이 연결된 리다이렉트 체인입니다.
개발자를 위한 모범 사례
- 최종 URL로 한 번에 리다이렉트하세요. 301이 연쇄적으로 이어지는 체인은 크롤링 예산을 낭비하고 사용자 속도를 저하시킵니다.
- 브라우저는 301을 오랫동안 캐시하므로 배포 전에 대상 URL을 다시 한번 확인하세요. 잘못된 301을 되돌리려면 사용자가 캐시를 강제로 지워야 합니다.
- 검색 엔진이 신호를 완전히 이전할 수 있도록 마이그레이션 이후 최소 1년 동안은 영구 리다이렉트를 유지하세요.
응답 예시
HTTP/1.1 301 Moved Permanently Location: https://example.com/new-path/ Cache-Control: max-age=31536000
SEO 영향
301은 SEO 마이그레이션의 핵심 도구입니다. 대상 URL로 대부분의 링크 자산을 전달하고 검색 엔진에 새 주소를 색인하도록 알립니다. 영구적인 URL 변경에는 항상 301을 사용하고, 모든 페이지를 홈페이지로 리다이렉트하는 것은 피하세요. 각 이전 URL은 가장 유사한 새 URL로 리다이렉트해야 합니다.
자주 묻는 질문
301 리다이렉트는 페이지랭크를 전달하나요?
예. Google은 301(및 302) 리다이렉트가 순위 신호를 대상 URL로 전달한다고 공식적으로 확인했지만, 신호 통합에는 시간이 걸립니다.
301과 302의 차이는 무엇인가요?
301은 영구적입니다. 캐시와 검색 엔진이 새 URL로 갱신됩니다. 302는 일시적이며, 원래 URL이 정규 URL로 유지됩니다.
301과 308의 차이는 무엇인가요?
둘 다 영구적이지만, 308은 HTTP 메서드 변경을 금지합니다. 즉 POST는 그대로 POST로 유지됩니다. 301은 클라이언트가 GET으로 전환하는 것을 허용합니다.