Инструменты для SEO-анализа больших сайтов

Крупный сайт:

Масштаб проекта меняет все: инструменты, методы анализа, подход к внедрениям и даже роль SEO-специалиста в команде.

Условия взаимодействия

Небольшой сайт:

Крупный сайт:

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

Типы работ

Небольшой сайт:

Крупный сайт:

SEO как аналитика

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

Требования к SEO-специалисту

Для работы с крупными проектами недостаточно глубоких знаний в классическом SEO. Необходимо развитие в техническую и аналитическую сторону:

На этом уровне SEO и превращается в полноценную аналитическую дисциплину внутри продукта и бизнеса.

Рассмотрим набор инструментов, которые мы используем при работе с крупными проектами.

Общая концепция аналитической работы

В «Пиксель Плюс» решение аналитических задач в SEO практически всегда сводится к последовательному прохождению нескольких базовых этапов:

Примеры обогащения:

На каждом этапе для нас критична прозрачность: почему были сделаны именно такие преобразования данных и к каким выводам они привели.

Во многих случаях весь этот цикл можно реализовать, не выходя за пределы Google Sheets.

Пример аналитической задачи

Задача: найти точки роста органического трафика внутри раздела /services/.

Шаг 1. Получение сырых данных

С помощью Search Analytics for Sheets выгружаем все поисковые запросы, по которым ранжировались страницы раздела /services/ в Google. На выходе получаем полный массив сырых данных: запросы, показы, клики, позиции.

Шаг 2. Обработка и обогащение

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

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

Шаг 3. Моделирование и выводы

Далее анализируем, какие именно страницы ранжируются по этим запросам:

Аналитическая работа приводит не к «гипотезе ради гипотезы», а к конкретному плану действий.

Пример итогового продукта аналитической задачи по подсчету темпов прироста трафика в Google Sheets

[img=right]

Ограничения подхода

Для крупных проектов часть задач действительно можно решать быстро и относительно просто. Однако по мере роста объемов данных, сложности архитектуры и количества зависимостей такой подход перестает масштабироваться. В этих случаях SEO-специалисту неизбежно приходится переходить к более серьезным инструментам и технологиям анализа данных.

BigQuery и SQL в SEO-аналитике

Хранение и работа с большими объемами данных

При работе с крупными проектами быстро становится очевидно, что локальные инструменты и табличные редакторы перестают справляться с объемами данных. Для этого есть специализированные системы хранения и анализа – аналитические хранилища данных(Data Warehouse).

Одним из наиболее удобных и распространенных инструментов такого класса является Google BigQuery.

Google BigQuery – это полностью управляемое, бессерверное облачное аналитическое хранилище данных в составе Google Cloud для быстрого анализа очень больших объемов информации(вплоть до петабайтов)с использованием SQL, без необходимости настройки и поддержки инфраструктуры.

Для нас BigQuery особенно ценен тем, что:

Экспорт данных из Google Search

На крупных проектах данные из Google Search, как правило, автоматически экспортируются в BigQuery. Формально к данным Google Search Console можно обращаться через API, однако у этого подхода есть ограничения:

В BigQuery же данные хранятся в структурированном виде и могут накапливаться годами.

Пример типичной таблицы – searchdata_site_impression, которая содержит агрегированные SEO-данные на уровне сайта, включая:

Средняя позиция рассчитывается следующим образом:

SUM( sum_top_position)/ SUM( impressions)+ 1

[img=right]

Помимо этого, обычно доступны таблицы с большей гранулярностью – например, searchdata_url_impression, где данные хранятся на уровне конкретных URL.

Работа с данными через SQL

В BigQuery взаимодействие с данными происходит с помощью SQL-запросов. Например, базовая агрегация по устройствам в разрезе года и месяца для веб-поиска может выглядеть так:

-- Получение агрегации по устройству в разрезе года и месяца по поиску

SELECT

EXTRACT( YEAR FROM data_date)AS year,

EXTRACT( MONTH FROM data_date)AS month,

device,

SUM( impressions)AS impressions,

SUM( clicks)AS clicks,

SAFE_DIVIDE( SUM( sum_top_position), SUM( impressions)) + 1 AS avg_position,

SAFE_DIVIDE( SUM( clicks), SUM( impressions)) AS avg_ctr

FROM <тут название вашей таблицы>

WHERE search_type = "WEB"

