Инструменты · key

textanalyseradvanced Анализ текста страницы и конкурентов: вхождения, LSI-слова, ТЗ

Считает общую статистику текста, популярные слова, облака релевантности, вхождения запросов, LSI-слова, оценку оптимизации URL и ТЗ на дооптимизацию — по вашей странице и по страницам (или текстам) конкурентов. Метод асинхронный: постановка возвращает report_id, по нему приходит сводка с оглавлением, а тяжёлые блоки отчёта забираются по одному параметром path. То же в интерфейсе — текстовый анализатор. Простой SEO-анализ одного текста (плотность, заспамленность, Ципф) — метод textanalyser.

Режим
асинхронный: report_id, отчёт по частям через path
Стоимость
1 лимит за страницу или текст + платные опции; списывается по завершении
Объём
до 10 страниц конкурентов или текстов, до 150 запросов
Тело
форма или JSON
Одновременно
1 задача, на премиум-тарифах — 5

Постановка задачи

POST /api/textanalyseradvanced

Параметры — в теле формы (массивы как multiple_urls[]=…) или JSON с заголовком Content-Type: application/json; для длинных текстов и списков запросов удобнее JSON. Ключ — в query.

Флаги-опции включаются значениями 1, true, yes, on; любое другое значение и отсутствие параметра — выключено. Списки (URL, запросы, стоп-слова) можно передать массивом или строкой — по элементу на строку.

Параметры query и JSON-тело

  • part string обязательный
    Что анализируем: страницы по адресам или тексты из запроса.
    by_url
    страницы по URL
    by_text
    тексты, переданные в запросе
  • analyse_type string обязательный
    Режим анализа.
    single
    одна страница
    compare
    ваша страница и конкуренты
    average
    средние значения по нескольким страницам
  • single_url string
    URL вашей страницы. Обязателен для by_url в режимах single и compare; в average не используется.
  • multiple_urls string|array
    URL конкурентов (compare) или страниц для усреднения (average), до 10. Строкой адреса приводятся к нижнему регистру — если в URL важен регистр, передавайте массивом.
  • single_text string
    Ваш текст. Обязателен для by_text во всех режимах; в average входит в усреднение вместе с multiple_texts.
  • multiple_texts array
    Для by_text: тексты конкурентов (compare) или дополнительные тексты для усреднения (average, обязательны), до 10.
  • parsing_type string
    Для by_url: как получить контент страниц. Без параметра и с любым другим значением — браузер без JS.
    withJs
    браузер с рендерингом JS
    withoutJs
    браузер без JS
    curl
    простой HTTP-запрос
    По умолчанию withoutJs
  • brief_summary bool
    Только сводка: общая статистика, популярные слова, облака релевантности. Без вхождений, LSI-слов, оценки оптимизации URL и ТЗ — быстрее, отчёт в разы меньше.
    По умолчанию false
  • check_occurrences bool
    Проверить вхождения запросов из check_occurrences_value; без запросов — ошибка.
    По умолчанию false
  • check_occurrences_value string|array
    Запросы для вхождений, до 150; в каждом не больше 7 значимых слов (без стоп-слов). Приводятся к нижнему регистру. Без них не считается оценка оптимизации URL.
  • split_occurrences bool
    Считать точные формы фраз отдельно от морфологических (заполняет direct_form).
    По умолчанию false
  • check_uniqueness bool
    Проверить уникальность текста каждой страницы. 50 лимитов за каждые начатые 1000 символов текста страницы.
    По умолчанию false
  • check_turgenev bool
    Оценить риск по «Тургеневу». 25 лимитов за страницу.
    По умолчанию false
  • collect_lsi_words bool
    Собрать слова из подсветки выдачи и популярные слова тематики. Работает только с check_occurrences и непустым check_occurrences_value, иначе молча игнорируется. 1 лимит за запрос. Собранные слова попадут в отчёт только с lsi_action.
    По умолчанию false
  • lsi_action string
    Что сделать с собранными словами. Без параметра собранные слова в LSI-слова не попадают, хотя сбор оплачен.
    append
    добавить к LSI-словам
    replace
    заменить ими LSI-слова
  • collect_lr int
    Регион сбора слов, код lr.
    По умолчанию 213
  • collect_ss int
    Поисковая система для сбора слов.
    1
    Яндекс, десктоп
    7
    Яндекс, мобильный
    2
    Google, десктоп
    8
    Google, мобильный
    По умолчанию 1
  • ai_structure bool
    Сгенерировать структуру страницы нейросетью — ключ recommendations.ai_structure. Только compare и average, в single игнорируется. 50 лимитов за задачу.
    По умолчанию false
  • type_ai_structure string
    Тип страницы для структуры.
    info
    информационная
    commercial
    коммерческая
    По умолчанию info
  • exclude_numbers bool
    Исключить числа из статистики и словарей.
    По умолчанию false
  • seo_text_only bool
    Учитывать только SEO-текст и ссылки внутри него.
    По умолчанию false
  • remove_no_index_content bool
    Не учитывать контент внутри <noindex>.
    По умолчанию false
  • remove_alts bool
    Не учитывать текст атрибутов alt.
    По умолчанию false
  • custom_stop_words bool
    Использовать свой список стоп-слов из stop_words вместо стандартного.
    По умолчанию false
  • stop_words string|array
    Свои стоп-слова; читаются только с custom_stop_words.
  • use_chars_amount bool
    Считать ТЗ на фиксированный объём текста из chars_amount (сценарий with_density_by_chars в recommendations).
    По умолчанию false
  • chars_amount int
    Объём текста для ТЗ в символах; читается только с use_chars_amount.

