Как сделать семантическое ядро. Давай напишем ядро! Создаем простейшее рабочее ядро операционной системы

Как сделать семантическое ядро. Давай напишем ядро! Создаем простейшее рабочее ядро операционной системы

Приветствую вас дорогие мои читатели!

Я уверен, что многие из вас не то что бы ни слышали, а даже и не догадываются, что есть такое понятие как семантическое ядро! И что же это такое спросите вы? – постараюсь объяснить вам простыми словами. Семантическое ядро – это набор ключевых слов, словосочетаний, простых предложений, фраз и т.д., которые выдает поисковая система (далее – ПС) при введении вами запроса в строке браузера.

Для чего нужно семантическое ядро? Семантическое ядро сайта — это основа продвижения и раскрутки, оно необходимо для внутренней оптимизации. Без семантического ядра продвижение вашего проекта (сайта) будет не эффективным. Чем грамотнее составлено семантическое ядро сайта, тем меньше денег вам потребуется для его успешного продвижения. Ничего пока не понятно, так ведь? Не пугайтесь, дальше я постараюсь, как можно подробно разложить все по полочкам. Читайте внимательно и все поймете!

Как составить семантическое ядро!

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

А чтобы составить достаточно солидный список (200-300 слов) у вас на это уйдет немало времени. Поэтому для удобства мы воспользуемся специальными сервисами, такими как Yandex wordstat, Google adwords, Rambler adstat они нам значительно упростят задачу при . Конечно, можно было бы обойтись только Yandex и Google, т.к. это гиганты в поиске ключевых запросов по сравнению с Rambler, но статистика говорит о том, что 5-6% людей все же используют в качестве поисковой системы Rambler, поэтому не будем ей пренебрегать.

Что бы вам было намного легче освоить материал, буду показывать все на конкретных примерах. Согласитесь, теория это хорошо, но когда дело доходит до практики у многих начинаются проблемы. Поэтому мы с вами вместе составим семантическое ядро, что бы в дальнейшем вы с легкостью смогли перенести полученные знания и опыт на тематику вашего блога. Допустим, тема вашего блога «фотошоп» и все, что с ним связано. Поэтому как было написано выше, вы должны придумать и записать в тетрадку как можно больше слов, словосочетаний, фраз, выражений – можете, как угодно их называть. Вот те слова, которые у меня характеризуются с тематикой блога о фотошоп. Конечно же, я не буду перечислять весь список слов, а только часть, что бы вам был понятен сам смысл составления семантического ядра:

кисти для фотошоп
кисти для photoshop
кисти фотошоп
кисти photoshop
эффекты фотошоп
эффекты photoshop
фотоэффект
рисунки фотошоп
рисунки photoshop
коллаж
фотоколлаж
фотомонтаж
рамки для фото
фото дизайн

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

Статистика ключевых слов Yandex wordstat

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

Дальше вы видите, что в Yandex wordstat имеются два столбца. Столбец слева показывает вам, что искали люди вбивая, в поисковую строку, в нашем случае фразу «кисти для фотошоп». Правый столбец показывает, что еще искали люди, искавшие фразу «кисти для фотошоп», советую вам не игнорировать правый столбец, а выбрать из него все слова, подходящие для вашей тематики.

Хорошо, с этим тоже разобрались, идем дальше. Еще один очень важный момент, как вы видите по результату поиска «кисти для фотошоп» мы наблюдаем огромную цифру 61134 запроса! Но это не значит, что фразу «кисти для фотошоп» вбивали столько раз за месяц в поисковую строку Яндекс. Yandex wordstat устроен таким образом, что если допустим вбить словосочетание «кисти для фотошоп» он вам выдаст число запросов, которое будет означать, сколько раз люди искали любые словоформы (кисти фотошоп, кисти для фотошопа , кисть фотошопа и.т.д.), словосочетания (предложения) (бесплатные кисти для фотошоп, скачать кисти фотошоп бесплатно и т.д.), в которых присутствует фраза «кисти для фотошоп». Я думаю это тоже понятно.

Для того что бы Yandex wordstat выдавал нам (относительно) точное число запросов, существуют специальные операторы, такие как («», «!»). Если вы вводите словосочетание «кисти для фотошоп» в кавычках, вы увидите совсем другую цифру, которая вам показывает сколько раз люди искали словосочетание «кисти для фотошоп» в разных словоформах (кисти для фотошопа и т.д.).

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

Так вот после того как у вас сформировался внушительный список в excel, вам необходимо применить к каждому слову (словосочетанию) оператор «!». Когда вы все сделаете, у вас появится список с точным числом запросов/в месяц, который нужно будет снова подкорректировать.

Но об этом чуть позже, после того, как мы рассмотрим две другие системы по подбору ключевых слов (Google adwords и Rambler adstat). Так как после их рассмотрения ваш список ключевых слов существенно пополнится.

Подбор ключевых слов Google adwords

Для подбора ключевых слов так же используют Google adwords, это аналогичный сервис с Yandex wordstat. Давайте так же перейдем вот . Перед нами откроется окно подбора ключевых слов Google adwords. Точно также вбиваем в поисковой строке первую фразу из нашего списка «кисти для фотошоп». Обратите внимание, что в Google adwords нет никаких операторов, а достаточно поставить галочку напротив слова [Точное] в столбце «Типы соответствия». Как мы видим, количество запросов/в месяц в Google adwords существенно отличается от Yandex wordstat. Это говорит о том, что все же больше людей используют поисковую систему Yandex. Но если просмотреть весь список, то можно найти те ключевые слова, которые Yandex wordstat вообще не показывает.

Также в Google adwords можно узнать еще много чего интересного (например, приблизительная цена за клик), что также следует учитывать при отборе ключевых слов. Чем больше цена за клик – тем более высоко конкурентный запрос. Подробно останавливаться здесь я не буду, принцип отбора ключевых слов схожий с Yandex wordstat и немного покопавшись, вы и сами сможете со всем разобраться. Идем дальше.

Статистика по поисковым запросам Rambler adstat

Как я уже упоминал выше, что Rambler adstat намного уступает двум предыдущим сервисам, но все же из него тоже можно, почерпнуть кое-какую информацию. Давайте так же перейдем вот и точно также введем в поисковой строке первую фразу из нашего списка «кисти для фотошоп». Здесь я думаю, тоже подробно останавливаться не стоит. Повторюсь еще раз принцип отбора ключевых слов у всех трех систем схожий.

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

ВЧ, СЧ и НЧ запросы или ВЧЗ, СЧЗ и НЧЗ

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

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

Здесь точный ответ я думаю, не может дать ни кто! У блогов разных тематик он будет разным. Есть тематики очень популярные, в которых точное число запросов («!») достигает 20 тыс. показов/в месяц и более (например, «!уроки!фотошопа»), а есть менее популярные, в которых точное число запросов не достигает и 2000 показов/в месяц (например «!уроки!английского»).

Я в этом случае придерживаюсь простой формулы, которую вычислил для себя, продемонстрирую на примере «!уроки!фотошопа»:

ВК, СК и НК запросы ВКЗ, СКЗ и НКЗ

По мимо ВЧ, СЧ и НЧ запросов существует еще одна категория. Это высоко конкурентные (ВК), средне конкурентные (СК) и низко конкурентные (НК) запросы, также могут встречаться ВКЗ, СКЗ и НКЗ. В этом случае нам потребуется определить конкурентность тех запросов, по которым мы планируем продвигаться в ТОП, но об этом будет отдельный пост, на тему « ». . А пока давайте считать, что ВЧ запросы являются ВК запросами, СЧ – СК и НЧ – НК. В большинстве случаев эта формула работает, но бывают и исключения, когда например НЧ запросы являются высоко конкурентными (ВК) и наоборот ВЧ запросы являются НК. Все зависит от тематики блога.

