Практика · SEO · Инструменты
Можно ли оценивать поисковый спрос через Writesonic: проверка на живых данных

Языковая модель не измеряет поисковый спрос, если ей не передали актуальную статистику. Оценки частотности от Writesonic выглядят правдоподобно, но без проверки на живых данных контент-план рискует опереться на вымышленные цифры. Разбираем пошаговый протокол сопоставления с реальной статистикой, таблицу расхождений и безопасный процесс отбора ключевых слов.
Зачем это проверять
Попросите ассистента на базе LLM разметить список ключевых слов по частотности. Ответ придёт быстро и выглядеть будет убедительно: «высокая», «средняя», «низкая», а иногда и точные числа вроде «≈ 2 400 запросов в месяц». Проблема в том, что языковая модель не видит актуальную поисковую статистику, если ей не передали эти данные. Модель воспроизводит правдоподобный шаблон и не измеряет спрос.
Writesonic и похожие AI-сервисы удобны для черновиков, кластеризации и генерации идей. Но вопрос «можно ли оценивать поисковый спрос через Writesonic» сводится к проверяемому утверждению: совпадают ли его оценки с данными инструмента, у которого есть реальная статистика. Ниже описан воспроизводимый способ это проверить на собственных данных и при любом результате не пустить вымышленные цифры в контент-план.
Важно: в статье нет результатов нашего собственного замера. Таблица ниже — шаблон, который вы заполните своими данными. Числа в примерах условные и подписаны как примеры.
Что понадобится
- Список из 30–100 ключевых слов одной тематики. На меньшем объёме расхождения будут выглядеть случайными.
- Доступ к Writesonic (или к другому LLM-ассистенту, которого вы хотите проверить).
- Инструмент с актуальной статистикой спроса для вашего рынка, например Яндекс Вордстат для Рунета или планировщик ключевых слов Google Ads. Выберите один источник и не смешивайте их в одном замере.
- Python 3 без сторонних библиотек: скрипт ниже использует только стандартный модуль
csv, работает с локальными файлами и ничего не отправляет в сеть.
Шаг 1. Зафиксируйте список и условия замера
Сохраните ключевые слова в файл keywords.txt, по одному на строку. Сразу запишите условия: регион, язык, период статистики и дату выгрузки. Без этих условий сравнение с прогнозом теряет смысл, потому что у одного и того же запроса частотность в разных регионах и сезонах может отличаться в разы.
# Безопасно: только создаёт рабочую папку и считает строки
mkdir -p ws-check
cp keywords.txt ws-check/
wc -l ws-check/keywords.txt
Шаг 2. Получите оценки Writesonic в фиксированном формате
Чтобы ответы можно было сравнить, задайте жёсткий формат и шкалу. Пример промпта:
Для каждого ключевого слова из списка укажи уровень поискового спроса
в регионе «Россия» за последние 12 месяцев: high, medium или low.
Ответ строго в CSV с заголовком keyword,ws_level без пояснений.
Если не знаешь — пиши unknown.
[вставьте список]
Сохраните ответ в ws-check/writesonic.csv. Обратите внимание, как часто модель выбирает unknown. Если ни разу, хотя в списке есть редкие и узкоспециальные запросы, это уже первый сигнал: модель отвечает уверенно там, где данных у неё быть не может.
Повторите запрос в новом диалоге и сохраните второй ответ как writesonic_run2.csv. Расхождение между двумя прогонами показывает, насколько оценка стабильна, даже без внешних данных.
Шаг 3. Выгрузите реальную статистику
Соберите в выбранном инструменте частотность по тем же фразам, в том же регионе и за тот же период. Сохраните файл ws-check/stats.csv с заголовком keyword,volume. Ключевые слова должны совпадать с исходным списком символ в символ: регистр, буква «ё», порядок слов. Иначе скрипт не сопоставит строки.
Шаг 4. Переведите числа в ту же шкалу
Writesonic отвечает уровнями, а инструмент даёт числа. Пороги нужно выбрать до сравнения и записать, чтобы потом не подгонять их под результат. Например, для узкой B2B-ниши можно взять «high» от 1 000, «medium» от 100 до 999, «low» ниже 100. Это пример, а не норматив: подберите пороги под свою тематику.
Шаг 5. Постройте таблицу расхождений
Скрипт читает оба файла, приводит статистику к уровням и пишет результат в discrepancies.csv. Исходные файлы он не изменяет.
# ws-check/compare.py
import csv
HIGH, MEDIUM = 1000, 100 # пороги зафиксированы заранее, см. шаг 4
ORDER = {"low": 0, "medium": 1, "high": 2}
def level(volume):
v = int(volume)
return "high" if v >= HIGH else "medium" if v >= MEDIUM else "low"
def norm(s):
return s.strip().lower()
with open("writesonic.csv", encoding="utf-8") as f:
ws = {norm(r["keyword"]): norm(r["ws_level"]) for r in csv.DictReader(f)}
with open("stats.csv", encoding="utf-8") as f:
st = {norm(r["keyword"]): r["volume"].strip() for r in csv.DictReader(f)}
rows, match, total = [], 0, 0
for kw, volume in st.items():
real = level(volume)
pred = ws.get(kw, "missing")
if pred in ORDER:
total += 1
gap = ORDER[pred] - ORDER[real]
match += gap == 0
else:
gap = ""
rows.append([kw, volume, real, pred, gap])
with open("discrepancies.csv", "w", encoding="utf-8", newline="") as f:
w = csv.writer(f)
w.writerow(["keyword", "volume", "real_level", "ws_level", "gap"])
w.writerows(rows)
print(f"сопоставлено: {total}, совпадений уровня: {match}")
print(f"доля совпадений: {match / total:.0%}" if total else "нет сопоставимых строк")
cd ws-check
python3 compare.py
head -n 20 discrepancies.csv
Колонка gap показывает направление ошибки: положительное значение означает, что Writesonic завысил спрос, отрицательное — что занизил. Значения missing и unknown не участвуют в подсчёте доли совпадений, но их количество стоит записать отдельно.
Как выглядит таблица расхождений
Шаблон для отчёта. Значения в строках ниже — условный пример формата, а не результат измерения:
| Ключевое слово | Частотность (инструмент) | Уровень по порогам | Оценка Writesonic | Разрыв | Решение |
|---|---|---|---|---|---|
| пример запроса А | 40 | low | high | +2 | исключить из приоритета |
| пример запроса Б | 1 500 | high | medium | −1 | поднять в плане |
| пример запроса В | 320 | medium | medium | 0 | оставить |
Под таблицей зафиксируйте: размер выборки, долю совпадений, число завышений и занижений на два уровня, число unknown, расхождение между двумя прогонами, регион, период и дату выгрузки.
Проверка результата
- Сопоставление полное. Число строк в
discrepancies.csvравно числу ключевых слов вstats.csv, а строк сmissingнет или их происхождение понятно. - Пороги не менялись после запуска. Если вы их поправили, перезапустите скрипт и запишите обе версии.
- Есть базовая линия. Сравните долю совпадений со случайным угадыванием: при трёх уровнях это около трети, если уровни распределены равномерно. Точнее — доля самого частого реального уровня в вашей выборке. Если Writesonic не превосходит наивную стратегию «всегда отвечать самым частым уровнем», его оценки не добавляют информации.
- Стабильность. Если два прогона на одном списке расходятся заметно, оценка не воспроизводится, и полагаться на неё нельзя, даже если в одном из прогонов она случайно совпала с реальностью.
Безопасный процесс предварительного отбора
Какой бы результат вы ни получили, разделите работу так, чтобы LLM занималась своей частью задачи, а цифры приходили из измерений:
- Генерация. Writesonic расширяет семантику: синонимы, формулировки, вопросы пользователей, группировка по интенту. Оценок спроса на этом шаге не просим.
- Фильтр здравого смысла. Человек убирает нерелевантное и дубли.
- Измерение. Весь оставшийся список проверяется в инструменте со статистикой. Только эти числа попадают в таблицу контент-плана.
- Приоритизация. Решение принимается по измеренному спросу, интенту и вашей способности закрыть тему. LLM может помочь сформулировать обоснование, но не поставляет исходные данные.
- Маркировка источника. В плане у каждой цифры есть колонка «источник и дата». Значение без источника считается гипотезой, а не данными.
Типовые ошибки
- Сравнение разных регионов или периодов. Прогноз «по России за год» сопоставляют со статистикой по Москве за месяц.
- Подгонка порогов. Пороги сдвигают после просмотра результата, пока совпадений не станет «достаточно».
- Один прогон. Ответ модели вероятностный, поэтому один удачный прогон ничего не доказывает.
- Малая выборка. На 10 запросах любое совпадение может оказаться случайным.
- Числа вместо уровней. Если модель дала «≈ 2 400», не принимайте это за измерение. Это такая же оценка, только точнее оформленная.
- Несопоставленные строки. Разный регистр, «е/ё» и лишние пробелы молча выбрасывают строки из сравнения. Скрипт нормализует регистр и пробелы, а «ё» нужно проверить вручную.
Ограничения метода
- Проверка показывает поведение конкретной версии сервиса, на конкретной тематике и в конкретную дату. Если любое из этих условий изменится, замер нужно повторить.
- Если в вашем тарифе Writesonic есть функции, подключающие внешние SEO-данные, проверяйте их отдельно: это уже не «знание модели», а другой источник, и у него своя точность.
- Инструменты статистики тоже не идеальны: у них своя методика подсчёта и округления. Метод измеряет согласие с выбранным эталоном, а не «абсолютную истину».
- Перевод в три уровня огрубляет данные. Запрос с частотностью 990 и запрос с 110 попадут в один уровень.
Итог
На вопрос «можно ли оценивать поисковый спрос через Writesonic» лучше всего отвечает ваша собственная таблица расхождений: она займёт час и избавит контент-план от вымышленных цифр. Пока замер не показал устойчивого преимущества над наивной базовой линией, используйте Writesonic для генерации и группировки запросов, а цифры спроса берите только из инструмента со статистикой.
Больше пошаговых разборов — в разделе руководств, определения терминов — в глоссарии.