캐노니컬 태그는 유사하거나 중복된 URL 가운데 검색엔진에 대표 페이지를 알리는 HTML 요소입니다. 같은 상품이나 글이 여러 주소로 열릴 때 사이트가 선호하는 URL을 제시합니다.
다만 태그에 적은 URL이 항상 대표로 선택되는 것은 아닙니다. 검색엔진은 리디렉션, 사이트맵, 내부 링크, 페이지 내용도 함께 확인합니다.
이 글은 Google 검색 센터와 네이버 서치어드바이저의 공식 문서를 기준으로 작성했습니다. Ahrefs와 Semrush의 캐노니컬 점검 자료도 참고했습니다.
강제가 아닌 신호로 작동하는 방식
캐노니컬 URL은 여러 유사한 주소 가운데 검색엔진이 대표로 선택한 URL입니다. 캐노니컬 태그는 사이트 운영자가 선호하는 대표 URL을 알려 주는 코드입니다.
HTML 문서의 <head>에 아래와 같이 넣습니다.
<link rel="canonical" href="https://example.com/product/green-bag">
이 코드는 현재 페이지와 비슷한 여러 URL 가운데 https://example.com/product/green-bag을 대표로 처리해 달라는 뜻입니다.
Google은 캐노니컬 태그를 강한 신호로 사용하지만, 반드시 따라야 하는 명령으로 보지는 않습니다. 페이지 내용이나 내부 링크 등 다른 정보가 태그와 어긋나면 Google이 다른 대표 URL을 선택할 수 있습니다.
실제 사이트에서는 별도 페이지를 만들지 않아도 여러 주소가 생길 수 있습니다.
중복 URL이 생기는 원인
내용은 같거나 거의 비슷하지만 주소만 다른 경우는 흔합니다.
- 상품 정렬과 필터 조건이 URL 매개변수로 붙는 경우입니다. 예를 들어 같은 상품 주소 뒤에
?sort=popular이 추가됩니다. - 광고 추적 코드가 같은 페이지 뒤에 추가되는 경우
- HTTP와 HTTPS, www가 있는 주소와 없는 주소가 함께 열리는 경우
- 인쇄용 페이지와 일반 페이지가 별도 URL로 제공되는 경우
- 같은 글이 여러 카테고리 경로에서 열리는 경우
- 모바일 구현 과정에서 유사한 주소가 만들어지는 경우. 번역된 페이지는 일반 중복으로 묶지 않고 같은 언어의 대표 URL과 hreflang 관계를 따로 확인합니다
예를 들어 아래 세 주소가 같은 상품을 보여 줄 수 있습니다.
https://example.com/product/green-bag
https://example.com/product/green-bag?sort=popular
https://example.com/product/green-bag?utm_source=newsletter
검색엔진이 각 주소를 별도 페이지로 판단하면 페이지에 대한 정보가 여러 URL로 나뉠 수 있습니다. 캐노니컬 태그는 어떤 주소를 대표로 사용할지 알려 줍니다.