Схема составления семантического ядра

Для наглядности давайте посмотрим на схематичный пример семантического ядра. Примерно так должна выглядеть стандартная схема семантического ядра.

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

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

Сразу хочу сказать, что я не специалист в «фотошопе», просто эта тема мне пришла на ум при написании поста. Поэтому я подбирал запросы по смыслу. Хорошо, вот какая схема семантического ядра у меня получилась на тему «фотошоп». У вас должно получиться, что-то на подобии:

Виды запросов

Все запросы (наши ключевые слова) можно разделить на три категории:

  • Первичные запросы – это те запросы, которые одним-двумя словами могут дать общее определение вашему ресурсу или его части. Первичные запросы, наиболее охватывающие общую тематику вашего блога лучше оставить на главной странице. В нашем случае это: уроки фотошоп, эффекты фотошоп, как сделать фотоколлаж.
    Первичные запросы, менее охватывающие общую тематику вашего блога, но наиболее точно характеризующие его какую-то часть, рекомендуется использовать в качестве отдельных рубрик вашего блога. В нашем случае это: кисти фотошоп, рамки фотошоп, шаблоны фотошоп, фото дизайн.
  • Основные запросы – это те запросы, которые достаточно точно определяют тематику вашего проекта и способны дать полезную информацию читателю, научить его тому, что он хочет, или ответить на часто задаваемый вопрос КАК??? Т.е., в нашем случае это: как добавить кисти в фотошопе, как сделать шаблон в фотошопе, как сделать фотоколлаж в фотошопе и т.д. Основные запросы, по сути, должны являться заголовками наших будущих статей.
  • Дополнительные (вспомогательные) запросы или их еще называют ассоциативными – это те запросы, которые люди так же вводили в поисковую строку браузера при поиске основного запроса. Т.е. это ключевые фразы, которые являются частью основного запроса. Они как бы будут дополнять основной запрос, и являться ключевыми словами при продвижении ее в ТОП. Например: фотошоп для начинающих онлайн, фотошоп убрать эффект красных глаз, коллаж из нескольких фотографий. Я думаю это понятно.

Стратегия составления семантического ядра

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

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

Продвигаться по ВЧ (ВК) запросам у вас вряд ли получится, поэтому их можно удалить, но рекомендуется оставить один-два ВЧ (ВК) запроса для главной страницы. Сразу же оговорюсь: не надо кидаться на самый ВЧ запрос, такой как «фотошоп», у которого точное число показов/в месяц составляет – 163384. Например, вы хотите при помощи вашего блога обучить людей работе в фотошопе. Вот и возьмите за основу ВЧ запроса – «уроки фотошоп», у которого точное число показов/в месяц составляет – 7110. Этот запрос более характеризует вашу тему и по нему вам будет легче продвинуться.

А вот СЧ (СК) запросы можно поместить на отдельной страничке в excel. По мере того как ваш блог будет подниматься в глазах ПС они (СЧ (СК) запросы) будут понемногу становиться востребованными.

Я знаю, что новички сейчас вообще не понимают, о чем я говорю, советую вам почитать статью о том, изучив которую вам станет все понятно.

Заключение

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

А каким образом вы составляете семантическое ядро? А может вы его вообще не составляете? Какие используете программы и сервисы при составлении? Рад буду услышать ваши ответы в комментариях!

И напоследок посмотрите интересное видео.

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


Привет, мир!

Давай напишем ядро, которое будет загружаться через GRUB на системах, совместимых с x86. Наше первое ядро будет показывать сообщение на экране и на этом останавливаться.

Как загружаются x86-машины

Прежде чем думать о том, как писать ядро, давай посмотрим, как компьютер загружается и передает управление ядру. Большинство регистров процессора x86 имеют определенные значения после загрузки. Регистр - указатель на инструкцию (EIP) содержит адрес инструкции, которая будет исполнена процессором. Его захардкоженное значение - это 0xFFFFFFF0. То есть x86-й процессор всегда будет начинать исполнение с физического адреса 0xFFFFFFF0. Это последние 16 байт 32-разрядного адресного пространства. Этот адрес называется «вектор сброса» (reset vector).

В карте памяти, которая содержится в чипсете, прописано, что адрес 0xFFFFFFF0 ссылается на определенную часть BIOS, а не на оперативную память. Однако BIOS копирует себя в оперативку для более быстрого доступа - этот процесс называется «шедоуинг» (shadowing), создание теневой копии. Так что адрес 0xFFFFFFF0 будет содержать только инструкцию перехода к тому месту в памяти, куда BIOS скопировала себя.

Итак, BIOS начинает исполняться. Сначала она ищет устройства, с которых можно загружаться в том порядке, который задан в настройках. Она проверяет носители на наличие «волшебного числа», которое отличает загрузочные диски от обычных: если байты 511 и 512 в первом секторе равны 0xAA55, значит, диск загрузочный.

Как только BIOS найдет загрузочное устройство, она скопирует содержимое первого сектора в оперативную память, начиная с адреса 0x7C00, а затем переведет исполнение на этот адрес и начнет исполнение того кода, который только что загрузила. Вот этот код и называется загрузчиком (bootloader).

Загрузчик загружает ядро по физическому адресу 0x100000. Именно он и используется большинством популярных ядер для x86.

Все процессоры, совместимые с x86, начинают свою работу в примитивном 16-разрядном режиме, которые называют «реальным режимом» (real mode). Загрузчик GRUB переключает процессор в 32-разрядный защищенный режим (protected mode), переводя нижний бит регистра CR0 в единицу. Поэтому ядро начинает загружаться уже в 32-битном защищенном режиме.

Заметь, что GRUB в случае с ядрами Linux выбирает соответствующий протокол загрузки и загружает ядро в реальном режиме. Ядра Linux сами переключаются в защищенный режим.

Что нам понадобится

  • Компьютер, совместимый с x86 (очевидно),
  • Linux,
  • ассемблер NASM,
  • ld (GNU Linker),
  • GRUB.

Входная точка на ассемблере

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

Как сделать так, чтобы ассемблерный код стал стартовой точкой для нашего ядра? Мы используем скрипт для компоновщика (linker), который линкует объектные файлы и создает финальный исполняемый файл ядра (подробнее объясню чуть ниже). В этом скрипте мы напрямую укажем, что хотим, чтобы наш бинарный файл загружался по адресу 0x100000. Это адрес, как я уже писал, по которому загрузчик ожидает увидеть входную точку в ядро.

Вот код на ассемблере.

kernel.asm
bits 32 section .text global start extern kmain start: cli mov esp, stack_space call kmain hlt section .bss resb 8192 stack_space:

Первая инструкция bits 32 - это не ассемблер x86, а директива NASM, сообщающая, что нужно генерировать код для процессора, который будет работать в 32-разрядном режиме. Для нашего примера это не обязательно, но указывать это явно - хорошая практика.

Вторая строка начинает текстовую секцию, также известную как секция кода. Сюда пойдет весь наш код.

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

kmain - это функция, которая будет определена в нашем файле kernel.c . extern объявляет, что функция декларирована где-то еще.

Далее идет функция start , которая вызывает kmain и останавливает процессор инструкцией hlt . Прерывания могут будить процессор после hlt , так что сначала мы отключаем прерывания инструкцией cli (clear interrupts).

