При работе с сайтами с большим трафиком от внедрения рекомендаций по SEO можно потерять столько же, сколько и выиграть.
Риск неудачной реализации SEO можно снизить, используя модели машинного обучения для предварительного тестирования факторов ранжирования в поисковых системах.
Помимо предварительного тестирования, сплит-тестирование — самый надежный способ проверки теорий SEO перед принятием решения о внедрении их на весь сайт или нет.
Мы рассмотрим необходимые шаги по использованию Python для проверки ваших теорий SEO.
Содержание
Выберите позиции ранга
Одной из проблем проверки теорий SEO является необходимость больших размеров выборки, чтобы выводы теста были статистически обоснованными.
Сплит-тесты – популяризированы Уиллом Кричлоу из SearchPilot – отдавайте предпочтение показателям, основанным на трафике, таким как клики, что хорошо, если ваша компания является корпоративной или имеет большой трафик.
Если ваш сайт не может похвастаться такой завидной роскошью, то трафик как конечный показатель, скорее всего, будет относительно редким событием, а это значит, что ваши эксперименты займут слишком много времени на проведение и тестирование.
Вместо этого рассмотрите позиции в рейтинге. Довольно часто для малых и средних компаний, которые хотят расти, их страницы часто ранжируются по целевым ключевым словам, которые пока недостаточно высоко ранжируются, чтобы получать трафик.
В течение периода времени вашего теста, для каждой точки данных времени, например, дня, недели или месяца, вероятно, будет несколько точек данных позиции ранга для нескольких ключевых слов. По сравнению с использованием метрики трафика (которая, вероятно, будет иметь гораздо меньше данных на страницу на дату), что сокращает период времени, необходимый для достижения минимального размера выборки при использовании позиции ранга.
Таким образом, рейтинговая позиция отлично подходит для клиентов небольшого размера, желающих провести сплит-тестирование SEO и способных получить информацию гораздо быстрее.
Google Search Console — ваш друг
Решение использовать позиции рейтинга в Google делает использование источника данных простым (и, что удобно, недорогим) решением в Google Search Console (GSC), при условии, что он настроен.
GSC хорошо подходит для этих целей, поскольку у него есть API, который позволяет извлекать тысячи точек данных с течением времени и фильтровать строки URL.
Хотя данные, возможно, и не являются истинной истиной, они, по крайней мере, будут последовательными, что уже хорошо.
Заполнение недостающих данных
GSC сообщает данные только по URL-адресам, имеющим страницы, поэтому вам придется создать строки для дат и заполнить недостающие данные.
Используемые функции Python будут представлять собой комбинацию merge() (функция VLOOKUP в Excel), используемую для добавления отсутствующих строк данных для каждого URL-адреса и заполнения данных, которые вы хотите ввести для отсутствующих дат в этих URL-адресах.
Для показателей трафика это будет ноль, тогда как для позиций рейтинга это будет либо медиана (если предположить, что URL-адрес ранжировался, когда не было произведено ни одного показа), либо 100 (если предположить, что он не ранжировался).
Код указан здесь.
Проверьте дистрибуцию и выберите модель
Распределение любых данных отражает их природу с точки зрения того, где находится наиболее популярное значение (мода) для заданной метрики, например, ранговая позиция (в нашем случае выбранная метрика) для заданной выборочной совокупности.
Распределение также покажет нам, насколько близки остальные точки данных к середине (среднему значению или медиане), т. е. насколько разбросаны (или распределены) ранговые позиции в наборе данных.
Это очень важно, поскольку повлияет на выбор модели при оценке вашего теста по теории SEO.
Используя Python, это можно сделать как визуально, так и аналитически; визуально, выполнив этот код:
ab_dist_box_plt = (
ggplot(ab_expanded.loc[ab_expanded['position'].between(1, 90)],
aes(x = 'position')) +
geom_histogram(alpha = 0.9, bins = 30, fill = "#b5de2b") +
geom_vline(xintercept=ab_expanded['position'].median(), color="red", alpha = 0.8, size=2) +
labs(y = '# Frequency \n', x = '\nGoogle Position') +
scale_y_continuous(labels=lambda x: ['{:,.0f}'.format(label) for label in x]) +
#coord_flip() +
theme_light() +
theme(legend_position = 'bottom',
axis_text_y =element_text(rotation=0, hjust=1, size = 12),
legend_title = element_blank()
)
)
ab_dist_box_plt
На диаграмме выше показано, что распределение имеет положительную асимметрию (представьте, что лопасть направлена вправо), то есть большинство ключевых слов занимают более высокие позиции (показаны слева от красной срединной линии).
Теперь мы знаем, какую тестовую статистику использовать, чтобы определить, стоит ли следовать теории SEO. В этом случае есть выбор моделей, подходящих для этого типа распределения.
Минимальный размер выборки
Выбранную модель можно также использовать для определения минимально необходимого размера выборки.
Требуемый минимальный размер выборки гарантирует, что любые наблюдаемые различия между группами (если таковые имеются) являются реальными, а не случайными.
То есть разница, полученная в результате вашего SEO-эксперимента или гипотезы, является статистически значимой, а вероятность того, что тест правильно сообщит о разнице, высока (это называется мощностью).
Этого можно достичь путем моделирования ряда случайных распределений, соответствующих указанной выше схеме, как для тестовых, так и для контрольных групп, а также путем проведения тестов.
Код указан здесь.
При запуске кода мы видим следующее:
(0.0, 0.05) 0
(9.667, 1.0) 10000
(17.0, 1.0) 20000
(23.0, 1.0) 30000
(28.333, 1.0) 40000
(38.0, 1.0) 50000
(39.333, 1.0) 60000
(41.667, 1.0) 70000
(54.333, 1.0) 80000
(51.333, 1.0) 90000
(59.667, 1.0) 100000
(63.0, 1.0) 110000
(68.333, 1.0) 120000
(72.333, 1.0) 130000
(76.333, 1.0) 140000
(79.667, 1.0) 150000
(81.667, 1.0) 160000
(82.667, 1.0) 170000
(85.333, 1.0) 180000
(91.0, 1.0) 190000
(88.667, 1.0) 200000
(90.0, 1.0) 210000
(90.0, 1.0) 220000
(92.0, 1.0) 230000
Чтобы разбить это на части, цифры представляют следующее, используя пример ниже:
(39.333,
: доля прогонов моделирования или экспериментов, в которых будет достигнута значимость, т. е. последовательность достижения значимости и надежность.
1.0)
: статистическая мощность, вероятность того, что тест правильно отвергнет нулевую гипотезу, т. е. эксперимент разработан таким образом, что разница будет правильно обнаружена на данном уровне размера выборки.
60000: sample size
Вышеизложенное интересно и потенциально запутанно для не-статистиков. С одной стороны, это предполагает, что нам понадобится 230 000 точек данных (составленных из точек данных ранга за определенный период времени), чтобы иметь 92%-ный шанс наблюдения экспериментов SEO, которые достигают статистической значимости. Однако, с другой стороны, с 10 000 точек данных мы достигнем статистической значимости — так что же нам делать?
Опыт научил меня, что значимость может быть достигнута преждевременно, поэтому вам следует стремиться к размеру выборки, который, скорее всего, будет охватывать не менее 90% времени — нам понадобится 220 000 точек данных.
Это действительно важный момент, поскольку после обучения нескольких корпоративных команд SEO все они жаловались на проведение заключительных тестов, которые не дали желаемых результатов при внедрении победных тестовых изменений.
Таким образом, описанный выше процесс позволит избежать всех этих душевных страданий, напрасной траты времени, ресурсов и ущерба репутации из-за незнания минимального размера выборки и слишком раннего прекращения испытаний.
Назначить и реализовать
Имея это в виду, теперь мы можем начать назначать URL-адреса между тестовой и контрольной группами, чтобы проверить нашу теорию SEO.
В Python мы бы использовали функция np.where() (подумайте о расширенной функции ЕСЛИ в Excel), где у нас есть несколько вариантов разделения наших объектов, либо по шаблону URL-адреса строки, типу контента, ключевым словам в заголовке или по другим параметрам в зависимости от теории SEO, которую вы хотите проверить.
Используйте указанный код Python здесь.
Строго говоря, вы бы запустили это, чтобы собрать данные для дальнейшего проведения нового эксперимента. Но вы могли бы проверить свою теорию ретроспективно, предполагая, что не было никаких других изменений, которые могли бы взаимодействовать с гипотезой и изменить валидность теста.
Это следует иметь в виду, поскольку это всего лишь предположение!
Тест
Как только данные будут собраны или вы будете уверены в наличии исторических данных, вы готовы запустить тест.
В нашем случае с ранговой позицией мы, скорее всего, будем использовать такую модель, как Тест Манна-Уитни из-за его распределительных свойств.
Однако если вы используете другую метрику, например, клики, которая распределена по закону Пуассона, то вам понадобится совершенно другая статистическая модель.
Код для запуска теста указан здесь.
После запуска вы можете распечатать результаты теста:
Mann-Whitney U Test Test Results
MWU Statistic: 6870.0
P-Value: 0.013576443923420183
Additional Summary Statistics:
Test Group: n=122, mean=5.87, std=2.37
Control Group: n=3340, mean=22.58, std=20.59
Вышеприведенные данные являются результатом проведенного мной эксперимента, который продемонстрировал влияние коммерческих целевых страниц с вспомогательными блог-руководствами, имеющими внутренние ссылки на них, по сравнению с неподдерживаемыми целевыми страницами.
В этом случае мы показали, что страницы предложений, поддерживаемые контент-маркетингом, имеют более высокий рейтинг Google в среднем на 17 позиций (22,58 – 5,87). Разница также существенна – 98%!
Однако нам нужно больше времени, чтобы получить больше данных – в этом случае еще 210 000 точек данных. Как и в случае с текущим размером выборки, мы можем быть уверены только в том, что
Сплит-тестирование может продемонстрировать навыки, знания и опыт
В этой статье мы рассмотрели процесс проверки ваших SEO-гипотез, а также требования к мышлению и данным для проведения валидного SEO-теста.
К настоящему моменту вы, возможно, уже поняли, что при разработке, запуске и оценке SEO-тестов нужно многое распаковать и учесть. Мой Видеокурс «Наука о данных для SEO» гораздо глубже (с большим количеством кода) изучает науку SEO-тестов, включая разделение A/A и разделение A/B.
Как специалисты по SEO, мы можем воспринимать как должное определенные знания, например, о влиянии контент-маркетинга на эффективность SEO.
С другой стороны, клиенты часто подвергают сомнению наши знания, поэтому методы сплит-тестирования могут оказаться наиболее полезными для демонстрации ваших навыков, знаний и опыта в области SEO!
Дополнительные ресурсы:
Главное изображение: UnderhilStudio/Shutterstock