GROUP BY year, month, device

ORDER BY year, month, device;

Даже такие простые запросы уже дают нам агрегированную картину динамики трафика и эффективности поиска.

А вот более сложный запрос, который позволяет по каждому дню получить агрегированные данные по количеству слов в запросе, ограниченную 10 словами(т.е. min( q_len, 10)).

-- Получение данных о запросах по дням

SELECT

data_date,

IF(

is_anonymized_query,

0,

LEAST(

  LENGTH( query)- LENGTH( REPLACE( query, ' ', '')) + 1,

10

)

)AS words_in_query,

SUM( impressions)AS impressions,

SUM( clicks)AS clicks,

SAFE_DIVIDE( SUM( sum_top_position), SUM( impressions)) + 1 AS avg_position,

SAFE_DIVIDE( SUM( clicks), SUM( impressions)) AS avg_ctr

FROM <тут название вашей таблицы>

WHERE search_type = 'WEB'

GROUP BY

data_date,

is_anonymized_query,

words_in_query

ORDER BY

data_date,

impressions DESC;

Агрегация и управление гранулярностью

В «Пиксель Плюс» при работе с большими массивами SEO-данных BigQuery используется как основной инструмент обработки. Он предоставляет огромное количество возможностей: оконные функции, сложные JOIN’ы, подзапросы, user-defined functions и многое другое. Но даже базового функционала бывает достаточно, чтобы решать большинство задач.

Ключевой навык здесь – управление уровнем детализации данных.

На практике:

Да, при этом часть информации теряется. Но возникает важный вопрос: действительно ли вам нужна максимальная детализация на текущем этапе анализа?

Если надо найти просадку трафика по странам, выгружать полную таблицу с запросами и URL – это все равно что искать оазис в пустыне, рассматривая каждую песчинку. Гораздо эффективнее:

Грамотный анализ всегда движется от: широкой картины -> локализации проблемы -> детального исследования, а не наоборот.

Требования к знаниям

На этом этапе от SEO-специалиста уже требуется понимание:

Да, современные LLM(включая ChatGPT)способны написать практически любой SQL-запрос. Но если специалист не понимает, что именно делает запрос и какие допущения он закладывает, автоматическая генерация кода не только не поможет, но и может привести к неверным выводам.

Python в SEO-аналитике

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

Почему именно Python

Полный аналитический цикл на Python

Python позволяет закрыть практически весь цикл аналитической работы:

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

model.fit( X, y)

и через несколько минут получить результат.

Также стоит добавить про гибкость: будучи интерпретируемым императивным языком программирования, Python оставляет за специалистом право определить логику пошагово. Т.е. в любой момент своих вычислений вы можете вызвать внешний API или как угодно изменять логику во время выполнения работы программы. Например, вы можете использовать предобученные трансформеры для zero_shot классификации запросов по двум простым категориям.

Ограничения и ловушки

Если специалист не понимает:

– эффективность использования Python резко падает.

Примеры типичных заблуждений:

Python снимает технические барьеры, но не заменяет понимание математики, статистики и предметной области.

Базовые библиотеки для SEO-аналитики

Минимальный стек, с которым сталкивается практически любой SEO-аналитик:

Примеры работы с Python

Обработка агрегированных категорий

Получение выгрузки из Bigquery по всем странам(по месяцам и годам)и обработка данных таким образом, чтобы все страны, не входящие в топ-5, переименовались в other.

df = pd.read_csv( "/content/bquery_by_country.csv")

top5countries = df.groupby( "country").agg(

clicks=( "clicks", "sum")

).reset_index().sort_values( by="clicks", ascending=False).head( 5)["country"].tolist()

df["country"] = df["country"].where( df["country"].isin( top5countries), "other")

df =(

df.groupby( ["year", "month", "country"])

.apply( lambda g: pd.Series( ))

.reset_index()

.sort_values( by=["year", "month", "country"])

)

df.to_csv( "prepr_bquery_by_country.csv", index=False)

Визуализация скорости роста трафика(YoY %)к трафику

fig, ax1 = plt.subplots( figsize=( 16, 8))

sns.lineplot(

ax=ax1,

data=df,

x="date",

y="sessions",

label="Sessions",

color="blue"

)

ax1.set_xlabel( "Date")

ax1.set_ylabel( "Sessions", color="blue")

ax1.tick_params( axis='y', labelcolor="blue")