В идеале мы должны выделить какое-то количество памяти под стек и направить на нее указатель стека (esp). GRUB, кажется, это и так делает за нас, и на этот момент указатель стека уже задан. Однако на всякий случай выделим немного памяти в секции BSS и направим указатель стека на ее начало. Мы используем инструкцию resb - она резервирует память, заданную в байтах. Затем оставляется метка, указывающая на край зарезервированного куска памяти. Прямо перед вызовом kmain указатель стека (esp) направляется на эту область инструкцией mov .

Ядро на C

В файле kernel.asm мы вызвали функцию kmain() . Так что в коде на C исполнение начнется с нее.

kernel.c
void kmain(void) { const char *str = "my first kernel"; char *vidptr = (char*)0xb8000; unsigned int i = 0; unsigned int j = 0; while(j < 80 * 25 * 2) { vidptr[j] = " "; vidptr = 0x07; j = j + 2; } j = 0; while(str[j] != "\0") { vidptr[i] = str[j]; vidptr = 0x07; ++j; i = i + 2; } return; }

Все, что будет делать наше ядро, - очищать экран и выводить строку my first kernel.

Первым делом мы создаем указатель vidptr, который указывает на адрес 0xb8000. В защищенном режиме это начало видеопамяти. Текстовая экранная память - это просто часть адресного пространства. Под экранный ввод-вывод выделен участок памяти, который начинается с адреса 0xb8000, - в него помещается 25 строк по 80 символов ASCII.

Каждый символ в текстовой памяти представлен 16 битами (2 байта), а не 8 битами (1 байтом), к которым мы привыкли. Первый байт - это код символа в ASCII, а второй байт - это attribute-byte . Это определение формата символа, в том числе - его цвет.

Чтобы вывести символ s зеленым по черному, нам нужно поместить s в первый байт видеопамяти, а значение 0x02 - во второй байт. 0 здесь означает черный фон, а 2 - зеленый цвет. Мы будем использовать светло-серый цвет, его код - 0x07.

В первом цикле while программа заполняет пустыми символами с атрибутом 0x07 все 25 строк по 80 символов. Это очистит экран.

Во втором цикле while символы строки my first kernel, оканчивающейся нулевым символом, записываются в видеопамять и каждый символ получает attribute-byte, равный 0x07. Это должно привести к выводу строки.

Компоновка

Теперь мы должны собрать kernel.asm в объектный файл с помощью NASM, а затем при помощи GCC скомпилировать kernel.c в другой объектный файл. Наша задача - слинковать эти объекты в исполняемое ядро, пригодное к загрузке. Для этого потребуется написать для компоновщика (ld) скрипт, который мы будем передавать в качестве аргумента.

link.ld
OUTPUT_FORMAT(elf32-i386) ENTRY(start) SECTIONS { . = 0x100000; .text: { *(.text) } .data: { *(.data) } .bss: { *(.bss) } }

Здесь мы сначала задаем формат (OUTPUT_FORMAT) нашего исполняемого файла как 32-битный ELF (Executable and Linkable Format), стандартный бинарный формат для Unix-образных систем для архитектуры x86.

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

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

В фигурных скобках, которые идут за выражением SECTIONS , точка означает счетчик позиции (location counter). Он автоматически инициализируется значением 0x0 в начале блока SECTIONS , но его можно менять, назначая новое значение.

Ранее я уже писал, что код ядра должен начинаться по адресу 0x100000. Именно поэтому мы и присваиваем счетчику позиции значение 0x100000.

Взгляни на строку.text: { *(.text) } . Звездочкой здесь задается маска, под которую подходит любое название файла. Соответственно, выражение *(.text) означает все входные секции.text во всех входных файлах.

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

После того как компоновщик выдаст текстовую секцию, значение счетчика позиции будет 0x100000 плюс размер текстовой секции. Точно так же секции data и bss будут слиты и помещены по адресу, который задан счетчиком позиции.

GRUB и мультизагрузка

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

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

В соответствии с этой спецификацией ядро может содержать заголовок (Multiboot header) в первых 8 килобайтах. В этом заголовке должно быть прописано три поля:

  • magic - содержит «волшебное» число 0x1BADB002, по которому идентифицируется заголовок;
  • flags - это поле для нас не важно, можно оставить ноль;
  • checksum - контрольная сумма, должна дать ноль, если прибавить ее к полям magic и flags .

Наш файл kernel.asm теперь будет выглядеть следующим образом.

kernel.asm
bits 32 section .text ;multiboot spec align 4 dd 0x1BADB002 ;magic dd 0x00 ;flags dd - (0x1BADB002 + 0x00) ;checksum global start extern kmain start: cli mov esp, stack_space call kmain hlt section .bss resb 8192 stack_space:

Инструкция dd задает двойное слово размером 4 байта.

Собираем ядро

Итак, все готово для того, чтобы создать объектный файл из kernel.asm и kernel.c и слинковать их с применением нашего скрипта. Пишем в консоли:

$ nasm -f elf32 kernel.asm -o kasm.o

По этой команде ассемблер создаст файл kasm.o в формате ELF-32 bit. Теперь настал черед GCC:

$ gcc -m32 -c kernel.c -o kc.o

Параметр -c указывает на то, что файл после компиляции не нужно линковать. Мы это сделаем сами:

$ ld -m elf_i386 -T link.ld -o kernel kasm.o kc.o

Эта команда запустит компоновщик с нашим скриптом и сгенерирует исполняемый файл под названием kernel .

WARNING

Хакингом ядра лучше всего заниматься в виртуалке. Чтобы запустить ядро в QEMU вместо GRUB, используй команду qemu-system-i386 -kernel kernel .

Настраиваем GRUB и запускаем ядро

GRUB требует, чтобы название файла с ядром следовало конвенции kernel-<версия> . Так что переименовываем файл - я назову свой kernel-701 .

Теперь кладем ядро в каталог /boot . На это понадобятся привилегии суперпользователя.

В конфигурационный файл GRUB grub.cfg нужно будет добавить что-то в таком роде:

Title myKernel root (hd0,0) kernel /boot/kernel-701 ro

Не забудь убрать директиву hiddenmenu, если она прописана.

GRUB 2

Чтобы запустить созданное нами ядро в GRUB 2, который по умолчанию поставляется в новых дистрибутивах, твой конфиг должен выглядеть следующим образом:

Menuentry "kernel 701" { set root="hd0,msdos1" multiboot /boot/kernel-701 ro }

Благодарю Рубена Лагуану за это дополнение.

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



Это и есть твое ядро!

Пишем ядро с поддержкой клавиатуры и экрана

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

Мы будем общаться с устройствами ввода-вывода через порты ввода-вывода. По сути, они просто адреса на шине ввода-вывода. Для операций чтения и записи в них существуют специальные процессорные инструкции.

Работа с портами: чтение и вывод

read_port: mov edx, in al, dx ret write_port: mov edx, mov al, out dx, al ret

Доступ к портам ввода-вывода осуществляется при помощи инструкций in и out , входящих в набор x86.

В read_port номер порта передается в качестве аргумента. Когда компилятор вызывает функцию, он кладет все аргументы в стек. Аргумент копируется в регистр edx при помощи указателя на стек. Регистр dx - это нижние 16 бит регистра edx . Инструкция in здесь читает порт, номер которого задан в dx , и кладет результат в al . Регистр al - это нижние 8 бит регистра eax . Возможно, ты помнишь из институтского курса, что значения, возвращаемые функциями, передаются через регистр eax . Таким образом, read_port позволяет нам читать из портов ввода-вывода.

Функция write_port работает схожим образом. Мы принимаем два аргумента: номер порта и данные, которые будут записаны. Инструкция out пишет данные в порт.