중복 URL을 찾았다면 태그만 넣기 전에 대표 URL이 갖춰야 할 조건부터 확인해야 합니다.
대표 절대 URL 작성 규칙
대표 URL은 사용자가 정상적으로 열 수 있고 검색에 제공할 가치가 있는 페이지여야 합니다.
설정할 때는 아래 기준을 확인하세요.
- 대표 URL이
200정상 응답을 반환합니다. - 대표 URL에 noindex가 없습니다.
- HTTP보다 실제 운영 중인 HTTPS 주소를 사용합니다.
- 상대 경로보다 전체 절대 URL을 적습니다.
/product/green-bag이 아니라https://example.com/product/green-bag처럼 씁니다. - 한 페이지에서 서로 다른 캐노니컬 태그를 여러 개 내보내지 않습니다.
- 태그는 유효한 HTML의
<head>안에 둡니다. - 내부 링크와 사이트맵도 같은 대표 URL을 가리킵니다.
PDF처럼 HTML 태그를 넣을 수 없는 파일에는 서버가 보내는 HTTP 응답 헤더로 canonical을 전달할 수도 있습니다. 아래 방식은 Google 웹 검색이 공개한 지원 범위이며 Naver에도 같다고 단정하면 안 됩니다.
Link: <https://example.com/guide>; rel="canonical"
WordPress와 쇼핑몰 CMS는 캐노니컬 태그를 자동으로 생성하는 경우가 많습니다. 직접 코드를 추가하기 전에 기존 플러그인이나 템플릿이 어떤 URL을 출력하는지 먼저 확인하세요. 여러 도구가 동시에 태그를 만들면 서로 다른 대표 URL이 선언될 수 있습니다.
같은 중복 상황이라도 사용자를 새 주소로 이동시킬지, 기존 주소를 유지할지에 따라 처리 방법이 달라집니다.
301, noindex와 다른 쓰임
| 상황 | 적합한 방법 | 사용자에게 보이는 변화 |
|---|---|---|
| 유사한 여러 URL을 유지하면서 대표 주소를 알림 | 캐노니컬 태그 | 현재 URL에 그대로 머뭅니다. |
| 이전 URL을 폐기하고 새 URL로 이동 | 301 또는 308 리디렉션 | 새 URL로 이동합니다. |
| 페이지를 검색결과에서 제외 | noindex | 페이지 접속은 그대로 가능합니다. |
| 삭제된 페이지를 종료 | 404 또는 410 | 페이지가 없다는 응답을 받습니다. |
사용자도 새 URL로 보내야 한다면 리디렉션을 사용합니다. 같은 페이지가 여러 형태로 필요하고 사용자가 각 URL을 계속 이용해야 한다면 캐노니컬 태그를 검토합니다.
noindex는 대표 URL을 정하는 방법이 아닙니다. 페이지 자체를 검색에서 제외하므로 중복 신호를 대표 페이지로 모으려는 목적과 결과가 다릅니다.
사이트맵도 대표 URL을 알리는 데 도움이 되지만 캐노니컬 태그보다 약한 신호입니다. 사이트맵에는 검색에 보여 주고 싶은 대표 URL만 넣고, 페이지의 캐노니컬 태그와 같은 주소를 사용하세요.
태그를 올바르게 넣었는데도 Google이 다른 대표 URL을 선택하는 경우가 있습니다.
Google이 다른 캐노니컬 URL을 선택하는 이유
Search Console에서 사용자가 선언한 표준 URL과 Google이 선택한 표준 URL이 다르게 표시될 수 있습니다. 이것만으로 태그가 고장 났다고 단정할 수는 없습니다.
다음 신호가 서로 어긋나지 않는지 확인하세요.
대표로 선언한 주소가 https://example.com/product/green-bag이고, 다른 중복 주소가 https://example.com/product/green-bag?sort=popular이라고 가정해보겠습니다.
- 캐노니컬 태그는 기본 주소를 가리키는데 내부 링크 대부분은 매개변수가 붙은 주소로 연결되는 경우
- 사이트맵에는 매개변수가 붙은 주소만 있고 페이지는 기본 주소를 대표로 선언하는 경우
- 대표로 선언한 주소가 리디렉션되거나 404, 5xx 응답을 반환하는 경우
- 대표로 선언한 주소에 noindex가 있거나 robots.txt로 접근이 막혀 있는 경우
- 두 주소의 내용이 충분히 비슷하지 않은 경우
- HTTP, HTTPS, www, 슬래시 유무가 사이트 안에서 일관되지 않은 경우
검색엔진은 태그 하나만 보고 대표 URL을 정하지 않습니다. 캐노니컬 문제가 생겼다면 태그만 다시 저장하지 말고 내부 링크와 사이트맵이 실제로 어떤 URL을 가리키는지도 확인하세요.

