워드프레스 내부링크 주소 문구 일괄 변경 플러그인
워드프레스 내부링크 주소와 문구를 한 번에 바꾸는 방법
워드프레스를 운영하다 보면 생각보다 자주 바꾸게 되는 것이 있습니다. 대표적으로 도메인 변경, HTTP에서 HTTPS 전환, 카테고리 구조 변경, 브랜드명이나 블로그명 수정, 이미지 CDN 주소 변경 같은 작업입니다.
문제는 글을 수십 개, 수백 개 써두고 나면 내부링크와 이미지 주소, 본문 속 문구를 손으로 하나씩 고치는 일이 거의 불가능하다는 점입니다.
특히 워드프레스는 SEO를 위해 내부링크를 촘촘하게 걸어두는 경우가 많아서 주소가 한번 바뀌면 예전 링크가 그대로 남아 404 오류가 늘어나고, 이미지가 깨지거나, 검색엔진이 이전 주소를 계속 수집하는 문제가 생길 수 있습니다.
반대로 사이트 이름이나 서비스 명칭이 바뀌었는데 본문 속 문구가 예전 이름 그대로 남아 있으면 글 전체의 통일감도 떨어집니다.
이럴 때 필요한 것이 워드프레스 주소 일괄 변경과 문구 일괄 치환입니다.
간단한 작업은 플러그인으로 처리할 수 있고, 게시물이 많거나 서버 접근이 가능하다면 SSH와 WP-CLI로 더 빠르고 안전하게 처리할 수 있습니다. 이번에는 티스토리에서 정리했던 내용을 기준으로, 워드프레스에서 내부링크와 텍스트 문구를 한 번에 바꾸는 실사용 방법을 보기 쉽게 정리해보겠습니다.

이 기능을 잘 활용하면 단순히 주소만 바꾸는 것이 아니라 예전 회사명, 옛 브랜드명, 잘못 적은 표기, 바뀐 메뉴명까지도 한 번에 정리할 수 있습니다.
예를 들어 기존 본문에 들어간 oldsite.com을 newsite.com으로 바꾸거나, 본문 곳곳에 들어간 노랗IT월드를 새로운 서비스명으로 교체하는 식입니다.
워드프레스 깨진링크 확인 및 수정 SEO - 노랗IT월드
워드프레스 내부링크와 외부링크의 적절한 조합에서 기존에 설정한 링크주소가 깨진것을 확인하는것은 쉽지 않은 일입니다. 특히 본인이 쓴 글이 아닌 리플등으로 달리는 링크는 본인의 링크
yellowit.co.kr
일괄 변경을 하기 전에 먼저 깨진링크 상태를 확인해두는 것이 좋습니다. 주
소만 바뀐 것인지, 실제로 페이지가 삭제된 것인지, 댓글이나 위젯 같은 예외 구간에 남아 있는지 먼저 파악해두면 바꾼 뒤 검수가 훨씬 쉬워집니다.
워드프레스에서 일괄 변경이 필요한 대표 상황
실제로 많이 쓰는 경우는 크게 다섯 가지입니다.
- 도메인 변경 : oldsite.com → newsite.com
- HTTPS 전환 : http:// → https://
- 이미지 서버 이전 : 예전 CDN 주소 → 새 CDN 주소
- 브랜드명/블로그명 변경 : 예전 문구 → 새 문구
- 잘못된 내부링크 일괄 수정 : 특정 카테고리 슬러그나 경로 변경
이때 중요한 점은 주소 변경과 문구 변경은 겉으로 비슷해 보여도 처리 방식이 다를 수 있다는 점입니다.
주소는 데이터베이스 안의 링크 구조와 이미지 경로, 첨부파일, 사용자 정의 필드까지 영향을 줄 수 있고, 문구는 게시물 본문뿐 아니라 위젯, 옵션값, 메타 데이터까지 건드릴 수 있습니다. 그래서 범위를 정확히 보고 작업해야 합니다.
Velvet Blues Update URLs 플러그인

주소 변경 위주로 가장 널리 알려진 플러그인이 Velvet Blues Update URLs입니다.
예전 도메인이나 경로를 새 주소로 일괄 바꿀 때 여전히 많이 언급되는 도구이고, 워드프레스 관리자 화면에서 바로 실행할 수 있다는 점이 장점입니다.
다만 이 플러그인은 오래전부터 사용된 방식이라, 현재 워드프레스 환경에서는 주소 치환은 가능하지만 본격적인 텍스트 치환이나 복잡한 예외 처리까지 기대하기는 어렵습니다.
단순한 URL 정리 작업에 먼저 쓰는 도구라고 생각하면 이해가 쉽습니다.

