오픈위키
문서 편집

구글 페이지랭크 (Pagerank)

특정 단어로 인터넷 검색을 하면 필요한 자료 뿐만 아니라 무수한 쓰레기가 결과로 같이 나온다. 이것을 방지하려면 어떤 페이지가 다른 페이지보다 더 가치가 있는지를 알아내야 한다. 페이지랭크는 특정 페이지의 가치를 다른 웹사이트에서 얼마나 링크를 걸고 있는지를 기준으로 점수를 계산하여 이것을 검색결과에 반영하는 것이다. 좋은 내용일수록 인터넷의 여러 이용자들이 링크를 걸 테니까…

단순히 갯수만으로 따지는 것은 아니고 얼마나 높은 점수의 페이지에서 링크를 걸었느냐도 중요하고, 그 페이지에서 얼마나 희소하게 걸었느냐도 중요하다. (10점인 곳에서 10개를 걸어 그 중의 하나를 받는 것과 10000개를 걸어 하나를 받는 것과는 점수 차이가 난다.)

점수가 올라가면 특정 단어로 검색했을 때 나오는 구글의 검색 결과에서 좀더 위쪽을 차지하게 된다. 당연히 유입이 더 많아지게 된다.

참고로, 학술잡지의 순위를 정하는 방법(과학인용색인(Science Citation Index, SCI®)도 비슷한 방법을 사용한다. 그 잡지에 실린 논문이 다른 여러 논문에서 인용이 될 수록 해당 잡지의 점수가 올라가도록 되어 있다.

세르게이 브린과 래리 페이지가 쓴 논문(The Anatomy of a Large-Scale Hypertextual Web Search Engine)에서 소개된 PageRank 알고리즘은 구글의 200여개 검색 알고리즘 중 하나이다. 1)

2009년 구글웹마스터에서 페이지랭크 기능이 삭제되었다.

2013년 11월 마지막으로 점수가 수정되었으며, 2014년 10월 더이상의 점수 변경은 없을 것이라고 발표하였다. 2)

대충 본 유명 사이트 점수

틀린 말..

  • 백링크가 많을 수록 좋다. (틀림:!:. 질도 중요함. 점수가 0인 곳에서 아무리 걸어줘 봤자 안올라감.)
  • 다른 곳으로의 링크는 손해 없이 상대방의 랭크 값을 올려준다. ( 틀림:!: 내 점수를 깎아서 주는 것이다.)
  • 상대방의 웹사이트에 트랙백은 항상 내 웹사이트 랭킹에 도움을 준다. (틀림:!: 링크 속성에 rel="nofollow" 를 주면 페이지 랭크에는 전혀 영향을 미치지 않게 된다.)3)4)
  • 페이지랭크가 상위 등록을 보장한다. (틀림:!: 높다면 상위에 나올 확률이 높은 것이지 보장되지는 않는다. 구글은 보다 복잡한 알고리즘을 추가하였다.)
  • 구글은 페이지랭크는 완전 자동화된다. (틀림:!: 수동으로 삭제하거나 추가하기도 한다)

페이지 랭크 값 확인하는 법

PHP

To use the script just include it in your files and call the getPageRank() function, passing the URL as the parameter. This function will return a value from 0 to 10 (the page rank) or -1 on failure. You should check this value before outputting the pagerank. Unfortunately, some IPs may be banned by Google, therefore the server running this code may not be allowed to query the Google servers. In this case the pagerank returned will always be -1.

http://www.pagerankcode.com/download-script.html

Here is an example:

<?php
  // content of somefile.php
  include('pagerank.php');
  $pr = getPageRank('http://www.pagerankcode.com');
  echo 'pagerankcode.com has PR '.$pr;
?>

The following is the code-highlighted script that can be downloaded via the above link.

Google PageRank PHP source script

