본문 바로가기
이루웹

중복 콘텐츠와 canonical 태그 — 순위 손해 막는 법

www·비www, 파라미터, 페이지네이션으로 저절로 생기는 중복 콘텐츠를 canonical 태그로 정리하는 법을 예시로 쉽게 정리합니다.

이루웹28분 분량

중복 콘텐츠 문제는 한 줄로 요약된다. 똑같거나 아주 비슷한 내용이 여러 주소(URL)에서 열릴 때, "진짜 정규 주소가 어디인지"를 <link rel="canonical"> 태그로 구글에 명확히 알려주면 된다. 이 한 줄을 제대로 못 쓰면 애써 쌓은 순위 신호가 여러 URL로 흩어져 손해를 본다.

많은 홈페이지 운영자가 "콘텐츠를 복사해서 붙여넣지 않았는데 왜 중복이라는 거지"라고 묻는다. 하지만 중복 콘텐츠는 대부분 의도치 않게, 서버 설정과 URL 구조만으로 저절로 생긴다. www와 비www, http와 https, 정렬·필터 파라미터, 페이지네이션까지 원인은 다양하다.

결론을 다시 정리하면 이렇다. 페이지마다 자기 자신을 정규 URL로 선언하는 canonical 태그를 절대경로로, 파라미터 없이, 신호 충돌 없이 넣는다. 이것만 지켜도 색인·크롤링 예산·순위 신호가 한 곳으로 모인다.

중복 콘텐츠와 canonical 태그로 순위 손해 막는 법
www·파라미터·페이지네이션으로 흩어지는 신호를 canonical 태그로 한 곳에 모은다.

이 글에서 먼저 챙겨 갈 핵심만 추리면 이렇다.

  • 중복 콘텐츠가 순위에 손해인 이유와, 저절로 생기는 4가지 흔한 원인
  • canonical 태그의 정확한 문법과 자기참조(self-referencing) 원칙
  • 실제 코드로 보는 좋은 예와 나쁜 예, 그리고 흔한 실수 5가지
  • 페이지네이션(목록 여러 쪽) 중복 처리법과 rel=next/prev의 진실
  • canonical과 301 리다이렉트, noindex를 상황별로 구분해 쓰는 법
  • 파라미터가 많은 쇼핑몰·매물 사이트의 실전 관리법

조금 더 풀어 말하면, 검색엔진 입장에서 URL은 매장의 주소와 같다. 한 가게가 간판을 두 개, 세 개 걸어두고 "여기가 우리 가게 맞아요"라고 말해도, 손님(그리고 손님을 데려다주는 지도 앱)은 어디가 진짜 정문인지 헷갈린다. 결국 리뷰도, 방문 기록도, 신뢰도도 여러 간판에 나뉘어 쌓인다.

이 글은 그 헷갈림을 없애는 방법을 다룬다. 홈페이지를 직접 만들거나 운영하는 사람이 오늘 바로 확인할 수 있도록, 정의부터 실전 코드, 흔한 실수, 체크리스트까지 예시 중심으로 쉽게 정리한다. 어려운 용어는 나오는 자리에서 바로 한 문장으로 풀어 쓴다.

중복 콘텐츠란 무엇이고, 왜 순위에 손해일까?

중복 콘텐츠(Duplicate Content)란 같은 내용, 또는 거의 같은 내용이 서로 다른 URL 여러 개에서 그대로 열리는 상태를 말한다. 글자 하나까지 완전히 똑같지 않아도, 핵심 내용이 겹치면 구글은 이를 중복으로 판단할 수 있다.

여기서 오해하기 쉬운 부분이 있다. 구글은 중복 자체를 "표절"이나 스팸으로 보고 벌을 주지 않는다. 문제는 다른 데 있다. 구글은 겹치는 URL 여러 개 중 딱 하나를 골라 검색 결과에 대표로 보여줘야 하는데, 이 선택을 운영자가 아니라 구글에 맡기는 순간부터 손해가 시작된다.

구체적으로는 세 가지 손해가 겹쳐서 온다.

  • 크롤링 예산 낭비: 검색엔진 로봇(크롤러)이 사이트를 방문해 페이지를 읽어가는 데는 한도가 있다. 이를 크롤링 예산이라 부른다. 로봇이 같은 내용을 담은 여러 URL을 반복해서 읽느라, 정작 새로 올린 글이나 중요한 페이지 발견이 늦어진다.
  • 순위 신호 분산: 다른 사이트에서 받은 링크나 소셜 공유가 www 버전과 비www 버전으로 나뉘어 쌓이면, 한 URL로 모았을 때보다 신뢰 점수가 약해진다. 백링크(다른 사이트가 우리 사이트로 거는 링크) 하나하나가 반쪽짜리 힘만 내는 셈이다.
  • 원치 않는 URL의 노출: 운영자가 원하는 깔끔한 주소가 아니라, 파라미터가 붙거나 오래된 http 주소가 검색 결과에 대표로 뜰 수 있다. 이런 경우 클릭률과 신뢰도 모두에 손해다.

