
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의 함수로, 리디렉션을 처리합니다.