티스토리나 블로그를 쓰다 워드프레스로 넘어오면 사소해 보이는 데서 한 번 막힌다. 글 주소다. 어떤 사이트는 주소가 example.com/글제목처럼 깔끔한데, 어떤 데는 example.com/?p=123이다. 이 차이가 고유주소 설정에서 갈린다. 우리 사이트는 /글이름/ 방식으로 잡아 뒀는데, 그 얘기부터 풀어 본다. 딱 하나만 기억하면 된다. 주소는 처음에 정하고, 그다음엔 건드리지 마라.
고유주소가 뭔가
고유주소(퍼머링크, permalink)는 글 하나하나에 붙는 영구 주소다. 이름 그대로 안 바뀌는 게 원칙이다. 방문자가 북마크하고, 다른 사이트가 링크를 걸고, 구글이 색인하는 게 전부 이 주소다. 그래서 주소가 읽기 좋으면 사람도 검색엔진도 편하다. /워드프레스-속도-최적화/가 /?p=46보다 뭘 다룬 글인지 한눈에 보인다.
워드프레스는 설정에서 이 주소의 틀을 고르게 해 준다. 관리자에서 설정 → 고유주소로 들어가면 여섯 가지가 있다.
| 구조 | 주소 예시 | 메모 |
|---|---|---|
| 기본(Plain) | example.com/?p=123 | 설치 직후 기본값. 못생기고 기억이 안 된다 |
| 날짜와 이름 | example.com/2026/07/23/글이름/ | 주소가 길다. 뉴스처럼 날짜가 중요한 글에나 |
| 월과 이름 | example.com/2026/07/글이름/ | 날짜형보다 조금 짧다 |
| 숫자(Numeric) | example.com/archives/123 | 글 번호. 사람이 읽기엔 무의미 |
| 글이름(Post name) | example.com/글이름/ | 제일 짧고 읽기 좋다. 대개 이걸 쓴다 |
| 사용자 정의 | /%category%/%postname%/ 등 | 태그를 직접 조합. 카테고리를 주소에 넣고 싶을 때 |
사용자 정의 칸에 넣는 %postname%, %year%, %category% 같은 게 구조 태그다. 위 다섯 개도 사실 이 태그의 조합이고, 원하면 직접 섞어 쓸 수 있다.
뭘 고르면 되나
고민할 것 없다. 글이름(Post name)이다. 주소가 제일 짧고, 무슨 글인지 바로 보이고, 나중에 카테고리를 옮겨도 주소가 안 흔들린다. 카테고리를 주소에 박아 두는 /%category%/%postname%/ 방식은 분류가 깔끔해 보이지만, 나중에 글을 다른 카테고리로 옮기면 주소가 통째로 바뀌어 버린다. 우리도 카테고리 하나로 단순하게 가느라 글이름만 쓴다.
예전엔 “숫자나 날짜형이 서버에 덜 부담된다”는 말이 돌았다. 워드프레스 3.3 이전엔 근거가 조금 있었다. 요즘 버전에선 사실상 차이가 없다. 속도 걱정 때문에 못생긴 주소를 고를 이유는 없다.
설정하는 법
설정 → 고유주소에서 글이름을 고르고 아래 변경사항 저장을 누르면 끝이다. 저장하면 워드프레스가 둘 중 하나를 알려 준다. .htaccess 파일에 쓰기 권한이 있으면 “고유주소 구조가 업데이트되었습니다”가 뜨고 알아서 처리된다. 권한이 없으면 “지금 .htaccess를 업데이트해야 합니다”라면서 넣어야 할 규칙을 화면에 보여 준다. 그 규칙을 복사해 사이트 루트의 .htaccess에 붙이면 된다.
여기서 유용한 사실 하나. 고유주소 화면은 열기만 해도 워드프레스가 주소 규칙을 새로 써 준다(저장을 안 눌러도 된다). 그래서 예쁜 주소로 바꿨는데 글마다 404가 뜨면, 대개 이 화면에 한 번 들어갔다 나오는 것만으로 풀린다. 규칙이 낡아서 생긴 문제였던 거다.
그런데 우리는 그걸로 안 됐다
이 블로그를 이 서버에 올릴 때 딱 그 404를 만났다. 글 주소가 전부 안 열렸다. 고유주소 화면을 몇 번을 들락거려도 그대로였다. 원인은 낡은 규칙이 아니었다. 아파치가 .htaccess 파일 자체를 안 읽고 있었다. 서버 설정에서 그 폴더에 대한 권한(AllowOverride)이 꺼져 있어서, .htaccess에 뭘 써 넣든 무시된 거다. 화면 새로고침으로 풀리는 문제가 아니었다.
결국 서버의 가상호스트 설정에 그 폴더를 열어 주는 한 줄(AllowOverride All)을 넣고 나서야 주소가 살아났다. 정리하면 이렇다. 예쁜 주소가 404면 먼저 고유주소 화면을 한 번 여닫아 본다. 그래도 안 되면 규칙 문제가 아니라 서버가 .htaccess를 아예 안 읽는 것일 수 있다. 이건 호스팅 설정이나 mod_rewrite 쪽을 봐야 한다. 공유호스팅이면 대부분 켜져 있어서 첫 번째 방법으로 끝나지만, 직접 서버를 다루면 두 번째를 의심해야 한다.
한 번 정했으면 바꾸지 마세요
제일 중요한 대목이다. 이미 글을 올리고 한참 지난 뒤에 구조를 바꾸면, 예전 주소가 전부 404가 된다. 검색 순위도, 남이 걸어 둔 링크도, SNS에 공유된 링크도 같이 깨진다. 그래서 주소를 permalink, 영구주소라고 부르는 거다.
정 바꿔야 하는 사정이 생기면, 옛 주소에서 새 주소로 넘겨주는 301 리다이렉트를 걸어야 한다. .htaccess에 직접 쓰거나 Redirection 같은 플러그인을 쓴다. 손이 많이 간다. 그러니 처음에 글이름으로 정하고 그냥 두는 게 제일 싸게 먹힌다.
단축주소는 또 뭔가
주소를 예쁘게 바꿔도 example.com/?p=123 형태는 사라지지 않는다. 뒤에서 계속 살아 있고, 그 글로 넘겨준다. 이게 단축주소(shortlink)다. 워드프레스가 기본으로 주는 짧은 주소로, 글 번호만 있으면 되니 제목이 아무리 길어도 짧다. 그리고 제목이나 슬러그를 바꿔도 이 주소는 안 변한다. 글 번호는 그대로니까.
언제 쓰나. 글자 수가 빠듯한 곳에 링크를 넣을 때, 혹은 나중에 제목을 손볼지 몰라서 안 바뀌는 주소로 어딘가에 적어 둘 때 편하다. 다만 예전에 편집기에 있던 “단축주소 가져오기” 버튼은 지금 블록 편집기(구텐베르크)엔 없다. 워드프레스 4.4 때부터 기본 화면에서 빠졌다. 굳이 버튼으로 꺼내 쓰고 싶으면 “Bring Back the Get Shortlink Button” 같은 플러그인을 깔거나, 그냥 주소창에 ?p=글번호를 직접 쳐도 된다.
참고로 bit.ly 같은 외부 단축 서비스나 워드프레스닷컴·젯팩의 wp.me 주소는 이것과 다른 물건이다. 그건 외부 서비스가 만들어 주는 거고, 여기서 말하는 단축주소는 내 사이트가 자체로 갖고 있는 ?p=번호다.
정리
새 워드프레스를 깔면 제일 먼저 설정 → 고유주소로 가서 글이름을 고르자. 그게 사람도 검색엔진도 좋아하는 주소다. 그리고 한 번 정했으면 웬만하면 두자. 주소가 404로 안 열리면 그 화면을 한 번 여닫아 보고, 그래도 안 되면 서버가 .htaccess를 읽는지부터 의심하면 된다. 단축주소(?p=번호)는 안 바뀌는 짧은 참조용으로 뒤에 늘 대기하고 있으니, 필요할 때 꺼내 쓰면 그만이다.