
웹 사이트를 운영하다 보면 중복 페이지 처리 문제로 검색 엔진 최적화(SEO)에 어려움을 겪는 경우가 많다.
중복 페이지는 검색 엔진이 콘텐츠를 잘못 이해하게 만들어 SEO 순위에 부정적인 영향을 미친다.
중복 페이지 처리와 표준 태그(canonical tag), 그리고 대체 버전 태그(alternate tag) 사용법을 알아보자.
- 중복 페이지란 무엇인가?
중복 페이지는 동일한 콘텐츠를 제공하는 여러 개의 URL이 존재하는 상황을 말한다.
이러한 중복 페이지는 검색 엔진이 어떤 페이지를 색인화해야 할지 혼란스럽게 만들고 SEO 순위에 부정적인 영향을 미친다.
어떨 때, 중복 페이지가 발생할 수 있는지 확인해보자.
- HTTP와 HTTPS 버전의 URL이 모두 존재할 때
- www와 non-www 버전의 URL이 모두 존재할 때
- URL 매개변수(예: `?utm_source=google`)가 다른 경우
- 대소문자 구분으로 인해 다른 URL로 인식될 때
- 중복 페이지가 SEO에 미치는 영향
중복 페이지는 다음과 같은 문제를 일으킬 수 있다.
- 검색 엔진의 크롤링 효율성 저하
- 검색 엔진이 중복된 페이지를 계속 크롤링하면서 리소스가 낭비된다.
- 페이지 랭킹 분산
- 동일한 콘텐츠에 대한 링크 점수가 여러 URL로 분산되어 SEO 순위가 하락할 수 있다.
- 사용자 경험 저하
- 사용자가 중복된 페이지에 접속하면서 혼란을 느낄 수 있다.
- 검색 엔진의 크롤링 효율성 저하
- 중복 페이지 처리 방법
중복 페이지 문제를 해결하기 위해 다음과 같은 방법을 사용할 수 있다.
- 표준 태그(canonical tag) 사용
표준 태그는 중복 페이지에서 대표 URL을 지정할 수 있다.
다음 코드를 HTML <head> 섹션에 추가한다.
<link rel="canonical" href="https://example.com/page">
이 태그는 검색 엔진에게 이 페이지의 “대표 URL = https://example.com/page”라고 알려준다.
그러나 캐노니컬 태그는 모든 페이지마다 다 넣어줘야 하므로 워드프레스와 같이 페이지가 많고 그 많은 페이지에 각각 캐노니컬 태그 사용하기 어려울 때는 PHP를 사용하여 코드 추가하는 게 더 좋다.
<?php
$mainDomain = 'https://example.com';
$currentSlug = $_SERVER['REQUEST_URI'];
?>
<link rel="canonical" href="<?php echo $mainDomain . $currentSlug; ?>"> - 301 리다이렉트 설정
중복 페이지를 대표 URL로 리다이렉트하는 방법이다.
.htaccess 파일에 다음 코드를 추가하면 된다.
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
이 설정은 www.example.com으로 접속한 사용자를 example.com으로 자동으로 이동시킨다.
- URL 매개변수 처리
Google Search Console을 사용하여 URL 매개변수를 처리하는 방법을 설정할 수 있다.
- utm_source와 같은 매개변수를 무시하도록 설정하면 중복 URL 문제를 줄일 수 있다.
- Google Search Console에 로그인
- URL 매개변수를 설정할 웹사이트 속성 선택
- 왼쪽 메뉴에서 [크롤링] » [URL 매개변수]
- [새 매개변수 추가]
- 매개변수 이름: utm_source 입력
- “페이지 콘텐츠에 영향을 미치지 않는다” 선택 » 설정을 완료한 후 [저장]
- 해당 매개변수가 페이지의 콘텐츠에 영향을 주지 않음을 의미한다.
- 설정이 잘 반영되었는지 확인
- 표준 태그(canonical tag) 사용
- alternate 태그의 역할과 사용법
alternate 태그는 현재 페이지의 대체 버전을 지정하는 데 사용된다.
- 다국어 사이트에서 언어별 대체 페이지 지정
웹 사이트가 여러 언어로 제공될 때, 각 언어별 페이지를 연결하는 데 사용된다.
<link rel="alternate" hreflang="en" href="https://example.com/en/page">
<link rel="alternate" hreflang="ko" href="https://example.com/page">여기서도 모든 페이지마다 다 넣어줘야 하므로 워드프레스와 같이 페이지가 많고 그 많은 페이지에 각각 캐노니컬 태그 사용하기 어려울 때는 PHP를 사용하여 코드 추가하는 게 더 좋다.
<?php
$mainDomain = 'https://example.com';
$currentSlug = $_SERVER['REQUEST_URI'];
?>
<link rel="alternate" hreflang="en" href="<?php echo $mainDomain . '/en' . $currentSlug; ?>"> - 모바일 버전과 데스크톱 버전 페이지 연결
모바일 전용 페이지가 따로 있는 경우, 데스크톱 페이지와 모바일 페이지를 연결할 때 사용된다.
<link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/page"/>
여러 페이지를 다 연결하려면,
<?php
$mainDomain = 'https://m.example.com';
$currentSlug = $_SERVER['REQUEST_URI'];
?>
<link rel="alternate" media="only screen and (max-width: 640px)" href="<?php echo $mainDomain . $currentSlug; ?>"> - AMP 페이지 연결
AMP 버전의 페이지가 있는 경우, 일반 페이지와 AMP 페이지를 연결할 때 사용된다.
<link rel="alternate" href="https://example.com/page/amp"/>
여러 페이지를 다 연결하려면,
<?php
$mainDomain = 'https://example.com';
$currentSlug = $_SERVER['REQUEST_URI'];
?>
<link rel="alternate" href="<?php echo $mainDomain . $currentSlug . '/amp'; ?>">
만약 AMP 페이지의 주소가 https://example.com/page?format=amp 라면,
<?php
$mainDomain = 'https://example.com';
$currentSlug = $_SERVER['REQUEST_URI'];
?>
<link rel="alternate" href="<?php echo $mainDomain . $currentSlug . '?format=amp'; ?>"> - 다국어 사이트에서 언어별 대체 페이지 지정
canonical 태그와 alternate 태그의 차이점
기능 | canonical 태그 | alternate 태그 |
---|---|---|
목적 | 중복 페이지 중 대표 URL 지정 | 현재 페이지의 대체 버전 지정 |
사용 예시 | 동일한 콘텐츠의 여러 URL 통합 | 다국어, 모바일, AMP 버전 연결 |
검색 엔진 영향 | 중복 콘텐츠 문제 해결 | 사용자 경험 및 SEO 최적화 |
중복 페이지 처리의 SEO 효과
중복 페이지 문제를 해결하면 다음과 같은 SEO 효과를 기대할 수 있다.
- 검색 엔진의 크롤링 효율성 향상
- 페이지 랭킹 집중으로 SEO 순위 상승
- 사용자 경험 개선 및 전환율 증가
중복 페이지 문제는 웹 사이트 운영에서 흔히 발생하는 문제이지만, 표준 태그와 alternate 태그를 통해 효과적으로 해결할 수 있다.
이런 방법을 통해 검색 엔진 최적화를 강화하고 사용자에게 더 나은 경험을 제공해보자.