 25 февраля 2003 года компания Google запатентовала новый алгоритм ранжирования страниц, получивший название LocalRank. В основе лежит идея о том, чтобы ранжировать страницы не по их глобальной ссылочной цитируемости, а по цитируемости среди группы страниц, тематически связанных с запросом. 

   Алгоритм LocalRank не используется на практике (по крайней мере, в том виде, в каком он описывается в патенте), однако, патент содержит ряд интересных идей, с которыми, мы считаем, должен быть знаком каждый оптимизатор. Учет тематики ссылающихся страниц используется почти всеми поисковыми системами. Хотя происходит это, видимо, по несколько другим алгоритмам, изучение патента позволит уяснить общие идеи, как это может быть реализовано. 

   При чтении этой главы учитывайте, что в ней представлена теоретическая информация, а не практическое руководство к действию. 

   Основную идею алгоритма LocalRank выражают следующие три пункта:

   1. Используя некоторый алгоритм, выбирается определенное число документов, релевантных поисковому запросу (обозначим это число N). Эти документы изначально отсортированы согласно некоторому критерию (это может быть PageRank, либо оценка релевантности или какой-либо другой критерий или их группировка). Обозначим численное выражение данного критерия как OldScore.

   2. Каждая из N страниц проходит новую процедуру ранжирования, в результате которой каждая страница получает некоторый новый ранг. Обозначим его LocalScore.

   3. На этом шаге величины OldScore и LocalScore перемножаются, в результате чего получается новая величина NewScore, согласно которой и происходит итоговое ранжирование страниц.

   Ключевой в данном алгоритме является новая процедура ранжирования, в результате которой каждой странице присваивается новый ранг LocalScore. Опишем эту процедуру подробнее.

   0. Используя некоторый алгоритм ранжирования отбираются N страниц, отвечающих поисковому запросу. Новый алгоритм ранжирования будет работать только с этими N страниц. Каждая страница в этой группе имеет некоторый ранг OldScore.

   1. При расчете LocalScore для данной страницы выделяются все страницы из N, которые имеют внешние ссылки на данную страницу. Обозначим множество этих страниц M. При этом, в множество M не попадут страницы с того же хоста (host, фильтрация произойдет по IP адресу), а также страницы, являющиеся зеркалами данной.

   2. Множество M разбивается на подмножества Li . В эти подмножества попадают страницы, объединенные следующими признаками:
   - принадлежность одному (или сходным) хостам. Таким образом, в одну группу попадут страницы, у которых первые три октета IP адреса совпадают. То есть, страницы, IP адрес которых принадлежит диапазону 
xxx.xxx.xxx.0
xxx.xxx.xxx.255
будут считаться принадлежащими одной группе;
   - страницы, которые имеют одинаковое или схожее содержание (зеркала, mirrors); 
   - cтраницы одного сайта (домена).

   3. Каждая страница в каждом множестве Li имеет некоторый ранг (OldScore). Из каждого множества выбирается по одной странице с самым большим OldScore, остальные исключаются из рассмотрения. Таким образом, мы получаем некоторое множество K страниц, ссылающихся на данную страницу.

   4. Страницы в множестве K сортируются согласно параметру OldScore, затем в множестве K остаются только k первых страниц (k – некоторое заданное число), остальные страницы исключаются из рассмотрения.

   5. На данном шаге рассчитывается LocalScore. По оставшимся k страницам происходит суммирование их значений OldScore. Это можно выразить следующей формулой:

 
   Здесь m – некоторый заданный параметр, который может варьироваться от 1 до 3 (к сожалению, информация, содержащаяся в патенте на описываемый алгоритм, не дает подробного описания данного параметра).

   После того, как расчет LocalScore для каждой страницы из множества N закончен, происходит расчет значений NewScore и пересортировка страниц согласно новому критерию. Для рассчета NewScore используется следующая формула:

   NewScore(i)= (a+LocalScore(i)/MaxLS)*(b+OldScore(i)/MaxOS)

   i – страница, для которой рассчитывается новое значение ранга.

   a и b – некоторые числа (патент не дает более подробной информации об этих параметрах).

   MaxLS – максимальное из рассчитанных значений LocalScore

   MaxOS – максимальное из значений OldScore

   Теперь постараемся отвлечься от математики и повторим все вышесказанное простым языком. 

   На первом этапе происходит отбор некоторого количества страниц соответствующих запросу. Это делается по алгоритмам, не учитывающим тематику ссылок (например, по релевантности и общей ссылочной популярности). 

   После того, как группа страниц определена, будет подсчитана локальная ссылочная популярность каждой из страниц. Все страницы так или иначе связаны с темой поискового запроса и, следовательно, имеют отчасти схожу тематику. Проанализировав ссылки друг на друга в отобранной группе страниц (игнорируя все остальные страницы в Интернете), получим локальную (тематическую) ссылочную популярность.

   После проделанного шага у нас есть значения OldScore (рейтинг страницы на основе релевантности, общей ссылочной популярности и других факторов) и LocalScore (рейтинг страницы среди тематически связанных страниц). Итоговый рейтинг и ранжирование страниц проводится на основе сочетания этих двух факторов.