내 사이트 구글 유입이 0이 된 이유 — 다국어 URL 마이그레이션 실패 진단기
16개월간 구글 클릭 13회. 웹 도구 60개를 운영하는 사이트의 검색 유입이 증발한 원인을 서치콘솔 데이터로 추적해 보니, 범인은 다국어 도입 때 바꾼 URL 구조였습니다. 진단 과정과 복구 방법을 공유합니다.
안녕하세요. Jay입니다!
저는 웹 도구 60여 개를 모아둔 사이트를 운영하는데, 이상하게 구글 검색 유입이 없었습니다. 어느 정도였냐면 — 서치콘솔 16개월치를 열어보니 총 클릭 13회, 노출 415회. 도구 60개 + 블로그 70여 편 규모에서 이 숫자는 "적다"가 아니라 "죽었다"에 가깝죠. 오늘은 그 원인을 추적해 범인을 찾아낸 진단기를 공유합니다. 저와 비슷하게 다국어를 도입한 사이트라면 남 얘기가 아닐 수 있습니다.
📉 단서 — 월별 노출 그래프의 절벽
서치콘솔 실적을 월별로 쪼개 보니 이상한 모양이 나왔습니다.
| 기간 | 월 노출 |
|---|---|
| 작년 3월 | 256 (전체의 62%) |
| 작년 4월 | 21 |
| 작년 5월~11월 | 월 1~13 (사실상 0) |
| 그 이후 | 월 4~22 |
어느 날 서서히 줄어든 게 아니라, 한 달 만에 절벽으로 떨어진 겁니다. 이런 모양은 알고리즘 업데이트보다 "사이트에 큰 변경이 있었다"는 신호예요. 그래서 그 시점의 git 히스토리를 뒤졌습니다.
🔍 범인 — 다국어 도입 때 바꾼 URL
절벽 직전에 있었던 커밋: "다국어 처리 추가". next-intl로 한/영 지원을 넣으면서 localePrefix: 'always' 옵션을 썼는데, 이게 모든 URL을 통째로 바꿔버렸습니다.
- 기존:
/apps/team - 변경 후:
/ko/apps/team
이러면 구글 입장에선 기존에 순위를 쌓아온 페이지가 전부 사라지고 새 주소가 생긴 것과 같습니다. 타임라인도 정확히 맞아떨어졌어요 — 2월에 URL 교체 → 구글이 3월까지는 구 URL을 서빙(노출 정점) → 4월에 리디렉션을 소화하면서 랭킹이 새 URL로 전달되지 않고 증발.
결정적 증거는 지금도 노출이 잡히는 URL 목록이었습니다. 전부 locale 없는 옛 URL(/apps/team이 노출 60회·평균 17위)이었고, 새 /ko/... URL들은 색인만 되고 노출이 없었습니다. 14개월이 지나도록요.
❌ 배제한 용의자들
진단 과정에서 흔한 원인들은 하나씩 배제했습니다.
- 색인 문제? — 아니요. 208페이지가 색인돼 있었고 꾸준히 늘고 있었습니다. "색인은 되는데 노출이 없다"가 이 사건의 특징이었어요.
- 기술 SEO 문제? — noindex 없음, canonical 정상, robots.txt 정상, 사이트맵 URL 전부 200 응답. 교과서적 점검은 다 통과했습니다.
여기서 배운 것: 색인 숫자만 보고 "SEO 정상"이라고 판단하면 안 됩니다. 색인과 랭킹은 완전히 다른 문제였습니다.
🛠 복구 — URL을 원래대로
해결은 localePrefix: 'as-needed' 전환이었습니다. 기본 언어(한국어)는 접두사 없이 /apps/team으로 돌아가고, 영어만 /en/apps/team을 유지합니다. 기존 /ko/* 주소는 전부 308 영구 리디렉션으로 연결했고요.
같은 작업을 하실 분들을 위해, 제가 밟은 함정 두 개를 남깁니다.
localeDetection: false가 필수였습니다. 이걸 끄지 않으면 브라우저 언어 설정에 따라 접두사 없는 요청이/en으로 리디렉션되는데, 그 응답이 CDN에 캐시되면 모든 방문자에게 오염된 응답이 나갑니다. URL만으로 언어가 결정되게 고정해야 해요.- 소스 코드 검색만으로는 잔재를 못 잡습니다. canonical·sitemap·JSON-LD·내부 링크 곳곳에 옛 URL 생성 코드가 숨어 있었는데, 코드 검색(grep)으로 다 잡았다고 생각한 뒤에도 실제 렌더링된 HTML을 요청해서 전수 검사하니 누락이 4곳 더 나왔습니다. 변수에 담긴 URL은 검색에 안 걸리거든요.
⏳ 그래서 지금은
배포 후 회복을 관찰 중입니다. 이런 복구는 며칠이 아니라 2~3개월 단위의 실험이고, 그 사이 서치콘솔에 "리디렉션이 포함된 페이지"가 급증하는데 이건 옛 URL이 정리되는 정상 신호입니다. 여기서 놀라서 또 되돌리면 세 번째 URL 교체가 되는 거라, 꾹 참는 게 계획의 일부예요.
💡 Jay의 교훈
- URL은 사이트의 주민등록번호입니다. 다국어·리뉴얼 등 어떤 이유로든 전면 교체하는 순간, 쌓아온 검색 자산을 리셋할 각오를 해야 합니다. next-intl을 쓴다면 기본 언어는
as-needed로 시작하세요. - 급락형 그래프를 보면 그 시점의 배포 이력부터 뒤지세요. 저는 원인 커밋을 찾는 데 16개월이 걸렸지만, 월별 그래프와 git log를 나란히 놓으니 10분이면 보였습니다.
결론
검색 유입 증발의 범인은 콘텐츠도 알고리즘도 아닌, 다국어 도입 때 무심코 바꾼 URL 구조였습니다.
혹시 다국어 도입 후 검색 유입이 줄었다면, 지금 서치콘솔에서 노출되는 URL에 locale 접두사가 있는지부터 확인해 보세요. 다음에도 유익한 포스팅으로 찾아오겠습니다. 감사합니다!