SEO

301 리다이렉트

301 Redirect(301 리다이렉트)는 웹 페이지의 URL이 영구적으로 새로운 주소로 이동했음을 브라우저와 검색 엔진에 알리는 HTTP 상태 코드(301 Moved Permanently)입니다. 기존 URL로 유입되는 사용자와 검색 엔진 크롤러를 자동으로 새 URL로 안내하며, 기존 페이지가 보유한 링크 자산(link equity)을 새 URL로 이전하는 역할을 합니다.

301 Redirect(301 리다이렉트)는 웹 페이지의 URL이 영구적으로 새로운 주소로 이동했음을 브라우저와 검색 엔진에 알리는 HTTP 상태 코드(301 Moved Permanently)입니다. 기존 URL로 유입되는 사용자와 검색 엔진 크롤러를 자동으로 새 URL로 안내하며, 기존 페이지가 보유한 링크 자산(link equity)을 새 URL로 이전하는 역할을 합니다.

왜 중요한가

검색 엔진은 페이지의 순위를 결정할 때 해당 페이지를 가리키는 백링크의 수와 품질을 핵심 지표로 활용합니다. URL을 변경하면서 301 리다이렉트를 설정하지 않으면, 기존 URL이 축적해 온 모든 링크 자산이 소멸되어 검색 순위가 급락할 수 있습니다. Moz와 Ahrefs의 연구에 따르면, 올바르게 구현된 301 리다이렉트는 기존 페이지 링크 자산의 약 90~99%를 새 URL로 전달합니다. Google의 John Mueller 역시 "301 리다이렉트는 가치를 잃지 않는다(301s don't lose value)"고 공식적으로 확인한 바 있습니다. 따라서 도메인 이전, 사이트 리뉴얼, URL 구조 변경 등 영구적인 URL 변경이 발생할 때 301 리다이렉트는 SEO 관점에서 반드시 설정해야 하는 항목입니다.

301 vs 302 차이

구분301 (Moved Permanently)302 (Found / Temporary)
의미URL이 영구적으로 이동URL이 일시적으로 이동
링크 자산 이전새 URL로 90~99% 전달원래 URL에 잔류하며 새 URL로 이전되지 않음
검색 인덱스시간이 지나면 기존 URL이 인덱스에서 제거되고 새 URL로 대체기존 URL이 인덱스에 유지
브라우저 캐싱영구적으로 캐싱됨매 요청마다 원래 URL을 재확인
사용 예시도메인 변경, URL 구조 개편, HTTP→HTTPS 전환A/B 테스트, 점검 페이지, 계절성 프로모션

Google은 기술적으로 301과 302 모두 처리할 수 있다고 밝혔지만, 영구적인 변경에 302를 사용하면 검색 엔진이 원래 URL을 계속 크롤링하게 되어 크롤링 예산(crawl budget)이 낭비되고, 링크 자산이 의도한 대로 이전되지 않을 수 있습니다. 반드시 상황에 맞는 코드를 선택하는 것이 중요합니다.

설정 방법

Apache (.htaccess)

Redirect 301 /old-page https://www.example.com/new-page

Nginx (nginx.conf)

server {
    location /old-page {
        return 301 https://www.example.com/new-page;
    }
}

Next.js (next.config.js)

module.exports = {
  async redirects() {
    return [
      {
        source: '/old-page',
        destination: '/new-page',
        permanent: true, // 301
      },
    ];
  },
};

설정 후에는 반드시 Google Search Console의 URL 검사 도구를 사용하여 리다이렉트가 올바르게 작동하는지, 새 URL이 정상적으로 인덱싱되는지 확인해야 합니다. 또한 리다이렉트는 최소 1년 이상 활성 상태를 유지하는 것이 권장됩니다.

자주 하는 실수

  1. 리다이렉트 체인(Redirect Chain): A→B→C처럼 여러 단계의 리다이렉트를 거치면 각 단계마다 링크 자산이 소실되고, 페이지 로딩 속도도 느려집니다. 가능한 한 A→C로 직접 연결해야 합니다.
  2. 무한 리다이렉트 루프: A→B, B→A처럼 서로를 가리키는 설정은 브라우저에서 "리다이렉트 횟수가 너무 많습니다(ERR_TOO_MANY_REDIRECTS)" 오류를 발생시킵니다. 설정 후 반드시 테스트가 필요합니다.
  3. 관련 없는 페이지로 리다이렉트: 기존 페이지와 내용이 전혀 다른 페이지로 301 리다이렉트를 설정하면, Google이 이를 소프트 404(soft 404)로 판단하여 링크 자산을 전달하지 않습니다. 반드시 내용이 유사하거나 동일한 1:1 대응 URL로 연결해야 합니다.
  4. 302를 301 대신 사용: 영구적인 URL 변경에 302를 사용하면 검색 엔진이 기존 URL을 계속 크롤링하며, 링크 자산이 새 URL로 이전되지 않습니다.
  5. 브라우저 캐시 미고려: 301 리다이렉트는 브라우저에 영구적으로 캐싱됩니다. 잘못 설정한 301을 되돌리더라도 사용자의 브라우저에는 이전 설정이 남아 있을 수 있으므로, 신중하게 적용해야 합니다. 필요 시 Cache-Control: no-cache 헤더를 함께 설정하는 것이 안전합니다.

관련 인블로그 게시물

inblog에서 활용하기

inblog 대시보드의 리다이렉트 관리 기능에서 308(영구, 301과 동치) 및 307(임시) 리다이렉트를 코드 작성 없이 설정할 수 있습니다.