301 리디렉션 완벽 가이드: 도메인 변경 시 필수 작업
301 리디렉션 완벽 가이드: 도메인 변경 시 필수 작업
301 리디렉션이란?
301 리디렉션(301 Redirect)은 영구적인 페이지 이동을 의미하는 HTTP 상태
코드입니다. 따라서 HTTP 상태 코드를 가지고 웹사이트의 페이지나
리소스가 영구적으로 새로운 URL로 이동했음을 브라우저와 검색 엔진에 알리는
방법입니다.
사용자가 기존 URL에 접근하려고 하면, 서버는 301 상태 코드를 반환하며 새
URL로 자동으로 이동시킵니다. 이를 통해 사용자는 끊김 없이 새 페이지로
연결되고, 검색 엔진은 새 URL을 인덱싱하여 기존 페이지의 SEO 가치를
유지하거나 전달합니다. 결국 웹사이트의 주소가 영구적으로 변경되었을 때
사용자와 검색엔진을 새로운 주소로 자동 안내하는 기술인거조.
301 리디렉션이 필요한가?
- SEO 유지: 페이지가 이동하거나 URL이 변경될 때, 301 리디렉션은 검색 엔진(구글, 네이버 등)에 새 URL로 링크 주스(link juice, 즉 SEO 순위와 관련된 가치)를 전달합니다. 이를 통해 기존 페이지의 검색 순위가 손실되지 않습니다.
- 사용자 경험 개선: 사용자가 오래된 링크나 북마크를 통해 접속하더라도, 301 리디렉션은 자동으로 새 URL로 연결하여 404 오류(페이지를 찾을 수 없음)를 방지합니다.
- 영구 링크 구현: 영구 링크(permanent link, permalink)는 콘텐츠가 항상 고정된 URL에서 접근 가능해야 하며, URL이 변경되더라도 301 리디렉션을 통해 기존 링크가 만료되지 않도록 보장합니다.
- 사이트 구조 변경 관리: 웹사이트 리뉴얼, 도메인 변경, 또는 URL 구조 변경 시 301 리디렉션은 트래픽 손실을 최소화합니다.
301 리디렉션과 다른 리디렉션 비교
왜 "301"인가?
- 3xx: 리디렉션을 의미하는 HTTP 상태 코드 범위
- 301: 영구 이동(Moved Permanently)
- 302: 임시 이동(Found/Temporary Redirect)
302 리디렉션은 임시 이동을 의미하며, SEO 가치를 전달하지 않습니다.
일시적인 이동에 사용됩니다. 하지만 301 리디렉션은 영구 이동을 의미하며, SEO
가치의 90~99%를 새 URL로 전달합니다.
301 리디렉션 구현 방법
301 리디렉션을 구현하는 방법은 사용하는 서버 환경(Apache, Nginx 등)이나
CMS(WordPress 등)에 따라 다릅니다. 아래에서 주요 방법을 단계별로 자세히
설명합니다.
1. 웹서버 설정 Apache 서버에서 .htaccess 파일 사용
Apache 서버를 사용하는 경우, .htaccess 파일을 수정하여 301 리디렉션을 설정할
수 있습니다.
구현 단계:
- 웹사이트의 루트 디렉토리에서 .htaccess 파일을 찾거나 새로 생성합니다.
- 아래와 같은 코드를 추가합니다.
예시 코드:
apache
# 단일 URL 리디렉션
Redirect 301 /old-page.html https://www.example.com/new-page.html
# 전체 도메인 리디렉션
Redirect 301 / https://www.newdomain.com/
# www에서 non-www로 리디렉션
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
# HTTP에서 HTTPS로 리디렉션
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
주의사항:
- .htaccess 파일 수정 전 백업 필수.
- RewriteEngine On은 mod_rewrite 모듈이 활성화되어 있어야 작동.
- 잘못된 설정은 서버 오류(500)를 유발할 수 있으니 테스트 필요.
2. Nginx 서버에서 설정
Nginx 서버에서는 nginx.conf 파일이나 사이트별 설정 파일에서 301 리디렉션을
설정합니다.
구현 단계:
- /etc/nginx/sites-available/ 디렉토리의 설정 파일을 편집합니다.
- 아래와 같은 코드를 추가합니다.
예시 코드:
Nginx
# 단일 URL 리디렉션
server {
listen 80;
server_name example.com;
rewrite ^/old-page$ https://www.example.com/new-page permanent;
}
# 전체 도메인 리디렉션
server {
listen 80;
server_name olddomain.com;
return 301 https://newdomain.com$request_uri;
}
# www에서 non-www로 리디렉션
server {
listen 80;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
주의사항:
- 설정 변경 후 nginx -t 명령어로 설정 파일 문법을 확인.
- service nginx reload 또는 service nginx restart로 서버 재시작.
- HTTPS 설정 시 SSL 인증서가 필요.
3. WordPress에서 301 리디렉션 설정
WordPress 사이트에서는 플러그인을 사용하거나 .htaccess를 직접 수정하여 301
리디렉션을 구현할 수 있습니다.
플러그인 사용 (추천):
- Yoast SEO 또는 Redirection 플러그인 설치.
- 플러그인 설정 화면에서:
- 소스 URL: 기존 URL 입력 (예: /old-page).
- 대상 URL: 새 URL 입력 (예: /new-page).
- 리디렉션 유형을 301 Permanent로 설정.
- 저장 후 테스트.
수동 설정:
WordPress 루트 디렉토리의 .htaccess 파일에 위 Apache 예시 코드를 추가.
4. PHP를 사용한 301 리디렉션
PHP 파일에서 301 리디렉션을 설정할 수 있습니다. 페이지별로 세밀한 제어가
필요할 때 유용합니다.
예시 코드:
php
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.example.com/new-page");
exit();
?>
주의사항:
- header() 호출 전에 출력(공백, HTML 등)이 없어야 함.
- 서버에서 PHP가 실행되도록 설정되어 있어야 함.
5. HTML 메타 태그 (권장하지 않음)
HTML 메타 태그로 리디렉션을 설정할 수 있지만, SEO에 좋지 않으므로 301
리디렉션이 불가능한 경우에만 사용하세요.
예시 코드:
html
<meta http-equiv="refresh" content="0; url=https://www.example.com/new-page">
검색엔진에 알리는 방법
1. Google Search Console
- 주소 변경 도구 사용
- 새 도메인의 Search Console 속성 생성
- 사이트맵 재제출
2. Naver 웹마스터 도구
- 사이트 이전 신고 기능 활용
- 새 도메인 등록 및 인증
3. 사이트맵 업데이트
- XML 사이트맵에서 모든 URL을 새 도메인으로 변경
- 검색엔진에 새 사이트맵 제출
301 리디렉션 체크리스트
설정 전 준비사항
새 도메인 준비 완료 백업 완료
처음으로
설정 단계
301 리디렉션 설정
리디렉션 테스트 (HTTP 상태 코드 확인)
내부 링크 업데이트
외부 백링크 업데이트 요청
설정 후 모니터링
Search Console에서 크롤 에러 확인
트래픽 변화 모니터링
검색 순위 변화 추적
리디렉션 체인 확인
301 리디렉션 구현 시 주의사항
피해야 할 실수
- 리디렉션 체인: A → B → C (최대 5개까지만)
- 302 리디렉션 사용: 영구 이동에는 반드시 301 사용
- 모든 페이지를 홈으로: 개별 페이지별 매칭 필요
- 너무 성급한 구 도메인 해지: 최소 1년 유지 권장
성능 최적화
- 리디렉션 개수 최소화
- 정규식 최적화로 서버 부하 감소
- CDN 활용 시 에지 서버 설정 확인
성공적인 301 리디렉션을 위한 팁
- 단계적 접근: 소규모 테스트 후 전체 적용
- 충분한 시간 확보: 검색엔진 반영까지 수주 소요
- 지속적인 모니터링: 3-6개월간 추적 관찰
- 사용자 공지: 도메인 변경 사실을 사용자들에게 미리 알림
실제 사례와 테스트 방법
사례:
- 도메인 변경: olddomain.com → newdomain.com
- URL 구조 변경: /category/post1 → /blog/post1
- HTTP → HTTPS 전환
테스트 도구:
- Browser Developer Tools: 네트워크 탭에서 301 상태 코드 확인.
- Online Tools: Redirect Checker (redirect-checker.org) 또는 Screaming Frog.
- Command Line: curl -I http://old-url로 응답 헤더 확인.
예시 테스트 (curl):
bash
curl -I http://example.com/old-page
출력 예:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page
결론
301 리디렉션은 영구 링크를 구현하고, SEO를 유지하며, 사용자 경험을 개선하는
데 필수적입니다. 서버 환경(Apache, Nginx)이나 CMS(WordPress)에 따라 적절한
방법을 선택해 구현하세요. 설정 후에는 반드시 테스트를 통해 올바르게
작동하는지 확인하고, 검색 엔진 인덱싱 상태를 모니터링하세요.궁금한 점이 더
있다면 댓글로 말씀해주세요!
0 Comments:
댓글 쓰기