구글 페이지랭크 (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인 곳에서 아무리 걸어줘 봤자 안올라감.)
- 다른 곳으로의 링크는 손해 없이 상대방의 랭크 값을 올려준다. ( 틀림 내 점수를 깎아서 주는 것이다.)
- 페이지랭크가 상위 등록을 보장한다. (틀림 높다면 상위에 나올 확률이 높은 것이지 보장되지는 않는다. 구글은 보다 복잡한 알고리즘을 추가하였다.)
- 구글은 페이지랭크는 완전 자동화된다. (틀림 수동으로 삭제하거나 추가하기도 한다)
페이지 랭크 값 확인하는 법
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; } ?>
누구나 수정할 수 있다. 위키 사용법 참고하라. |
---|