지난 글에서 검색엔진이 컨텐츠의 정보를 읽지 못하게 만드는 장애요인들을 살펴봤다. 오늘은 컨텐츠에 대한 검색엔진의 접근 자체를 막는 대표적인 요소들을 살펴보고자 한다. 

[지난 글 보기] - 검색엔진의 눈을 가리는 웹사이트 - 1. 컨텐츠

 

1. URL

 

검색엔진최적화에서 URL은 생각보다 훨씬 더 중요하다. URL은 많은 검색엔진최적화 컨설턴트들이 웹사이트 분석시 제일 먼저 확인하는 요소 중 하나이며, 구조화와 타겟 키워드 등 다양한 측면에서의 최적화가 필요하다.

 

URL의 가장 기본적이며 중요한 역할은 “검색엔진에게 웹사이트 내 페이지들을 안내하는 이정표” 역할을 수행한다는 것이다. 반대로 URL로 인해 검색엔진이 개별 웹페이지들을 인식하지 못하게 될 수도 있다. 

URL에 대해서는 하나의 컨텐츠를 별도로 작성해야 할 정도지만, 오늘은 단 하나만 기억하자. 

“#는 나쁘다”

소셜미디어의 해시태그로 인해 더없이 친숙한 #지만, URL에서의 #는 매우 나쁘다. 

 

검색엔진은 # 뒤의 정보를 읽지 못한다.

여기 여러 페이지의 URL들이 있다. 

도메인.com/aaa/#a

도메인.com/aaa/#b

도메인.com/aaa/#c

도메인.com/aaa/#d

분명 우리 눈에는 4개의 분리된 페이지들인데, 검색엔진에게는 도메인.com/aaa까지만 인식된다. # 뒤의 정보를 읽지 못하기 때문이다. URL 단위로 페이지를 수집하여 보여주는 검색엔진이 개별 페이지를 분리해서 인식하지 못한다는 것은 큰 문제가 된다.

 

URL이 이렇게 구성되는 가장 흔하고 쉬운 예는 탭으로 컨텐츠를 구분하여 보여주는 페이지다. 

아래와 같은 구조의 웹사이트를 예로 들자면, 1의 메뉴를 클릭했을 때 2의 영역은 바뀌지 않고 3의 영역만 바뀌는 구조다.

디자인적 예시일 뿐, 실제 삼성반도체 미국의 사이트는 아무런 문제가 없다

 

페이지를 이렇게 구성하는 기획자의 가장 큰 논리는 사용자 편의성이다. 굳이 모든 페이지를 다시 로딩하지 않고 하단의 페이지만 바꿈으로써 사용자들의 편의성을 높인다는 것인데, 의미가 없는 말은 아니지만 다시 생각해볼 필요가 있다.

첫째, 페이지 전체를 로딩하는 경험(페이지를 새로 이동한다는 느낌)이 정말로 사용자에게 불편함을 주는가? 물론, 페이지를 이동할 때마다 절반 이상의 트래픽이 이탈한다는 연구 결과가 있긴 하지만 전체 리로딩과 부분 교체 사이에 유의미한 차이가 있을까? 

둘째, 상단의 정보를 다시 로딩하기 위해 걸리는 시간이 사용자 편의성을 해칠 정도인가? 그 정도로 열악한 인터넷 환경이 얼마나 될 것이며, 만일 로딩 시간이 이슈라면 그 시간을 줄이기 위한 페이지 최적화가 우선이 아닐까?

셋째, 사용자 편의성이 높아진다고 가정하면, 그것이 과연 검색노출 제한과 맞바꿀 정도의 가치인가?

 

긴 페이지 내의 특정 부분으로 바로 이동하게 만드는 용도로 #를 사용하는 경우도 있는데, 해당 페이지의 대표 주소를 #로 막아버리지만 않는다면 이 경우는 큰 문제가 되지 않는다.

 

