Javascript를 사용하여 Canonical URL을 설정하려는 경우 다음가 같은 스크립트를 사용해볼 수 있습니다.
<script type='text/javascript'>
var link = document.createElement('link');
link.setAttribute('rel', 'canonical');
link.setAttribute('href', location.protocol + '//' + location.host + location.pathname);
document.head.appendChild(link);
</script>
// 출처: Set Canonical URL via Javascript
다른 방법으로 HtmlGenericControl 클래스를 사용할 수 있습니다.
HtmlGenericControl linkFile = new HtmlGenericControl("link");
linkFile.Attributes.Add("rel", "canonical");
linkFile.Attributes.Add("href", "testPath");
Page.Header.Controls.Add(linkFile);
// 출처: add a <link rel=“canonical” dynamically in the head tag
URL이 다르지만 콘텐츠가 동일하면 검색엔진에서 콘텐츠 중복 문제가 발생합니다. 이런 경우 대표 URL을 Canonical URL로 설정하면 콘텐츠 중복 문제를 방지할 수 있습니다.
예를 들어, PC 버전에 모바일 버전을 추가하게 되면 동일한 콘텐츠에 대하여 PC 버전과 모바일 버전이 존재하게 되어 콘텐츠 중복 문제가 발생합니다.
동일한 콘텐츠에 2개 URL 존재. 그림 출처: Google.
이 경우 올바르게 캐노니컬 URL을 설정해주지 않으면 네이버와 구글에서 순위가 하락하는 등 SEO 문제가 발생할 수 있습니다.