Формула расчета PR. Распределение Page Rank внутри сайта

Как лучше управлять индексацией внутренних ссылок на сайте, чтобы повысить PR его отдельных страниц? Рассмотрим формулу, по которой вычисляется PR для текущей страницы A:

здесь d – коэффициент затухания ссылочного веса, точное его значение скрывается Гуглом, обычно его принимают за 0,85. В контексте нашего вопроса это несущественно, так как мы хотим оценить PR выбранных страниц на сайте относительно всех остальных;
T1,…, Tn – страницы, ссылающиеся на А;
PR(T1),…, PR(Tn) – PR ссылающихся страниц;
С(T1),…, С(Tn) – количество ссылок на ссылающихся страницах.

Особенности:

  1. Если какая-то страница содержит ссылку на саму себя, то эта ссылка не учитывается при расчете.
  2. Ссылки на страницы, которые сами в свою очередь не имеют ссылок, также не учитываются.
  3. Две и более одинаковые ссылки с одной страницы считаются, как одна.
  4. На некоторые сайты Google может накладывать фильтры, ухудшающие перетекание ссылочного веса и вносящие искажения в формулу определения PR, здесь мы этот эффект не рассматриваем.

Как же пользоваться этой формулой, ведь в правой части указаны PR страниц, которые тоже предстоит вычислить? Возьмем все-все страницы в Интернете, проиндексированные Гуглом и примем начальный PR каждой из них за единицу, затем последовательно вычислим Page Rank для всех. Это была первая итерация, в результате которой каждая страница получила какое-то значение PR. Повторяем много раз вычисления по этому алгоритму, используя в качестве PR страниц величины, полученные на предыдущем шаге. Особенность алгоритма состоит в том, что какой бы начальный PR мы не взяли и в каком бы порядке не вычисляли его, за достаточно большое количество итераций мы придем к одним и тем же числам.

Однако, привычный всем целочисленный PR от 0 до 10 – это не то, что мы получили в предыдущем абзаце. PR 0…10 – так называемый "Тулбарный" PR (ToolBar PageRank), он введен для того, чтобы можно было представить все значения PR в абсолютных величинах независимо от количества страниц в сети. Вот он:

где base – некое число, зависящее от количества страниц в индексе Гугла и других факторов, обычно берут base равное 7;
a – коэффициент приведения, 0 < a ≤ 1, чаще всего принимают за 1.

Коэффициенты base и a, как и сама формула для TLPR нам сейчас не важны, главное, что увеличение TLPR всегда связано с увеличением PR, поэтому сконцентрируемся на последнем. Забудем про внешние ссылки на другие ресурсы и попробуем рассчитать PR исходя только из внутренних факторов. Допустим, у нас есть сайт, состоящий из шести страниц:

На каждой есть меню: "Главная страница", "О сайте", "Список статей". На пункты меню ссылаются все страницы сайта. "Список статей" кроме этого ссылается еще на страницы со статьями. Page Rank при таком ссылочном распределении обозначен на схеме сверху. При расчете PR я сделал 100 итераций, взяв за начальное значение единицу и округлил полученные числа до сотых после запятой.

Допустим, мы хотим продвигать только главную страницу. Чтобы повысить ее PR, логично будет разрешить индексировать лишь те ссылки, которые на нее ведут. Учтем при этом, что ни одна страница не должна оказаться отсеченной от сайта, то есть на каждую должна быть поставлена индексируемая ссылка:

Что ж, PR требуемой страницы возрос. Попробуем теперь поставить с нее ссылку на "Статью 1" и посмотрим, как изменится распределение:

Казалось бы, ставя лишнюю ссылку на главной странице, мы должны уводить с нее ссылочные вес и тем самым ослаблять ее. Но на деле оказывается совсем наоборот – ссылочный вес возвращается с прибавкой! Этим действием мы одновременно поднимает и "Статью 1".

Пусть теперь мы передумали и решили  раскручивать только список статей:

Только что нам удалось получить больший PR из всех вычисленных ранее, равный 2,8 для списка статей. Как показывает данный пример, проще увеличить PR страницы, имеющей много внутренних ссылок, при условии конечно, что на нее будут установлены обратные. Этот же эффект был продемонстрирован, когда мы делали ссылку на "Статью 1" с главной.

