Базовая частота в кей коллекторе. Составление семантического ядра с помощью сервиса Rush Analytics. Сбор ключевых фраз конкурентов и базы

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

В этой публикации я постарался изложить весь процесс начального сбора ключевых фраз — сервисы, программы, принципы поиска и работы с полученными данными. А так же, описан способ составления базового списка минус слов (на основе собранного семантического ядра), который исключит 95% всех не целевых показов!

Основы сборщика мусора и рекомендации по производительности

Эта документация архивируется и не поддерживается. В этой статье объясняется, как работают сборщики мусора, а затем обсуждается некоторые проблемы с производительностью, которые могут возникать в среде сбора мусора. Чтобы понять, как эффективно использовать сборщик мусора и какие проблемы с производительностью вы можете столкнуться при работе в среде сбора мусора, важно понять, как работают сборщики мусора и как работают эти внутренние работы программы.

В пояснительных целях рассмотрим следующую упрощенную модель управляемой кучи. Обратите внимание, что это не то, что фактически реализовано. Упрощенная модель управляемой кучи. Правила этой упрощенной модели заключаются в следующем. Все объекты, собираемые для мусора, выделяются из одного смежного диапазона адресного пространства. Куча делится на поколения, так что можно удалить большую часть мусора, глядя на небольшую часть кучи. Вышеочищенные поколения указывают области кучи со старыми объектами - эти объекты гораздо более стабильны. Самые старые объекты находятся на самых низких адресах, а новые объекты создаются по возрастающим адресам. Указатель выделения для новых объектов отмечает границу между используемыми и неиспользуемыми областями памяти. Периодически куча уплотняется путем удаления мертвых объектов и сдвигания живых объектов в сторону нижнего адреса кучи. Это расширяет неиспользуемую область в нижней части диаграммы, в которой создаются новые объекты. Порядок объектов в памяти остается тем порядком, в котором они были созданы, для хорошей локальности. В куче нет никаких промежутков между объектами. Только часть свободного места совершена. При необходимости из операционной системы в зарезервированном диапазоне адресов получают больше памяти. Объекты в поколении примерно одинакового возраста. . Эти корни бывают разных форм, но в первую очередь это стек и глобальные переменные, которые указывают на кучу.

Способ сбора универсальный и подойдёт не только для рекламной кампании в Яндекс Директ, но и для формирования полноценной семантики для поискового продвижения (SEO). Одно лишь отличие — собирая семантическое ядро для контекстной рекламы, обычно не уходят так глубоко в НЧ фразы. А методы фильтрации и составления списка минус слов — одинаковый.

Сбор поисковых подсказок

Начиная с корней, мы посещаем каждый объект и следуем каждому указателю объекта, содержащемуся в каждом посещенном объекте, обозначающем объекты по мере продвижения. Таким образом, коллекционер найдет каждый доступный или живой объект. Остальные объекты, недостижимые, теперь осуждаются.

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

1-ый шаг. Сбор маркерных слов для парсинга в Яндекс WordStat

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

Для поиска маркерных слов используем:

  • Сам сайт, его разделы с товарами или услугами;
  • Сайты конкурентов. Анализируем внешне по разделам и услугам, так и с помощью сервисов — megaindex, key.so и тому подобных;
  • Сервисы синонимов;
  • Правая и левая колонка в Яндекс WordStat, блок «с этой фразой ищут» под поисковой выдачей.

Маркерные слова/словосочетания — это только направления для дальнейшего изучения, «копания» вглубь, так сказать . Если в список уже добавили фразу — «выбор лыж», то не надо добавлять вложенную «выбор горных лыж». Все вложенные фразы будут найдены после парсинга в Key Collector.

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

Теперь, когда нам повезет. Предположим, что за все время, которое мы выполняли с момента последней коллекции, мы не записывали ни на один из старых объектов, но только новые выделенные объекты с нулевым значением были записаны. Если бы это произошло, мы были бы в отличной ситуации, потому что мы могли бы значительно упростить процесс сбора мусора.