설치가 끝나면 활성화한 뒤 관리자 메뉴에서 실행 화면으로 들어갑니다.
화면 구조는 단순한 편으로 기존 주소와 새 주소를 넣고, 어느 영역까지 바꿀지 체크한 뒤 실행하면 됩니다.

입력란은 두 가지입니다.
OLD URL : 변경 전 주소
NEW URL : 변경 후 주소
예를 들어 아래처럼 입력하면 됩니다.
- 예시 1 : http://oldsite.com → https://newsite.com
- 예시 2 : https://oldsite.com/blog → https://newsite.com
- 예시 3 : https://cdn.oldsite.com/uploads → https://cdn.newsite.com/uploads

실제 실행 화면에서는 보기 쉽도록 한글 안내가 붙어 있지만, 핵심은 같습니다.
위쪽에 기존 주소를 넣고, 아래쪽에 변경할 새 주소를 넣으면 됩니다. 게시물, 발췌문, 이미지 경로, 커스텀 필드까지 어디를 바꿀지 체크할 수 있어서 주소 변경 작업을 손으로 하나씩 하지 않아도 됩니다.
- [IT 리뷰/블로그 SEO] - 워드프레스 링크 새탭 열기 External Links 플러그인
- [IT 리뷰/블로그 SEO] - 워드프레스 추천글 관련글 플러그인 설정방법
- [IT 리뷰/블로그 SEO] - 워드프레스 메뉴 새창 일괄 열기 내부링크 외부링크
텍스트 문구를 같이 바꾸고 싶다면
문제는 여기서 끝이 아닙니다. 도메인만 바꾸는 것이 아니라 브랜드명, 사이트명, 특정 문장까지 바꾸고 싶을 때가 있습니다.
예를 들어 과거 글 300개에 들어간 회사A를 회사B로 바꾸고 싶다면 주소 전용 플러그인만으로는 부족할 수 있습니다.
이 경우에는 워드프레스 관리자에서 텍스트 치환 전용 플러그인을 쓰거나, 서버 접근이 가능하다면 WP-CLI의 search-replace 명령을 쓰는 편이 더 정확합니다. 특히 커스텀 필드, 옵션값, 위젯 데이터까지 건드려야 하는 경우에는 SSH 방식이 훨씬 강력합니다.
cPanel 터미널과 SSH로 일괄 변경하는 방법
카페24, 가비아, 블루호스트, SiteGround처럼 호스팅 환경에 따라 다르지만, cPanel을 쓰는 서버라면 Terminal 또는 SSH Access가 열려 있는 경우가 있습니다.
이 경우 플러그인을 쓰지 않고도 워드프레스 루트 경로에서 직접 주소와 문구를 치환할 수 있습니다.
가장 많이 쓰는 명령은 WP-CLI search-replace입니다.
이 방식은 단순 SQL 치환보다 안전하고, 워드프레스의 직렬화 데이터까지 비교적 안정적으로 처리할 수 있어 실제 운영 서버에서 가장 많이 쓰입니다.
cd /home/계정/public_html
wp search-replace 'http://oldsite.com' 'https://newsite.com' --all-tables --dry-run
먼저 --dry-run 옵션으로 실제 변경 없이 몇 건이 바뀌는지만 확인합니다. 결과가 정상이라면 아래처럼 실제 적용을 진행합니다.
cd /home/계정/public_html
wp search-replace 'http://oldsite.com' 'https://newsite.com' --all-tables
wp cache flush
wp rewrite flush
브랜드명이나 특정 문구를 바꾸는 경우도 같은 방식입니다.
cd /home/계정/public_html
wp search-replace '노랗IT월드' '새 블로그명' --all-tables --dry-run
wp search-replace '노랗IT월드' '새 블로그명' --all-tables
여기서 중요한 것은 너무 짧은 단어는 오치환이 많이 난다는 점입니다.
예를 들어 “IT”처럼 짧은 문자열은 전혀 원하지 않는 부분까지 바뀔 수 있기 때문에, 되도록 정확한 전체 문구를 기준으로 치환하는 것이 좋습니다.
리눅스 서버에서 백업 후 작업하는 순서
SSH로 직접 작업할 때는 반드시 DB 백업 → Dry Run → 실제 치환 → 캐시 비우기 → 실제 페이지 검수 순서로 진행하는 것이 좋습니다.
개인적으로는 이 순서를 빼고 바로 바꾸는 작업은 권하지 않습니다.
cd /home/계정/public_html
wp db export before-search-replace.sql
wp search-replace 'http://oldsite.com' 'https://newsite.com' --all-tables --dry-run
wp search-replace 'http://oldsite.com' 'https://newsite.com' --all-tables
wp cache flush
wp rewrite flush
만약 결과가 이상하다면 백업한 SQL 파일로 바로 되돌릴 수 있습니다.
wp db import before-search-replace.sql
워드프레스가 설치된 리눅스 서버가 Ubuntu든 Debian이든 AlmaLinux든 Rocky Linux든 크게 다르지 않으며 워드프레스 루트에서 WP-CLI를 실행하는 구조는 동일합니다.
플러그인 방식과 SSH 방식은 무엇이 다를까
간단히 정리하면 이렇습니다.
- 플러그인 방식 : 초보자도 쉽고 빠름, 관리자 화면에서 바로 가능
- SSH / WP-CLI 방식 : 대량 데이터에 유리, 문구 치환과 예외 처리에 더 강함
- 도메인 이전 규모가 큰 경우 : WP-CLI가 더 안정적
- 소규모 주소 수정 : 플러그인만으로도 충분
게시물이 10~20개 수준이면 플러그인으로 끝낼 수 있지만, 수백 개 이상이고 이미지 주소, 커스텀 필드, 옵션값까지 같이 바뀌는 상황이라면 저는 SSH 쪽을 더 권하는 편입니다.
잘못 바꾸는 실수 예시
실제로 많이 하는 실수도 있습니다.
- http://oldsite.com만 바꾸고 https://oldsite.com은 그대로 두는 경우
- www 포함 주소와 비포함 주소를 같이 정리하지 않는 경우
- 문구 치환 시 너무 짧은 키워드를 넣어 다른 문장까지 같이 망가뜨리는 경우
- 캐시를 비우지 않아 변경이 안 된 것처럼 보이는 경우
- 백업 없이 바로 실행해 되돌리기 어려워지는 경우
예를 들어 oldsite.com을 newsite.com으로 옮길 때는 아래처럼 네 가지 케이스를 같이 확인하는 편이 좋습니다.
- http://oldsite.com
- https://oldsite.com
- http://www.oldsite.com
- https://www.oldsite.com
실제로는 이 중 일부만 DB에 남아 있는 경우가 많기 때문에 dry-run으로 먼저 건수를 확인하는 것이 가장 안전합니다.
이때 변경된 내용은 복구가 불가능하기 때문에 워드프레스 백업을 통해 문제가 발생 후 언제든지 복구할 수 있도록 하느것이 좋습니다.
워드프레스 Backup 참고
- [IT 리뷰/블로그 SEO] - 워드프레스 카페24 백업 복원 계정 초기화 - WordPress
- [IT 리뷰/블로그 SEO] - 워드프레스 초기화 플러그인 WP Reset 백업 리셋
- [IT 리뷰/블로그 SEO] - 워드프레스 글 카테고리 삭제 휴지통 복원
작업 후 꼭 확인할 것
일괄 변경이 끝났다면 바로 끝내지 말고 아래 항목을 꼭 확인하는 것이 좋습니다.
- 대표 게시물 5~10개 직접 열어서 내부링크 정상 작동 확인
- 이미지 주소가 바뀐 경우 첨부파일과 본문 이미지 깨짐 여부 확인
- 카테고리, 태그, 메뉴, 위젯 링크 확인
- 캐시 플러그인 사용 중이면 캐시 비우기
- 검색 콘솔, 깨진링크 검사 플러그인, 사이트 크롤러로 후검수
워드프레스에서 주소나 문구를 하나씩 손으로 바꾸는 방식은 글 수가 늘어날수록 사실상 불가능해집니다.
특히 사이트 구조를 이미 잘 짜둔 상태라면 더더욱 그렇습니다. 그래서 단순한 URL 변경은 플러그인, 대량 주소 변경이나 문구 변경은 SSH와 WP-CLI로 정리해두면 운영이 훨씬 편해집니다.
개인적으로는 작은 사이트는 플러그인으로도 충분하지만, 게시물이 많고 내부링크가 촘촘한 사이트라면 반드시 백업을 먼저 하고 dry-run부터 확인한 뒤 실제 치환을 진행하는 편이 가장 안전했습니다. 이런 습관만 들여도 도메인 이전이나 HTTPS 전환 같은 작업이 훨씬 덜 부담스럽습니다.