Ответ

  • report_id int
    ID задачи для получения результата.

Прогресс и сводка отчёта

GET /api/textanalyseradvanced

Опрашивайте раз в 20–30 секунд. Пока задача выполняется, приходит {"error": "In progress", "code": 50, "progress": 60, "time": "2026-08-03 12:00:00"} (progress и time — когда прогресс уже известен). Готовая задача отдаёт сводку и оглавление блоков; сами блоки — следующим запросом. Опросы и чтение готового отчёта лимиты не тратят.

Параметры query

  • report_id int обязательный
    ID задачи из ответа на постановку.

Ответ

  • report_id int
    ID задачи.
  • time string
    Время готовности, Unix timestamp.
  • cost int
    Стоимость задачи в лимитах. С check_uniqueness — оценка сверху (250 на страницу): фактически списывается по объёму текста.
  • request object
    Параметры запуска: флаги — on/off, тексты заменены длиной (single_text_length, competitor_text_lengths или multiple_text_lengths), стоп-слова — числом (stop_words_count).
  • errors string[]
    Нефатальные проблемы прогона текстом: например, URL, исключённые из анализа, и причина.
  • summary object
    Сводка.
    Вложенные поля
    • analyse_type string
      Режим анализа.
    • user_page object
      Ваша страница: url, title, description, h1, general_statistics, url_optimization_estimation — оценка оптимизации, % (null, если не считалась).
    • user_page.general_statistics object
      character_count, character_count_text, character_count_links — символов всего, в тексте и в ссылках; word_count, word_count_text, word_count_links — то же в словах; uniqueness — уникальность, %; spam_score — заспамленность; stop_words_percentage — доля стоп-слов, %; zipf_law_quality — качество по закону Ципфа; turgenev_risk — риск по «Тургеневу». Без соответствующих опций uniqueness и turgenev_risk — null.
    • competitors_benchmark object
      min, max, average по тем же метрикам среди конкурентов — с ними сравнивается ваша страница. От 4 конкурентов крайние значения отбрасываются.
    • competitors object
      Те же поля, что в user_page, по каждому конкуренту; ключ — URL (для текстов — text1, text2…).
  • blocks object
    Оглавление: по каждому посчитанному блоку — items (сколько элементов) и keys (первые 20 ключей, с них начинается path). С brief_summary есть только users, competitors, popular_words, clouds.

Блок отчёта

GET /api/textanalyseradvanced

К report_id добавляется path — путь до узла отчёта, шаги через точку. Что лежит в блоках — ниже. Ответ тоже содержит report_id, time и cost.

Параметры query

  • report_id int обязательный
    ID задачи из ответа на постановку.
  • path string|array обязательный
    Путь до узла, например popular_words.freq.body. Если ключ сам содержит точку (URL конкурента), передавайте путь массивом: path[]=competitors&path[]=https://rival.ru/page/. * — весь отчёт целиком (может весить десятки мегабайт). Без параметра метод отдаёт сводку.
  • limit int
    Сколько ключей узла вернуть. 0 — все.
    По умолчанию 0
  • offset int
    Смещение для постраничного чтения узла.
    По умолчанию 0
  • keys bool
    Вернуть только список ключей узла (поле keys вместо data). Включается любым непустым значением, кроме 0.
    По умолчанию false

Ответ

  • path string
    Пройденный путь; * — корень отчёта.
  • items int
    Размер всего узла, а не выданной страницы. Для скалярного узла — 1.
  • offset, limit int
    Эхо параметров — только если передан ненулевой limit или offset.
  • data mixed
    Содержимое узла (или его страница).
  • keys string[]
    С keys=1 — ключи узла (или его страницы) вместо data.
  • report_id, time, cost mixed
    Как в сводке.

Ошибки