Прерывания

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

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

За прерывания в архитектуре x86 отвечает чип под названием Programmable Interrupt Controller (PIC). Он обрабатывает хардверные прерывания и направляет и превращает их в соответствующие системные прерывания.

Когда пользователь что-то делает с устройством, чипу PIC отправляется импульс, называемый запросом на прерывание (Interrupt Request, IRQ). PIC переводит полученное прерывание в системное прерывание и отправляет процессору сообщение о том, что пора остановить то, что он делает. Дальнейшая обработка прерываний - это задача ядра.

Без PIC нам бы пришлось опрашивать все устройства, присутствующие в системе, чтобы посмотреть, не произошло ли событие с участием какого-то из них.

Давай разберем, как это работает в случае с клавиатурой. Клавиатура висит на портах 0x60 и 0x64. Порт 0x60 отдает данные (когда нажата какая-то кнопка), а порт 0x64 передает статус. Однако нам нужно знать, когда конкретно читать эти порты.

Прерывания здесь приходятся как нельзя более кстати. Когда кнопка нажата, клавиатура отправляет PIC сигнал по линии прерываний IRQ1. PIС хранит значение offset , сохраненное во время его инициализации. Он добавляет номер входной линии к этому отступу, чтобы сформировать вектор прерывания. Затем процессор ищет структуру данных, называемую «таблица векторов прерываний» (Interrupt Descriptor Table, IDT), чтобы дать функции - обработчику прерывания адрес, соответствующий его номеру.

Затем код по этому адресу исполняется и обрабатывает прерывание.

Задаем IDT

struct IDT_entry{ unsigned short int offset_lowerbits; unsigned short int selector; unsigned char zero; unsigned char type_attr; unsigned short int offset_higherbits; }; struct IDT_entry IDT; void idt_init(void) { unsigned long keyboard_address; unsigned long idt_address; unsigned long idt_ptr; keyboard_address = (unsigned long)keyboard_handler; IDT.offset_lowerbits = keyboard_address & 0xffff; IDT.selector = 0x08; /* KERNEL_CODE_SEGMENT_OFFSET */ IDT.zero = 0; IDT.type_attr = 0x8e; /* INTERRUPT_GATE */ IDT.offset_higherbits = (keyboard_address & 0xffff0000) >> 16; write_port(0x20 , 0x11); write_port(0xA0 , 0x11); write_port(0x21 , 0x20); write_port(0xA1 , 0x28); write_port(0x21 , 0x00); write_port(0xA1 , 0x00); write_port(0x21 , 0x01); write_port(0xA1 , 0x01); write_port(0x21 , 0xff); write_port(0xA1 , 0xff); idt_address = (unsigned long)IDT ; idt_ptr = (sizeof (struct IDT_entry) * IDT_SIZE) + ((idt_address & 0xffff) << 16); idt_ptr = idt_address >> 16 ; load_idt(idt_ptr); }

IDT - это массив, объединяющий структуры IDT_entry. Мы еще обсудим привязку клавиатурного прерывания к обработчику, а сейчас посмотрим, как работает PIC.

Современные системы x86 имеют два чипа PIC, у каждого восемь входных линий. Будем называть их PIC1 и PIC2. PIC1 получает от IRQ0 до IRQ7, а PIC2 - от IRQ8 до IRQ15. PIC1 использует порт 0x20 для команд и 0x21 для данных, а PIC2 - порт 0xA0 для команд и 0xA1 для данных.

Оба PIC инициализируются восьмибитными словами, которые называются «командные слова инициализации» (Initialization command words, ICW).

В защищенном режиме обоим PIC первым делом нужно отдать команду инициализации ICW1 (0x11). Она сообщает PIC, что нужно ждать еще трех инициализационных слов, которые придут на порт данных.

Эти команды передадут PIC:

  • вектор отступа (ICW2),
  • какие между PIC отношения master/slave (ICW3),
  • дополнительную информацию об окружении (ICW4).

Вторая команда инициализации (ICW2) тоже шлется на вход каждого PIC. Она назначает offset , то есть значение, к которому мы добавляем номер линии, чтобы получить номер прерывания.

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

ICW4 задает дополнительные параметры окружения. Нам нужно определить только нижний бит, чтобы PIC знали, что мы работаем в режиме 80x86.

Та-дам! Теперь PIC проинициализированы.

У каждого PIC есть внутренний восьмибитный регистр, который называется «регистр масок прерываний» (Interrupt Mask Register, IMR). В нем хранится битовая карта линий IRQ, которые идут в PIC. Если бит задан, PIC игнорирует запрос. Это значит, что мы можем включить или выключить определенную линию IRQ, выставив соответствующее значение в 0 или 1.

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

Если линии IRQ работают, наши PIC могут получать сигналы по IRQ и преобразовывать их в номер прерывания, добавляя офсет. Нам же нужно заполнить IDT таким образом, чтобы номер прерывания, пришедшего с клавиатуры, соответствовал адресу функции-обработчика, которую мы напишем.

На какой номер прерывания нам нужно завязать в IDT обработчик клавиатуры?

Клавиатура использует IRQ1. Это входная линия 1, ее обрабатывает PIC1. Мы проинициализировали PIC1 с офсетом 0x20 (см. ICW2). Чтобы получить номер прерывания, нужно сложить 1 и 0x20, получится 0x21. Значит, адрес обработчика клавиатуры будет завязан в IDT на прерывание 0x21.

Задача сводится к тому, чтобы заполнить IDT для прерывания 0x21. Мы замапим это прерывание на функцию keyboard_handler , которую напишем в ассемблерном файле.

Каждая запись в IDT состоит из 64 бит. В записи, соответствующей прерыванию, мы не сохраняем адрес функции-обработчика целиком. Вместо этого мы разбиваем его на две части по 16 бит. Нижние биты сохраняются в первых 16 битах записи в IDT, а старшие 16 бит - в последних 16 битах записи. Все это сделано для совместимости с 286-ми процессорами. Как видишь, Intel выделывает такие номера на регулярной основе и во многих-многих местах!

В записи IDT нам осталось прописать тип, обозначив таким образом, что все это делается, чтобы отловить прерывание. Еще нам нужно задать офсет сегмента кода ядра. GRUB задает GDT за нас. Каждая запись GDT имеет длину 8 байт, где дескриптор кода ядра - это второй сегмент, так что его офсет составит 0x08 (подробности не влезут в эту статью). Гейт прерывания представлен как 0x8e. Оставшиеся в середине 8 бит заполняем нулями. Таким образом, мы заполним запись IDT, которая соответствует клавиатурному прерыванию.

Когда с маппингом IDT будет покончено, нам надо будет сообщить процессору, где находится IDT. Для этого существует ассемблерная инструкция lidt, она принимает один операнд. Им служит указатель на дескриптор структуры, которая описывает IDT.

С дескриптором никаких сложностей. Он содержит размер IDT в байтах и его адрес. Я использовал массив, чтобы вышло компактнее. Точно так же можно заполнить дескриптор при помощи структуры.

В переменной idr_ptr у нас есть указатель, который мы передаем инструкции lidt в функции load_idt() .

Load_idt: mov edx, lidt sti ret

Дополнительно функция load_idt() возвращает прерывание при использовании инструкции sti .

Заполнив и загрузив IDT, мы можем обратиться к IRQ клавиатуры, используя маску прерывания, о которой мы говорили ранее.

Void kb_init(void) { write_port(0x21 , 0xFD); }

0xFD - это 11111101 - включаем только IRQ1 (клавиатуру).

Функция - обработчик прерывания клавиатуры