А теперь нарушим логическую структуру сайта: поставим с главной страницы ссылки на все остальные, а со всех страниц на главную. Другие же ссылки закроем от индексации.

Выводы:

  1. Лучше всего удается увеличить Page Rank страниц со множеством ссылок, при условии установки обратных. К таким страницам относятся форумы, списки статей, карты сайтов и т.д        
  2. PR страницы здорово поднимается, если поставить на нее ссылку со страниц из п.1, аккумулирующих Page Rank.
  3. Для увеличения PR главной страницы на нее будет полезно помещать анонсы статей, новостей и т.д., ведущие на страницы с полным текстом. Опять же, не забываем про обратные ссылки.

А вот и скрипт, который поможет вам с расчетом PR. Поэкспериментируйте с разными вариантами индексации ссылок на сайте.

код скопирован в буфер
  1. <?
  2. // массив страниц сайта: первый элемент в массиве каждой страницы - ее название,
  3. // все остальные элементы - индексы страниц в массиве, на которые есть ссылка с текущей
  4. $pages = array
  5. (
  6.     array('Главная страница', 1, 2),
  7.     array('О сайте', 0, 2),
  8.     array('Список статей', 0, 1, 3, 4, 5),
  9.     array('Статья 1', 0, 1, 2),
  10.     array('Статья 2', 0, 1, 2),
  11.     array('Статья 3', 0, 1, 2)
  12. );
  13. // устанавливаем страницам начальное значение PR = 1
  14. for ($i=0;$i<count($pages);$i++) $pr[$i] = 1;
  15. // количество итераций = 100
  16. for ($i=0;$i<100;$i++)
  17.     for ($j=0;$j<count($pages);$j++)
  18.     {
  19.         $add = 0; // прирост от внешних ссылок
  20.         for ($k=0;$k<count($pages);$k++)
  21.         {
  22.             if ($k == $j) continue;
  23.             for ($l=1;$l<count($pages[$k]);$l++)
  24.                 if ($pages[$k][$l] == $j) $add += $pr[$k]/(count($pages[$k])-1);
  25.         }
  26.         $pr[$j] = 0.15 + 0.85*$add; // формула вычисление PR
  27.     }
  28. for ($i=0;$i<count($pages);$i++) echo $pages[$i][0].': '.$pr[$i].'<br>'; // вывод
  29. ?>

Теги: SEO
Другие записки...
8 декабря 2013

Комментарии

Дмитрий
10 апреля 2015 05:35

Цитата:

Возьмем все-все страницы в Интернете, проиндексированные Гуглом и примем начальный PR каждой из них за единицу, затем последовательно вычислим Page Rank для всех

Ничего не понял, так мы принимаем их PR равным 1 или все-таки вычисляем?

                                                                                                                                                                                                       

Дмитрий
10 апреля 2015 05:52

Да, и почему PR принимают равным 1. Если, к примеру, я делаю внутреннюю перелинковку для нового сайта, то там точно PR != 1.

Второе, как понять, что итераций проделано достаточно?

                                                                                                                                                                                                       

Вадим Шевцов
10 апреля 2015 13:36

Цитата:

Ничего не понял, так мы принимаем их PR равным 1 или все-таки вычисляем?

PR мы вычисляем по формуле в начале статьи, проводя достаточное количество итераций. Неважно, какое брать начальное значение, вычисленный PR от этого не зависит, попробуйте в скрипте поставить не 1, а любое другое число.

Цитата:

Второе, как понять, что итераций проделано достаточно?

Когда результат перестанет меняться на 10-м знаке после запятой на какой-то итерации, значит достаточно.

                                                                                                                                                                                                       

С. А.
19 декабря 2016 02:43

Шиииикарный скрипт и куча сэкономленного времени, спасибо!

                                                                                                                                                                                                       

Добавление комментария

Имя:
Преобразовывать в тексте комментария смайлики в графические иконки
Защитный код:
Защитный код
 
 
                                                                                                                                                                                                       
Copyright © 2019 ScriptScript.ru, по всем вопросам пишите нам через форму обратной связи.
364319675