КодСообщениеКогда
-100 tools errors Постановка: ошибки параметров (неверный part/analyse_type, нет URL или текста, больше 10 страниц, больше 150 запросов, запрос длиннее 7 значимых слов) или не хватает лимитов на задачу — списком в details. С errorType: TASK_START_FAIL и строкой в details — задачу не удалось поставить в очередь, повторите.
-60 tools errors Превышено число одновременных задач (1, на премиум-тарифах 5): errorType: MAX_PARALLEL_TASKS_FAIL, текст — строкой в details.
-51 No requests data Без report_id задача ставится только методом POST.
-52 Unknown path Неверный path: в ответе path — последний существующий узел, available — его ключи (до 50).
50 In progress Задача ещё выполняется — не ошибка; progress — процент готовности.
-4 Access denied report_id чужой или от другого инструмента.
-104…-107, -125 Processing error / Limits run out / … Задача завершилась ошибкой, отменена или шла дольше 6 часов — см. асинхронные задачи.
-68, -80…-83 Not enough … limits Лимиты за период исчерпаны — проверяется до любого запроса к методу; в ответе available и need.
-1, -2 Access denied Ключ не передан (HTTP 404) или не найден (HTTP 403).

Что лежит в блоках

БлокСодержимое
users, competitorsСтатистика и мета-данные страниц: general_statistics и additional (url, title, description, h1, hTags). У конкурентов — по URL. В users.general_statistics также лежат min/max/average — те же, что в competitors_benchmark.
popular_words20 самых популярных слов: freq — частота, dens — плотность; внутри зоны body, text, links, в каждой users и competitors, а в freq режима compare ещё entry — сколько вхождений нужно на ваш объём текста.
cloudsОблака релевантности: usersPage и competitorsPage по зонам body, text, links — слова с количеством и процентом.
text_and_linksТаблица «Текст и ссылки»: occurrences — вхождения запросов, all_words — все слова, lsi_words — LSI-слова, stop_words — стоп-слова. В каждой — dictionary (словарь) и result (расчёт по вашей странице и конкурентам); occurrences.result делится на morphological_form, direct_form (заполнен только с split_occurrences) и queries_words. Самый тяжёлый блок — читайте с limit и offset.
headings_and_metatagsТо же по зонам title, description, h1: occurrences и all_words.
url_optimization_estimationОценка оптимизации, % — по URL (для текстов — по ключам текстов). Считается только в compare и average и только с запросами в check_occurrences_value; иначе пустой массив.
recommendationsТЗ на текст — только в compare и average. Путь: text_and_links или headings_and_metatags → additional_optimization (дооптимизация страницы) или new_page (новая страница) → without_density, with_density или with_density_by_chars (на объём chars_amount) → зона → occurrences, all_words, lsi_words: список {type, word, action, amount, form_description} — что увеличить или уменьшить и на сколько. С ai_structure — ещё ключ ai_structure.

Постраничное чтение

items — размер всего узла. Чтобы обойти узел, увеличивайте offset на limit, пока не дойдёте до items; состав большого блока удобно сначала посмотреть через keys=1. Пример: path=text_and_links.occurrences.result.morphological_form&limit=50&offset=0 — первые 50 фраз.

Стоимость

ЧтоЛимиты
Базовый анализ1 за каждый URL или текст (в compare считается и ваша страница)
check_uniqueness50 за каждые начатые 1000 символов текста страницы
check_turgenev25 за страницу
collect_lsi_words1 за каждый запрос из check_occurrences_value
ai_structure50 за задачу

Списание — один раз, по завершении задачи. Перед запуском проверяется, что лимитов хватает на расчётную стоимость; с check_uniqueness резервируется по 250 на страницу, фактически списывается по объёму текста. Сравнение страницы с 5 конкурентами без платных опций — 6 лимитов.

check_uniqueness — самая дорогая опция: страница на 10 000 символов — около 500 лимитов.

Ограничения

  • До 10 URL или текстов конкурентов (в compare плюс ваша страница; в average по текстам — плюс single_text), до 150 запросов, в запросе до 7 значимых слов.
  • Анализ страницы с конкурентами занимает минуты. Готовый отчёт можно читать сколько угодно раз бесплатно — перезапускать задачу ради другого блока не нужно.
  • Не запрашивайте path=* на больших задачах — идите по оглавлению blocks.
  • URL, с которых не удалось получить контент, исключаются из анализа с причиной в errors; при блокировке на стороне сайта помогает добавить IP Пиксель Тулс в исключения. Если недоступна ваша страница или все конкуренты, отчёт приходит пустым (только errors) и лимиты не списываются.
Обратная связь и помощь
Если у вас есть идеи, как улучшить данный инструмент или остались вопросы по работе с ним, напишите в нашу службу поддержки, мы обязательно вам поможем.