Итак, мы успешно привязали прерывания клавиатуры к функции keyboard_handler , создав запись IDT для прерывания 0x21. Эта функция будет вызываться каждый раз, когда ты нажимаешь на какую-нибудь кнопку.

Keyboard_handler: call keyboard_handler_main iretd

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

Void keyboard_handler_main(void) { unsigned char status; char keycode; /* Пишем EOI */ write_port(0x20, 0x20); status = read_port(KEYBOARD_STATUS_PORT); /* Нижний бит статуса будет выставлен, если буфер не пуст */ if (status & 0x01) { keycode = read_port(KEYBOARD_DATA_PORT); if(keycode < 0) return; vidptr = keyboard_map; vidptr = 0x07; } }

Здесь мы сначала даем сигнал EOI (End Of Interrupt, окончание обработки прерывания), записав его в командный порт PIC. Только после этого PIC разрешит дальнейшие запросы на прерывание. Нам нужно читать два порта: порт данных 0x60 и порт команд (он же status port) 0x64.

Первым делом читаем порт 0x64, чтобы получить статус. Если нижний бит статуса - это ноль, значит, буфер пуст и данных для чтения нет. В других случаях мы можем читать порт данных 0x60. Он будет выдавать нам код нажатой клавиши. Каждый код соответствует одной кнопке. Мы используем простой массив символов, заданный в файле keyboard_map.h , чтобы привязать коды к соответствующим символам. Затем символ выводится на экран при помощи той же техники, что мы применяли в первой версии ядра.

Чтобы не усложнять код, я здесь обрабатываю только строчные буквы от a до z и цифры от 0 до 9. Ты с легкостью можешь добавить спецсимволы, Alt, Shift и Caps Lock. Узнать, что клавиша была нажата или отпущена, можно из вывода командного порта и выполнять соответствующее действие. Точно так же можешь привязать любые сочетания клавиш к специальным функциям вроде выключения.

Теперь ты можешь собрать ядро, запустить его на реальной машине или на эмуляторе (QEMU) так же, как и в первой части.

Всем привет! Сегодняшняя статья посвящена тому, как правильно собрать семантическое ядро (СЯ). Если вы занимаетесь SEO-продвижением в Google и Яндекс, хотите увеличить естественный трафик, повысить посещаемость и продажи сайта – этот материал для вас.

Чтобы докопаться до истины, мы изучим тему от «А до Я»:

В заключение рассмотрим общие правила для составления СЯ. Итак, давайте приступим!

Семантическое ядро: что это и какие бывают запросы

Семантическое ядро сайта (известное еще как «смысловое ядро») – это набор слов и словосочетаний, который точно соответствует структуре и тематике ресурса. Проще говоря, это те запросы, по которым пользователи могут найти сайт в Интернете.

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

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

Интересно узнать: LSI-копирайтинг. Заменит ли методика SEO?

Классификация запросов по частотности:

  • Высокочастотные запросы (ВЧ) – самые часто «забиваемые» в строку поиска (например, «открытка купить»).
  • Среднечастотные (СЧ) – менее популярные, чем ВЧ ключи, но также интересующие широкую аудиторию («открытка купить цена»).
  • Низкочастотные (НЧ) – словосочетания, которые запрашивают очень редко («купить художественную открытку»).

Важно отметить, что четких, отделяющих ВЧ от СЯ и НЧ, границ не существует, т. к. они варьируются в зависимости от тематики. К примеру, для запроса «оригами», ВЧ показатель 600 тыс. показов в месяц, а для «косметика» – 3,5 млн.

Если обратиться к анатомии ключа, то ВЧ состоит только из тела, СЧ и НЧ дополнены спецификатором и «хвостиком».

При формировании семантического ядра нужно использовать все виды частотности, но в разных пропорциях: минимум ВЧ, максимум НЧ и среднее количество СЧ.

Чтобы стало понятнее, проведем аналогию с деревом. Ствол – это самый главный запрос, на котором все держится. Толстые ветви, расположенные ближе к стволу, – среднечастотные ключи, также пользующиеся популярностью, но не такой, как ВЧ. Тонкие веточки являются низкочастотными словами, которые тоже используются для поиска нужного товара/услуги, но редко.

Разделение ключей по конкурентности:

  • высококонкурентные (ВК);
  • среднеконкурентные (СК);
  • низкоконкурентные (НК).

Данный критерий показывает, сколько веб-ресурсов использует данный запрос для продвижения. Здесь все просто: чем выше конкурентность ключа – тем сложнее пробиться и удержаться с ним в топ-10. Низкоконкурентные также не стоят внимания, так как являются малопулярными в сети. Идеальный вариант – продвигаться по СК запросам, с которыми реально занять первые места в стабильной бизнес-сфере.

Классификация запросов согласно потребностям пользователей:

  • Транзакционные – ключи, связанные с действием (купить, продать, загрузить, скачать).
  • Информационные – для получения каких-либо сведений (что, как, почему, сколько).
  • Навигационные – помогают найти информацию на конкретном ресурсе («купить телефон розетка»).

Остальные ключевики, когда сложно понять намерение пользователя, относят в группу «Прочие» (например, просто слово «открытка» вызывает массу вопросов: «Купить? Сделать? Нарисовать?»).

Зачем сайту нужно семантическое ядро?

Сбор семантического ядра – это кропотливый труд, требующий много времени, сил и терпения. Составить правильное СЯ, которое будет работать, в «два счета» не получится.

Здесь возникает вполне резонный вопрос: стоит ли вообще тратить усилия на подбор семантического ядра для сайта? Если вы хотите, чтобы ваш интернет-проект пользовался популярностью, постоянно увеличивал клиентскую базу и, соответственно, повышал прибыль компании, – ответ однозначный: «ДА».

Потому что сбор семантического ядра помогает:

  • Повысить видимость веб-ресурса . Поисковики Яндекс, Google и другие будут находить ваш сайт по выбранным вами ключам и предлагать его пользователям, которые интересуются данными запросами. Как результат – приток потенциальных клиентов растет, а шансы продать товар/услугу увеличиваются.
  • Избежать ошибок конкурентов. При создании СЯ обязательно выполняется анализ семантического ядра конкурентов, занимающих первый позиции в поисковой выдаче. Благодаря изучению сайтов-лидеров, вы сможете определить, какие запросы помогают им держаться в топе, на какие темы они пишут тексты, какие идеи являются неудачными. В ходе анализа конкурентов также могут возникнуть идеи относительно того, как развить именно свой бизнес.
  • Сделать структуру сайта . Семантическое ядро советуют использовать как «помощника» для создания структуры сайта. Собрав полное СЯ, можно увидеть все запросы, которые вводят пользователи при поиске вашего товара или услуги. Это поможет определиться с основными разделами ресурса. Скорее всего, вам нужно будет сделать такие страницы, о которых изначально вы даже и не думали. Важно понимать, что СЯ только подсказывает интересы пользователей. В идеале, структура сайта соответствует бизнес-сфере и содержит контент, удовлетворяющий потребности аудитории.
  • Исключить переспам. После анализа семантического ядра сайтов-конкурентов из топа, вы сможете установить оптимальную частотность ключевиков. Потому что нет универсального показателя плотности запросов для всех страниц ресурса, а все зависит от тематики и типа страницы, а также языка и самого ключа.

Как еще можно использовать семантическое ядро? Для составления правильного контент-плана . Грамотно собранные ключи подскажут темы для текстов и постов, которые интересуют вашу целевую аудиторию.

Вывод . Без СЯ создать интересный, популярный и рентабельный интернет-проект практически НЕВОЗМОЖНО.