중복 콘텐츠는 처벌이 아니라 신호의 낭비다. canonical 태그는 이 낭비를 막아 흩어진 신호를 한 곳으로 모아주는 장치일 뿐, 페널티를 피하는 마법의 주문이 아니다.

SEO를 오래 다뤄본 입장에서 보면, 중복 콘텐츠는 화려한 콘텐츠 전략보다 훨씬 기초 공사에 가까운 문제다. 아무리 좋은 글을 쓰고 백링크를 열심히 모아도, 그 신호가 세 개의 URL로 나뉘어 쌓이면 절반의 힘밖에 못 낸다. 실제로 사이트 진단을 해보면, 콘텐츠 자체보다 이런 구조적인 문제 하나를 고치는 것만으로 순위가 눈에 띄게 안정되는 경우가 적지 않다.

이제 이 낭비가 실제로 어떻게 시작되는지, 가장 흔한 4가지 원인부터 짚어보자.

같은 페이지가 왜 저절로 여러 주소로 열릴까?

대부분의 중복 콘텐츠는 운영자가 일부러 만들지 않는다. 서버 설정과 URL 구조만으로 자동으로 생긴다. 아래 4가지가 실무에서 가장 자주 만나는 원인이다.

첫째, www와 비www 혼재다. https://iruweb.comhttps://www.iruweb.com은 사람 눈에는 똑같은 사이트지만, 구글에는 완전히 다른 두 개의 URL이다. 서버에서 한쪽으로 리다이렉트(자동 이동) 설정을 해두지 않으면 두 주소 모두 그대로 열린다.

둘째, http와 https 혼재다. 요즘 대부분의 홈페이지는 SSL 인증서(브라우저 주소창에 자물쇠 표시가 뜨는 보안 연결)를 적용해 https로 전환했다. 문제는 예전 http 주소가 리다이렉트 없이 그대로 살아있는 경우가 흔하다는 점이다. 구글은 기본적으로 https 버전을 정규 URL로 선호하지만, 명확한 리다이렉트를 걸지 않으면 이 판단을 구글에만 맡기는 셈이 된다.

셋째, URL 파라미터다. 쇼핑몰의 정렬 옵션(?sort=price), 광고 추적값(?utm_source=instagram), 필터(?color=red) 같은 물음표 뒤 문자열이 붙을 때마다 새로운 URL이 태어난다. 상품 목록 페이지 하나가 파라미터 조합에 따라 수십, 수백 개의 주소로 늘어나는 일도 드물지 않다.

넷째, 페이지네이션이다. 페이지네이션이란 목록을 한 페이지에 다 담지 않고 2쪽, 3쪽으로 나누는 방식을 말한다. 블로그 목록이나 상품 목록을 나누면 /blog?page=2처럼 쪽마다 새 URL이 생기고, 상단 소개 문구나 카테고리 설명이 겹치면서 콘텐츠 유사도가 자연히 높아진다.

중복 콘텐츠가 생기는 4가지 흔한 원인: www 비www, http https 혼재, URL 파라미터, 페이지네이션
중복 콘텐츠는 대부분 서버 설정과 URL 구조만으로 저절로 생긴다.

내 사이트가 이 네 가지 중 무엇에 해당하는지는 어렵지 않게 직접 확인할 수 있다. 브라우저 주소창에 www.를 붙인 주소와 뺀 주소, http://https:// 버전을 각각 직접 입력해 본다. 리다이렉트 없이 둘 다 그대로 열린다면, 지금 이 순간 중복 URL 두 개가 함께 살아있는 것이다.

이 네 가지 각각을 실전에서 어떻게 정리하는지는 뒤에서 코드와 표로 다시 다룬다. 먼저 이 문제를 해결하는 핵심 도구인 canonical 태그 자체부터 정확히 짚어보자.

www·https 혼재는 어떻게 하나로 통일할까?

앞서 본 4가지 원인 중 www·비www, http·https 혼재는 canonical보다 301 리다이렉트로 푸는 것이 정석이다. 두 주소 모두 살려둘 이유가 없기 때문이다. 옛 주소로 들어오는 손님까지 자동으로 새 주소로 보내버리는 편이 사용자에게도, 검색엔진에도 더 깔끔하다.

직접 서버를 관리한다면 방법은 이렇다. 아파치(Apache) 서버라면 .htaccess 파일에 규칙을 추가하고, Nginx 서버라면 설정 파일에 return 301 구문을 넣는다. Cloudflare 같은 CDN 서비스를 쓴다면 "페이지 규칙" 또는 "리다이렉트 규칙" 메뉴에서 코드 없이도 설정할 수 있다.

직접 서버를 만지기 어렵다면, 호스팅 업체나 개발 담당자에게 "www를 비www로(또는 반대로) 301 리다이렉트 처리해달라", "http로 들어오면 https로 301 리다이렉트 처리해달라"고 요청 문구 그대로 전달하면 된다.

