301 Redirect 숏코드

301 redirect 에 대해 들어보셨나요 ? 워드프레스 사이트를 운영하는 경우에는 이를 숏코드로 구현할 수 있는데, 301 Redirect 숏코드를 활용해서 구현하는 방법을 정리해 보려고 합니다.

301 Redirect 숏코드란?

우리가 웹사이트를 운영하면서, 때때로 사용자가 특정 페이지를 열었지만 그 페이지가 더 이상 존재하지 않는 경우가 발생할 수 있어요. 검색엔진의 관점에서는 이런 것이 자주 반복되면 사이트에 대한 신뢰도를 낮게 평가할 수 있을 겁니다.

이럴 때 301 리디렉션을 사용하면 방문자를 다른 페이지로 자동으로 안내할 수 있습니다. 301 리디렉션은 현재 방문하려고 하는 URL의 내용이 다른 URL 로 옮겨졌다는 것을 방문자 (검색엔진)에게 알리고 변경된 URL 페이지로 연결해 주는 것을 의미합니다. 이렇게 하면 사용자 경험을 개선하고, 검색 엔진 최적화(SEO)에도 도움을 줄 수 있습니다.

왜 301 Redirect 숏코드가 필요할까요?

301 리디렉션 숏코드의 필요성을 좀 더 깊게 살펴볼까요? 웹사이트 운영자는 다음과 같은 이유로 리디렉션을 설정합니다:

  • 페이지 삭제: 더 이상 사용되지 않는 페이지를 삭제했을 때, 사용자를 홈페이지나 다른 유용한 페이지로 안내할 수 있습니다.
  • URL 변경: 웹사이트 구조나 URL을 변경했을 때, 예전 URL로 접속하더라도 새로운 URL로 자동으로 이동할 수 있게 해줍니다.
  • SEO 최적화: 사용자가 더 이상 존재하지 않는 페이지를 찾을 때 발생할 수 있는 404 오류를 방지하여, 사이트의 신뢰도를 높이고 SEO 점수를 향상시킵니다.

301 Redirect 숏코드 작성 방법

이제 301 리디렉션을 구현할 수 있는 숏코드를 작성해볼까요? 아래 코드가 그 예입니다:


add_action( 'template_redirect', function () {
    $request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
    $request_uri = trim( $request_uri, '/' );

    $blocked_paths = [
        'login',
        'sample-page',
    ];

    if ( in_array( $request_uri, $blocked_paths, true ) ) {
        wp_redirect( home_url( '/' ), 301 );
        exit;
    }
} );

코드 설명하기

이 코드는 아주 간단합니다. 사용자가 요청한 URI를 검사하고, 만약 그 URI가 차단된 경로 ($blocked_path 에 기록된 경로) 중 하나라면 사용자를 홈페이지로 301 리디렉션합니다. 여기서 ‘blocked_paths’ 변수에 추가된 경로는 나중에 더 쉽게 관리할 수 있도록 주석을 달아두는 것이 좋아요.

template_redirect

add_action( ‘template_redirect‘, function () {..} 으로 함수가 시작하고 있지요.

  • template_redirect는 워드프레스가 템플릿 파일을 로드하기 직전에 실행되는 액션 훅(action hook)입니다. ‘액션훅’ 은 워드프레스의 확장성을 위해 워드프레스 소스코드 곳곳에 숨겨져 있으며, 이를 활용에 웹사이트 개발자가 필요한 기능을 추가할 수 있습니다.
  • 즉, 사용자가 어떤 URL로 접근했을 때 워드프레스가 적절한 템플릿(single.php, page.php, archive.php, 404.php 등)을 결정하고 그 파일을 로딩하기 직전에 발생하는 시점입니다.
  • 이 시점에 function() { … } 에 작성된 함수가 실행되도록 한다는 것입니다.
  • template_redirect 액션훅이 워드프레스 페이지가 열기 위해 내부적으로 수행하는 함수 들 목록에서 언제쯤 실행되는 지는 아래와 같이 표시할 수 있습니다.
index.php
  -> wp-blog-header.php
    -> wp-load.php
      -> wp-config.php
        ...
          -> wp()
            -> $wp->main()
              -> parse_request()
              -> query_posts()
              -> handle_404()
              -> template_redirect() //← 바로 여기!
              -> load_template()

add_action() 내에 사용하는 콜백 함수를 분리해서 아래와 같이 코드를 작성해도 됩니다.

function my_custom_redirect_logic() {
    // 리디렉션 로직
}
add_action( 'template_redirect', 'my_custom_redirect_logic' );

기능 상세

  • $_SERVER['REQUEST_URI']에서 요청된 경로를 가져와 슬래시(/)를 제거한 뒤 검사합니다.
  • ‘login’이나 ‘sample-page’라는 페이지에 접근하려 하면, 이 숏코드는 자동으로 사용자를 홈페이지로 리디렉션합니다. 이를 통해 사용자에게 더 나은 경험을 제공하게 되고, 웹사이트의 활용도를 높일 수 있습니다.
  • template_redirect 훅은 테마 템플릿 로딩 직전에 동작하기 때문에, 페이지 처리를 가로채기 적합합니다.

활용방법

  • 위 코드를 그대로 현재 사용하는 테마 폴더에 있는 functions.php 에 추가해 넣습니다.
  • ‘login’, ‘sample-page’ 부분을 실제 필요한 URL 로 변경하거나, 추가합니다.

참고사항

  • URL의 대소문자 구분 없이 처리하고 싶다면 strtolower()를 활용할 수 있습니다.
  • 쿼리스트링이 포함되어도 무시하고 경로만 인식합니다 (예: /login?redirect=true/).
  • wp_safe_redirect()도 사용할 수 있으나, 같은 도메인으로만 리디렉션 가능한 제약이 있어 여기선 wp_redirect()가 더 적합합니다.
  • wp_redirect() 은 리디렉션을 싷행하는 것으로 워드프레스가 제공하는 기본 함수입니다.

실제 사용 사례

이러한 301 리디렉션 숏코드를 활용하는 상황은 다양해요. 예를 들어, 가끔은 웹사이트를 리뉴얼 하거나, 특정 서비스를 중단하면서 이전에 사용했던 페이지를 더 이상 사용할 수 없게 됩니다. 이때 301 리디렉션을 설정해 놓으면, 사용자가 엉뚱한 페이지를 클릭해도 헤매지 않고 다른 유용한 정보를 얻을 수 있습니다.

정리하며

301 리디렉션 숏코드는 사용자 경험을 향상시키고 SEO에도 긍정적인 영향을 미치는 중요한 역할을 합니다. 웹사이트 관리자는 이러한 숏코드를 통해 보다 체계적으로 페이지를 관리하고 불필요한 404 오류를 피할 수 있으니, 꼭 활용해보시길 추천드립니다.

Rank Math 와 같은 SEO 플러그인을 사용하고 있다면, 이를 활용해도 됩니다. (관련 내용은 별도로 정리해 보겠습니다)

 


[SEO] : 검색 엔진 최적화, 웹사이트의 검색 엔진 가시성을 높이는 과정입니다.
[wp_redirect] : 특정 URL로 사용자를 안내하는 WordPress의 함수로, 리디렉션을 처리합니다.

Updated : April 8, 2025
{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.