01DEFINITION
한 줄로 말하면
canonical 은 이 페이지의 정본 주소가 어디인지 검색엔진에 알려 주는 한 줄입니다. 태그가 있기만 하면 통과라고 보는 점검이 많은데, 값이 다른 페이지를 가리키고 있으면 없는 것보다 나쁩니다. 검색엔진은 그 말을 믿고 이 페이지를 색인에서 빼고 지목된 쪽만 남기기 때문입니다. 템플릿이 대표 주소를 전 페이지에 그대로 찍어 두었을 때 흔히 일어나며, 주소는 200 으로 잘 열리는데 검색에서만 사라지므로 발견이 늦습니다.
02RISK
없으면 무슨 일이 생기나
가장 흔한 사고는 템플릿에 정본 주소를 고정으로 박아 두는 것입니다. 헤더 파일에 홈 주소를 적어 놓으면 사이트의 모든 페이지가 자기는 홈이라고 선언하게 됩니다. 페이지는 200 으로 잘 열리고 화면도 멀쩡한데 검색에서만 사라집니다. 원인이 화면에 안 나타나므로 발견까지 몇 달이 걸립니다.
반대 방향의 오해도 있습니다. 자기를 안 가리키면 무조건 잘못이라고 판정하는 도구가 있는데, 그렇지 않습니다. 광고 파라미터가 붙은 주소가 파라미터 없는 주소를 정본으로 선언하는 것은 이 태그의 본래 용도이고, http 페이지가 https 를 가리키는 것도 권장되는 표기입니다. 이 구별을 못 하면 정상인 사이트에 경고를 내보내게 됩니다.
저희 사이트가 겪은 경우는 셋째 유형이었습니다. www 주소가 리다이렉트 없이 200 을 주는데 canonical 만 apex 를 가리켰습니다. 표기 자체는 옳지만 두 주소가 모두 살아 있다는 뜻이고, 정본으로 301 을 보내는 것이 맞는 처리입니다. 외부 진단 엔진 하나는 그 상태에 「자기참조 일치 · 양호」를 줬습니다. 요청한 주소를 안 보고 태그만 봤기 때문입니다.
03CHECK IT YOURSELF
직접 확인하는 방법
아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.
-
01
요청한 주소와 선언된 정본을 나란히 놓는다
이 항목이 하는 일이 그것입니다. 태그만 보면 안 되고 어느 주소로 요청했는지를 같이 봐야 합니다.
$ u=https://example.com/products/kv-200 $ printf "요청 %s\n선언 %s\n" "$u" \ "$(curl -s "$u" | grep -oP '(?<=rel="canonical" href=")[^"]+')"
나머지 확인 방법 2단계는 셀프수리 가이드에 있습니다.
04HOW TO FIX
고치는 방법
서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.
템플릿의 고정값을 걷어내는 것이 첫걸음입니다. 요청 주소를 그대로 쓰지 말고 그 페이지의 정해진 주소를 규칙으로 만드십시오.
가이드 안내 보기 · 먼저 무료로 진단받기
이미 열람권을 구매하셨다면 안내 메일의 가이드 링크로 바로 열립니다 — 링크를 잃으셨다면 문의 주시면 다시 보내 드립니다.
05FAQ
자주 묻는 질문
canonical 항목과 무엇이 다른가요
- 그쪽은 태그가 있는지와 절대주소인지를 봅니다. 이 항목은 값이 어디를 가리키는지를 봅니다. 태그가 없으면 이 항목은 판정하지 않습니다 — 한 결함을 두 번 감점하지 않기 위해서입니다.
목록 2페이지가 1페이지를 가리키고 있습니다
- 주의로 볼 상태입니다. 뒷장이 앞장을 정본으로 선언하면 뒷장에만 있는 내용이 색인되지 않습니다. 각 페이지가 자기 자신을 가리키게 두시는 편이 낫습니다.
관계없는 도메인을 가리키는 것으로 나옵니다
- 두 가지를 의심하십시오. 개발 서버 주소가 그대로 배포된 경우와, 다른 사이트의 페이지를 복제하면서 태그까지 가져온 경우입니다. 후자라면 저작권 문제가 먼저입니다.
GET STARTED
내 사이트는
이 항목을 통과할까요
주소만 넣으시면 이 항목을 포함해 51가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.