pagerank.php
<?php
  define('GOOGLE_MAGIC', 0xE6359A60);
  function _zeroFill($a, $b){
       $z = hexdec(80000000);
       if ($z & $a){
         $a = ($a>>1);
         $a &= (~$z);
         $a |= 0x40000000;
         $a = ($a>>($b-1));
       }else
         $a = ($a>>$b);
       return $a;
     }
  function _mix($a,$b,$c){
       $a -= $b; $a -= $c; $a ^= (_zeroFill($c,13));
       $b -= $c; $b -= $a; $b ^= ($a<<8);
       $c -= $a; $c -= $b; $c ^= (_zeroFill($b,13));
       $a -= $b; $a -= $c; $a ^= (_zeroFill($c,12));
       $b -= $c; $b -= $a; $b ^= ($a<<16);
       $c -= $a; $c -= $b; $c ^= (_zeroFill($b,5));
       $a -= $b; $a -= $c; $a ^= (_zeroFill($c,3));
       $b -= $c; $b -= $a; $b ^= ($a<<10);
       $c -= $a; $c -= $b; $c ^= (_zeroFill($b,15));
       return array($a,$b,$c);
  }
  function _GoogleCH($url, $length=null, $init=GOOGLE_MAGIC){
       if(is_null($length))
         $length = sizeof($url);
       $a = $b = 0x9E3779B9;
       $c = $init;
       $k = 0;
       $len = $length;
       while($len >= 12){
         $a += ($url[$k + 0] + ($url[$k + 1] << 8) + ($url[$k + 2] << 16) + ($url[$k + 3] << 24));
         $b += ($url[$k + 4] + ($url[$k + 5] << 8) + ($url[$k + 6] << 16) + ($url[$k + 7] << 24));
         $c += ($url[$k + 8] + ($url[$k + 9] << 8) + ($url[$k + 10] << 16) + ($url[$k + 11] << 24));
         $_mix = _mix($a,$b,$c);
         $a = $_mix[0]; $b = $_mix[1]; $c = $_mix[2];
         $k += 12;
         $len -= 12;
       }
       $c += $length;
       switch($len){
         case 11: $c += ($url[$k + 10] << 24);
         case 10: $c += ($url[$k + 9] << 16);
         case 9 : $c += ($url[$k + 8] << 8);
         case 8 : $b += ($url[$k + 7] << 24);
         case 7 : $b += ($url[$k + 6] << 16);
         case 6 : $b += ($url[$k + 5] << 8);
         case 5 : $b += ($url[$k + 4]);
         case 4 : $a += ($url[$k + 3] << 24);
         case 3 : $a += ($url[$k + 2] << 16);
         case 2 : $a += ($url[$k + 1] << 8);
         case 1 : $a += ($url[$k + 0]);
       }
       $_mix = _mix($a,$b,$c);
       return $_mix[2];
  }
  function _strord($string){
       for($i = 0;$i < strlen($string);$i++)
         $result[$i] = ord($string{$i});
       return $result;
}
  function getPageRank($url){
       $pagerank = -1;
       $ch = "6"._GoogleCH(_strord("info:" . $url));
       $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
       if($fp){
         $out = "GET /search?client=navclient-auto&ch=" . $ch . "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n";
         $out .= "Host: www.google.com\r\n";
         $out .= "Connection: Close\r\n\r\n";
         fwrite($fp, $out);
         while (!feof($fp)){
           $data = fgets($fp, 128);
           $pos = strpos($data, "Rank_");
           if($pos === false){
           }else
             $pagerank = substr($data, $pos + 9);
         }
         fclose($fp);
       }
       return $pagerank;
}
?>
누구나 수정할 수 있다. 위키 사용법 참고하라.
2)
Bartleman, Wil (2014-10-12). "Google Page Rank Update is Not Coming". Managed Admin. Retrieved 2014-10-12.
3)
Google에서는 nofollow로 설정된 링크를 어떻게 처리하나요? 일반적으로 Google은 이러한 링크를 따르지 않는다. 즉, Google에서는 이러한 링크 간에 PageRank 또는 앵커 텍스트를 전송하지 않는다. nofollow 속성을 사용할 경우 Google의 전체 웹 도표에서 타겟 링크를 삭제하게 된다. 하지만 다른 사이트에서 nofollow를 사용하지 않고 타겟 페이지로 링크하거나 해당 URL이 Sitemap 형태로 Google에 제출된 경우, 타겟 페이지는 Google 색인에 계속 나타날 수 있다. 또한 검색엔진마다 nofollow 속성을 처리하는 방식은 조금씩 다를 수 있다.
4)
도쿠위키의 경우 외부 링크에 해당 속성을 주도록 하는 설정이 가능하다. 대부분의 블로그나 위키 시스템이 이를 적용하고 있다. 이것은 누구나 편집이 가능한 위키의 특성을 이용해서 악의적으로 자신의 링크를 붙여넣는 위키트롤링을 방지하기 위한 기능이다.

연결문서

CC Attribution-Noncommercial-Share Alike 4.0 International 별도로 명시하지 않을 경우, 이 위키의 내용은 다음 라이선스에 따라 사용할 수 있습니다: CC Attribution-Noncommercial-Share Alike 4.0 International
8.9 KB tech/pagerank.txt · 마지막으로 수정됨 2016/07/12 09:26 (바깥 편집) 흠흠 V_L

0.094 seconds in processing this page on this powerful server.