한 가지 주의할 점은 방향을 하나로 정하고 계속 유지해야 한다는 것이다. 오늘은 www를 정규로, 다음 달엔 비www를 정규로 바꾸는 식으로 왔다 갔다 하면 구글이 어느 쪽에도 확신을 갖지 못하고 판단을 계속 미룬다. 이미 백링크가 많이 쌓여 있거나 오랫동안 검색에 노출된 쪽을 정규로 유지하는 편이 안전하다.

리다이렉트를 걸었다면 각 페이지의 canonical 태그도 최종 정규 주소(예: https 버전, 비www 버전)로 통일해서 넣어야 한다. 리다이렉트와 canonical이 같은 방향을 가리켜야 신호가 겹쳐서 힘을 낸다.

canonical 태그란 정확히 무엇인가?

canonical 태그는 HTML 문서의 <head> 영역 안에 넣는 한 줄로, "여러 URL 중 진짜 정규 버전은 이 주소다"라고 구글에 알려주는 신호다. 문법은 다음과 같다.

<link rel="canonical" href="https://iruweb.com/blog/best-shoes" />

rel="canonical"은 "정규(canonical) 관계"라는 뜻이고, href에 적힌 주소가 구글이 색인하고 검색 결과에 노출할 대표 URL이 된다. 구글 서치 센트럴 공식 문서는 이 태그를 정규 URL을 지정하는 강력한 신호라고 설명한다.

여기서 "신호"라는 표현을 눈여겨봐야 한다. canonical 태그는 반드시 따라야 하는 명령이 아니라, 구글이 참고하는 강한 힌트다. 대부분의 경우 구글은 이 지시를 그대로 따르지만, 다른 신호(내부 링크, 리다이렉트, 실제 콘텐츠 차이)가 충돌하면 구글이 다른 URL을 정규로 선택할 수도 있다.

가장 중요한 원칙은 "자기참조(self-referencing)"다. 정규 URL로 삼고 싶은 페이지 자신도 스스로를 가리키는 canonical 태그를 넣어야 한다. /blog/best-shoes가 정규 URL이라면, 이 페이지 자체에도 href="https://iruweb.com/blog/best-shoes"를 넣는 것이다. 이렇게 해두면 나중에 누군가 파라미터를 붙인 링크(?ref=)로 들어와도 구글이 정규 버전을 헷갈리지 않는다.

canonical은 HTML <link> 요소뿐 아니라, PDF처럼 HTML이 아닌 파일에서는 HTTP 헤더로도 지정할 수 있다. 다만 실무에서 만나는 대부분의 경우는 페이지 <head> 안의 이 한 줄이다.

구글 서치 콘솔의 "URL 검사" 도구를 열면 이 신호가 실제로 어떻게 받아들여졌는지 확인할 수 있다. 이 도구는 "사용자 선언 표준 URL"(운영자가 canonical 태그로 지정한 주소)과 "Google에서 선택한 표준 URL"(구글이 실제로 고른 주소)을 각각 보여준다. 이 글에서는 구글의 "표준 URL"과 같은 뜻으로 "정규 URL"이라는 표현을 쓴다.

두 값이 다르게 나온다면, 그 자체가 신호 충돌이 있다는 증거다. 우리가 지정한 주소와 구글이 실제로 고른 주소가 다르다면, 뒤에서 다룰 흔한 실수 목록부터 점검할 차례다.

구글은 정규 URL을 고를 때 무엇을 참고할까?

canonical 태그가 "강력한 신호"이지 "명령"이 아니라고 한 이유는, 구글이 정규 URL을 고를 때 여러 신호를 함께 놓고 판단하기 때문이다. 대표적으로 참고하는 신호는 다음과 같다.

  • canonical 태그: 운영자가 직접 선언한 값. 가장 강한 신호 중 하나다.
  • 301 리다이렉트: 리다이렉트가 걸린 목적지 URL을 정규로 볼 강한 근거가 된다.
  • https 여부: 같은 조건이라면 구글은 http보다 https 버전을 기본적으로 선호한다.
  • 사이트맵에 등록된 URL: 사이트맵(sitemap.xml)에 올라간 주소도 참고 자료가 되지만, canonical 태그보다는 약한 신호다.
  • 내부 링크 패턴: 사이트 안에서 실제로 어떤 URL이 더 많이, 더 일관되게 링크되는지도 판단 근거가 된다.

이 신호들이 서로 같은 방향을 가리킬 때 구글은 운영자의 의도를 그대로 신뢰한다. 반대로 신호끼리 어긋나면(예: canonical은 A를 가리키는데 내부 링크는 전부 B로 걸려있는 경우) 구글이 직접 판단에 나서고, 그 결과가 운영자의 기대와 다를 수 있다. canonical 태그만 잘 써놓고 내부 링크는 옛 주소 그대로 방치하는 실수가 실무에서 의외로 잦다.

canonical 태그, 어떻게 써야 할까?

문법은 단순하지만 실무에서는 이 한 줄을 잘못 써서 오히려 문제를 키우는 경우가 많다. 실제 코드로 좋은 예와 나쁜 예를 비교해 보자.

canonical 태그 나쁜 예와 좋은 예 코드 비교
상대경로·파라미터 방치·중복 선언은 나쁜 예, 절대경로·자기참조는 좋은 예다.