Search Console에서 캐노니컬을 확인하는 법
Google Search Console의 URL 검사에 확인할 전체 URL을 입력합니다.
주로 볼 항목은 두 가지입니다.
| 항목 | 의미 |
|---|---|
| 사용자 선언 표준 URL | 페이지의 태그나 헤더로 사이트가 제안한 대표 URL |
| Google 선택 표준 URL | Google이 여러 신호를 보고 실제 대표로 선택한 URL |
두 URL이 같고 의도한 대표 페이지가 색인됐다면 정상입니다. 적절한 표준 태그가 포함된 대체 페이지 상태도 중복 URL을 의도대로 대표 페이지에 통합한 결과일 수 있습니다.
두 URL이 다르다면 먼저 페이지 소스의 canonical을 확인합니다. 그다음 내부 링크, 사이트맵, 리디렉션, 응답 코드, noindex 여부를 같은 대표 URL 기준으로 맞춥니다.
네이버도 HTML <head>의 canonical 태그로 선호 URL을 확인합니다. 다만 대표 URL을 판단하는 방식은 검색엔진마다 다를 수 있습니다. Google의 검사 결과를 네이버에도 그대로 적용되는 결과로 보지는 마세요.
Google 검색의 AI 기능도 일반 검색의 색인 체계를 바탕으로 작동합니다. 다만 canonical만으로 AI 답변에 표시될 출처 URL을 정할 수는 없습니다. ChatGPT와 Claude가 rel canonical을 어떤 방식으로 처리하는지는 공개 문서에서 확인되지 않습니다. Search Console의 Google 선택 canonical과 챗봇 답변의 실제 출처 URL을 나눠 확인합니다.
자주 묻는 질문
캐노니컬 태그를 넣으면 Google이 반드시 그 URL을 선택하나요?
반드시 선택하는 것은 아닙니다. Google은 캐노니컬 태그와 리디렉션, 사이트맵, 내부 링크, 페이지 내용 등 여러 신호를 함께 봅니다.
모든 페이지에 자기 자신을 가리키는 캐노니컬이 필요한가요?
Google은 자기 참조 canonical을 사용해 대표 URL을 일관되게 알리는 방식을 권장합니다. CMS가 자동으로 생성한다면 실제 공개 URL과 일치하는지 확인하세요.
캐노니컬 태그와 301 리디렉션은 같은가요?
다릅니다. 캐노니컬은 대표 URL을 알리는 신호이며 사용자를 이동시키지 않습니다. 301 리디렉션은 사용자와 검색로봇을 새 URL로 보냅니다.
캐노니컬과 noindex를 함께 사용해도 되나요?
목적이 충돌할 수 있어 권장하지 않습니다. 대표 URL을 지정하려면 canonical을 사용하고, 페이지를 검색에서 제외하려면 noindex를 사용하세요.
다른 도메인을 캐노니컬 URL로 지정할 수 있나요?
Google은 정당한 이유가 있는 유사 콘텐츠에 교차 도메인 canonical을 지원합니다.
다만 외부 도메인을 대표로 지정하면 현재 페이지 대신 그 URL이 검색 대표로 선택될 수 있으므로 소유권과 콘텐츠 배포 관계를 확인해야 합니다.
함께 알아두면 좋은 용어
- 표준 URL: 검색엔진이 유사 URL 가운데 대표로 선택한 주소
- 중복 콘텐츠: 같거나 매우 비슷한 내용이 여러 URL에 존재하는 상태
- 리디렉션: 사용자와 검색로봇을 다른 URL로 이동시키는 처리
- noindex: 페이지를 검색 색인에서 제외하라는 지시
- 사이트맵: 검색엔진에 중요한 대표 URL 목록을 알려 주는 파일
- URL 검사: Google이 선택한 대표 URL과 색인 상태를 확인하는 기능
캐노니컬 태그는 중복 페이지를 지우는 기능이 아닙니다. 여러 URL을 유지하면서 검색엔진이 참고할 대표 주소를 알리는 신호입니다.
태그를 확인한 뒤에는 내부 링크와 사이트맵, 리디렉션이 같은 URL을 가리키는지도 함께 보세요. 대표 URL에 대한 신호가 일치할수록 검색엔진이 사이트의 의도를 이해하기 쉽습니다.