[SEO] rel=canonical link, 검색엔진 최적화와 canonical

2014. 9. 1. 02:30 from Dev/etc

검색엔진 최적화에서 가장 중요한 것 중 하나가 원본 데이터에 대한 정보를 검색로봇에 알려주는 것인데, 몇 년전에 대형 검색엔진들이 검색 결과에서 중복된 값들을 삭제하기로 한 이후로 중요성을 띄게 된 태그가 이 CANONICAL 입니다.

canonical link는 다음과 같이 정의합니다 :


<link rel="canonical" href="http://sample.com/index.php" />


이는 여러 가지 이유로 인해 원본 문서와 동일한 복사된 문서가 존재할 경우에, 검색엔진에 원본문서를 알려주는 역할을 합니다. 그렇다면 보통(!)의 경우 언제 필요한 걸까요?


1. 지저분한 url 값의 정리

구글에서 사이트 검색을 해보면 이런 값들이 심심치 않게 보입니다. 

sampledomain.com/index.php?PHPSESSID=3a98ad5ee8b0923ac868dc7e891ec154

이런 경우야 별 거 아니지만, 인수값에 page, category, search값 등 온갖 값들이 다 붙은 채로 인덱싱이 되어 있는 경우에는 문제가 생길 수가 있겠습니다. 


2. url이 변경될 때

이 경우가 더 중요하겠지요. 사이트 수정보완하면서 url이 변경되는 경우가 많습니다. 이 경우 이전 url로 들어오는 트래픽을 redirect 시켜주어야 하는데, 이때 원본 문서의 값을 검색엔진에 알려주어야 합니다. 


3. https 이용할 경우

이 경우에는 당연히 보안 적용된 url과 보안 적용이 안된 url이 다르겠지요. 특히 호스팅 업체에 따라서는 포트 번호 등이 추가됨에 따라서 같은 컨텐츠라도 다르게 인식이 될 수 있습니다. 


이런 경우에는 canonical link를 걸어주는 것이 바람직하다고 봅니다. 


다음은 적용시 주의해야 할 사항들에 대한 정리입니다 :

  • rel = canonical 로 지정한 타겟 url이 실제로 존재하는지 확인해야 합니다(실제로 개발하다 보면 빼먹기 쉬운 경우입니다). 당연히 검색 결과를 없는 페이지로 돌려버리면 큰 일 나겠지요;;
  • 위와 같은 경우이겠지만, 원본 문서가 있는 디렉토리의 robot.txt 설정이 검색 로봇의 인덱싱을 허용해 주어야 합니다.

  • 원본 문서에는 해당 페이지의 문서가 포함되어 있어야 합니다. 당연한 얘기이겠지만, 여러 페이지로 나누어져 있는 문서를 하나의 canonical link로(예를 들어 첫 페이지로) 묶는 오류도 가끔 볼 수 있는데, 이 경우에는 원하는 SEO결과를  기대할 수 없습니다. 검색엔진의 입장에서는 각각의 페이지가 다른 문서이기 때문이지요. 굳이 여러 페이지로 나누어진 문서에 대해서 하나의 canonical link를 정해주려면 모든 페이지를 포함하는 마스터 문서를 하나 만든 후에 여기로 링크를 해주는 것은 도움이 될 것 같습니다.

  • HEAD에 들어가야 합니다. google webmastser에서는 명식적으로 BODY에 들어가는 canonical link는 고려하지 않는다고 하고 있습니다. 아울러 가능하면 HEAD 안에서도 앞쪽에서 지정하라고도 되어 있습니다.


그리고 한가지 작업전에 알아두어야 할 점은, 이러한 canonical link의 값을 검색결과에 반영하는 것은 전적으로 검색엔진의 정책에 달린 것이지, canonical을 지정하였다고 꼭 반영이 되는 것은 아니라는 점입니다. 내부적으로 원본 데이터의 존재에 대해 알았다 하더라도 원본 데이터에 대해서 자체적으로 반영을 할지 안할지는 별개의 문제라는 점입니다. 


Posted by banasun :