나쁜 예의 문제를 하나씩 짚으면 이렇다.

  • 상대경로 사용: href="/blog/best-shoes?utm_source=ig"처럼 도메인 없이 경로만 쓰면, 일부 상황(서브도메인 혼용, 프록시 설정 등)에서 구글이 의도와 다른 도메인으로 해석할 위험이 있다. 구글 공식 문서도 절대경로 사용을 권장한다.
  • 파라미터 그대로 방치: 애초에 파라미터를 없애려고 canonical을 쓰는 것인데, canonical 주소 자체에 파라미터가 남아 있으면 정규화가 실패한다.
  • canonical 중복 선언: 한 페이지 안에 서로 다른 canonical 태그가 2개 이상 있으면, 구글은 신호 충돌로 보고 canonical 자체를 무시할 수 있다.

좋은 예는 이 세 가지를 모두 뒤집는다. 절대경로(https://도메인 포함)로, 파라미터 없이, 페이지당 정확히 하나만 선언한다.

카페·치과·쇼핑몰 등 업종을 막론하고 원칙은 같다. "이 페이지의 진짜 주소가 무엇인가"라는 질문에 코드로 명확히 한 번만 답하면 된다.

실전에서 자주 보는 업종별 사례를 몇 가지 들어보자. 동네 카페가 인스타그램 광고로 메뉴 페이지 링크를 걸 때 ?utm_source=instagram&utm_campaign=summer를 붙였다면, 메뉴 페이지 자신의 canonical은 파라미터 없는 깨끗한 주소를 가리켜야 한다. 치과가 "임플란트" 페이지와 "임플란트 비용" 페이지를 따로 만들었는데 내용이 90% 겹친다면, 둘 중 검색량이 많은 쪽을 정규로 정하고 나머지는 그쪽을 canonical로 지정하거나 아예 하나로 합치는 편이 낫다.

부동산 중개업소가 "강남 오피스텔 매물" 페이지를 지역·평형별로 여러 개 만들었는데 소개 문구만 다르고 매물 목록 구조가 거의 같다면, 각 지역 페이지는 서로를 canonical로 지정하지 않고 자기참조를 유지하되 본문 내용을 실제로 다르게 채워야 한다. 겉모습만 다르고 알맹이가 같은 페이지를 canonical 없이 여러 개 만드는 것이야말로 가장 흔한 함정이다. 학원이 같은 커리큘럼 페이지를 지점별 URL로 복제해 두는 경우도 마찬가지다. 지점마다 실제로 다른 정보(강사진, 위치, 시간표)가 충분히 채워져 있다면 각자 정식 페이지로 두고, 아니라면 대표 페이지로 canonical을 모아주는 편이 낫다.

흔한 실수 5가지, 무엇을 조심해야 할까?

canonical 태그를 이미 쓰고 있어도 아래 5가지 실수 중 하나에 걸려 있으면 효과가 없다.

  1. 상대경로로 작성했다 — 앞서 본 것처럼 절대경로가 원칙이다. 개발자가 로컬 테스트 환경에서 만든 코드를 그대로 배포하면서, 도메인을 채워 넣는 걸 깜빡하는 경우가 실제로 흔하다.
  2. 서로 다른 방법이 서로 다른 URL을 가리킨다 — 예를 들어 canonical 태그는 A 페이지를 가리키는데, 301 리다이렉트나 사이트맵은 B 페이지를 가리키면 구글은 어느 신호를 믿어야 할지 혼란스러워한다. 구글 공식 문서는 서로 다른 방식으로 서로 다른 URL을 정규로 지정하지 말라고 명시한다. 사이트 개편 도중 리다이렉트만 먼저 바꾸고 canonical 값 수정을 깜빡하는 식으로 이 문제가 생긴다.
  3. URL 조각(#)을 canonical로 지정했다#section2처럼 페이지 안에서 이동하는 앵커는 애초에 별도 URL이 아니므로 canonical 대상이 될 수 없다. 구글 공식 문서도 이를 명확히 금지한다. 원 페이지 스크롤 이동용으로 쓰던 앵커 주소를 실수로 canonical에 그대로 붙여넣는 경우가 여기에 해당한다.
  4. robots.txt로 중복을 해결하려 했다 — robots.txt는 크롤링 자체를 막는 도구지, 중복 URL 중 정규 버전을 알려주는 도구가 아니다. 크롤링을 막으면 구글은 그 페이지에 canonical 태그가 있다는 사실조차 확인하지 못한다. 구글 공식 문서는 robots.txt 파일을 이런 용도로 쓰지 말라고 밝힌다. "파라미터 붙은 주소는 그냥 크롤링을 막아버리면 되지 않나"라는 생각이 오히려 canonical 신호 자체를 구글에 전달하지 못하게 막는 역효과를 낸다.
  5. hreflang과 canonical의 언어가 어긋난다 — 다국어 사이트에서 한국어 페이지의 canonical이 영어 페이지를 가리키는 식으로 언어가 맞지 않으면 신호가 충돌한다. 다국어 운영 계획이 없다면 당장 급한 문제는 아니지만, 사이트를 확장할 때 기억해 둘 부분이다.

이 다섯 가지 중 실무에서 가장 흔한 건 2번, "서로 다른 신호가 서로 다른 URL을 가리키는 것"이다. 사이트를 여러 사람이 오래 관리하다 보면, 개발자가 리다이렉트를 하나 바꾸거나 마케터가 랜딩페이지를 새로 만들면서 이런 충돌이 소리 없이 쌓인다.

워드프레스 같은 CMS(콘텐츠 관리 시스템)를 쓰는 경우 SEO 플러그인이 canonical을 자동 생성해 주지만, 플러그인 설정을 건드리거나 테마를 바꾼 뒤 canonical 값이 엉뚱하게 바뀌는 사고도 흔하다. Next.js처럼 직접 코드로 만든 사이트라면, 페이지 컴포넌트마다 canonical을 지정하는 로직이 실제로 정확한 절대 URL을 만들어내는지 배포 후 몇 개 페이지를 직접 확인하는 습관이 필요하다.

페이지네이션 중복은 어떻게 처리할까?

목록을 여러 쪽으로 나누는 페이지네이션은 오랫동안 SEO 담당자를 헷갈리게 한 주제다. 결론부터 말하면, 구글은 더 이상 rel="next", rel="prev" 태그를 사용하지 않는다. 2011년에 도입됐던 이 방식은, 구글이 실질적으로 이미 오래전부터 사용을 중단했다는 사실이 이후 공식적으로 확인됐다.

그렇다면 목록 2쪽, 3쪽은 어떻게 처리해야 할까? 실무에서 권장하는 방법은 각 페이지가 자기 자신을 canonical로 선언하는 것이다. 즉 /blog?page=2/blog?page=2 자신을 정규 URL로 가리키고, /blog?page=1을 canonical로 지정하지 않는다. 2쪽과 1쪽은 서로 다른 글 목록을 보여주는 콘텐츠이므로, 강제로 1쪽을 정규로 몰아주면 오히려 2쪽 이후의 개별 글이 색인에서 밀릴 수 있다.

예외적으로, 목록 전체를 한 페이지에 담은 전체보기(view-all) 페이지를 별도로 제공한다면, 페이지네이션된 개별 쪽들이 이 전체보기 페이지를 canonical로 가리키는 방법도 쓸 수 있다. 다만 전체보기 페이지가 로딩 속도 저하 없이 충분히 빠르게 떠야만 권장된다. 상품이 수백 개인 쇼핑몰이라면 전체보기보다는 각 쪽을 자기참조로 두는 편이 현실적이다.

페이지네이션은 숨기는 문제가 아니라 구조화하는 문제다. 각 쪽을 있는 그대로 색인시키되, 사용자와 크롤러 모두 다음 쪽으로 잘 이동할 수 있게 링크만 명확히 걸어두면 충분하다.

canonical과 301 리다이렉트, noindex는 언제 각각 써야 할까?

세 가지 도구는 모두 "중복을 정리한다"는 목적은 같지만, 작동 방식과 써야 하는 상황이 다르다. 헷갈려서 잘못 섞어 쓰면 색인 문제가 오히려 커진다.

canonical 태그, 301 리다이렉트, noindex의 용도 비교
세 도구는 목적이 다르다 — 옮길 때, 통합할 때, 아예 빼야 할 때.

표로 정리하면 다음과 같다.

도구 언제 쓰나 접근 자체는 신호 강도
301 리다이렉트 URL을 영구히 옮길 때(도메인 이전, www 통일) 옛 주소 접근 불가, 새 주소로 자동 이동 매우 강함
canonical 태그 두 URL 모두 열려야 하지만 색인은 하나만 원할 때 두 URL 모두 접근 가능 강한 신호(명령은 아님)
noindex 애초에 검색 결과에 나올 필요가 없을 때 접근은 가능, 색인만 제외 요청 매우 강함(색인 제외는 확실)

가장 자주 헷갈리는 조합은 canonical과 noindex를 동시에 쓰는 경우다. A 페이지에 noindex를 걸어 색인에서 빼면서 동시에 canonical로 B 페이지를 가리키는 것은 원칙적으로 문제가 없다. 하지만 canonical이 가리키는 대상 페이지 자체에 noindex를 걸어두면, 정규로 지정한 페이지마저 색인에서 빠지면서 전체 신호가 무너진다. 이 조합만은 반드시 피해야 한다.

도메인을 통째로 옮기는 경우를 예로 들면 이렇다. 내회사.co.kr에서 내회사.com으로 도메인을 바꾼다면, 옛 도메인의 모든 페이지에 새 도메인으로 향하는 301 리다이렉트를 걸어야 한다. canonical 태그만 새 주소로 바꾸고 리다이렉트를 걸지 않으면, 사용자는 여전히 옛 주소로 들어오게 되고 신호도 완전히 옮겨가지 않는다. 리다이렉트는 "이사", canonical은 "같은 건물 안 정문 안내"라고 구분하면 기억하기 쉽다.

canonical이 실제로 적용됐는지 확인하는 방법은?

태그를 넣었다고 끝난 게 아니다. 실제로 정확히 반영됐는지 확인하는 습관이 필요하다. 확인 방법은 어렵지 않게 세 가지가 있다.

  1. 페이지 소스 보기: 브라우저에서 페이지를 열고 마우스 오른쪽 버튼으로 "페이지 소스 보기"를 누른 뒤, Ctrl+F(맥은 Cmd+F)로 canonical을 검색한다. <head> 안에 원하는 절대경로 주소가 정확히 한 줄만 들어있는지 눈으로 확인할 수 있다.
  2. 구글 서치 콘솔 URL 검사: 앞서 설명한 "URL 검사" 도구에 확인하고 싶은 주소를 넣으면, "사용자 선언 표준 URL"과 "Google에서 선택한 표준 URL"을 함께 보여준다. 두 값이 일치하면 정상이고, 다르면 신호 충돌 가능성을 의심해야 한다.
  3. 사이트 전체 점검 도구: 스크리밍프로그 같은 크롤링 점검 도구나 Ahrefs·Semrush 같은 SEO 도구를 쓰면, 사이트 전체 페이지의 canonical 값을 한 번에 표로 뽑아 상대경로·중복 선언 같은 실수를 빠르게 찾아낼 수 있다. 페이지 수가 적다면 앞의 두 가지 방법만으로도 충분하다.

이미 중복으로 색인된 페이지가 있다면, canonical을 고쳐 넣는다고 바로 정리되지는 않는다. 구글이 해당 페이지를 다시 크롤링하고 새 신호를 반영할 시간이 필요하다. 급하게 반영을 유도하고 싶다면 서치 콘솔 URL 검사 도구에서 "색인 생성 요청"을 눌러 재크롤링을 요청할 수 있지만, 그래도 결과 반영까지는 며칠에서 몇 주가 걸릴 수 있다는 점을 감안해야 한다.

파라미터가 많은 쇼핑몰은 어떻게 관리할까?

상품 수가 많은 쇼핑몰이나 부동산 매물 사이트는 정렬·필터·페이지당 개수 옵션이 조합되면서 URL이 기하급수적으로 늘어난다. 예전에는 구글 서치 콘솔의 "URL 매개변수" 도구로 특정 파라미터를 무시하도록 설정할 수 있었지만, 구글은 2022년에 이 도구를 완전히 폐지했다. 지금도 이 방법을 안내하는 오래된 글이 검색되니 참고할 때 주의가 필요하다.

지금 기준으로 실무에서 쓰는 방법은 세 가지다.

  • 파라미터가 붙은 모든 페이지에 canonical로 깨끗한 원본 URL을 지정한다. /shoes?sort=price&color=red/shoes를 canonical로 가리키게 한다.
  • 내부 링크를 일관되게 깨끗한 URL로만 건다. 메뉴, 상품 카드, 브레드크럼(탐색경로) 등 사이트 내부에서 상품 목록으로 연결하는 모든 링크는 파라미터 없는 주소로 통일한다. 구글은 실제로 많이 링크되는 URL을 정규 URL 판단의 근거로도 참고한다.
  • URL 구조를 설계 단계에서 깔끔하게 짠다. 필터 결과를 검색에 꼭 노출하고 싶다면(예: "여성 운동화"처럼 실제 검색 수요가 있는 조합), 파라미터가 아니라 /shoes/women처럼 별도의 정적 경로로 만들어 정식 페이지로 취급하는 편이 낫다.

파라미터 관리의 핵심은 "구글이 알아서 걸러줄 것"이라는 기대를 버리는 것이다. 서치 콘솔의 파라미터 도구가 사라진 지금, canonical 태그와 일관된 내부 링크가 사실상 가장 확실한 통제 수단이다.

학원이나 부동산처럼 지역·조건별 검색 페이지가 많은 업종도 같은 원리가 적용된다. "강남 수학학원", "강남 중등 수학학원"처럼 조합이 늘어날수록, 실제 검색량이 있는 조합만 정식 페이지로 만들고 나머지는 상위 페이지를 canonical로 가리키게 하는 편이 관리하기 쉽다.

카페24·아임웹·식스샵처럼 국내에서 널리 쓰는 호스팅형 쇼핑몰 솔루션을 이용 중이라면, 관리자 페이지의 SEO 설정 메뉴에서 canonical 관련 옵션을 함께 제공하는 경우가 많다. 코드를 직접 수정하기 전에 해당 메뉴부터 확인하고, 옵션만으로 해결이 안 되는 부분을 개발 담당자나 대행사에 요청하는 순서가 효율적이다.

구글 AI 오버뷰·AI 모드에도 영향이 있을까?

결론부터 말하면 영향이 있다. 구글의 AI 오버뷰(검색 결과 상단에 뜨는 AI 요약)와 AI 모드는 별도의 색인을 새로 만드는 것이 아니라, 기존 구글 검색 색인을 바탕으로 답을 구성한다. 즉 일반 검색에서 신호가 흩어져 손해를 보는 페이지는, AI 요약에 인용될 때도 같은 손해를 그대로 안고 간다.

같은 내용이 www 버전과 비www 버전, 파라미터 버전으로 나뉘어 있으면, AI가 어느 버전을 인용해야 할지도 똑같이 헷갈릴 수 있다. 반대로 canonical 정리가 잘 되어 신뢰 신호가 한 URL로 모여 있으면, AI 요약 쪽에서도 더 명확한 근거로 인용되기 쉬운 조건을 갖추는 셈이다.

AI 검색 대응(GEO)을 별도의 새로운 작업으로 여기기 쉽지만, 사실 canonical 정리처럼 기본적인 SEO 정비가 곧 AI 대응의 출발점이다. 화려한 AI 최적화 기법보다, 이런 기초를 먼저 다지는 편이 순서상 맞다.

신규 오픈과 사이트 개편, 무엇을 다르게 챙겨야 할까?

신규 홈페이지를 처음 여는 경우라면 canonical 관리는 오히려 간단하다. 페이지를 설계할 때부터 www·https·URL 구조를 하나로 정해두고, 모든 페이지에 자기참조 canonical을 기본값으로 깔아두면 된다. 처음부터 깨끗하게 시작하는 편이 나중에 손보는 것보다 훨씬 수월하다.

문제는 이미 운영 중인 사이트를 개편하거나 도메인을 옮길 때다. 이 경우 순서가 중요하다. 먼저 옛 URL과 새 URL의 대응표(어떤 옛 주소가 어떤 새 주소로 가는지)를 만들고, 그다음 301 리다이렉트를 걸고, 마지막으로 새 페이지의 canonical 태그가 정확한 새 주소를 가리키는지 확인한다. 이 순서를 건너뛰고 새 사이트부터 먼저 공개하면, 잠시 동안이라도 신·구 URL이 동시에 색인되며 순위가 출렁이는 기간을 겪을 수 있다.

실무에서 SEO를 오래 다루다 보면, 개편 작업 자체보다 개편 이후 며칠간의 점검을 소홀히 해서 문제가 커지는 경우를 더 자주 본다. 배포 직후에는 반드시 앞서 소개한 방법대로 주요 페이지 몇 개의 canonical 값과 리다이렉트 동작을 직접 확인하는 시간을 가져야 한다.

발행 전 canonical 체크리스트

canonical 태그 발행 전 체크리스트 7가지
일곱 가지만 확인하면 대부분의 canonical 사고는 예방된다.

한 번 세팅해두면 계속 반복 확인할 필요는 없지만, 사이트 개편이나 도메인 변경, 새 기능 추가 시점마다 다시 점검할 가치가 있다.

  • 모든 페이지가 자기 자신을 canonical로 선언하는가(자기참조)
  • 절대경로(https://도메인 포함)로 정확히 작성했는가
  • URL 조각(#)을 canonical로 지정하지 않았는가
  • canonical·리다이렉트·사이트맵이 서로 다른 URL을 가리키며 충돌하지 않는가
  • robots.txt로 중복을 해결하려 하지 않았는가
  • 목록 페이지(페이지네이션)도 각자 자기참조로 되어 있는가
  • 파라미터가 붙은 URL도 깨끗한 정규 버전을 canonical로 가리키는가

정리하면, canonical 태그는 화려한 기술이 아니라 기본기에 가깝다. 앞서 다룬 4가지 원인과 처방을 표 하나로 다시 정리하면 이렇다.

원인 증상 처방
www · 비www 혼재 같은 내용이 두 도메인 형태로 열림 301 리다이렉트로 한쪽으로 통일
http · https 혼재 옛 http 주소가 리다이렉트 없이 살아있음 https로 301 리다이렉트 + canonical도 https로 통일
URL 파라미터 정렬·필터·광고 추적값마다 새 주소 생성 파라미터 없는 URL을 canonical로, 내부 링크도 통일
페이지네이션 목록 2쪽·3쪽이 반복되는 내용으로 색인 각 쪽이 자기 자신을 canonical로 선언(rel=next/prev 아님)

원인마다 처방이 다르다는 것, 그리고 www·https 통일은 canonical이 아니라 리다이렉트로 푸는 문제라는 것만 구분해도 절반은 해결된 셈이다.

자주 묻는 질문

canonical 태그를 걸면 그 페이지가 무조건 상위에 오르나요?

아니다. canonical은 어느 URL을 대표로 색인할지를 정하는 신호이지, 순위를 보장하는 장치가 아니다. 순위는 콘텐츠 품질, 백링크, 사용자 경험 같은 다른 요인이 함께 결정한다. canonical은 이미 있는 신호가 여러 URL로 흩어지지 않도록 모아주는 역할까지만 한다.

상품 옵션(색상·사이즈)마다 URL이 다른 쇼핑몰은 어떻게 하나요?

색상·사이즈 차이만 있고 상품 설명이 사실상 같다면, 대표 옵션의 URL을 정하고 나머지 옵션 URL은 그 대표 URL을 canonical로 가리키게 한다. 재고나 가격 차이가 사용자에게 중요하다면, 여러 URL 대신 한 페이지 안에서 옵션을 선택하는 방식으로 바꾸는 것도 함께 검토할 만하다.

canonical과 hreflang(다국어 태그)을 같이 쓸 수 있나요?

가능하다. 다만 역할이 다르다. canonical은 중복 제거, hreflang은 언어·지역별 버전 안내다. 한국어와 영어 페이지처럼 콘텐츠 자체가 다른 언어라면 서로를 canonical로 지정하면 안 되고, hreflang으로 연결해야 한다.

모바일 버전과 데스크톱 버전 URL이 따로 있으면 어떻게 하나요?

지금은 대부분의 홈페이지가 하나의 URL로 화면 크기에 맞춰 자동으로 바뀌는 반응형 디자인을 쓰기 때문에 이 문제 자체가 드물다. 예전 방식대로 m.iruweb.com처럼 모바일 전용 URL을 따로 운영한다면, 데스크톱 페이지에는 모바일 버전을 안내하는 태그를, 모바일 페이지에는 데스크톱 버전을 canonical로 지정하는 짝 관계를 맞춰야 한다.

canonical만 걸면 끝인가요, 다른 조치도 필요한가요?

canonical 태그 하나로 끝나지 않는다. 앞서 설명했듯 내부 링크를 정규 URL로 일관되게 걸어주는 작업을 함께해야 신호가 힘을 받는다. 가능하다면 옛 URL에서 새 URL로 301 리다이렉트까지 걸어주는 편이 가장 확실하다.

이미 중복으로 색인된 페이지, canonical만 걸면 언제 정리되나요?

즉시 정리되지는 않는다. canonical 태그를 고쳐도 구글이 해당 페이지를 다시 크롤링하고 새 신호를 반영하는 시간이 필요하다. 사이트 규모와 크롤링 빈도에 따라 다르지만, 서치 콘솔에서 재색인을 요청하더라도 결과가 검색 결과에 완전히 반영되기까지 며칠에서 몇 주가 걸릴 수 있다. 급한 마음에 태그를 자주 바꾸기보다는, 한번 정확히 설정하고 기다리는 편이 낫다.

네이버에도 이 글의 원칙이 그대로 적용되나요?

이 글은 구글 기준으로 정리했다. 정규 URL을 하나로 모은다는 개념 자체는 검색엔진 전반에 통하는 원칙이지만, 네이버는 사이트 등록·확인 절차와 세부 정책이 구글과 다르게 운영된다. 자체 도메인 홈페이지를 네이버에도 함께 노출하고 싶다면, 네이버 서치어드바이저에 사이트를 등록해 두는 별개의 절차가 필요하다는 점만 기억해 두면 된다.

canonical 설정, 한 번 해두면 다시 안 봐도 되나요?

기본 설정은 한 번으로 충분하지만, 완전히 손을 떼도 되는 것은 아니다. 새 기능을 추가하거나(예: 필터·정렬 옵션), 사이트를 개편하거나, 도메인을 옮기는 시점마다 신호가 다시 어긋날 수 있다. 이런 변화가 있을 때마다 앞서 소개한 확인 방법으로 주요 페이지 몇 개만 다시 점검하는 정도면 충분하다.

코드 없이 만든 홈페이지 빌더에서도 canonical을 관리할 수 있나요?

대부분의 홈페이지 빌더나 노코드 플랫폼은 자체적으로 각 페이지에 자기참조 canonical을 자동으로 생성해 준다. 다만 커스텀 도메인을 연결하거나 www·비www 설정을 바꾸는 과정에서 옛 주소가 함께 남는 경우가 있으니, 도메인을 연결한 직후에는 반드시 두 주소를 직접 입력해 리다이렉트가 정상 작동하는지 확인하는 것이 안전하다.

중복 콘텐츠와 canonical 태그는 눈에 잘 띄지 않는 문제여서, 홈페이지를 직접 운영하다 보면 놓치기 쉬운 영역입니다. 특히 사이트 개편이나 도메인 변경, 쇼핑몰 필터 기능 추가처럼 구조가 바뀌는 시점에 신호 충돌이 자주 생깁니다.

이루웹은 홈페이지를 설계하는 단계부터 canonical·리다이렉트·URL 구조를 함께 점검하며 SEO를 처음부터 넣어 만들고 있습니다. 지금 운영 중인 사이트에 중복 URL이 얼마나 쌓여 있는지 궁금하시다면 SEO 홈페이지 제작 서비스SEO 컨설팅을 살펴보시고, 무료 상담으로 현재 상태를 진단받아 보시길 권해 드립니다. 함께 참고하시면 좋은 글로 구글 색인 원리내부 링크 전략도 정리되어 있습니다. 간판을 하나로 통일하는 일부터, 함께 시작하겠습니다.

검색되는 사이트가 필요하신가요?

이 글의 원칙을 그대로 적용해 사이트를 만듭니다. 상담은 무료입니다.