정규 URL (Canonical) 이해하기
정규 URL은 같은 내용이 여러 주소로 열릴 때 검색엔진에게 어느 주소를 정본으로 삼으라고 지정하는 표시입니다. 지정된 주소로 평가가 모입니다.
🤔 같은 페이지가 여러 주소로 열리는 상황
- "장바구니에서 온 주소와 검색에서 온 주소가 다른데 화면은 똑같습니다"
- "정렬을 바꾸면 주소 뒤에 뭐가 자꾸 붙는데 이대로 둬도 되는 건지 모르겠습니다"
- "서치 콘솔에 '대체 페이지, 적절한 표준 태그 있음'이라고 나옵니다"
앞에서 발견과 저장을 봤습니다. 이 글에서는 같은 내용이 여러 주소로 흩어질 때 무엇을 대표 주소로 삼는지를 다룹니다.
🔑 정규 URL의 정의
정규 URL(Canonical URL)은 같은 내용이 여러 주소로 열릴 때 검색엔진에게 어느 주소를 정본으로 삼으라고 지정하는 표시입니다.
페이지의 <head> 안에 한 줄로 적습니다.
<link rel="canonical" href="https://example.com/products/chair" />주소가 여러 개로 갈라지는 경우는 생각보다 흔합니다.
example.com/chair와www.example.com/chairhttp://로 시작하는 주소와https://로 시작하는 주소/chair와/chair/처럼 마지막 빗금이 있고 없고/chair?sort=price처럼 정렬이나 필터 값이 붙은 주소/chair?utm_source=newsletter처럼 광고 추적 값이 붙은 주소
다섯 경우 모두 사람이 보기에는 같은 화면입니다. 검색엔진에게는 서로 다른 다섯 개의 문서입니다.
🏠 정규 URL, 한 집에 문패가 여러 개 붙어 있을 때
같은 집인데 이름이 넷입니다. 우편물이 넷으로 나뉘어 도착합니다
평가가 주소마다 흩어집니다
나머지 셋에 "우편물은 정문 이름으로"라고 적어 둡니다
평가가 한 주소에 모입니다
집 한 채에 문패가 네 개 붙어 있습니다. 정문에 하나, 뒷문에 하나, 옆 골목 쪽에 하나, 예전에 쓰던 이름으로 하나입니다. 사는 사람은 같고 집도 하나인데 이름만 넷입니다.
이 상태에서 우편물이 오면 어떤 편지는 정문 이름으로, 어떤 편지는 뒷문 이름으로 도착합니다. 한 집에 오는 우편물인데 넷으로 나뉩니다. 어느 이름으로도 충분히 쌓이지 않습니다.
해결은 간단합니다. 나머지 세 문패 아래에 "우편물은 정문 이름으로 보내 주세요"라고 적어 두는 것입니다. 그러면 배달부가 넷 다 정문 이름으로 처리합니다. 정규 URL이 하는 일이 정확히 이것입니다.
여기서 한 가지 덧붙일 점이 있습니다. 이 쪽지는 부탁이지 명령이 아닙니다. 배달부가 보기에 내용이 전혀 다른 집이라고 판단하면 쪽지를 무시하기도 합니다. 검색엔진도 정규 URL 표시를 참고 신호로 받아들일 뿐, 최종 판단은 스스로 내립니다.
⚖️ 정규 URL을 지정하지 않았을 때 벌어지는 일
| 항목 | 지정했을 때 | 지정하지 않았을 때 |
|---|---|---|
| 대표 주소 선택 | 내가 지정한 주소 | 검색엔진이 임의로 고름 |
| 링크 평가 | 한 주소에 모임 | 주소별로 나뉨 |
| 검색 결과 노출 | 의도한 주소가 노출 | 엉뚱한 주소가 노출되기도 함 |
| 크롤링 예산 | 낭비가 줄어듦 | 같은 내용을 여러 번 방문 |
세 번째 줄이 실무에서 자주 문제가 됩니다. 광고 추적 값이 붙은 주소가 검색 결과에 노출되는 경우입니다. 방문자에게는 지저분해 보이고, 클릭 데이터도 엉키게 됩니다.
네 번째 줄은 앞에서 본 크롤링 예산과 이어집니다. 필터 조합으로 주소가 수천 개 만들어지는 구조라면, 크롤러가 그 조합을 도는 데 시간을 다 씁니다.
🚫 정규 URL에서 자주 나오는 실수
모든 페이지가 첫 화면을 가리키는 경우
설정을 잘못 넣어서 사이트의 모든 페이지가 정규 URL로 첫 화면 주소를 가리키는 사고가 있습니다. 검색엔진은 이 신호를 그대로 받아들여 나머지 페이지를 저장하지 않습니다. 결과적으로 사이트 전체에서 첫 화면 하나만 색인됩니다.
자기 자신을 가리키지 않는 경우
각 페이지가 자기 주소를 정규 URL로 적어 두는 방식이 기본입니다. 이렇게 해 두면 뒤에 추적 값이 붙어 열려도 검색엔진이 원래 주소로 정리합니다. 이 표시가 아예 없으면 검색엔진이 매번 스스로 판단해야 합니다.
정규 URL과 사이트맵이 서로 다른 주소를 가리키는 경우
사이트맵에는 A 주소를 넣어 두고 A 페이지의 정규 URL은 B를 가리키는 상태입니다. 검색엔진 입장에서는 여기 있다고 알려 주면서 저쪽을 보라고 하는 셈이라 신호가 어긋납니다. 사이트맵에서 본 원칙과 같습니다. 서로 반대되는 신호를 동시에 보내지 않습니다.
🔍 정규 URL로 갈리는 실무 상황 세 가지
쇼핑몰에서 정렬과 필터 주소가 색인될 때
가격순, 인기순, 색상 필터가 각각 주소를 만들면 상품 목록 하나가 수십 개 주소로 늘어납니다. 목록 페이지의 정규 URL을 기본 정렬 주소로 통일하면 정리됩니다.
뉴스레터 링크가 검색 결과에 노출될 때
메일에 넣은 링크에는 추적 값이 붙습니다. 이 주소로 유입이 많으면 검색엔진이 그 주소를 대표로 고르기도 합니다. 각 페이지가 자기 주소를 정규 URL로 지정해 두면 막을 수 있습니다.
서치 콘솔에 "대체 페이지, 적절한 표준 태그 있음"이 뜰 때
이 표기는 대개 정상입니다. 이 페이지는 다른 주소를 정본으로 지정했고 검색엔진이 그 지정을 받아들였다는 뜻입니다. 다만 정본으로 지정된 주소가 내가 의도한 주소가 맞는지는 확인해야 합니다. 의도와 다르면 표시를 잘못 넣은 것입니다.
다음 글에서는 주소 자체를 어떻게 설계하고 페이지끼리 어떻게 잇는지 봅니다.
📋 30초 요약
-
정규 URL은 같은 내용이 여러 주소로 열릴 때 정본을 지정하는 표시입니다. 사람에게는 같은 화면이어도 검색엔진에게는 서로 다른 문서입니다.
-
한 집에 문패가 넷 붙어 있는 것과 같습니다. 우편물이 넷으로 나뉘면 어느 이름으로도 쌓이지 않습니다. 나머지 문패에 정문 이름을 적어 두면 한곳에 모입니다.
-
지정하지 않으면 검색엔진이 임의로 고릅니다. 그 판단이 의도와 다를 수 있고, 광고 추적 값이 붙은 주소가 검색 결과에 뜨기도 합니다. 각 페이지가 자기 주소를 가리키게 해 두는 것이 기본입니다.
참고 자료
이 글이 도움이 되셨다면 공유해 주세요
메신저로 바로 보내거나 링크를 복사할 수 있습니다.
상품 페이지가 정렬 조건에 따라 여러 주소로 열립니다. 정규 URL을 지정하지 않으면 어떤 일이 생길까요?
이어서 배우면 좋은 개념
색인 (Indexing) 이해하기
색인은 검색엔진이 크롤러가 받아 온 페이지를 분석해 자기 데이터베이스에 저장하는 단계입니다. 색인되지 않은 페이지는 어떤 검색어에서도 검색 결과에 나오지 않습니다.
사이트맵 (Sitemap) 알아보기
사이트맵은 사이트에 있는 페이지 주소를 한 파일에 모아 검색엔진에 제출하는 목록입니다. 크롤러가 링크를 따라가지 않고도 주소를 알 수 있게 해 줍니다.
검색엔진 최적화 (SEO) 이해하기
검색엔진 최적화(SEO)는 검색엔진이 페이지를 발견하고 저장하고 검색 결과에 보여주는 과정에 맞춰 사이트와 글을 정리하는 일입니다.
robots.txt 알아보기
robots.txt는 사이트 최상위 주소에 두는 텍스트 파일로, 검색엔진 크롤러에게 어느 경로를 방문하지 말라고 알려 주는 규칙 목록입니다.
관련 인사이트
클링 AI와 Veo 3.1 비교: 초당 단가 7.5배 차이를 실제 영상으로 확인
클링 AI와 Veo 3.1은 글이나 이미지를 넣으면 움직이는 영상을 만들어 주는 생성 모델입니다. 초당 단가는 Veo 3.1 표준이 $0.75, 클링 3.0이 $0.10으로 7.5배 차이 납니다. 두 모델에 Seedance 2.0과 Wan을 더해 실제 생성 영상과 항목별 성능을 비교했습니다.
AX 뜻과 DX 차이: 조직 AX가 도구 도입에서 멈추는 이유
AX(AI Transformation)는 AI를 업무 절차와 판단 구조에 결합해 조직이 일하는 방식을 다시 설계하는 전환입니다. AX 뜻과 DX와의 차이, 엔비디아의 토큰 사용량 평가, 컨설팅 현장에서 확인한 평범한 병목을 공개 연구 자료와 함께 정리했습니다.
구글 옴니(Gemini Omni) 장점과 사용법, 다른 모델과 어떤 점이 다를까요?
구글 옴니(Gemini Omni)는 글, 이미지, 소리, 영상을 한 번에 입력받아 소리까지 붙은 영상을 만들어 내는 통합 멀티모달 모델입니다. 대화로 영상을 고치는 방식과 Veo 3.1과의 차이, 사용처와 요금을 공식 데모 영상과 함께 정리했습니다.
