워드프레스 슬러그 형식 일괄 변경하는 방법
사이트를 운영하다 보면 처음 정해둔 슬러그(URL) 규칙을 바꿔야 하는 순간이 옵니다. 한글 슬러그를 영문으로 통일하고 싶거나, /category/postname/ 형식을 /postname/으로 단순화하고 싶거나, 대문자·언더스코어가 섞인 슬러그를 소문자·하이픈으로 정리하고 싶은 경우 등입니다. 문제는 이미 게시글이 수백~수천 개 쌓인 뒤라면 하나씩 수정하는 것이 사실상 불가능하다는 점입니다. 이 글에서는 워드프레스에서 슬러그를 일괄로 변경하는 방법을 상황별로 정리합니다.
시작하기 전에 반드시 알아야 할 것 – SEO 영향
슬러그를 변경하면 해당 URL이 바뀌므로, 반드시 301 리다이렉트를 함께 설정해야 합니다. 리다이렉트 없이 슬러그만 바꾸면 다음과 같은 문제가 생깁니다.
- 기존에 색인된 페이지가 404 오류로 처리됨
- 외부에서 걸어둔 백링크의 SEO 가치 상실
- 검색 순위 급락
이 글의 모든 방법은 슬러그 변경과 함께 리다이렉트를 반드시 함께 설정한다는 전제하에 진행해야 합니다.
방법 1) 데이터베이스에서 직접 SQL로 일괄 변경 (고급, 규칙이 명확할 때)
슬러그에 특정 규칙(예: 언더스코어를 하이픈으로, 대문자를 소문자로)을 일괄 적용해야 한다면 phpMyAdmin에서 SQL 쿼리로 처리하는 것이 가장 빠릅니다.
작업 전 반드시 데이터베이스 전체 백업을 먼저 진행하세요. SQL 직접 수정은 되돌리기 어렵습니다.
예시 1: 슬러그의 언더스코어(_)를 하이픈(-)으로 변경
UPDATE wp_posts
SET post_name = REPLACE(post_name, '_', '-')
WHERE post_status = 'publish' AND post_type = 'post';
예시 2: 슬러그를 전부 소문자로 변환
UPDATE wp_posts
SET post_name = LOWER(post_name)
WHERE post_status = 'publish' AND post_type = 'post';
예시 3: 슬러그 앞에 붙은 특정 접두사 제거 (예: “post-” 제거)
UPDATE wp_posts
SET post_name = SUBSTRING(post_name, 6)
WHERE post_name LIKE 'post-%' AND post_status = 'publish' AND post_type = 'post';
SQL은 강력하지만 되돌리기 어렵고, 규칙에 예외가 있는 경우 의도치 않은 슬러그가 만들어질 수 있습니다. 실행 전 SELECT로 먼저 대상 데이터를 확인하는 습관을 들이는 것이 안전합니다.
SELECT ID, post_name FROM wp_posts
WHERE post_name LIKE 'post-%' AND post_status = 'publish' AND post_type = 'post';
방법 2) 플러그인을 이용한 일괄 변경 (비개발자에게 권장)
SQL이 부담스럽다면 아래와 같은 플러그인들을 활용할 수 있습니다.
Better Search Replace
슬러그뿐 아니라 데이터베이스 내 특정 문자열을 검색·치환하는 범용 도구입니다. 슬러그에 포함된 특정 단어나 패턴을 일괄 치환할 때 유용하며, “실행 전 미리보기(Dry Run)” 기능이 있어 실수를 줄일 수 있습니다.
사용 순서:
- 플러그인 설치 후 도구 → Better Search Replace 이동
- Search에 바꾸려는 문자열, Replace에 새 문자열 입력
- 테이블 목록에서
wp_posts만 선택 - 먼저 “Run as dry run” 옵션을 체크해서 몇 건이 영향받는지 확인
- 이상 없으면 체크 해제 후 실제 실행
Permalink Manager Pro
슬러그와 퍼머링크 구조 자체를 세밀하게 관리하는 데 특화된 플러그인입니다. 카테고리별로 슬러그 패턴을 일괄 재설정하거나, 특정 규칙에 맞춰 전체 슬러그를 재생성하는 기능을 제공하며, 자동으로 301 리다이렉트를 함께 생성해주는 옵션이 있어 SEO 손실을 최소화할 수 있습니다.
Regenerate Slugs / 유사 유틸리티 플러그인
게시글 제목을 기준으로 슬러그를 다시 자동 생성해주는 유형의 플러그인입니다. “제목은 그대로인데 슬러그만 예전 규칙으로 지저분하게 남아있는” 경우, 제목 기반으로 깔끔하게 재생성할 때 유용합니다.
방법 3) 퍼머링크 “구조” 자체를 바꾸는 경우
개별 슬러그가 아니라 URL 전체 구조(예: /카테고리/글제목/ → /글제목/)를 바꾸고 싶다면, 이는 슬러그 문제가 아니라 퍼머링크 설정의 영역입니다.
**설정 → 고유주소(Permalinks)**에서 원하는 구조를 선택하면 워드프레스가 자동으로 새 구조에 맞춰 URL을 생성합니다. 이 경우에도 기존 URL은 그대로 유효하지 않게 되므로, 아래에서 설명할 리다이렉트 설정이 필수입니다.
4. 일괄 변경 후 필수 – 301 리다이렉트 설정
슬러그를 바꾼 뒤에는 예전 URL에서 새 URL로 자동 이동시켜주는 리다이렉트가 반드시 필요합니다.
Redirection 플러그인 활용
가장 널리 쓰이는 무료 리다이렉트 관리 플러그인입니다. 개별 URL을 하나씩 등록할 수도 있고, “정규식(Regex)” 옵션을 켜면 패턴 기반으로 대량의 URL을 한 번에 리다이렉트 규칙으로 매핑할 수 있습니다.
예를 들어 언더스코어를 하이픈으로 바꾼 경우, 정규식을 활용해 다음과 같은 형태로 규칙 하나로 처리할 수 있습니다.
Source: /(.*)_(.*)/
Target: /$1-$2/
단, 슬러그 안에 언더스코어가 여러 개 있는 경우 등 예외 케이스가 있을 수 있으므로, 규칙 적용 후 실제로 몇 개의 URL이 정상적으로 리다이렉트되는지 랜덤 샘플링으로 반드시 검증해야 합니다.
SEO 플러그인 내장 리다이렉트 기능
Rank Math나 Yoast SEO Premium에도 리다이렉트 관리 기능이 내장되어 있어, 별도 플러그인 없이 처리할 수도 있습니다.
5. 작업 순서 정리 (체크리스트)
- 데이터베이스 전체 백업
- 변경하려는 슬러그 규칙과 대상 범위를 명확히 정의 (전체 글? 특정 카테고리만?)
- SQL의 경우
SELECT로, 플러그인의 경우 Dry Run으로 먼저 영향 범위 미리 확인 - 실제 슬러그 일괄 변경 실행
- Redirection 플러그인 등으로 기존 URL → 새 URL 301 리다이렉트 규칙 설정
- 사이트맵(sitemap.xml) 재생성
- Google Search Console에서 새 URL로 재색인 요청
- 랜덤으로 예전 URL 몇 개를 직접 방문해 새 URL로 정상 리다이렉트되는지 확인
- 내부 링크(메뉴, 관련 글, 고정 링크가 걸린 콘텐츠 등)도 새 슬러그 기준으로 업데이트되었는지 점검
마무리
슬러그 일괄 변경은 SQL이나 플러그인으로 기술적으로는 어렵지 않지만, 진짜 중요한 것은 변경 후의 리다이렉트 처리입니다. 슬러그만 바꾸고 리다이렉트를 놓치면 오히려 SEO에 큰 손해를 볼 수 있으니, 위 체크리스트 순서를 지켜가며 작업하시길 권장합니다.