Материал в тему:

Подготовка к сбору семантического ядра для сайта

Перед тем как создать семантическое ядро сайта, нужно выполнить следующие действия:

I. Изучить деятельность компании («мозговой штурм»)

Здесь важно выписать ВСЕ услуги и товары, которые предлагает организация. Например, чтобы собрать семантическое ядро для интернет-магазина мебели, можно использовать такие запросы: диван, кресло, кровать, прихожая, тумба + реставрация, ремонт. Здесь главное – ничего не упустить и не добавить лишнего. Только актуальная информация, т.е. если компания не продает пуфы и не ремонтирует мебель, эти запросы не нужны.

Кроме мозгового штурма, можно воспользоваться сервисами Google Analytics и Yandex.Metrika (рис. 1) или личными кабинетами в Google Search Console и Вебмастер Яндекс (рис. 2). Они подскажут, какие запросы наиболее популярны у вашей целевой аудитории. Такая помощь доступна только уже работающим сайтам.

Тексты в помощь:

  • Advego – работает по такому же принципу, как и Istio.com.

  • Lenartools. Работает просто: загружаете страницы, откуда нужно «вытянуть» ключи (max 200), кликаете «Поехали» – и получаете список слов, которые чаще всего используются на ресурсах.

II. Для анализа семантического ядра сайта-конкурента:

  • SEMRUSH – нужно добавить адрес ресурса, выбрать страну, нажать «Start Now» и получить анализ. Сервис платный, но при регистрации предоставляется 10 бесплатных проверок. Подходит также для сбора ключей для собственного бизнес-проекта.

  • SpyWords – сервис для анализа деятельности конкурента: бюджет, поисковый трафик, объявления, запросы. В бесплатном доступе «урезанный» набор функций, а за отдельную плату можно получить детализированную картинку о продвижении интересующей компании.

  • Serpstat – многофункциональная платформа, которая предоставляет отчет о ключевиках, рейтинге, конкурентах в поисковой выдаче Google и Yandex, обратных ссылках и др. Подходит для подбора СЯ и анализа своего ресурса. Единственный минус – полный спектр услуг доступен после оплаты тарифного плана.

Еще один эффективный способ расширения семантического ядра – использовать синонимы. Пользователи по-разному могут искать один и тот же товар или услугу, поэтому важно включить в СЯ все альтернативные ключи. В поиске синонимов помогут подсказки в Google и Яндекс.

Совет . Если сайт информационный, сначала нужно подобрать запросы, которые являются главными для данного ресурса и по которым планируется продвижение. А затем – сезонные. Например, для веб-проекта о модных тенденциях в одежде ключевыми будут запросы: мода, женская, мужская, детская. А, так сказать, «сезонными» – осень, зима, весна и др.

Как собрать семантическое ядро: подробная инструкция

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

Это можно сделать:

I. БЕСПЛАТНО, используя:

Wordstat Yandex

Яндекс Вордстат – очень популярный онлайн-сервис, с помощью которого можно:

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

Большой недостаток: «выгружать» ключи придется вручную. Но если установить расширение Yandex Wordstat Assistant, работа с семантическим ядром ускорится в разы (актуально для браузера Opera).

Пользоваться просто: нажимаем на «+» возле нужного ключа или кликаем «добавить все». Запросы автоматически перебрасываются в список расширения. После сбора СЯ нужно перенести его в редактор таблиц и обработать. Важные плюсы программы: проверка на дубли, сортировка (алфавит, частотность, добавление), возможность дописать ключи вручную.

Пошаговая инструкция, как пользоваться сервисом, дана в статье: Яндекс. Вордстат (Wordstat): как собрать ключевые запросы?

Google Ads

Планировщик ключевых слов от Гугл, позволяющий бесплатно подобрать семантическое ядро онлайн. Сервис находит ключевики, основываясь на запросах пользователей поисковой системы Google. Для работы необходимо иметь аккаунт в Гугл.

Сервис предлагает:

  • найти новые ключевые слова;
  • посмотреть количество запросов и прогнозы.

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

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

Также возможно запросить отчет (пошаговую инструкцию, как его сделать, показывает программа).

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

К «минусам» сервиса можно отнести следующее: нет точной частотности (только средняя за месяц); не показывает зашифрованные ключи Яндекса и скрывает некоторые из Google. Зато определяет конкурентность и позволяет экспортировать ключевики в формате Excel.

SlovoEB

Это бесплатная версия программы Key Collector, которая обладает массой полезных функций:

  • быстро собирает семантическое ядро из правой и левой колонок WordStat;
  • выполняет пакетный сбор поисковых подсказок;
  • определяет все виды частотности;
  • собирает данные о сезонности;
  • позволяет выполнить пакетный сбор слов и частотность из Rambler.Adstat;
  • вычисляет KEI (коэффициент эффективности ключей).

Для пользования сервисом достаточно внести данные аккаунта в «Директ» (логин и пароль).

Хотите узнать больше – читайте статью: Slovoeb (Словоеб). Азы и инструкция по применению

Букварикс

Простая в использовании и бесплатная программа для сбора семантического ядра, база которой насчитывает более 2 млрд. запросов.

Отличается оперативной работой, а также полезными возможностями:

  • поддерживает большой список слов-исключений (до 10 тыс.);
  • позволяет создавать и применять списки слов непосредственно при формировании выборки;
  • предлагает составлять списки слов умножением нескольких списков (Комбинатор);
  • удаляет дубликаты ключевых слов;
  • показывает частотность (но только «во всем мире», без выбора региона);
  • анализирует домены (один или несколько, сравнивая СЯ ресурсов);
  • экспортируется в формате.csv.

Единственный важный недостаток для установочной программы – большой «вес» (в заархивированном формате ≈ 28 Гб, в распакованном ≈ 100 Гб). Но есть альтернатива – подбор СЯ онлайн.

II. ПЛАТНО с помощью программ:

База Максима Пастухова

Русский сервис, в котором собрана база из более 1,6 миллиарда ключевиков с данными Yandex WordStat и Директ, а также английская, содержащая больше 600 млн слов. Работает онлайн, помогает не только в создании семантического ядра, но также в запуске рекламной кампании в Яндекс.Директ. Самым главным и немаловажным его недостатком можно смело назвать высокую стоимость.

Key Collector (Кей Коллектор)

Пожалуй, самый популярный и удобный инструмент для сбора семантического ядра.

Key Collector:

  • собирает ключевики из правой и левой колонок WordStat Yandex;
  • отсеивает» ненужные запросы с помощью опции «Стоп-слова»;
  • ищет дубли и определяет сезонные ключевики;
  • фильтрует ключи по частотности;
  • выгружается в формате таблицы Excel;
  • находит страницы, релевантные запросу;
  • собирает статистику из: Google Analytics, AdWords и др.

Оценить, как Кей Коллектор выполняет сбор семантического ядра, можно бесплатно в демоверсии.

Rush Analytics

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

Кроме этого, Rush Analytics:

  • ищет подсказки в Youtube, Yandex и Google;
  • предлагает удобный фильтр стоп-слов;
  • проверяет индексацию;
  • определяет частотность;
  • проверяет позиции сайта для десктопов и мобильных;
  • генерирует ТЗ на тексты и т. д.

Отличный инструмент, но платный: без демоверсии и лимитированных бесплатных проверок.

Мутаген

Программа собирает ключевые запросы из первых 30 сайтов в поисковой системе Yandex. Показывает частотность в месяц, конкурентность каждого поискового запроса и рекомендует использовать слова с показателем до 5 (т. к. для эффективного продвижения таких ключевиков достаточно качественного контента).