ax2 = ax1.twinx()

sns.lineplot(

ax=ax2,

data=df,

x="date",

y="sessions_yoy",

label="Sessions YoY(%)",

color="orange",

linewidth=5

)

ax2.fill_between(

df['date'],

0,

df['sessions_yoy'],

color="orange",

alpha=0.2

)

ax2.set_ylabel( "Session YoY %", color="orange")

ax2.tick_params( axis='y', labelcolor="orange")

lines_1, labels_1 = ax1.get_legend_handles_labels()

lines_2, labels_2 = ax2.get_legend_handles_labels()

ax1.legend(

lines_1 + lines_2,

labels_1 + labels_2,

loc="upper left"

)

plt.title( "Sessions and YoY(with Trend)growth over time")

plt.tight_layout()

plt.show()

[img=right]

Python как инструмент мышления

Ключевая ценность Python – в возможности структурировать мышление:

Power BI и DAX в SEO-аналитике

Если SQL и Python уже не закрывают все потребности аналитики, следующим логичным шагом становится использование BI-инструментов. Для этого мы часто применяем Power BI в связке с DAX(аналогично можно рассматривать Looker, Tableau и другие BI-системы).

Power BI как слой принятия решений

Power BI – это набор облачных и десктопных бизнес-инструментов от Microsoft для подключения к разным источникам данных, их преобразования, анализа и визуализации в виде интерактивных отчетов и дашбордов.

SEO Power BI превращает сложные и многомерные данные в интерпретируемую картину, понятную не только аналитику, но и бизнесу.

Типичные источники данных:

DAX – язык аналитической логики

DAX(Data Analysis Expressions) – функциональный язык формул, используемый в Power BI, Excel(Power Pivot)и Analysis Services. Он предназначен для создания:

Преимущества Power BI + DAX для SEO

Моделирование данных: роль календаря

Классический подход в BI – использование календарной таблицы(calendar)как центральной связующей сущности.

Все остальные таблицы(SEO-данные, трафик, план, фактические значения)связываются с ней по полю date. Это позволяет:

Такой подход особенно важен в SEO, где временная составляющая критична.

[img=right]

Типовые аналитические сценарии в SEO

Визуализация разрыва между планируемым и фактическим приростом трафика

[img=right]

Расчет процента и суммы потерь

[img=right]

Примеры DAX формул

Получение YoY% по сессиям

YoY % Sessions =

VAR current_period = [total_sessions]

VAR previous_period =

CALCULATE(

[total_sessions],

SAMEPERIODLASTYEAR( 'calendar'[date])

)

RETURN

DIVIDE( current_period - previous_period, previous_period, BLANK())

Получение MoM % по юзерам

MoM % Users =

VAR current_month = [total_users]

VAR previous_month =

CALCULATE(

[total_users],

PREVIOUSMONTH( 'calendar'[date])

)

RETURN

DIVIDE( current_month - previous_month, previous_month, BLANK())

Получение разницы между запланированным и фактическим трафиком

loss =

VAR current_ = [current_clicks]

VAR target_ = [target_clicks]

RETURN current_ - target_

Роль BI в SEO-стеке

Power BI и DAX – это не замена SQL или Python, а надстройка над ними:

Заключение

SEO-аналитика на крупных проектах – система мышления, в которой данные используются для принятия решений, а не создания отчетов.

По мере роста проекта меняется все:

В этих условиях классическое SEO, основанное на чек-листах и точечных правках, перестает работать. На его место приходит аналитический подход, где SEO-специалист выступает исследователем и интерпретатором данных.

Инструменты, рассмотренные в статье, отражают эту эволюцию:

Мы регулярно сталкиваемся с задачами, где SEO – это работа с большими массивами данных, сложной структурой сайта и постоянной проверкой гипотез. В таких условиях нельзя опираться на универсальные чек-листы: приходится строить аналитику, разбираться в причинах изменений и принимать решения на основе цифр.

Поэтому SEO для крупных проектов – отдельная дисциплина на стыке поисковых систем, аналитики данных и продуктового мышления.

Там, где заканчиваются шаблонные рекомендации, начинается настоящая SEO-аналитика.

Оригинал статьи на SEOnews

Статьи

Добавить комментарий

Нам важно знать ваше мнение. Оставьте свой отзыв или ответ

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

Комментариев 0

Последние статьи