Главная задача — собрать максимум маркерных слов (направлений), проверить синонимы, сленговые слова и сформировать общий список, по которому будем «копать» дальше.

Формировать удобно в визуальном виде, к примеру в и выглядит вот так:

На скриншоте открыта только одна ветка, чтобы изображение было вменяемого размера.

Вместо обычного обычного сбора мы можем просто предположить, что все старые объекты все еще живы, или, по крайней мере, достаточно, чтобы они были живы, что не стоит смотреть на эти объекты. Более того, поскольку ни одна из них не была написана, нет указатели от старых объектов к более новым объектам. Так что мы можем сделать, это посмотреть на все корни, как обычно, и если любые корни указывают на старые объекты, просто игнорируйте их. Для других корней мы продолжаем, как обычно, следуя всем указателям.

Всякий раз, когда мы находим внутренний указатель, который возвращается в старые объекты, мы игнорируем его. Когда этот процесс будет выполнен, мы посетим каждый живой объект в гене 0 без посещения каких-либо объектов из более старых поколений. Теперь это действительно отличная ситуация для нас, потому что мы знаем, что большая часть мертвого пространства, вероятно, будет в более молодых объектах, где есть много оттока. Многие классы создают временные объекты для возвращаемых значений, временных строк и других классов полезности, таких как перечисления и многое другое.

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

Важно : Для быстрой обработки и сохранения ключевых слов в Wordstat, попробуйте бесплатное расширение для браузеров — Yandex Wordstat Assistant . С помощью него можно быстро переносить необходимые ключевые фразы в семантическое ядро.

Глядя на просто ген 0, мы получаем простой способ вернуть большую часть мертвого пространства, просмотрев лишь очень мало объектов. К сожалению, нам никогда не посчастливилось использовать этот подход, потому что по крайней мере некоторые старые объекты должны меняться так, чтобы они указывали на новые объекты. Если это произойдет, недостаточно просто их игнорировать.

Создание поколений с барьерами записи

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


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

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

Таблица карт может быть реализована различными способами, но самый простой способ думать об этом - это набор бит. Каждый бит в таблице карт представляет собой диапазон памяти на куче, пусть говорят 128 байтов. Каждый раз, когда программа записывает объект на какой-то адрес, код барьера записи должен вычислять, какой 128-байтовый фрагмент был записан, а затем установить соответствующий бит в таблице карт.

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

Интент — это то, ради чего пользователь вводит запрос в поисковую систему. Можно сказать его «боль». Набор из ключевых фраз может объединяться по одному интенту, то есть быть вызванным одним мотивом, хотя при этом написание и набор слов могут различаться.

Надо ли платные сервисы и программы для сбора семантического ядра?

Я использую программу Кей коллектор и все ниже описанные действия провожу в нём. Если её нет, то собрать полное ядро вряд ли получится. Вы сможете, конечно, вручную «походить» по Wordstat, расширение Wordstat Assistant в этом сильно поможет, взять ещё фразы из бесплатных баз, вроде Букварикса. Но это всё будет малая часть того, что действительно можно собрать.

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

Это действительно самая простая вещь, которая может пойти не так. Выделение новой памяти сборщиком мусора действительно довольно быстро. Как вы можете видеть на рисунке 2 выше, все, что должно произойти, обычно заключается в том, что указатель выделения перемещается для создания пространства для вашего нового объекта на «выделенной» стороне - он не намного быстрее, чем это. или позже сбор мусора должен произойти, и, при прочих равных условиях, лучше, чтобы это произошло позже, чем раньше. Таким образом, вы хотите убедиться, что когда вы создаете новые объекты, которые действительно необходимы и подходят для этого, даже при том, что создание только одного происходит быстро.

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

Если у вас один сайт, то выгоднее будет заказать услугу сбора семантического ядра на аутсорсе. Заплатите 3-5 тысяч рублей, но получите полное ядро с максимум ключевых фраз, без необходимости покупать софт, оплачивать сервисы и так далее.

Сбор ключевых фраз конкурентов и базы

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

