Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Разбор

Как считать вес страницы внутри сайта

Соберём простую модель распределения внимания по сайту и используем её для поиска слабых мест в перелинковке.

Что это за модель

Идея проста: страница, на которую ссылаются много других важных страниц, получает больше «веса». Этот вес затем делится между ссылками, которые она сама отдаёт. Модель повторяет принцип, на котором были основаны ранние алгоритмы оценки ссылок. Важная оговорка: это упрощённая учебная модель, а не показатель поисковой системы. Реальные алгоритмы намного сложнее и используют множество других факторов. Но для сравнения страниц одного сайта между собой модель полезна.

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

Как посчитать

  1. Выгрузите краулером список внутренних ссылок: откуда — куда.
  2. Постройте граф: страницы — узлы, ссылки — рёбра.
  3. Запустите итерационный расчёт: вес каждой страницы делится поровну между её исходящими ссылками.
  4. Отсортируйте страницы по результату и сопоставьте с приоритетами.
def pagerank(links, d=0.85, iterations=30):
    pages = list(links)
    n = len(pages)
    rank = {p: 1.0 / n for p in pages}
    for _ in range(iterations):
        new = {p: (1 - d) / n for p in pages}
        for page, outs in links.items():
            if not outs:
                continue
            share = rank[page] / len(outs)
            for target in outs:
                new[target] += d * share
        rank = new
    return rank

Словарь links хранит для каждой страницы список адресов, на которые она ссылается. Все целевые страницы должны присутствовать в словаре как ключи.

Как читать результат

Как интерпретировать распределение
НаблюдениеЧто означаетЧто сделать
Важная страница внизу спискаМало входящих ссылок из сильных страницДобавить ссылки из главной и хабов
Неважные страницы в верхней частиСквозные блоки перекачивают внимание на нихПересмотреть шаблоны и меню
Страницы с нулевым значениемНет входящих ссылок — сиротыСвязать с разделами: как искать сирот
Резкий перекос в пользу главнойСсылки идут в основном с главнойРазвивать перелинковку внутри разделов

Ограничения модели

  • Не учитывается положение ссылки на странице и её заметность.
  • Не учитываются внешние ссылки на страницы.
  • Не различаются тематика и качество страниц.
  • Результат — относительный порядок страниц, а не абсолютные числа.

Используйте как ориентир. Расчёт помогает найти очевидные перекосы, но окончательные решения принимайте вместе с данными об индексации и трафике. Про распределение внимания по глубине — в статье про глубину перелинковки, про метрики структуры — в материале про метрики качества структуры.

Пример на маленьком сайте

links = {
    "home": ["catalog", "blog"],
    "catalog": ["home", "sofa", "bed"],
    "blog": ["home", "sofa"],
    "sofa": ["catalog"],
    "bed": ["catalog"],
}
for page, value in sorted(pagerank(links).items(), key=lambda x: -x[1]):
    print(page, round(value, 3))

Результат покажет, что каталог и главная получают больше всего внимания, диван — заметно больше кровати, потому что на него ссылаются и категория, и статья. Именно так с помощью небольшого расчёта можно увидеть, какие страницы получают мало ссылок относительно своей важности. Для реального сайта на входе будут тысячи строк из краулера, а принцип остаётся тем же.

Частые вопросы

Можно ли узнать точный вес страницы?

Нет: поисковые системы не раскрывают свои расчёты; упрощённая модель помогает лишь сравнивать страницы сайта между собой.

Зачем считать вес внутри сайта?

Чтобы увидеть, какие важные страницы получают мало внутренних ссылок, и какие второстепенные страницы перетягивают внимание.

Что делать со страницами, у которых расчётный вес близок к нулю?

Проверить, нет ли у них входящих ссылок; если это нужные страницы, связать их с разделами и хабами.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также