R для продвижения сайта на Drupal

Как с помощью языка R проанализировать статистические показатели сайта на Drupal и увеличить количество посещений.

R, Drupal и SEO

Идея, заложенная в основу

Сайт — совокупность отдельных страниц. Страница может быть популярной и привлекать посетителей, а может быть непопулярной. Если разбить страницы на кластеры и выделить признаки удачных статей, то можно будет писать больше хороших и меньше плохих. В свою очередь, это приведет к общему росту количества посещений.

Drupal + R + RMySQL = любовь

R имеет очень развитые возможности импорта/экспорта. Данные из MySQL можно экспортировать в формате CSV и потом загрузить в R. Но добрые люди написали библиотеку RMySQL, позволяющую напрямую подрубиться к работающему сайту и снимать статистику в режиме реального времени.

Устанавливаем:

install.packages("RMySQL")

И подключаемся:

library(RMySQL)
m <- dbConnect(dbDriver("MySQL"), dbname="liberatum", "username", "password")

Теперь можно создавать датафреймы в R напрямую из таблиц в MySQL.

Как Drupal хранит информацию о посещениях

Каждая страница сайта в терминологии Drupal зовется узлом (node). Метаданные об узлах содержатся в таблице node, тело страницы в node_revisions, а статистическая информация о просмотрах в node_counter. Объединяем таблицы и грузим в R:

SELECT node.nid, title, totalcount, daycount FROM node LEFT JOIN node_counter ON node.nid = node_counter.nid

Проверяем, все ли верно загрузилось и в той ли кодировке:

head(t)
  nid                                           title totalcount daycount
1   2  Эффекты коммерциализации open source сообществ       2693        0
2   3              Аналитическая оценка свободного ПО       2873        1
3   4                            Индекс репутации LRI       1975        0
4   5       Индекс репутации LRI за февраль 2008 года       8094        3
5   6 Sun и Microsoft укрепляют партнерские отношения       2218        0
6   7             Какую операционную систему выбрать?      21143        4

Графики популярности

Получена информация о 12012 узлах. Строим график популярности узлов в зависимости от идентификатора узла (в практическом смысле, это будет изменение популярности статей по времени).

Продвижение сайта с помощью R

На картинке можно увидеть три условные группы: обычные статьи, удачные статьи и одиночный «выброс» с 300 тыс. просмотров. Конечно, было бы интересно ориентироваться на эту сверхуспешную группу, но поскольку в ней всего один элемент, изучению статистическими методами эта группа не поддается и интереса в рамках данной статьи не представляет.

Кластеризация

Разобьем узлы на кластеры. Кластеров будет, как выяснили выше, три:

K-means clustering with 3 clusters of sizes 1, 11948, 63
 
Cluster means:
        [,1]
1 305810.000
2   1532.976
3  21231.508

В первый кластер попала одна статья с количеством просмотров 305810, во второй кластер вошла основная группа статей (со средней популярностью около 1,5 тыс. просмотров). Наконец, в третий кластер — он для нас и представляет интерес — вошли 63 статьи со средним количеством просмотров 21 тыс. Если выявить характерные особенности статей из второго и третьего кластера (если они вообще существуют), то теоретическим можно будет использовать эти отличия и писать статьи, которые будут почти в 14 раз более эффективны. Это при условии полного учета всех факторов, что на практике едва ли достижимо. Но и «скромный» рост эффективности в 2-3 раза меня бы вполне устроил.

Посмотрим на картинку:

Кластерный анализ в SEO

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

Откуда берутся просмотры страниц

Чтобы перейти к анализу, необходимо сначала задуматься, а откуда вообще у каждой статьи берутся просмотры? Я бы выделил два главных источника: поисковые системы и прямые заходы (сюда же можно отнести RSS-подписчиков). Понятно, что на разные источники влияют разные факторы. Для «прямых» читателей основной фактор — заголовок. Если он привлек внимание, читатель перейдет по ссылке и откроет статью. Другими словами, надо анализировать, в первую очередь, заголовки: ключевые слова, длину, количество знаков пунктуации и т.д. Для переходов с поисковиков заголовки тоже важны, но еще важнее факторы ранжирования самой поисковой системы. Из тех, на которые мы можем повлиять это: ключевые слова в заголовке и теле статьи, использование (или не использование) разных тегов, наличие картинок, ссылок, видео и т.д. По этим критериям и нужно искать отличия статей из второго и третьего кластера.

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

Ключевые слова популярных статей

Строим облако слов по заголовкам популярных статей:

Какие слова стоит включать в заголовок

Вроде бы, все ясно. Но радостно кидаться писать статьи и включать в заголовки эти ключевые слова рано. Мы ведь искали отличия, то есть характерные особенности. Поэтому, строим еще облако слов из заголовков «обычных» статей и ищем ключевые слова, входящие в первое облако, но отсутствующие во втором. Строго говоря, полное отсутствие и не требуется, достаточно, чтобы частотность слова во втором облаке была ниже.

Самые распространенные теги

Ну вот, теперь можно делать кое-какие выводы. Хочу сразу предупредить, что для реального анализа надо стоит строить таблицы, а не картинки. Так будет проще находить пересечения и считать частоты.

Итак, включение в заголовок слов «как» и «ubuntu» повышает вероятность того, что количество просмотров будет выше среднего. Еще людей привлекает «установка» чего-либо и последующее «ускорение».

Какие слова не использовать в заголовке

Теперь посмотрим, какие темы являются изначально провальными. Я предлагаю следующий алгоритм: берем статьи из второго кластера (основной) и отфильтровываем те, у которых количество просмотров ниже среднего в пределах кластера. Снова строим облако слов и отбрасываем те, которые характерны для всего кластера.

Какие слова не использовать в заголовке

Можно вывести правило: хочешь испортить статью, пиши об интернете, пользователях, России и политиках.

Оптимальная длина заголовка статьи

Теперь посмотрим, зависит ли популярность статьи от длины заголовка.

Дополним таблицу столбцом с длиной и построим график:

Оптимальная длина заголовка

Сложно не увидеть закономерность: длинный заголовок снижает шансы на успех практически до нуля. Но какой конкретно диапазон длин является оптимальным? Лучше гистограммы никто на этот вопрос не ответит:

Короткие заголовки — ключ к успеху

Короткий заголовок (20-60 символов) — ключ к успеху.

А что дальше?

Можно выделить как можно больше характеристик и написать модуль для Drupal, который прямо во время написания статьи будет примерно оценивать шансы на успех размещаемого материала.

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Linux I класса
Linux II класса
Linux III класса
Счетчики
  • Самый популярный сайт о Linux и Windows 10
О Либератуме

Liberatum — это новости мира дистрибутивов Linux, обзоры, сборки, блоги, а также лучший сайт об Ubuntu*.