부득히하게 #를 사용하는 경우 #!와 같이 !를 분이는 방법(hashbang이라고 부른다)이 있으나, 활용이 제한적이며 기술적인 설명이 필요하니 본 글에서 다루지는 않겠다. 

 

 

2. Robots.txt, Noindex Tag

 

Robots.txt 파일은 검색엔진의 수집 활동을 제어하는 역할을 한다. 웹사이트 내에는 검색 결과에 드러나서는 안되는 페이지들은 존재한다. 각 회원의 개인정보 페이지나 보안 자료, 그리고 어드민 관련 페이지들이 대표적이다. 또한 웹사이트 내에는 “서버에서는 삭제하지는 않지만 사람들이 방문해서는 안되는 옛날 페이지”들이 존재하기도 한다. 이러한 페이지들은 Robots.txt 파일을 통해 검색엔진의 접근을 차단할 수 있다.

 

아래의 Robots.txt 파일 예를 보자

User-agent: *

Disallow: /admin

Disallow: /member

User-agent: Baiduspider

Disallow: /

 

이 파일은 두개의 정보를 담고 있다.

먼저, 모든 검색엔진에 대해(User-agent: *) /admin과 /member에 속한 모든 페이지에 접근하지 말라고 전달(Disallow)한다.

또한 바이두(User-agent: Baiduspider)는 모든 페이지에 접근하지 않도록 명령(Disallow: /)한다.

 

흔하지 않지만 간혹 아래와 같은 Robots.txt 파일이 올려져 있는 것을 보게 된다.

User-agent: *

Disallow: /

모든 검색엔진(User-agent: *)은 이 사이트의 모든 페이지에 접근하지 말라(Disallow: /)는 것이다. 이런 요구를 전달하고 있으니, 당연히 검색엔진은 해당 사이트의 정보를 가져가지 않는다.

 

Noindex 태그는 각 페이지에 적용되어 검색엔진의 인덱싱을 차단하는데, 이 역시 불필요하게 사용되어서는 안된다. 

 

 

3. Redirect

 

A라는 페이지로 방문한 사용자를 B 페이지로 자동으로 보내는 것을 리다이렉트라고 한다. 웹사이트 개편이나 다른 수많은 이유로 아주 흔히 사용되는 방법인데, 어떤 식으로 해도 사용자에게는 문제가 없지만 검색엔진 대상으로는 약간의 주의가 필요하다.

먼저, 리다이렉트는 301과 302라는 두개의 방식이 있다. 301은 영구, 302는 임시라는 것만 알아두자.

 

A 페이지가 영원히 없어져서 기존에 블로그 또는 소셜에 공유된 A 페이지 링크를 클릭한 사람들을 B 페이지로 안내해야 한다면 301이 적용되어야 한다. 그러나 A 페이지의 내용 또는 디자인적 개편 기간 동안에만 임시로 B 페이지로 사람들을 안내한다면 여기에는 302 방식의 리다이렉트가 적용되어야 한다. 

 

조금 더 이해하기 쉬운 우리 일상 생활의 예를 들어보자.

301: 이번에 다른 집으로 이사를 한다. 따라서 주민등록상의 내 주소를 바꿔야 하며, 공식적으로 나의 주소는 바뀌게 된다.

302: 리모델링 하는 한달 동안만 근처의 오피스텔에서 생활한다. 한달 후에 다시 원래 집으로 돌아가므로, 주민등록상의 주소를 바꾸지 않는다. 쇼핑 배송 주소는 임시로 바꾸겠지만, 공식적인 나의 주소는 바뀌지 않는다.

 

공식적으로 웹페이지의 주소가 바뀌는 경우(301 리다이렉트) 검색엔진은 바뀐 주소를 검색 결과 화면에 노출할 것이다. 그러나 임시로 리다이렉트를 적용하면(302) 검색엔진은 기존의 페이지 주소를 수집한다. 따라서 어떤 페이지 주소를 검색엔진에 등록할 것인가에 따라 리다이렉트 방식을 적용해야 한다.

+ Recent posts