locale 경로와 canonical이 꼬일 때 문제를 좁히는 법
페이지가 브라우저에서는 멀쩡해 보여도 검색 엔진에는 충돌하는 URL 신호를 보내고 있을 수 있다. 한 locale 경로는 열리고, 다른 경로는 redirect되고, canonical은 또 다른 곳을 가리키는 식이다. 겉으로 크게 깨져 보이지 않아서 더 미끄럽게 느껴진다.
locale과 canonical 문제는 보통 404처럼 대놓고 드러나지 않는다. 진짜 문제는 어느 URL이 이 페이지의 대표인지 시스템이 스스로도 일관되게 말하지 못하는 데 있다.
이 글은 그 모호함을 빠르게 좁히는 방법을 다룬다. 목표는 국제화 SEO 전체를 한 번에 해결하는 게 아니라, 가장 먼저 봐야 할 세 신호를 나란히 두어 충돌이 어디서 시작되는지 찾는 것이다.
1. 사람들이 자주 틀리는 지점은 canonical만 따로 보는 것이다
많은 사람이 canonical 태그를 먼저 열어보고, 그럴듯한 값이 보이면 일단 넘어간다. 하지만 그건 너무 좁다. canonical은 중요하지만 이야기의 일부만 말한다.
실제 locale 경로, redirect 동작, canonical 대상이 서로 안 맞으면 페이지는 여전히 섞인 지시를 보내고 있다. 한 층만 보면 어긋남이 드러나는 대신 가려질 수 있다.
2. 시작은 페이지 URL, canonical 대상, redirect 동작을 같이 대조하는 것이다
여기가 핵심 점검 포인트다. 템플릿이나 라우트 설정을 고치기 전에 이 세 신호를 나란히 둔다.
첫째, 페이지는 실제로 어느 URL에서 열리고 있는가. 둘째, canonical은 정확히 어느 URL을 대표로 선언하는가. 셋째, locale이나 기본 경로에서 redirect가 먼저 다른 데로 보내고 있지는 않은가. 이 세 가지만 같이 봐도 충돌이 route generation에 있는지, canonical 로직에 있는지, redirect 정책에 있는지 대개 드러난다.
증상이 자꾸 헷갈리는 이유도 여기에 있다. 예를 들어 페이지는 /ko/path/에서 잘 열리는데 canonical은 기본 언어 경로를 가리킬 수 있다. 반대로 기본 경로는 locale 경로로 redirect되는데 canonical은 다시 루트 버전을 고집할 수도 있다. 이런 루프는 사람 눈에는 잘 안 깨져 보여도 신호 시스템을 약하게 만든다.
이 세 층을 같이 놓는 순간 디버깅은 훨씬 차분해진다. “왜 검색이 헷갈리지?”라는 큰 질문 대신, 셋 중 어느 지시가 나머지 둘과 다르지?라는 더 작고 쓸모 있는 질문으로 바뀌기 때문이다.
3. 템플릿을 건드리기 전에 먼저 볼 세 가지
- 지금 실제로 페이지를 제공하는 locale URL이 무엇인가
- canonical이 정확히 가리키는 URL이 무엇인가
- redirect가 먼저 다른 대표 경로로 보내고 있지는 않은가
4. 가장 흔한 실패 장면은 한 locale에서 열리는데 canonical은 다른 locale을 가리키는 경우다
예를 들어 한국어 페이지가 /ko/ 경로에서 잘 열리는데 canonical은 기본 언어 경로를 가리키고 있다고 해보자. 혹은 기본 언어 경로가 locale 전용 경로로 즉시 redirect되는데 canonical은 여전히 루트 버전이 대표라고 적고 있을 수도 있다. 이런 건 작은 차이가 아니라, 같은 페이지에 대해 서로 다른 정체성을 주장하는 상태다.
비슷한 문제는 locale 경로 생성은 맞는데 예전 구조의 redirect가 남아 있을 때도 생긴다. 그러면 페이지 URL, canonical, redirect가 각자 다른 대표 경로를 설명하게 된다. 브라우저에서는 괜찮아 보여도 신호 모델은 불안정해진다.
5. 고친 뒤에는 재발 방지까지 같이 넣는다
충돌을 찾았다고 끝내면 안 된다. locale 경로나 canonical 규칙을 손댈 때마다 라이브 페이지 URL, canonical 대상, redirect 동작을 항상 같이 보는 습관을 남겨라. 이 간단한 순서만 반복해도 같은 문제가 다시 퍼지기 전에 대부분 잡힌다.
실전 문제 해결에서 재발 방지는 대개 거창한 장치가 아니라, 같은 대조 순서를 계속 지키는 것이다.
무엇부터 시작할까
문제가 있는 페이지 하나를 열고 세 URL을 나란히 적어라. 실제 페이지 URL, canonical 대상 URL, redirect가 있으면 첫 번째 redirect 대상 URL이다. 이 셋이 같은 대표 경로 계열을 설명하지 않으면, 더 깊은 곳을 고치기 전에 먼저 URL 신호 충돌로 다뤄라.