
- 01원리
canonical은 강한 신호일 뿐 지시가 아니어서, 다른 신호가 엇갈리면 구글이 다른 주소를 고를 수 있습니다.
- 02확인
서치콘솔 URL 검사에서 "사용자가 선언한 표준"과 "Google이 선택한 표준"을 나란히 봅니다.
- 03해결
리다이렉트·canonical·사이트맵·내부 링크가 모두 같은 주소를 가리키게 맞춥니다.
목차
같은 내용이 여러 주소로 열리는 일은 생각보다 흔합니다. www가 붙은 주소와 안 붙은 주소, 광고 추적 값이 붙은 주소, 정렬 순서만 다른 목록 페이지가 모두 "같은 페이지"입니다. 그래서 대표 주소를 canonical로 알려 주는데, 서치콘솔을 열어 보면 구글이 엉뚱한 주소를 대표로 골라 둔 경우가 있습니다. 이 글은 구글 검색 센터 문서를 바탕으로 원인을 찾는 순서를 정리합니다.
canonical을 넣었는데 왜 구글이 따르지 않나요?
canonical은 "이 주소를 대표로 써 달라"는 신호이지 지시가 아니기 때문입니다. 구글은 여러 신호를 함께 보고 대표 주소를 스스로 정하고, 신호끼리 엇갈리면 우리가 원한 주소와 다른 주소를 고를 수 있습니다.
구글 문서는 대표 주소를 알리는 방법을 영향력이 큰 순서로 이렇게 정리합니다.
| 방법 | 신호 세기 | 비고 |
|---|---|---|
| 리다이렉트(301 등) | 강함 | 이동한 쪽을 대표로 보라는 신호 |
| rel="canonical" | 강함 | HTML <head> 또는 HTTP 헤더 |
| 사이트맵에 넣기 | 약함 | 사이트맵에 있는 주소를 대표 후보로 봄 |
이 방법들은 겹쳐 쓸수록 효과가 커집니다. 반대로 canonical은 A를 가리키는데 사이트맵에는 B가 있고, 내부 링크는 C로 걸려 있다면 구글 입장에서는 무엇이 대표인지 판단하기 어렵습니다.
구글이 고른 대표 주소는 어디서 확인하나요?
서치콘솔의 URL 검사 도구에서 확인합니다. 주소를 넣으면 "사용자가 선언한 표준 URL"과 "Google에서 선택한 표준 URL"이 따로 나옵니다. 두 값이 다르면 그 페이지가 지금 문제의 대상입니다.
확인할 때는 구글이 고른 주소가 사용자에게 오히려 더 나은 주소는 아닌지도 함께 봅니다. 예를 들어 우리는 추적 값이 붙은 주소를 canonical로 잘못 적어 두었고, 구글은 깨끗한 주소를 골랐다면 고칠 쪽은 우리 태그입니다.
신호가 엇갈리는 흔한 원인은 무엇인가요?
대부분은 사이트 안의 설정이 서로 다른 주소를 가리키는 데서 생깁니다. 아래 순서로 점검하면 원인이 대개 나옵니다.
- canonical 값 자체: 브라우저 개발자 도구로 실제 HTML을 열어, canonical이 원하는 주소를 정확히 가리키는지 봅니다. CMS나 플러그인이 다른 주소를 자동으로 넣는 경우가 있습니다.
- 리다이렉트: 대표로 지정한 주소가 다시 다른 주소로 넘어가지 않는지 확인합니다. canonical 대상은 200으로 바로 열려야 합니다.
- 사이트맵: 사이트맵에 대표 주소만 들어 있는지 봅니다. canonical과 사이트맵이 다른 주소를 가리키면 안 됩니다.
- 내부 링크: 메뉴·본문·푸터 링크가 대표 주소로 걸려 있는지 봅니다. 구글은 일관된 내부 링크도 대표 판단에 참고합니다.
- 자바스크립트: 자바스크립트가 canonical 태그를 바꾸지 않는지 확인합니다. 구글은 HTML 원문에 canonical을 두고 스크립트로 바꾸지 말라고 권합니다.
- 다국어 페이지: 언어만 다른 같은 내용의 페이지라면 hreflang 표시가 빠지지 않았는지 봅니다.
페이지 내용이 거의 같으면 어떻게 되나요?
내용이 거의 같으면 구글은 여러 주소를 하나로 묶어 그중 하나만 대표로 보여 줍니다. 이때는 태그를 고쳐도 해결되지 않고, 각 페이지가 따로 보일 만큼 내용이 달라야 합니다.
지역별·조건별로 문장 몇 개만 바꾼 페이지가 대표적입니다. 구글 문서는 묶인 페이지가 다시 나뉘려면 새 내용과 기존 페이지의 차이가 분명하고 커야 더 빨리 나뉜다고 설명합니다. 따로 보여야 할 페이지라면 그 페이지에만 있는 정보(가격, 사례, 위치, 조건)를 충분히 넣습니다. 따로 보일 필요가 없다면 한 페이지로 합치고 나머지는 301로 넘기는 편이 낫습니다.
다른 사이트 주소가 대표로 잡혔다면 무엇을 의심하나요?
드물지만 우리 페이지 대신 다른 도메인의 주소가 대표로 잡힐 수 있습니다. 구글 문서가 드는 원인은 다음과 같습니다.
| 원인 | 확인할 것 |
|---|---|
| 서버 설정 오류 | 다른 도메인 요청에 우리 내용이 응답되지 않는지 호스팅 업체에 확인 |
| 해킹 | <head>나 HTTP 헤더에 모르는 canonical·리다이렉트가 들어갔는지 |
| 콘텐츠 제휴(신디케이션) | 제휴처가 우리 글을 그대로 싣는지, 색인 차단을 요청했는지 |
| 무단 복제 | 다른 사이트가 우리 글을 허락 없이 옮겼는지 |
해킹이 의심되면 canonical보다 보안 점검이 먼저입니다.
고친 다음에는 무엇을 하면 되나요?
고친 주소를 URL 검사 도구에서 다시 확인하고, 중요한 주소만 색인 생성 요청을 보냅니다. 요청에는 사용 한도가 있으니 모든 주소에 쓰지 않습니다. 그다음은 기다리는 단계입니다.
- 대표 주소 페이지에 자기 자신을 가리키는 canonical이 있다
- canonical·사이트맵·내부 링크가 같은 주소를 가리킨다
- 대표 주소는 리다이렉트 없이 200으로 열린다
- 추적 값이 붙은 주소에도 깨끗한 주소로 canonical이 걸려 있다
- robots.txt로 중복 주소를 막아서 대표를 정하려 하지 않았다
마지막 항목이 중요합니다. 구글 문서는 robots.txt를 대표 주소 지정에 쓰지 말라고 안내합니다. robots.txt로 막힌 주소는 내용 없이 색인될 수 있고, 구글이 그 페이지의 canonical 태그를 읽지도 못하기 때문입니다.
퍼스트초이스 무료 진단 도구는 canonical을 포함한 SEO 31개 항목을 한 번에 점검합니다. 주소만 넣으면 대표 주소 지정이 빠졌는지 바로 확인할 수 있습니다.
참고 자료
- How to specify a canonical URL with rel="canonical" and other methods Google Search Central
- Fix canonicalization issues Google Search Central
- What is URL canonicalization Google Search Central
자주 묻는 질문
Q.canonical 태그를 넣으면 구글이 반드시 따르나요?
아니요. 구글 문서는 rel="canonical"을 대표 주소를 알려 주는 강한 신호라고 설명합니다. 리다이렉트, 사이트맵, 내부 링크 같은 다른 신호와 어긋나거나 페이지 내용이 거의 같으면 구글이 다른 주소를 고를 수 있습니다.
Q.중복 페이지에 noindex를 넣는 게 더 확실하지 않나요?
같은 사이트 안에서 대표 페이지를 고르게 할 목적이라면 권하지 않습니다. 구글은 noindex가 그 페이지를 검색에서 완전히 빼 버리기 때문에 canonical 지정을 우선 쓰라고 안내합니다.
Q.고친 뒤 얼마나 지나야 반영되나요?
바로 바뀌지 않습니다. 구글 문서는 내용을 고친 뒤에도 최대 2주 정도 중복 묶음에 남아 있을 수 있다고 설명합니다. 중요한 주소는 URL 검사의 색인 생성 요청으로 다시 평가를 요청할 수 있습니다.
SEO
SEO