Для Яндекс Директ ключевые фразы в Key Collector собираю редко, только когда большие рекламные кампании, много направлений... Для маленьких и средних ниш достаточно Wordstat и проработка синонимов.

Чаще всего директологи плохо разбираются в объекте рекламы, и если вы рекламируете ваш товар/услугу, то вы априори подберете правильные ключевые фразы и лучшие объявления, которые затронут необходимые струны вашей целевой аудитории. Вам только надо разобраться в некоторых тонкостях и последовательностях работы. Что я и постараюсь подробно описать в этом цикле статей.

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

Лучше написать функцию сравнения, которая вообще не требует выделения. Это переводит на практику выделения в куски, часто спекулятивно выделяя объекты, которые могут нам понадобиться, чтобы мы могли делать меньше общих распределений. Предварительно выделенные объекты затем управляются вручную из какого-то пула, эффективно создавая своего рода высокоскоростной пользовательский распределитель.

2-ой шаг. Сбор ключевых фраз в Яндекс WordStat

Собранные маркерные слова пропускаем через левую колонку Wordstat в Key Collector.

Для экономии времени большие направления можно разбивать вот так ёлочкой:


Больше семи слова WordStat не показывает, поэтому в подобных запросах только семи словный шаблон.

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

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

Вордстат даёт возможность просмотреть только 2000 вложенных фраз. Это 40 страниц. Если пролистаете к 40-ой странице по фразе «лыжи», то увидите, что список заканчивается на выражении с частотностью 62 показа. Для полного семантического ядра этого будет мало, так как дальше ещё может быть несколько сотен низкочастотных фраз, которые могут приносить дополнительный трафик.

Надо ли платные сервисы и программы для сбора семантического ядра?

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

Коротко о сервисе

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

Метод «елочкой» позволит сократить время и не проводить повторную итерацию парсинга полученных ключевых фраз после первого сбора. Key Collector возьмёт все фразы с Wordstat по данному маркерному слову, вплоть до частотности в 1, не ограничиваясь стандартными двумя тысячами.

Сбор ключевых фраз конкурентов и базы

Используем сервис megaindex, key.so или serpstat.com. Желательно проработать 5-10 прямых конкурентов. Из бесплатных баз, могу посоветовать .

Наблюдение: если первоначально хорошо проработаны маркерные слова, синонимы, сленговые выражения, то Wordstat даёт 70-80% поисковых запросов, а оставшиеся добираются от конкурентов и букварикса.

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

Обратите внимание, чтобы при добавлении стояла галочка «Не добавлять фразу, если она есть в любой другой группе»:


Этим ограничением недопустим добавление дублирующих фраз в общее семантическое ядро.

Букварикс — отдельная история. Очень много неявных дублей, запросы различаются только перестановкой слов. Находит много фраз, но 70-80% из них не подойдут нам. Добавляю в отдельную группу, но не вычищаю и не работаю с ней, а только ищу интересующие меня фразы поиском, чтобы посмотреть, можно ли чем дополнить основную семантику с него или нет.

Сбор поисковых подсказок

Как только собрали все фразы в WordStat и конкурентов, следует объединить их в мульти-группы , отсортировать по базовой частотности (обычно от 100, либо от 50 если ниша небольшая) и выбрать целевые фразы для сбора поисковых подсказок по ним:

GIF

Вторая итерация сбора фраз для семантического ядра

На данном этапе собрано почти всё :). Для полноценного ядра требуется заглянуть ещё глубже и посмотреть вложенные фразы для найденных фраз в ходе вышеописанных действий.

Для фраз, собранных методом «ёлочки» не надо проводить повторную итерацию сбора, а вот для запросов найденных у конкурентов, выбранных в буквариксе и поисковых подсказок — стоит.

Для повторной итерации я сортирую собранные фразы по базовой частотности и выбираю целевые (так как мы ещё не чистили стоп словами, не стоит выделять всё подряд) до значения частотности в 100 единиц. Заново запускаю по ним пакетный сбор из левой колонки Yandex WordStat .

Важно: не мешайте все повторные сборы вместе, создавайте отдельные группы для конкурентов, букварикса, основному ядра собранному по маркерным словам, парсинг по второй итерации и так далее. Чем подробнее вы раздробите в моменте сбора семантики, тем проще её будет чистить от нецелевых фраз. Объединить всегда успеете!

3-ий шаг. Удаляем нецелевые фразы

На данном этапе надо удалить явно не целевые запросы. Проделать это можно с помощью универсальных стоп-слов. Я собираю их в этом файле на Google Docs ..

Делим все слова на: целевые / нецелевые / сомневаюсь

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

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

Я сторонник параноидального способа 🙂 , который занимает много времени, но способен исключить 95% всех не целевых ключевых фраз.

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

У вас будет чистейший трафик, так как мы все уникальные слова в семантике проверили в ручном режиме и определили их принадлежность.

Алгоритм действий:

1. Выгружаем весь список ключевых фраз в notepad.

2. Превращаем фразы в список слов. Их будет много, если брать мой пример с семантикой под лыжи, то около 60 тысяч.

Пример автоматической замены пробела на «перенос строки» в notepad:

GIF

Этот шаг некоторые делают в Word, еще какими-то программными средствами. Я для себя выбрал блокнот notepad . Главный плюс — минимум действий для получения желаемого результата.

3. Копируем все слова в Excel и удаляем дубли:


После удаления дублей, остаётся около 15-20% слов от общего количества.

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

Все сомневающиеся слова проверяю на конкретных поисковых фразах в семантическом ядре (быстрый поиск кей коллектора).

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

Резюмирую статью

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

Сейчас вот задумался. Наверно зря я объединил описание процесса сбора семантики для SEO и Директа. По большому счёту, второй шаг c углублённым сбором абсолютно всех фраз, для контекста не нужен. Нам нужные только ВЧ и СЧ фразы (частотность от 100 и выше, но зависит от тематики) и самые целевые НЧ.

В любом случае, пункты под номером 1 и 3 абсолютно одинаковы для обоих видов работ.

В следующих публикациях мы начнём группировать и сегментировать ключевые фразы, а так же вычищать семантику от не целевых фраз, неявных дублей и всего того мусора, которого примерно 70-80% от собранного на данном этапе.

Подписывайтесь на обновления блога в

Те, кто хоть раз занимался составлением семантического ядра сайта, знают, что этот процесс является довольно затратным по времени. И если процесс сбора ключевых слов и их частотностей можно просто запустить в Key Collector, занимаясь своими делами, то группировку (кластеризацию) полученных запросов придется делать вручную.

Служба поддержки

Общение со службой поддержки организовано через сторонний сервис userecho.com . Хоть он и интегрирован в сайт Rush Analytics, но для общения с поддержкой придется завести аккаунт еще в одном сервисе. К тому же, очень непривычно, что залогинившись в админку одного сервиса (Rush Analytics), мне надо еще логиниться ко второму (userecho).

Тем не менее, в остальном работа через сторонний сервис проблем не вызывает. Сама служба поддержки отвечает достаточно оперативно и по делу. Мне приходили ответы даже поздно вечером.

Итог

Сервис Rush Analytics открылся недавно и пока содержит не очень много возможностей. Самой полезной функцией является кластеризация, но этот функционал является и самым дорогим.

  • сторонний сервис для обратной связи
  • высокая цена кластеризации
  • мелкие недоработки
  • ограниченный функционал
  • простота
  • высокая скорость работы

В целом сервис мне понравился и я буду с нетерпением ждать появления нового функционала. Очень понравилось, что по каждой возможности есть подробная справка и видео-обзор.

Недавно анонсированы новые возможности, которые в данный момент находятся в тестировании:

  • Пакетная проверка индексации страниц
  • Модуль анализа конкурентов
  • Мощный парсер позиций с фееричным функционалом

Мне бы хотелось еще как минимум иметь возможность собирать данные для расчета KEY (конкуренция в ПС, вхождение слов в тайтлы топ 10 и т.п.). Без этого я не могу отказаться от Key Collector.