Полезная статья: 8 видов текстов для сайта – пишем правильно

Платная программа для сбора семантического ядра, но есть бесплатный лимит – 10 проверок в сутки (доступно после первого пополнения бюджета, хотя бы на 1 руб.). Открыта только для зарегистрированных пользователей.

Keyword Tool

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

  • в бесплатной версии – собирает более 750 ключей для каждого запроса, используя подсказки Google, Youtube Bing, Amazon, eBay, App Store, Instagram;
  • в платной – показывает частотность запросов, конкуренцию, стоимость в AdWords и динамику.

Программа не требует регистрации.

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

Вывод . Если есть возможность – желательно приобрести лицензии на пользование платными программами, так как у них функционал намного шире, чем у бесплатных аналогов. Но для простого сбора СЯ вполне подойдут и «открытые» сервисы.

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

Готовое семантическое ядро, как правило, включает множество ключевиков (к примеру, по запросу «мягкая мебель» сервисы выдают несколько тысяч слов). Что делать дальше с таким огромным числом ключевых запросов?

Собранные ключи нужно:

I. Очистить от «мусора», дублей и «пустышек»

Запросы с нулевой частотностью, а также ошибками просто удаляем. Для устранения ключей с ненужными «хвостиками» советую использовать в Excel функцию «Сортировка и фильтр». Что может относиться к мусору? Например, для коммерческого сайта лишними будут такие слова, как: «скачать», «бесплатно» и др. Дубли также можно автоматически убрать в Эксель, воспользовавшись опцией «удалить дубликаты» (см. примеры ниже).

Убираем ключи с нулевой частотностью:

Удаляем ненужные «хвостики»:

Избавляемся от дубликатов:

II. Убрать высококонкурентные запросы

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

Пример, как определить ВК-ключи через планировщик ключевых слов от Google (можно через фильтр оставить только НК и СК):

III. Выполнить разгруппировку семантического ядра

Сделать это можно двумя способами:

1. ПЛАТНО:

  • KeyAssort – кластеризатор семантического ядра, который помогает создать структуру сайта и найти лидеров ниши. Работает на основе поисковиков Yandex и Google. Выполняет разгруппировку 10 тыс. запросов всего за пару минут. Оценить преимущества сервиса можно, скачав демо-версию.

  • SEMparser выполняет автоматическую группировку ключей; создание структуры сайта; определение лидеров; генерацию ТЗ для копирайтеров; парсинг подсветки Yandex; определение геозависимости и «коммерческости» запросов, а также релевантности страниц. Кроме этого, сервис проверяет, насколько текст соответствует топу согласно SEO-параметрам. Как работает: собираете СЯ, сохраняете в формате.xls или.xlsx. Создаете на сервисе новый проект, выбираете регион, загружаете файл с запросами – и через несколько секунд получаете рассортированные по смысловым группам слова.

Кроме этих сервисов, могу посоветовать еще Rush Analytics, с которым уже познакомились выше, и Just-Magic .

Rush Analytics:

Just-Magic:

2. БЕСПЛАТНО:

  • Вручную – с помощью Excel и функции «Сортировка и фильтр». Для этого: устанавливаем фильтр, вводим запрос для группы (к примеру, «купить», «цена»), выделяем список ключей цветом. Далее настраиваем опцию «Пользовательская сортировка» (в «Сортировка по цвету»), перейдя в «сортировать в пределах указанного диапазона». Последний штрих – добавляем названия группам.

Шаг 1

Шаг 2

Шаг 3

Шаг 4

Пример разгруппированного семантического ядра:

  • SEOQUICK бесплатная онлайн-программа для автоматической кластеризации семантического ядра. Чтобы «разбросать» ключи по группам, достаточно загрузить файл с запросами или добавить их вручную и минутку подождать. Инструмент работает быстро, определяя частотность и тип ключа. Дает возможность удалить лишние группы и экспортировать документ в формате Excel.

  • Keyword Assistant . Сервис работает онлайн по принципу Excel-таблицы, т.е. раскидывать ключевики придется вручную, но занимает это гораздо меньше времени, чем работа в Эксель.

Как кластеризовать семантическое ядро и какие способы использовать – выбирать вам. Я считаю, что так, как нужно именно вам, можно сделать только вручную. Это долго, но эффективно.

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

Читайте по теме статью с примерами: Как правильно вписать ключевые слова в текст?

Общие правила для создания СЯ

Подводя итоги, важно добавить советы, которые помогут собрать правильное семантическое ядро:

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

Семантика должна точно соответствовать тематике веб-проекта, т.е. фокусироваться следует только на целевых запросах.

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

Следует регулярно расширять семантическое ядро для увеличения естественного трафика.

И самое важное: все на сайте (от ключей до структуры) должно быть сделано «для людей»!

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

Если сомневаетесь, что сможете собрать правильное СЯ, – лучше заказать семантическое ядро для сайта у профессионалов. Это сэкономит силы, время и принесет больше пользы.

Интересно также будет узнать: Как разместить и ускорить индексацию статьи? 5 секретов успеха

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

Всем-всем привет!

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

С какой целью собирается семантическое ядро?

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

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

Резюмирую: СЯ необходимо для:

  • Создания структуры сайта, которая будет понятна как поисковым машинам, так и обычным пользователям;
  • Создания контента. Контент в наше время является главным способом продвижения сайта в выдаче. Чем качественнее контент, тем сайт находится выше; чем больше качественного контента, тем сайт находится выше. Подробнее о создании качественного контента , еще ;

Что делать с семантическим ядром после составления?

Итак, после того, как Вы составили семантическое ядро, то есть: собрали ключевые слова, провели чистку и сгруппировали их, можно приступать к формированию структуры сайта. По сути, когда Вы сгруппировали запросы так, как мы делали это в уроке №145, Вы уже создали структуру своего веб-ресурса:

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

Со структурой вроде бы разобрались, теперь перейдем к контенту. Опять таки сгруппировав запросы в Key Collector, Вы нашли темы для своего будущего контента, которым будете наполнять страницы. Для примера, возьмем группу “Горные велосипеды” и разобьем ее на небольшие подгруппы:


Таким образом, мы создали две подгруппы с ключевыми запросами под отдельные страницы. Ваша задача на данном этапе: сформировать группы (кластеры) так, чтобы каждый кластер содержал в себе семантически одинаковые ключевики, то есть одинаковые по смыслу.

Запомните одно правило: каждому кластеру отдельная страница .

Так, конечно, не очень удобно для начинающих группировать, так как нужно иметь определенную сноровку, поэтому покажу и другой способ формирования тем для статей. На этот раз воспользуемся Excel:


Уже на основе получившихся данных Вы можете формировать отдельные страницы.

Так провожу кластеризацию (группировку) я и меня вполне все устраивает. Думаю, что теперь Вы поняли, что делать с семантическим ядром после составления.

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

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

Удачи Вам, друзья!

До скорых встреч!

Семантическое ядро — довольно избитая тема, не так ли? Сегодня мы вместе это исправим, собрав семантику в этом уроке!

Не верите? - посмотрите сами - достаточно просто вбить в Яндекс или Гугл фразу семантическое ядро сайта. Думаю, что сегодня я исправлю эту досадную ошибку.

А ведь и в самом деле, какая она для вас - идеальная семантика ? Можно подумать, что за глупый вопрос, но на самом деле он совсем даже неглуп, просто большинство web-мастеров и владельцев сайтов свято верят, что умеют составлять семантические ядра и в то, что со всем этим справится любой школьник, да еще и сами пытаются научить других… Но на самом деле все намного сложней. Однажды у меня спросили — что стоит делать вначале? — сам сайт и контент или сем ядро , причем спросил человек, который далеко не считает себя новичком в сео. Вот данный вопрос и дал мне понять всю сложность и неоднозначность данной проблемы.

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

