구글 페이지랭크..로직을 교정하는 중일까?

검색엔진 2007. 3. 24. 01:13
내 블로그 내의 각 URL들의 구글 페이키랭크 값이 최근 바뀌었다.
이미 널리 알려졌다시피, 구글은 검색결과 페이지를 보여줄때 어떤 기준에 의한 정렬(ordering)을 하는 대신, 모든 인덱스된 페이지의 랭크값을 미리 계산해 두고 이 값이 높은 수서대로 보여준다. 그래서 웹페이지가 구글 페이지랭크값으로 얼마를 할당받는가는 검색 결과 노출 순서와 직결되는 마케팅 영역에서 아주 중요하게 여겨진다. 오죽하면 검색엔진 최적화 프로젝트 같은것도 하겠나..

근데 이런 페이지랭크를 산출하기 위한 정확한 로직은 공개된 바가 없다. 아무리 집요하게 물어봐도 안가르쳐준단다. 구글의 거의 유일하다시피 하는 수익모델인 검색광고의 기반중 하나가 되기 때문일 거다. 어찌됐건 약 500여가지의 변수에 의해 페이지랭크가 결정된다고 알려져 있고, 이중 큰 영향력을 가지는 변수로서 하이퍼텍스트의 링크 구조가 있다.
도서관 정보학 시절부터 있었던 이론인, 중요한 문서일수록 많이 참조된다(가치있는 논문은 타 논문의 reference에 많이 등장한다)는 이론에 근거하고 있다는 말이다.

즉, basher.pe.kr/tt/lumi 라는 페이지로 향하는 링크가 많이 발견될 수록, 또 이미 높은 랭크를 가지는 페이지 안에서 발견될 수록 basher.pe.kr/tt/lumi 라는 페이지의 랭크는 올라간다. 여기까지는 검색엔진이나 구글에 관심있는 사람이면 누구나 한번쯤 들었을 만한 이야기 인데..

밥먹고 살기 위해 하는 일이 웹문서를 수집하고 랭킹매기고 인덱싱하고 찾아내는 일이다 보니 선발주자인 구글의 행동을 많이 분석하게 된다. 근데 최근 내 블로그의 랭크 값이 바뀐 것이다. 랭크값은 블로그유틸 사이트에서 알아낼 수도 있고, 구글 툴바를 설치해도 알수 있고, 구글에서 페이지랭크 알아내는 법을 쉽게 검색할 수 있다. 그럼 도대체 구글이 무슨 짓을 하고 있는 걸까?

또 끝없는 상상의 나래를 펼쳐보자.

구글의 페이지랭크 모델은 완벽하지 못하다. 아마 영원히 완벽한 랭킹 모델은 만들어지지 않을지 모른다. 링크 구조에 기반한 랭크 모델은, 무의미한 수많은 URL을 랜덤하게 만들어 내고 링크를 메인 페이지로 향하게 하는 작은 낚시질용 CGI를 만들기만 하면 무력화시킬수 있다. 이런 약점을 커버하기 위해서 구글이 500여가지 변수를 사용하는 것이다.

이하의 내용은 구글의 페이지랭크의 행동을 나름 간략히 분석해 보고 랭킹 로직을 설계하면서 추측했던 내용으로서 실제 구글의 구현과는 무관한 나의 상상이다..ㅡㅡㅋ

  • 구글의 페이지 랭크에서 느껴지는 몇가지 변수중 하나는, "도메인명"이다. 그 변수는 .com이 .co.kr 보다 좋은 점수를 가지는 것으로 보인다. (변수 A)
    즉, asdf.com이 asdf.co.kr 보다 A값이 크다.
  • path depth가 깊어질수록 점수를 떨어뜨리는 변수를 가지고 있는듯 하다.(변수B)
    asdf.com/qwe/rty 보다 asdf.com/qwe 가 B값이 크다.
  • Query string이 있는것보다 없는것이 유리하다.(변수C)
    asdf.com/qwert.php가 asdf.com/qwert.php?var1=val1&var2=val2보다 C값이 크다.
  • 외부링크(타 도메인에서 들어오는 링크)에 의한 랭크 분배가 내부링크에 의한 랭크 분배보다 크다.
등등 몇가지 정해진 로직에 의한 행동을 보이지만, 최근 구글봇과, 구글 인덱서의 행동은 한글 페이지에 대한 몇가지 정책을 교정중인 것으로 보인다. 그 과정에서 나타나는 문제인지.. 아니면, 내가 미처 간파하지 못한 고도의 기술이 숨어있는 것인지 모를 오류(?)도 느껴진다.

  • basher.pe.kr/tt/lumi 와 basher.pe.kr/tt/lumi/ 의 랭크를 다르게 부여한다.
    이건 오류라고 볼수만은 없다. 실제로 웹서버 설정에 따라, basher.pe.kr/tt/lumi와 basher.pe.kr/tt/lumi/ 를 다르게 보이도록 할 수 있긴 하다.
  • basher.pe.kr 은 HTTP 302 Redirection를 하며, basher.pe.kr/tt/lumi 로 보낸다. 이것을 링크로 간주한다. 이건 로직의 결함이라고 봐야 할 것 같다. basher.pe.kr은 아무 내용을 갖지 않기 때문에 basher.pe.kr 로 향하는 모든 링크는 결국 basher.pe.kr/tt/lumi 로 그 랭크 점수를 분배해 주어야 한다. 상식적으로는 그렇다.
  • basher.pe.kr/blog 는 basher.pe.kr/tt/lumi로 HTTP 302 Redirection을 한다. 그런데 외부에서 발견되는 basher.pe.kr 로 향하는 링크중 일부를 basher.pe.kr/blog로 향하는 것으로 간주한다. 바로 위의 내용과 종합하여 볼때, 모종의 HTTP Redirection response에 대한 처리로직이 들어가 있으나, 결함을 가지고 있다.

구글의 한국어 처리를 위한 Lexical analyzer에도 변화가 있었다. 구글 웹마스터 도구에 들어가면 "사이트의 컨텐츠"라는 항목으로 Lexical analyze된 내용을 표로 보여주는 곳이 있다. 근데 조사와 어미를 컨텐츠로 많이 잡고 있다. 뭔가 Analyzer에 버그가 생겼거나 아직 테스트 중인 버전을 사용한듯 하다. Lexical analyzer를 수정하고 있다는 것은 "사이트에 대한 외부링크"항목에서도 느껴진다. 앵커 텍스트를 분석한 것이라고 생각되는 이 영역이 이전에는 매우 부실했는데, 앵커 주변의 텍스트를 함께 포함하는 방식으로 바뀐듯 하다.

쓰다보니 좀 횡설수설 했는데,
어찌됐건 구글의 변화는 검색엔진 개발자들의 주목을 받고 있는 만큼, 뭔가 보여주길 한편 기대하면서, 뭔가 큰 실수를 하나쯤 하지는 않을까 하는 생각도 해 본다.(너무 얄팍한가;;)


이하는 내 블로그 내의 Top페이지를 보여주는 몇몇 URL들의 랭크 값이다. 이것들이 같게 나오는게 가장 지능적이고 이상적인 랭크 로직이겠으나 아마 아직은 불가능할 거다.
http://basher.pe.kr
http://basher.pe.kr/
http://basher.pe.kr/tt
http://basher.pe.kr/tt/
http://basher.pe.kr/tt/lumi
http://basher.pe.kr/tt/lumi/
http://basher.pe.kr/blog
http://basher.pe.kr/blog/
http://luminance.kr/
: