개요
도메인을 변경해야 하는 이유는 다양합니다. 더 나은 브랜드 도메인을 얻었거나, 임시 도메인으로 사이트를 구축한 뒤 실제 도메인으로 옮겨야 할 때가 있습니다. 도메인을 바꾸는 과정은 비교적 간단하지만, 잘못하면 사이트 접근 불가, SEO 손실, 혼합 콘텐츠 오류(HTTPS 문제) 등이 발생할 수 있습니다. 이 가이드는 네 가지 실용적인 방법과 사전 준비, 테스트 및 롤백 절차를 포함한 체크리스트를 제공합니다.
준비: 필요한 정보와 사전 작업
변경을 시작하기 전에 아래 항목을 바로 사용할 수 있도록 준비하세요.
- 워드프레스 관리자 계정 로그인 정보(사용자명 + 비밀번호)
- 호스팅 파일 매니저 또는 cPanel 로그인
- FTP/SFTP 접속 정보
- phpMyAdmin(또는 데이터베이스 접근 수단)
- DNS 관리(도메인 레지스트라) 접근
- HTTPS 인증서 발급/설치 준비
중요: 전체 사이트(파일 + DB) 백업을 반드시 만드세요. 문제가 생기면 즉시 복원해야 합니다.
도메인 변경을 위한 네 가지 방법 (쉬운 순서)
다음 방법은 쉬운 순서대로 정렬되어 있습니다. 관리 화면 접근이 가능하면 1번을, 불가능하면 2~4번을 사용하세요.
1. 워드프레스 관리자에서 도메인 변경
가장 쉬운 방법입니다. 워드프레스 관리자 대시보드에 로그인한 뒤 “설정 → 일반“으로 이동하세요. 아래 두 항목을 찾습니다.
- WordPress 주소 (URL)
- 사이트 주소 (URL)
이 둘을 새 도메인으로 변경하고 저장하면 됩니다. 대부분의 경우 두 값은 동일합니다. 단, 워드프레스 파일을 별도 디렉터리에 둔 경우(예: example.com/wp)에는 “WordPress 주소”를 실제 파일 위치로 유지하고 “사이트 주소”를 방문용 주소로 설정해야 합니다.
주의: 변경 후 로그인 세션이 끊길 수 있으니 브라우저 캐시 및 쿠키를 정리하세요.
2. phpMyAdmin을 통해 데이터베이스 직접 수정
관리자 페이지 접근이 불가능할 때 주로 사용하는 방법입니다. 변경 전 데이터베이스 백업을 반드시 수행하세요.
- phpMyAdmin에 접속하여 워드프레스 DB를 선택합니다.
- 테이블 목록에서 wp_options(프리픽스가 다를 수 있음)를 엽니다.
- option_name 컬럼에서 “siteurl”과 “home”을 찾습니다(보통 앞쪽에 위치).
- 이 두 값을 새 도메인으로 수정합니다.
이 방법은 즉시 적용됩니다. 다만 게시물 내 절대 URL이나 직렬화된(serialized) 데이터는 자동으로 바뀌지 않으므로 이후 search-replace가 필요할 수 있습니다.
3. wp-config.php 파일에서 강제 설정
관리자와 DB 접근 모두 불가할 때 사용하는 최후 수단입니다. 파일 매니저 또는 FTP로 wp-config.php를 편집하세요. 다음 두 줄을 추가하거나 수정합니다:
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
example.com을 타깃 도메인으로 바꿉니다. 이 방법은 워드프레스 일반 설정 페이지에서 URL을 더 이상 변경할 수 없게 하므로, 작업이 끝난 뒤에는 이 코드들을 제거하거나 주석 처리하는 것을 권장합니다.
중요: http/https를 정확히 사용하세요. HTTPS로 운영할 계획이라면 https://로 설정합니다.
4. functions.php 파일에 임시 명령 추가로 DB 업데이트
이 방법은 임시 스크립트를 통해 데이터베이스 값을 업데이트하는 방식입니다. 테마의 functions.php 또는 mu-plugins에 추가하고, 적용 후 즉시 삭제해야 합니다.
function temp_update_site_urls() {
update_option('siteurl', 'http://example.com');
update_option('home', 'http://example.com');
}
add_action('init', 'temp_update_site_urls');
코드를 추가한 뒤 사이트에 접속하면 값이 업데이트됩니다. 업데이트가 확인되면 함수를 제거하세요. 장기 사용은 금지합니다.
게시물·메타·직렬화 데이터: 모든 URL을 안전하게 교체하기
wp_options의 siteurl/home만 바꾸면 기본 접속은 되지만 게시물 내용, 첨부 파일 URL, 위젯, 플러그인 설정 등에는 이전 도메인 URL이 남아있을 수 있습니다. 직렬화(serialized)된 데이터도 있어 단순 문자열 치환은 문제를 발생시킬 수 있습니다. 아래 도구들을 사용하세요.
WP-CLI (권장, 서버 SSH 접근 가능 시)
- 명령 예: wp search-replace ‘http://old-domain.com’ ‘https://new-domain.com’ –all-tables
- WP-CLI는 직렬화된 데이터도 안전하게 처리합니다.
플러그인: Better Search Replace
- 관리 화면에서 플러그인을 설치한 뒤 시뮬레이션(dry run)을 먼저 실행하세요.
수동 SQL: 직렬화된 데이터가 포함된 경우 권장하지 않습니다.
HTTPS, DNS, TTL, SSL 설정
도메인을 바꾸는 과정에서 DNS와 SSL 설정은 매우 중요합니다.
- DNS: 레코드(A, AAAA, CNAME)를 새 도메인에 설정하세요. 변경 전 TTL을 낮추면 전파 지연을 줄일 수 있습니다(예: 5분~1시간).
- SSL: 새 도메인에 대해 인증서를 발급하세요(예: Let’s Encrypt). 인증서가 적용되기 전까지 HTTPS 접속은 오류가 납니다.
- CDN: CDN을 사용 중이면 캐시 무효화 및 도메인 설정(또는 새 도메인 추가)을 수행하세요.
마이그레이션 체크리스트 (SOP 간략)
- 전체 백업(파일 + DB).
- 낮은 TTL로 변경(선택 사항), 레지스트라/호스팅에서 DNS 준비.
- 새 도메인에 SSL 설치.
- 관리자에서 URL 변경 또는 phpMyAdmin/wp-config/functions 적용.
- WP-CLI 또는 Better Search Replace로 모든 URL 교체.
- 퍼머링크(설정 → 고정 링크)에서 저장으로 리라이트 규칙 갱신.
- 캐시 비우기(플러그인, CDN, 브라우저).
- 내부 링크, 이미지, 폼, 서드파티 API 키 점검.
- Google Search Console 및 Analytics에 새 도메인 등록, 사이트맵 제출.
- 301 리디렉션(구도메인 → 신도메인) 적용 및 모니터링.
테스트 및 수용 기준
수용 기준(테스트 항목):
- 새 도메인으로 메인 페이지 및 서브 페이지 정상 로딩.
- HTTPS가 올바르게 적용되어 혼합 콘텐츠(Mixed Content) 없음.
- 관리자 페이지 로그인 정상.
- 내부 링크와 이미지가 새 도메인으로 갱신됨.
- 301 리디렉션이 구도메인에서 신도메인으로 정상 작동.
- 검색 콘솔에서 색인 문제 없음.
테스트 절차:
- 브라우저 캐시를 지우고 접속 테스트.
- curl -I https://new-domain.com 으로 응답 헤더 확인(HTTP 200/301 등).
- wp search-replace –dry-run 으로 교체 예측 결과 확인.
문제 해결: 자주 발생하는 오류와 대응법
- ERR_TOO_MANY_REDIRECTS: HTTP/HTTPS 또는 www/비-www 리디렉션이 루프에 걸렸을 수 있습니다. wp-config 정의, .htaccess 리디렉션 규칙, 플러그인 리디렉션을 확인하세요.
- 데이터베이스 연결 오류: wp-config.php의 DB_NAME, DB_USER, DB_PASSWORD, DB_HOST를 확인합니다.
- 흰 화면(WSOD): PHP 에러 또는 메모리 부족일 수 있습니다. WP_DEBUG를 활성화하고 오류 로그를 확인하세요.
- Mixed Content 경고: 모든 리소스(URL)를 https로 바꾸고 외부 리소스가 https를 제공하는지 확인하세요.
롤백(복구) 계획
문제가 심각하면 즉시 복원해야 합니다. 롤백 절차:
- 백업에서 파일과 DB를 복원합니다.
- DNS TTL이 낮게 설정되어 있다면 이전 도메인으로 빠르게 복귀됩니다.
- wp-config.php나 functions.php에 임시로 추가한 코드가 있다면 제거하세요.
항상 작업 전 백업과 테스트 복구를 미리 수행해 두세요.
역할별 체크리스트
관리자(콘텐츠 소유자)
- 중요한 페이지와 콘텐츠 목록을 기록.
- 외부 도구(Analytics, Search Console)를 업데이트.
- 게시물과 랜딩페이지 오류 확인.
개발자/호스팅 엔지니어
- DNS, SSL, 서버 설정 점검.
- wp-config.php, .htaccess 및 서버 리디렉션 구성.
- WP-CLI로 직렬화 데이터 일괄 치환.
SEO/마케팅
- 301 리디렉션 계획 수립 및 구현 확인.
- 사이트맵 및 robots.txt 업데이트.
- Search Console에 도메인 등록 및 색인 요청.
추가 팁과 대안
- 워드프레스 멀티사이트(Multisite)를 사용하는 경우 도메인 맵핑 절차가 추가로 필요합니다. 멀티사이트 전용 문서를 참조하세요.
- 호스팅 제공업체의 도메인 변경 도구를 제공할 수 있으니 지원 문서를 확인하거나 지원팀에 문의하세요.
- DNS 전파 시간(최대 48시간)을 고려해 트래픽 변화를 모니터링하세요.
짧은 공지문(배포용)
새 도메인으로 사이트 이전을 완료했습니다. 임시로 접속 문제나 캐시로 인한 오류가 발생할 수 있으니 문제가 있으면 지원팀에 문의하세요. 검색엔진 색인이 반영되는 데 시간이 걸립니다.
요약
- 가장 쉬운 방법: 관리자 설정에서 WordPress 주소와 사이트 주소 변경.
- 접근 불가 시: phpMyAdmin 수정 → wp-config.php 강제 설정 → functions.php 임시 스크립트 순.
- 반드시 전체 백업, SSL, DNS, 검색엔진 설정, 캐시 무효화를 수행하세요.
- WP-CLI 또는 Better Search Replace로 직렬화 데이터를 안전하게 교체하세요.
중요: 작업 중에는 임시로 사이트가 불안정할 수 있으니 유지보수 모드(coming soon)를 사용하는 것을 권장합니다.