Ну что же… Давайте создадим его вместе!

Небольшое предисловие

Для создания семантического поля сайта нам понадобится одна-единственная программа — Key Collector . На примере Коллектора я разберу пример сбора небольшой сем группы. Помимо платной программы, есть и бесплатные аналоги вроде СловоЕб и других.

Семантика собирается в несколько базовых этапов, среди которых следует выделить:

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

О наиболее важных этапах сбора и пойдет речь ниже!

ВИДЕО - составление семантического ядра по конкурентам

Мозговой штурм при создании семантического ядра — напрягаем мозги

На данном этапе надо в уме произвести подбор семантического ядра сайта и придумать как можно больше фраз под нашу тематику. Итак, запускаем кей коллектор и выбираем парсинг Wordstat , как это показано на скриншоте:

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

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

Думаю, достаточно, и так список с пол страницы;) В общем, идея в том, что на первом этапе вам необходимо проанализировать по максимуму свою отрасль и выбрать как можно больше фраз, отражающих тематику сайта. Хотя, если вы что-либо упустили на этом этапе — не отчаивайтесь — упущенные словосочетания обязательно всплывут на следующих этапах , просто придется делать много лишней работы, но ничего страшного. Берем наш список и копируем в key collector. Далее, нажимаем на кнопку — Парсить с Яндекс.Wordstat :

Парсинг может занять довольно продолжительное время, поэтому следует запастись терпением. Семантическое ядро обычно собирается 3-5 дней и первый день у вас уйдет на подготовку базового семантического ядра и парсинг.

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

Дополнительно скажу, что вместо мозгового штурма мы можем использовать уже готовую семантику конкурентов при помощи одного из специализированных сервисов, например — SpyWords. В интерфейсе данного сервиса мы просто вводим необходимое нам ключевое слово и видим основных конкурентов, которые присутствуют по этому словосочетанию в ТОП. Более того - семантика сайта любого конкурента может быть полностью выгружена при помощи этого сервиса.

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

Чистка семантики

Как только, парсинг вордстата полностью прекратится — пришло время отсеять семантическое ядро . Данный этап очень важен, поэтому отнеситесь к нему с должным вниманием.

Итак, у меня парсинг закончился, но словосочетаний получилось ОЧЕНЬ много , а следовательно, отсев слов может отнять у нас лишнее время. Поэтому, перед тем как перейти к определению частотности, следует произвести первичную чистку слов. Сделаем мы это в несколько этапов:

1. Отфильтруем запросы с очень низкими частотностями

Для этого наживаем на символ сортировки по частотности, и начинаем отчищать все запросы, у которых частотности ниже 30:

Думаю, что с данным пунктом вы сможете без труда справиться.

2. Уберем не подходящие по смыслу запросы

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

  • курсы поисковой оптимизации
  • продам раскрученный сайт

Анализ семантического ядра

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

Процесс довольно долгий, поэтому можете пойти и приготовить себе чай)

Когда проверка прошла успешно — необходимо продолжить чистку нашего ядра.

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

Экспорт и группировка семантического ядра

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

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

После вставки в Exel, мы увидим следующую картину:

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

В новой таблице будет 3 столбца: URL страницы , ключевое словосочетание и его частотность . В качестве URL выбираем или уже существующую страницу или страницу, которая будет создана в перспективе. Для начала, давайте выберем ключи для главной страницы моего блога:

После всех манипуляций, мы видим следующую картину. И сразу напрашивается несколько выводов:

  1. такие частотные запросы, как должны иметь намного больший хвост из менее частотных фраз, чем мы видим
  2. сео новости
  3. всплыл новый ключ, который мы не учли ранее — статьи сео . Необходимо проанализировать этот ключ

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

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

  • лучший seo блог
  • seo новости
  • статьи seo

И некоторые другие. Думаю, что методика вам понятна.

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

Финальный отсев

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

*На самом деле тут можно использовать любой из аналогичных сервисов, позволяющих узнать конкуренцию по ключевым словам, например, Мутаген!

Итак, создаем еще одну таблицу в Exel и копируем туда только названия ключей (средний столбец). Чтобы не тратить много времени, я скопирую только ключи для главной страницы своего блога:

Затем проверяем стоимость получения одного перехода по нашим ключевым словам:

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

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

Полезная информация!

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

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

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

Уверен, что ранее тебе уже доводилось слышать это слово применительно к поисковому продвижению. Давай разберемся, что же это за зверь такой и зачем он нужен при продвижении сайта.
Классическая модель поискового продвижения выглядит следующим образом:

  • Подбор и анализ поисковых запросов
  • Группировка запросов по страницам сайта (создание посадочных страниц)
  • Подготовка seo текстов для посадочных страниц на основе группы запросов для этих страниц

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

Для лучшего понимания теории кластеризации следует сделать небольшой экскурс в историю SEO:

Еще буквально несколько лет назад, когда термин кластеризация не выглядывал из-за каждого угла - сеошники, в подавляющем большинстве случаев, группировали семантику руками. Но при группировке огромных семантик в 1000, 10 000 и даже 100 000 запросов данная процедура превращалась в настоящую каторгу для обычного человека. И тогда повсеместно начали использовать методику группировки по семантике (и сегодня очень многие используют этот подход). Методика группировки по семантике подразумевает объединение в одну группу запросов, имеющих семантическое родство. Как пример - запросы “купить стиральную машинку” и “купить стиральную машинку до 10 000” объединялись в одну группу. И все бы хорошо, но данный метод содержит в себе целый ряд критических проблем и для их понимания необходимо ввести новый термин в наше повествование, а именно – “интент запроса ”.

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

  • Один и тот же интент могут иметь несколько запросов не имеющих какой-либо семантической близости, например – “обслуживание автомобиля” и “записаться на ТО”
  • Запросы, имеющие абсолютную семантическую близость могут содержать в себе кардинально разные интенты, например, хрестоматийная ситуация – “мобильник” и “мобильники”. В одном случае пользователь хочет купить телефон, а в другом посмотреть фильм

Так вот, группировка семантики по семантическому соответствию никак не учитывает интенты запросов. И группы, составленные таким образом не позволят написать текст, который попадет в ТОП. Во временя ручной группировки для устранения этого недоразумения ребята с профессией «подручный SEO специалиста» анализировали выдачу руками.

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

Механика кластеризации проста и выглядит следующим образом:

  • Система поочередно вводит все поданные ей запросы в поисковую выдачу и запоминает результаты из ТОП
  • После поочередного ввода запросов и сохранения результатов, система ищет пересечения в выдаче. Если один и тот же сайт одним и тем же документом (страница сайта) находится в ТОП сразу по нескольким запросам, то эти запросы теоретически можно объединить в одну группу
  • Становится актуальным такой параметр, как сила группировки, который говорит системе, сколько именно должно быть пересечений, чтобы запросы можно было добавить в одну группу. К примеру, сила группировки 2 означает, что в выдаче по 2-м разным запросам должно присутствовать не менее двух пересечений. Говоря еще проще – минимум две страницы двух разных сайтов должны присутствовать одновременно в ТОП по одному и другому запросу. Пример ниже.
  • При группировках больших семантики становится актуальна логика связей между запросами, на основе которой выделяют 3 базовых вида кластеризации: soft, middle и hard. О видах кластеризации мы еще поговорим в следующих записях этого дневника