We compose the semantic core with our own hands: online and programs. Semantic core! The engine in promoting your blog! How to build a semantic core

We compose the semantic core with our own hands: online and programs. Semantic core! The engine in promoting your blog! How to build a semantic core

07.09.2021
Sales Generator

Reading time: 14 minutes

We will send the material to you on:

In this article, you will learn:

  • How to compose the semantic core of the site
  • What programs to use for this
  • How to analyze the semantic core of a competitor's website
  • What mistakes are most often made in assembling the semantic core
  • How much does it cost to order a ready-made semantic core of the site

The semantic core is the basis of any Internet resource, the guarantee of its successful promotion and attraction of the target audience. How to correctly create the semantic core of the site and what mistakes to avoid, you will learn from this article.

What is the semantic core of the site

The easiest and at the same time effective way to attract visitors to your site is to make them themselves show interest in it by clicking on a link from the search engine Yandex or Google. To do this, you need to find out what your target audience is interested in, how, by what words, users are looking for the necessary information. The semantic core will help you with this.

The semantic core is a collection of individual words or phrases that characterize the subject matter and structure of your site. Semantics is originally a field of philology that deals with the meaning of words. Nowadays it is more often understood as the study of meaning in general.

Based on this, we can conclude that the concepts "semantic core" and "semantic core" are synonyms.

The purpose of creating a semantic core of the site is to fill it with content that is attractive to users. To do this, you need to find out what keywords they will search for information posted on your site.


Submit your application

The selection of the semantic core of the site involves the distribution of search queries or groups of queries across pages in such a way that they satisfy the target audience as much as possible.

This can be accomplished in two ways. The first one is to analyze the search phrases of users and, on their basis, create a site structure. The second way is to first come up with a skeleton of the future site, and then, after analysis, distribute keywords over it.

Each method has a right to exist, but the second is more logical: first, you create the structure of the site, and then fill it with search queries, according to which potential customers can find the content they need through search engines.

So you show the quality of proactivity - you independently determine what information to convey to site visitors. Otherwise, by creating a site structure based on keywords, you are only adjusting to the surrounding reality.

There is a fundamental difference between the SEO specialist and the marketer's approach to creating the semantic core of a website.

A classic optimizer will tell you: to create a website, you need to select phrases and words from search queries that can be used to get to the TOP of search results. Then, on their basis, form the structure of the future site and distribute keywords across the pages. The content of the pages is created for the selected keywords.

A marketer or entrepreneur will approach the issue of creating a website differently. First, he will think about what the site is for, what information it will carry to users. Then he will come up with an indicative structure of the site and a list of pages. At the next stage, he will deal with the creation of the semantic core of the site in order to understand what search queries potential customers are looking for information on.

What are the disadvantages of working with the Semantic Core from an SEO standpoint? First of all, with this approach, the quality of information on the site is significantly deteriorated.

It is up to the company to decide what to say to customers, rather than serving content as a reaction to the most popular search queries. Such blind optimization can lead to the fact that some of the promising queries with low frequency rates are eliminated.

The result of the creation of a semantic core is a list of keywords that are distributed across the pages of the site. This list shows the URLs of the pages, keywords and the level of frequency of their requests.

An example of the semantic core of the site

How to compose the semantic core of the site: step by step instructions

Step 1. Making an initial list of requests

First, you need to select the most popular search queries on the topic of your site. There are two options for how to do this:

1. Brainstorming method- when, within a short period of time, you, alone or with your colleagues, write down all the words and phrases by which, in your opinion, users will search for information posted on your site.

Write down all possible options, including:

  • variations in the spelling of the name of a product or service, synonymous words, ways of spelling the name in Latin letters and Cyrillic;
  • full names and abbreviations;
  • slang words;
  • references to the constituent elements of a product or service, for example, building materials - sand, brick, corrugated board, putty, etc.;
  • adjectives that reflect the significant characteristics of a product or service (high-quality repair, fast delivery, painless dental treatment).

2. Analyze the sites of your competitors... Open an incognito browser for your region. Look at the sites of competitors, which will show you the search results on your topic. Find all potential keywords. You can determine the semantic core of a competitor's site using the com and bukvarix.com services.

Analyze contextual ads. On your own or with the help of specialized services (for example, spywords.ru or advodka.com), study the semantic core of someone else's site and find out what keywords competitors are using.

By taking all three approaches, you will end up with a fairly large keyword list. But it will still not be enough to create an effective semantic core.

Step 2. Expanding the resulting list

At this stage, Yandex.Wordstat and Google AdWords services will help you. If you enter words from your list of keys, formed at the first stage, into the search line of any of these services, in turn, you will receive a list of refined and associative search queries at the output.

Refined searches may include not only your word, but other words or phrases as well. For example, if you enter the keyword "dog", then the service will give you 11,115,538 queries with this word, which include such queries for the last month as "dog photos", "dog treatment", "dog breeds", etc.


Associative queries are those words or phrases that users searched for along with your query. For example, along with the keyword "dog", users entered: "dry food", "royal canin", "Tibetan mastiff", etc. These search queries may also be useful to you.


In addition, there are special programs for creating the semantic core of the site, for example: KeyCollector, SlovoEB and online services - Topvisor, serpstat.com, etc. They allow not only selecting keywords, but also analyzing them and grouping search queries.

To maximize your list of keys, see what the service's search suggestions show. There you will find the most popular searches starting with the same letters or words as yours.

Step 3. Removing unnecessary requests

Search terms can be classified in different ways. Depending on the frequency, requests are:

  • high-frequency (more than 1500 requests per month);
  • medium-frequency (600-1500 requests per month);
  • low-frequency (100-200 requests per month).

This classification is very arbitrary. The assignment of a request to a particular category will depend on the topic of a particular site.

In recent years, there has been an upward trend in low-frequency queries. Therefore, to promote the site, the semantic core should include medium and low frequency queries.

There is less competition among them, so it will be much easier to raise your site to the first page of search results than when working with high-frequency queries. Plus, many search engines welcome sites to use low-frequency keywords.

Another classification of search queries - according to the purpose of the search:

  1. Information- keywords that users enter in the search for certain information. For example: "how to glue the tiles in the bathroom yourself", "how to connect the dishwasher."
  2. Transactional- keywords that are entered by users planning to perform some action. For example: "watch a movie online for free", "download the game", "buy building materials."
  3. Vital- queries that users enter in search of a specific site. For example: “Sberbank online”, “buy a refrigerator on Yandex.Market”, “vacancies on Head hunters”.
  4. Others (general)- all other search queries by which you can understand what the user is looking for. For example, the query "car" can be entered by the user if he wants to sell, buy or repair a car.

Now it's time to remove all unnecessary keywords from the list of keywords that:

  • do not correspond to the theme of your site;
  • include brand names of competitors;
  • include the names of other regions (for example, buy an iPhone in Moscow if your site only works for Western Siberia);
  • contain typos or errors (if you write "sabaka" in the search engine, and not "dog", it will take this into account as a separate search query).

Step 4. Determine competitive requests

To effectively distribute keywords on the site pages, you need to filter them by importance. To do this, use the Keyword Effectiveness Index (KEI). Calculation formula:

KEI = P 2 / C,

where P is the frequency of impressions for the keyword in the last month; С - the number of sites that are optimized for this search query.

It can be seen from the formula that the more popular the keyword, the higher the KEI, the more targeted traffic you will attract to your website. High competition for the search query makes it difficult to promote the site on it, which is reflected in the KEI value.

Thus, the higher the KEI, the more popular the search query, and vice versa: the lower the keyword performance index, the higher the competition for it.

There is a simplified variation of this formula:

KEI = P 2 / U,

where instead of C, the U indicator is used - the number of pages optimized for this keyword.

Let's look at an example of how to use the Keyword Performance Index KEI. Let's determine the frequency of requests using the Yandex Wordstat service:


In the next step, let's see how many pages in the search results for the search query of interest to us in the last month.


Let's substitute the found values ​​of the variables into the formula and calculate the keyword efficiency index KEI:

KEI = (206 146 * 206 146) / 70,000,000 = 607

How to estimate KEI values:

  • if KEI is less than 10, then search queries are ineffective;
  • if the KEI is from 10 to 100, then search queries are effective, they will attract the target audience to the site;
  • if KEI is from 100 to 400, then search queries are very effective, they will attract a significant share of traffic;
  • with a KEI of more than 400, search queries are most effective and will attract a huge number of users.

Keep in mind that the gradation of the KEI Keyword Performance Index values ​​is determined by the topic of the site. Therefore, the given scale of values ​​cannot be applied to all Internet resources, since for some of them the KEI value> 400 may be insufficient, and for narrow-topic sites this classification is not applicable at all.

Step 5. Grouping keywords on the site

Clustering the semantic core of a site is the process of grouping search queries based on logical considerations and based on the results of search engines. Before starting the grouping, it is important to make sure that the specialist who will conduct it understands all the intricacies of the company and the product, knows their specifics.

This work is costly, especially when it comes to filling a multi-page Internet resource. But it is not at all necessary to do it manually. You can cluster the semantic core of the site automatically using special services such as Topvisor, Seranking.ru, etc.

But it is better to double-check the results obtained, since the logic of dividing keys into groups in programs may not coincide with yours. At the end of the day, you will receive the final structure of the site. Now you will have a clear understanding of which pages you need to create and which ones to eliminate.

When is it necessary to analyze the semantic core of the competitors' website

  1. When starting a new project.

You are working on a new project and are building the semantic core of the site from scratch. To do this, you decided to analyze the keywords that competitors use to promote their sites.

Many are suitable for you too, so you use them to replenish the semantic core. It is worth considering the niche in which competitors operate. If you plan to occupy a small market share, and competitors operate at the federal level, then you cannot just take and completely copy their semantic core.

  1. When expanding the semantic core of a working site.

You have a website that needs to be promoted. The semantic core was formed a long time ago, but it works ineffectively. Website optimization, its restructuring, content updating in order to increase traffic is required. Where do you start?

The first step is to analyze the semantic core of competing sites using specialized services.

How to use keywords from competitors' sites in the most effective way?

Here are some simple rules. First, consider the percentage of key matches from your site and from other people's Internet resources. If your site is still under construction, then choose any competing site, analyze it and use keywords as the basis for creating your semantic core.

In the future, you will simply compare how your reference keys intersect with keys from competitors' sites. The easiest way is to upload a list of all competing sites using the service and filter them by the percentage of intersections.

Then you need to download the semantic cores of the first few sites into Excel or Key Collector and add new keywords to the semantic core of your site.

Secondly, before copying the keys from the donor site, be sure to visually check it.

  1. When buying a ready-made website for the purpose of subsequent development or resale.

Consider an example: you want to buy a specific site, but before making a final decision, you need to assess its potential. The easiest way to do this is by examining the semantic core, so you can compare the current coverage of the site with the sites of competitors.

Take the strongest competitor as a benchmark and compare its visibility indicators with the results of the Internet resource that you plan to acquire. If the lag behind the reference site is significant, this is a good sign: it means that your site has the potential to expand the semantic core and attract new traffic.

Pros and cons of analyzing the semantic core of competitors through special services

The principle of operation of many services for determining keywords on other people's sites is as follows:

  • a list of the most popular search queries is formed;
  • 1-10 search results pages (SERP) are selected for each key;
  • This collection of key phrases is repeated at regular intervals (weekly, monthly, or every year).

Disadvantages of this approach:

  • services give out only the visible part of search queries on the websites of competing organizations;
  • services keep a kind of "impression" of the search results, created during the collection of keywords;
  • services can determine the visibility of only those search queries that are in their databases;
  • services show only those keywords that they know.
  • to get reliable data on keywords on a competing site, you need to know when the search queries were collected (visibility analysis);
  • not all requests are reflected in the search results, so the service does not see them. The reasons may be different: the pages of the site have not yet been indexed, the search engine does not rank the pages due to the fact that they take a long time to load, contain viruses, etc.;
  • usually there is no information about which keys are included in the service database used to collect search results.

Thus, the service does not form a real semantic core that underlies the site, but only a small visible part of it.

Based on the foregoing, the following conclusions can be drawn:

  1. The semantic core of the competitors' site, formed with the help of special services, does not give a complete current picture.
  2. Checking the semantic core of a competitor's website helps to complement the semantics of your Internet resource or analyze the marketing policies of competing companies.
  3. The larger the base of keywords of the service, the slower the process of processing the issue and the lower the level of relevance of semantics. While the service collects search results at the beginning of the database, the data at the end of the database is outdated.
  4. The services do not disclose information about the degree of relevance of their databases and the date of the last update. Therefore, you cannot know to what extent the keywords selected by the service from the competitor's website reflect its real semantic core.
  5. A significant advantage of this approach is gaining access to a large list of competitors' keywords, many of which you can use to extend the semantic core of your own site.

TOP-3 paid services, where you can find out the semantic core of competitors

Megaindex Premium Analytics


This service has a rich arsenal for analyzing the semantic core of competing sites. Using the module "Site visibility" you can find and download a list of key phrases, identify sites with similar topics that can be used to expand the semantic core of your site.

One of the disadvantages of Megaindex Premium Analytics is the inability to filter the lists of keys in the program itself, you first need to download them in Excel.

Brief description of the service:

Keys.so


In order to analyze the semantic core using the keys.so service, you need to insert the url of a competing site, select suitable sites based on the number of matching key phrases, analyze them and download a list of search queries by which they are promoted. The service makes it easy and simple. A nice bonus is the modern interface of the program.

Cons: small size of the search phrases base, insufficient visibility refresh rate.

Service summary:

Spywords.ru


This service not only analyzes visibility, but also provides statistics on advertisements in Yandex.Direct. At first, it is difficult to understand the spywords.ru interface, it is overloaded with functionality, but in general it does its job well.

Using the service, you can analyze competing sites, identify intersections for key phrases, and unload a list of competitors' keys. The main disadvantage is the insufficient service base (about 23 million search phrases).

Service summary:

Thanks to special programs, sites and their semantic cores are no longer a mystery to you. You can easily analyze any competitor's internet resources that interest you. Here are some tips for using this information:

  1. Use keywords only from sites with similar topics(the more intersections with yours, the better).
  2. Do not analyze portals, they have too large semantic cores. As a result, you will not add to your own kernel, but only extend it. And this, as you already know, can be done endlessly.
  3. When buying a website, be guided by the indicators of its current visibility in the search engine, compare them with the sites included in the TOP to assess the development potential.
  4. Take keywords from competitors' sites to complement the semantic core of your site, not build it from scratch.
  5. The larger the base of the service that you use, the more complete your semantic core will be. But pay attention to the frequency of updating the databases of search phrases.

7 services that will help you create the semantic core of your website from scratch online

Google Keyword Planner


If you are thinking about the question of how to create the semantic core of the site, pay attention to this service. It can be used not only in Runet, but also in other segments where AdWords works.

Open Google AdWords. In the top panel in the section "Instruments" click on parameter Keyword Planner. A new menu will appear in which you need to select a section "Search for new keywords by phrase, site or category." Here you can configure the following parameters:

  • a keyword or phrase that will be searched for;
  • subject matter of a product or service;
  • region of search queries;
  • the language in which users enter search queries;
  • search system for key phrases;
  • negative keywords (should not be present in key phrases).

Then click on the button "Get options", then Google AdWords will give you possible synonyms for your keyword or phrase. The resulting data can be uploaded to Google Docs or CSV.

Benefits of using the Google AdWords service:

  • the ability to select synonyms for a key phrase;
  • using negative keywords to refine the search query;
  • access to a huge database of search queries of the Google search engine.

The main drawback of the service: if you have a free account, then Google AdWords will provide inaccurate data on the frequency of search queries. The margin of error is so significant that it is impossible to rely on these indicators when promoting a site. The way out is to buy access to a paid account or use another service.

Serpstat


This service allows you to comprehensively collect user search queries by keywords and site domains. Serplast is constantly expanding the number of regional bases.

The service allows you to identify the key competitors of your site, determine the search phrases by which they are promoted, and form a list of them for subsequent use in the semantic core of your Internet resource.

Benefits of the Serplast service:

  • a large selection of tools for analyzing the semantic core of competitors' sites;
  • informative reporting forms reflecting the frequency indicators for the selected region;
  • the option to unload search queries for specific pages of the site.

Cons of the Serplast service:

  • despite the fact that the data of the service databases are constantly updated, there is no guarantee that realistic data on the frequency of search queries will be provided in the interval between the latest updates;
  • not all search phrases with low frequency are displayed by the service;
  • limited languages ​​and countries with which the service works.

Key collector


This service will help you understand not only the question of how to assemble the semantic core of the site, but also solve the problem of its expansion, cleaning and clustering. Key Collector is able to collect search queries, provide data on the level of their frequency for selected regions, and process semantics.

The program searches for key phrases by starting lists. It can be used to work with databases of various formats.

Key Collector can show the frequency of keywords from data downloaded from Serpstat, Yandex Wordstat and other services.

Semrush


Compilation of the semantic core of the site in the Semrush program will cost you completely free. But you will receive no more than 10 key queries with data on their frequency for the selected region. In addition, using the service, you can find out what other search queries are entered by users in other regions for your keyword.

Pros of the Semrush service:

  • works all over the world, you can collect data on the frequency of search queries in the western region;
  • for each key phrase, it gives the TOP sites in the search results. You can focus on them in the future, when forming the semantic core of your own site.

Cons of the Semrush service:

  • if you want to get more than 10 keywords, you need to purchase the paid version for $ 100;
  • it is impossible to download a complete list of key phrases.

Keywordtool


This service allows you to collect key phrases for the semantic core of the site from foreign Internet resources in broad agreement. Also Keywordtool allows you to pick up search suggestions and phrases that contain the basic key.

If you use the free version of the program, then in one session you can get no more than 1000 search phrases without data on the level of their frequency.

Keywordtool service advantages:

  • works with different languages ​​and in many countries of the world;
  • shows search queries not only from search engines, but also from popular online stores (Amazon, eBay, App Store) and the largest video hosting service YouTube;
  • the breadth of coverage of search phrases exceeds that of Google AdWords;
  • the generated list of search queries can be easily copied into a table of any format.

Disadvantages of the Keywordtool service:

  • the free version does not provide data on the frequency of search queries;
  • there is no way to load keywords at once as a list;
  • searches for keywords only for phrases that they can be included in, does not take into account possible synonyms

Ubersuggest


The semantic core of the site in the Ubersuggest service can be created based on the search queries of users from almost any country in the world in any language. If you use the free version, you will receive up to 750 search phrases per request.

The advantage of the service is the ability to sort the list of keywords in alphabetical order, taking into account the prefix. All search queries are automatically grouped, which makes it easier to work with them when forming the semantic core of the site.

As a disadvantage of Ubersuggest, one can single out incorrect data on the frequency of search queries in the free version of the program and the inability to search by keyword synonyms.

Ahrefs Keywords Explorer


This service can collect keywords for your semantic core in a broad, phrasal and exact match in the selected region, taking into account the frequency level.

There is an option to select negative keywords and view the TOP search results in Google by your main keywords.

The main disadvantages of Ahrefs Keywords Explorer are only the paid version of the program and the dependence of the data accuracy on the relevance of the databases.

Frequently asked questions on compiling the semantic core of the site

  • How many keys are enough to create the semantic core of the site (100, 1000, 100,000)?

This question cannot be answered unequivocally. It all depends on the specifics of the site, its structure, the actions of competitors. The optimal number of keys is determined individually.

  • Is it worth using ready-made databases of key phrases to form the semantic core of the site?

You can find many different resources on the Internet with themed keybases. For example, Baza Pastukhov, UP Base, Mutagen, KeyBooster, etc. This is not to say that you should not use such sources. Such databases contain significant archives of search queries that will be useful to you for website promotion.

But be aware of metrics such as key competitiveness and relevance. Also keep in mind that your competitors can use ready-made databases too. Another disadvantage of such sources is the likelihood of the absence of key phrases that are meaningful to you.

  • How to use the semantic core of the site?

Key phrases selected to create a semantic core are used to generate a relevance map. It includes the title, description and h1-h6 headings, which are needed to promote the site. Also, the keys are taken as the basis for writing SEO texts for the pages of the site.

  • Should I take queries with zero frequency for the semantic core of the site?

This is advisable in the following cases:

  1. If you spend a minimum of resources and time to create pages with such keys. For example, generating SEO filter pages automatically in online stores.
  2. Zero frequency is not absolute, that is, at the time of collecting information, the frequency level is zero, but the history of the search engine shows requests for this word or phrase.
  3. Zero frequency only in the selected region, in other regions the frequency level for this key is higher.

5 common mistakes when assembling a semantic core for a website

  1. Avoiding highly competitive keyword phrases. This does not oblige you at all costs to display the site in the TOP using this key. You can use such a search phrase as an addition to the semantic core, as a content idea.
  2. Refusal to use keys with low frequency... You can also use similar search terms in the form of content ideas.
  3. Creation of Internet pages for individual search queries. You've probably seen sites that have their own page for similar queries (for example, "buy a wedding cake" and "make a custom wedding cake"). But the user who enters these requests actually wants the same thing. There is no point in making multiple pages.
  4. Create the semantic core of the site solely using services. Of course, collecting keys automatically makes life easier. But their value will be minimal if you do not analyze the result. After all, only you understand the specifics of the industry, the level of competition and know everything about your company's events.
  5. Over-focusing on collecting keys... If you have a small site, then start by collecting semantics using Yandex or Google services. You should not immediately engage in the analysis of the semantic core on competitors' sites or collecting keys from different search engines. All of these methods will come in handy when you realize that it's time to expand the kernel.

Or maybe it is better to order the compilation of the semantic core of the site?

You can try to compose the semantic core yourself using the free services that we talked about. For example, Google's Keyword Planner might work well for you. But if you are interested in building a large, high-quality semantic core, plan this line item in your budget.

On average, the development of the semantic core of the site will cost from 30 to 70 thousand rubles. As you remember, the final price depends on the business topic and the optimal number of search queries.

Not to buy a pig in a poke

A high-quality semantic core will not come cheap. To make sure that the performer understands this work and will do everything at a high level, ask him to collect test semantics for one request. This is usually done for free.

To check the results obtained, pass the list of keys through Mutagen and analyze how many of them are high-frequency and low-competitive. Often, performers provide lists with a large number of key phrases, many of which are completely unsuitable for further use.


Array (=> 21 [~ ID] => 21 => 09/28/2019 13:01:03 [~ TIMESTAMP_X] => 09/28/2019 13:01:03 => 1 [~ MODIFIED_BY] => 1 => 09/21. 2019 10:35:17 [~ DATE_CREATE] => 09/21/2019 10:35:17 => 1 [~ CREATED_BY] => 1 => 6 [~ IBLOCK_ID] => 6 => [~ IBLOCK_SECTION_ID] => => Y [~ ACTIVE] => Y => Y [~ GLOBAL_ACTIVE] => Y => 500 [~ SORT] => 500 => Articles by Dmitry Svistunov [~ NAME] => Articles by Dmitry Svistunov => 11076 [~ PICTURE] = > 11076 => 7 [~ LEFT_MARGIN] => 7 => 8 [~ RIGHT_MARGIN] => 8 => 1 [~ DEPTH_LEVEL] => 1 => Dmitry Svistunov [~ DESCRIPTION] => Dmitry Svistunov => text [~ DESCRIPTION_TYPE ] => text => Articles by Dmitry Svistunov Dmitry Svistunov [~ SEARCHABLE_CONTENT] => Articles by Dmitry Svistunov Dmitry Svistunov => statyi-dmitriya-svistunova [~ CODE] => statyi-dmitriya-svistunova => [~ XML_ID] => => [~ TMP_ID] => => [~ DETAIL_PICTURE] => => [~ SOCNET_GROUP_ID] => => /blog/index.php?ID=6 [~ LIST_PAGE_URL] => /blog/index.php?ID=6 => /blog/list.php? SECTION_ID = 21 [~ SECTION_PAGE_URL] => /blog/list.php?SECTION_ID=21 => blog [~ IBLOCK_TYPE_ID] => blog => blog [~ IBLOCK_CODE] => blog => [~ IBLOCK_EXTERNAL_ID] => => [ ~ EXTERNAL_ID] =>)

Hello everyone!

What to do with the semantic core? This question is asked, probably, by all newbies in SEO-promotion (judging by myself) and for good reason. Indeed, at the initial stages, a person does not understand why he was sitting so much and collecting keywords for the site, or using other tools. Since I also suffered with this question for a long time, I will release, perhaps, a lesson on this topic.

What is the purpose of assembling the semantic core?

First, let's figure out why we were collecting the semantic core in general. So, all SEO promotion is based on the use of keywords that users enter into the search boxes. Thanks to them, things like the structure of the site and its content are created, which in fact are the main factors in.

Also, do not forget about external optimization, in which the semantic core plays an important role. But more on that in the next lessons.

To summarize: SJ is necessary for:

  • Creation of a site structure that will be understandable to both search engines and ordinary users;
  • Content creation. Content nowadays is the main way to promote a site in the search results. The higher the quality of the content, the higher the site is; the more quality content, the higher the site is. More on creating quality content, more;

What to do with the semantic core after compilation?

So, after you have compiled the semantic core, that is: collected the keywords, cleaned and grouped them, you can start forming the structure of the site. In fact, when you grouped the requests as we did in lesson 145, you have already created the structure of your web resource:

You just need to implement it on the site and that's it. Thus, you will form a structure not based on what you have in your assortment, but on the basis of consumer demand. By doing so, you will not only benefit the web resource in terms of SEO, but also do the right thing from the point of view of the business as a whole. It’s not for nothing that they say: if there is demand, then there must be supply.

We seem to have figured out the structure, now let's move on to the content. Once again, having grouped the queries in the Key Collector, you have found themes for your future content with which you will fill the pages. For example, let's take the Mountain Bikes group and break it down into small subgroups:


Thus, we have created two subgroups with key queries for separate pages. Your task at this stage is to form groups (clusters) so that each cluster contains semantically identical keywords, that is, identical in meaning.

Remember one rule: each cluster has a separate page.

So, of course, it is not very convenient for beginners to group, since you need to have a certain skill, so I will show another way of forming topics for articles. Let's use Excel this time:


Already on the basis of the resulting data, you can form individual pages.

So I carry out clustering (grouping) and everything suits me perfectly. I think that now you understand what to do with the semantic core after compilation.

Perhaps the example given in this lesson is too general, since it does not give a specific picture. I just want to convey to you the very essence of the action, and then you yourself will work with your head. So I apologize in advance.

If this lesson became useful for you and helped in solving the problem, then please share the link on social networks. And, of course, subscribe to blog updates if you haven't already.

Good luck, friends!

See you soon!

Greetings, my dear readers!

I am sure that many of you do not even hear, but do not even guess that there is such a thing as a semantic core! And what is it you ask? - I will try to explain to you in simple words. The semantic core is a set of keywords, phrases, simple sentences, phrases, etc., which are issued by a search engine (hereinafter referred to as PS) when you enter a query in the browser line.

What is the semantic core for? The semantic core of the site is the basis for promotion and promotion, it is necessary for internal optimization. Without a semantic core, the promotion of your project (site) will not be effective. The more competently the semantic core of the site is composed, the less money you will need for its successful promotion. Nothing is clear yet, right? Do not be alarmed, then I will try to put everything on the shelves as detailed as possible. Read carefully and you will understand everything!

How to build a semantic core!

The first thing you need to do after you have decided on the topic of your blog is to create a semantic core. To do this, you need to take a notebook and a pen and write down all the words, phrases, sentences that characterize the topic of your blog. Each word, phrase or sentence will, in fact, be future titles for your posts, and the more words you come up with, the more choice you will have when writing articles in the future.

And it will take you a lot of time to make a fairly solid list (200-300 words). Therefore, for convenience, we will use special services such as Yandex wordstat, Google adwords, Rambler adstat, they will greatly simplify the task for us. Of course, only Yandex and Google could be dispensed with, since these are giants in the search for key queries compared to Rambler, but statistics show that 5-6% of people still use Rambler as a search engine, so let's not neglect it.

To make it much easier for you to master the material, I will show everything with specific examples. You must admit that theory is good, but when it comes to practice, many have problems. Therefore, together we will compose the semantic core so that in the future you can easily transfer the knowledge and experience gained to the topic of your blog. Let's say the theme of your blog is “Photoshop » and everything connected with it. Therefore, as it was written above, you must come up with and write down in a notebook as many words, phrases, phrases, expressions - you can call them whatever you like. Here are the words that I characterize with the theme of the blog about photoshop. Of course, I will not list the entire list of words, but only a part, so that you would understand the very meaning of compiling the semantic core:

brushes for photoshop
brushes for photoshop
Photoshop brushes
photoshop brushes
Photoshop effects
photoshop effects
photoeffect
pictures photoshop
photoshop drawings
collage
photo collage
photomontage
photo frames
photo design

The list has been compiled. Well, let's start. I'll make a reservation right away, your list may be much different from mine and should be much larger. I have compiled this list of words for clarity, so that you grasp the very essence of how to compose a semantic core.

Keyword statistics Yandex wordstat

After your list is formed, it is necessary to weed out all the words that we do not need, by which we will definitely not be promoting our blog. For example, I will not advance by words such as (brushes for photoshop torrent, brushes for photoshop makeup), these phrases are not clear to me at all, we also filter out similar phrases such as (brushes for photoshop for free and brushes for photoshop for free). I think the meaning of keyword selection is clear to you.

Further, you see that there are two columns in Yandex wordstat. The column on the left shows you what people were looking for by typing into the search bar, in our case the phrase "Photoshop brushes". The right column shows what else people looking for the phrase "Photoshop brushes" were looking for, I advise you not to ignore the right column, but choose from it all the words that are suitable for your topic.

Okay, we've figured it out too, let's move on. Another very important point, as you can see in the search result for "Photoshop brushes" we see a huge number of 61134 requests! But this does not mean that the phrase "Photoshop brushes" was hammered so many times a month into the Yandex search bar. Yandex wordstat is designed in such a way that if we allow you to drive in the phrase "Photoshop brushes", it will give you the number of requests, which will mean how many times people have searched for any word forms (Photoshop brushes, Photoshop brushes a, cysts b Photoshop, etc.), phrases (sentences) (free Photoshop brushes, download Photoshop brushes for free, etc.), in which the phrase "Photoshop brushes" is present. I think this is also understandable.

In order for Yandex wordstat to give us a (relatively) exact number of requests, there are special operators such as ("", "!"). If you enter the phrase "Photoshop brushes" in quotes, you will see a completely different number, which shows you how many times people searched for the phrase "Photoshop brushes" in different word forms (Photoshop brushes a etc.).

When you enter the phrase "! Brushes! For! Photoshop" in quotes and with an exclamation mark, we will get the exact number of queries "! Brushes! For! Photoshop" as it is, i.e. without any declensions, word forms and phrases. I think you get the point, chewed it up as best I could.

So after you have formed an impressive list in excel, you need to apply the operator "!" To each word (phrase). When you are done, you will have a list with the exact number of requests / per month, which will need to be adjusted again.

But more on that later, after we look at two other keyword selection systems (Google adwords and Rambler adstat). Since after considering them, your list of keywords will be significantly replenished.

Searching for keywords Google adwords

For the selection of keywords, they also use Google adwords, this is a similar service with Yandex wordstat. Let's just go over here. A window for selecting keywords Google adwords will open in front of us. In the same way, we drive in the first phrase from our list of "Photoshop brushes" into the search bar. Please note that there are no operators in Google adwords, you just need to check the box next to the word [Exact] in the column "Match types". As we can see, the number of requests / per month in Google adwords differs significantly from Yandex wordstat. This suggests that more people still use the Yandex search engine. But if you look through the entire list, you can find those keywords that Yandex wordstat does not show at all.

Also, in Google adwords, you can find out a lot more interesting things (for example, the approximate cost per click), which should also be taken into account when selecting keywords. The higher the CPC, the more highly competitive the request. I will not dwell here in detail, the principle of selecting keywords is similar to Yandex wordstat, and with a little digging, you yourself can figure it out. Move on.

Statistics on search queries Rambler adstat

As I mentioned above, Rambler adstat is much inferior to the two previous services, but still, you can also get some information from it. Let's just go over here and in the same way enter the first phrase from our list of "Photoshop brushes" in the search bar. Here, I think, it is also not worth dwelling in detail. I will repeat once again the principle of selecting keywords for all three systems is similar.

We have familiarized ourselves with three keyword selection services. As a result, you have a huge list, formed from all three services, in which you have already made a selection for those requests for which you do not plan to advance and requests for backup. I already wrote about this above. But this is only halfway to the compilation of the semantic core. Your brains are probably already boiling, but in fact, if you delve into this and figure it out, then there is nothing complicated here. Believe me, it is better to correctly compose the semantic core once, than in the future you will have to correct everything. And fixing is much more difficult than doing everything from scratch. So please be patient and move on.

HF, MF and LF requests or VChZ, SCHZ and NCHZ

When compiling the semantic core, there are also concepts such as high-frequency, medium-frequency and low-frequency requests, or they are also called HF, MF and LF requests, there can also be VChZ, SCHZ and NCHZ. These are the queries that people enter into search engines. The more people enter the same query in the search bar, the higher the frequency will be the query (HF query), the same with MF and LF queries. I hope this is clear too.

Now remember one very important point. At the initial stage of blog development, it should be promoted only for low-frequency requests, sometimes mid-frequency requests are also used, this will depend on the competitiveness of the request. You are unlikely to be able to respond to RF requests, you simply don’t have enough money for this. Do not be alarmed by LF requests to reach the TOP without investing funds. You most likely have a question, which requests are considered HF requests, MF requests and LF requests?

Here I think no one can give the exact answer! It will be different for blogs of different topics. There are very popular topics in which the exact number of requests ("!") Reaches 20 thousand impressions / per month or more (for example, "! Photoshop tutorials"), and there are less popular ones, in which the exact number of requests does not reach even 2000 impressions / month (eg "! lessons! English").

In this case, I adhere to a simple formula that I calculated for myself, I will demonstrate it with the example of "! Lessons! Photoshop":

VK, SK and NK requests VKZ, VKZ and NKZ

In addition to HF, MF and LF requests, there is another category. These are highly competitive (VK), medium competitive (SK) and low competitive (NK) requests; VKZ, VKZ and NKZ can also occur. In this case, we need to determine the competitiveness of those queries for which we plan to move to the TOP, but there will be a separate post about this on the topic "". ... In the meantime, let's assume that HF ​​requests are VK requests, MF - SK and LF - NC. In most cases, this formula works, but there are exceptions, when, for example, LF requests are highly competitive (VC) and vice versa, HF requests are HF. It all depends on the topic of the blog.

Semantic core compilation scheme

For clarity, let's look at a schematic example of a semantic core. This is what the standard semantic core schema should look like.

But do not get too attached to this scheme, because as you blog, it may change for you. At the initial stage, you may have, let's say, only four headings containing three LF queries, but over time everything may change.

Most of you will not understand anything, especially those who first come across the semantic core. It's okay, I also did not understand many things at first, until I studied the topic very well. I do not want to say that I am a pro in this topic, but I learned a lot. And, as promised, let's analyze everything with a specific example and according to our topic.

I want to say right away that I am not an expert in "Photoshop", just this topic came to my mind when writing a post. Therefore, I selected the queries according to the meaning. Okay, so here is the scheme of the semantic core I got on the topic of "photoshop". You should get something like this:

Types of requests

All queries (our keywords) can be divided into three categories:

  • Primary queries- these are those requests that in one or two words can give a general definition of your resource or part of it. Primary queries that cover the most general topics of your blog are best left on the home page. In our case, these are: Photoshop lessons, Photoshop effects, how to make a photo collage.
    Primary queries that less cover the general topic of your blog, but most accurately characterize some part of it, are recommended to be used as separate headings of your blog. In our case, these are: Photoshop brushes, Photoshop frames, Photoshop templates, photo design.
  • Basic queries- these are the queries that quite accurately determine the topic of your project and are able to provide useful information to the reader, teach him what he wants, or answer the frequently asked question HOW ??? That is, in our case it is: how to add brushes in Photoshop, how to make a template in Photoshop, how to make a photo collage in Photoshop, etc. Essential queries, in fact, should be the headings of our future articles.
  • Additional (auxiliary) queries or they are also called associative- these are the queries that people also entered into the search bar of the browser when searching for the main query. Those. these are key phrases that are part of the main query. They will, as it were, complement the main query, and serve as keywords when promoting it to the TOP. For example: Photoshop for beginners online, Photoshop remove red-eye, a collage of several photos. I think that's understandable.

Semantic Core Compilation Strategy

Now we need to paginate the entire list. Those. you need to select the primary queries from all your keywords, which will be the headings of your blog and make separate tabs in excel. Next, select the main and auxiliary queries related to them and place them on different pages in the excel document you created (that is, by headings). That's what I did:

As I wrote above: at the initial stage, it is worth promoting your blog for low-frequency or NK queries. And what to do with MF (SK) and HF (VK) requests, you ask? Let me explain.

You are unlikely to succeed in promoting HF (VK) requests, so you can delete them, but it is recommended to leave one or two HF (VK) requests for the main page. Immediately I will make a reservation: you do not need to rush to the most high-frequency request, such as "Photoshop", which has the exact number of impressions / per month - 163384. For example, you want to teach people to work in Photoshop with the help of your blog. So take as a basis the high-frequency query - "Photoshop lessons", which has an exact number of impressions / per month - 7110. This query characterizes your topic more and it will be easier for you to advance on it.

But the midrange (SC) queries can be placed on a separate page in excel. As your blog rises in the eyes of the PS, they (MF (SK) queries) will gradually become in demand.

I know that beginners now do not understand at all what I am talking about, I advise you to read an article about that, after studying which you will understand everything.

Conclusion

In principle, that's probably all. Of course, there are programs to help you with compiling a semantic core both paid (Key Kollektor) and free (Slovoyob, Slovoder), but I will not write about them in this post. Perhaps, someday I will write a separate article about them. But they will only pick up keywords for you, and you will have to categorize them by headings and posts yourself.

How do you compose the semantic core? Or maybe you don't compose it at all? What programs and services do you use when compiling? I will be glad to hear your answers in the comments!

And finally, watch an interesting video.

Semantic Core is a scary name that SEOs have come up with to refer to a fairly simple thing. We just need to select the key queries for which we will promote our site.

And in this article I will show you how to correctly compose the semantic core so that your site quickly goes to the TOP, and does not stagnate for months. It also has its own "secrets".

And before we move on to compiling the SY, let's take a look at what it is and what we should eventually come to.

What is the semantic core in simple words

Strange as it may seem, but the semantic core is a regular excel file, which contains a list of key queries for which you (or your copywriter) will write articles for the site.

For example, this is how my semantic core looks like:

I have marked in green those keywords for which I have already written articles. Yellow - those for which I am going to write articles in the near future. And colorless cells - this means that it will come to these requests a little later.

For each key request, I have determined the frequency, concurrency, and came up with a "catchy" heading. You should get about the same file. Now my SN consists of 150 keywords. This means that I am provided with "material" for at least 5 months in advance (even if I write one article a day).

Below we will talk about what to prepare for if you suddenly decide to order the collection of the semantic core from specialists. Here I will say briefly - you will be given the same list, but only for thousands of "keys". However, in SA, it is not quantity that is important, but quality. And we will focus on this.

Why do you need a semantic core at all?

And in fact, why do we need this torment? You can, after all, just write quality articles and attract an audience by this, right? Yes, you can write, but you won't be able to attract.

The main mistake 90% of bloggers make is just writing high-quality articles. I'm not kidding, they have really interesting and useful content. But the search engines don't know about it. They are not psychics, they are just robots. Accordingly, they do not put your article in the TOP.

There is another subtle point here with the title. For example, you have a very high-quality article on the topic “How to do business in a“ mordo book ”. There you describe everything about Facebook in great detail and professionally. Including how to promote communities there. Your article is the highest quality, useful and interesting article on this topic on the Internet. Nobody was lying next to you. But it still won't help you.

Why high-quality articles fly out of the TOP

Imagine that your site is not visited by a robot, but by a live inspector (assessor) from Yandex. He realized that you have the coolest article. And rukami put you in first place in the search results for the request "Promotion of the community on Facebook."

Do you know what happens next? You will fly out of there very soon. Because on your article, even in the first place, no one will click. People enter the request “Community promotion on Facebook”, and your headline is “How to do business in a“ mordobook ”correctly. Original, fresh, funny, but ... not on request. People want to see exactly what they were looking for, not your creative.

Accordingly, your article will idle to occupy a place in the TOP of the SERP. And a living assessor, an ardent admirer of your creativity, can beg the authorities as much as they want to leave you at least in the TOP-10. But it won't help. All the first places will be occupied by articles, empty, like the husks of seeds, which were copied from each other by yesterday's schoolchildren.

But these articles will have the correct "relevant" title - "Promoting the Facebook community from scratch" ( step by step, in 5 steps, from A to Z, free etc.) Offensive? Still would. Well, fight against injustice. Let's put together a competent semantic core so that your articles take the first places they deserve.

Another reason to start making up SJ right now

There is one more thing that for some reason people think a little about. You need to write articles often - at least every week, and preferably 2-3 times a week in order to gain more traffic and faster.

Everyone knows this, but almost no one does it. And all because they have "creative stagnation", "they can not force themselves in any way", "just laziness." But in fact, the whole problem is precisely in the absence of a specific semantic core.

I entered one of my basic keys - "smm" into the search field, and Yandex immediately gave me a dozen tips, what else might be of interest to people who are interested in "smm". I just have to copy these keys into a notebook. Then I will check each of them in the same way, and collect clues for them as well.

After the first stage of collecting SN, you should have a text document in which there will be 10-30 wide basic keys, with which we will work further.

Step # 2 - Parsing Base Keys in SlovoEB

Of course, if you write an article for the request "webinar" or "smm", then a miracle will not happen. You will never be able to reach the TOP for such a broad request. We need to split the base key into many small queries on this topic. And we will do this with the help of a special program.

I am using KeyCollector but it is paid. You can use a free analogue - the SlovoEB program. You can download it from the official website.

The most difficult thing in working with this program is to configure it correctly. I am showing how to properly configure and use Slovoeb. But in that article, I focus on the selection of keys for Yandex Direct.

And here, let's take a step-by-step look at the features of using this program for compiling a semantic core for SEO.

First, we create a new project, and name it according to the broad key that you want to parse.

I usually give the project the same name as my base key so I don't get confused later. And yes, I will warn you of one more mistake. Don't try to parse all base keys at the same time. Then it will be very difficult for you to filter out “empty” keywords from gold grains. Let's parse one key at a time.

After creating the project, we carry out the basic operation. That is, we actually parse the key through Yandex Wordstat. To do this, click on the "Vorstat" button in the program interface, enter your basic key, and click "Start collection".

For example, let's parse the base key for my "contextual advertising" blog.

After that, the process will start, and after a while the program will give us a result - up to 2000 key queries, which contain "contextual advertising".

Also, next to each request there will be a "dirty" frequency - how many times this key (+ its word forms and tails) was searched per month through Yandex. But I do not advise you to draw any conclusions from these numbers.

Step # 3 - Collecting Accurate Key Frequencies

Dirty frequency won't show us anything. If you focus on it, then do not be surprised later when your key for 1000 requests does not bring a single click per month.

We need to bring out the pure frequency. And to do this, we first select all the keys found with checkmarks, and then click on the "Yandex Direct" button and start the process again. Now Slovoeb will search for the exact frequency of the request per month for each key.

Now we have an objective picture - how many times a request was entered by Internet users in the last month. Now I propose to group all key queries by frequency, so that it is more convenient to work with them.

To do this, click on the "filter" icon in the "Frequency" column! ", And specify - to filter out keys with the value" less than or equal to 10 ".

Now the program will show you only those queries, the frequency of which is less than or equal to the value "10". You can delete these queries or copy them for the future to another group of key queries. Less than 10 is very little. Writing articles for these queries is a waste of time.

Now we need to choose those keywords that will bring us more or less good traffic. And for this we need to find out one more parameter - the level of concurrency of the request.

Step # 4 - Checking Competitive Queries

All "keys" in this world are divided into 3 types: high-frequency (HF), mid-frequency (MF), low-frequency (LF). They can also be highly competitive (VC), medium competitive (SK) and low competitive (NK).

As a rule, HF requests are simultaneously received by VC. That is, if a request is often searched for on the Internet, then there are a lot of sites that want to promote it. But this is not always the case, there are happy exceptions.

The art of compiling a semantic core lies precisely in finding such queries that have a high frequency, and their level of competition is low. It is very difficult to determine the level of competition manually.

You can focus on indicators such as the number of main pages in the TOP-10, the length and quality of texts. the level of trust and particles of sites in the TOP of the issuance on request. All of this will give you some idea of ​​how tough the battle for positions is for this particular query.

But I recommend that you take advantage of service Mutagen... It takes into account all the parameters that I mentioned above, plus a dozen more that neither you nor I have probably even heard of. After analysis, the service gives the exact value - what is the level of competition for this request.

Here I checked the query "setting up contextual advertising in google adwords". The mutagen showed us that this key has a competitiveness of "more than 25" - this is the maximum value that it shows. And this query has only 11 views per month. So it definitely doesn't suit us.

We can copy all the keys we picked up in Slovoeb and do a bulk check in Mutagen. After that, we will only have to look at the list and take those requests that have a lot of requests and a low level of competition.

Mutagen is a paid service. But you can do 10 checks a day for free. In addition, the cost of verification is very low. For all the time I have worked with him, I have not yet spent even 300 rubles.

By the way, at the expense of the level of competition. If you have a young site, then it is better to choose queries with a competition level of 3-5. And if you have been promoting for more than a year, then you can take 10-15.

By the way, at the expense of the frequency of requests. We now need to take the final step, which will allow you to attract a lot of traffic even for low-frequency requests.

Step # 5 - Collecting Tails for Selected Keys

As it has been proven and verified many times, your site will receive the bulk of traffic not from the main keys, but from the so-called "tails". This is when a person enters strange keywords into the search box, with a frequency of 1-2 per month, but there are a lot of such requests.

To see the "tail" - just go to Yandex and enter your chosen keyword in the search bar. Here's what you will see roughly.

Now you just need to write out these additional words in a separate document and use them in your article. Moreover, you do not need to always put them next to the main key. Otherwise, search engines will see "over-optimization" and your articles will drop in the search results.

Just use them in different places in your article, and then you will receive additional traffic from them as well. I would also recommend that you try to use as many word forms and synonyms as possible for your main keyword query.

For example, we have a request - "Setting up contextual advertising". Here's how to reformulate it:

  • Customize = customize, make, build, run, run, enable, host ...
  • Contextual advertising = context, direct, teaser, YAN, adwords, cms. direct, adwords ...

You never know exactly how people will look for information. Add all these additional words to your semantic core, and use them when writing texts.

So, we collect a list of 100 - 150 keywords. If this is your first time compiling the semantic core, it may take you several weeks.

Or maybe well, break his eyes? Maybe there is an opportunity to delegate the preparation of the CL to specialists who will do it better and faster? Yes, there are such specialists, but you don't always need to use their services.

Should I order a CJ from specialists?

By and large, the specialists in compiling the semantic core will only take you steps 1 - 3 from our diagram. Sometimes, for a large additional fee, steps 4-5 will also be done - (collecting tails and checking the competitiveness of requests).

After that, they will give you several thousand keywords that you will need to work with in the future.

And the question here is, are you going to write articles yourself, or hire copywriters for this. If you want to focus on quality, not quantity, then you have to write yourself. But then it won't be enough for you just to get a list of keys. You will need to choose topics that you know well enough to write a quality article.

And this is where the question arises - why, then, are we actually needed specialists in SY? Agree, parsing the base key and collecting the exact frequencies (steps # 1-3) is not at all difficult. It will take you literally half an hour of time.

The most difficult thing is to select RF requests, which have low competition. And now, as it turns out, you need HF-NK, on ​​which you can write a good article. This is exactly what will take you 99% of your time working on the semantic core. And no specialist will do this for you. Well, is it worth spending money on ordering such services?

When the services of a specialist in CN is useful

It's another matter if you initially plan to attract copywriters. Then you do not need to understand the subject of the request. Your copywriters will not understand it either. They will simply take a few articles on this topic and compile their own text from them.

Such articles will be empty, squalid, almost useless. But there will be many of them. On your own, you can write a maximum of 2-3 high-quality articles per week. And the army of copywriters will provide you with 2-3 shit text a day. At the same time, they will be optimized for requests, which means they will attract some kind of traffic.

In this case, yes, feel free to hire a specialist in YA. Let them also compose TK for copywriters at the same time. But you understand, it will also cost some money.

Summary

Let's go over the main points in the article again to consolidate the information.

  • The semantic core is simply a list of keywords for which you will write articles on the site for promotion.
  • It is necessary to optimize the texts for the exact key queries, otherwise your even the highest quality articles will never go to the TOP.
  • SN is like a content plan for social media. It helps you not to fall into a "creative crisis" and always know exactly what you will be writing about tomorrow, the day after tomorrow and in a month.
  • To compile the semantic core, it is convenient to use the free Slovoeb program, you just need it.
  • There are five steps to compiling a CL: 1 - Selecting base keys; 2 - Parsing base keys; 3 - Collecting the exact frequency for requests; 4 - Checking the concurrency of keys; 5 - Collection of "tails".
  • If you want to write articles yourself, then it is better to make the semantic core yourself, for yourself. The CL compilers will not be able to help you here.
  • If you want to work for quantity and use copywriters to write articles, then it is entirely possible to involve delegate and compilation of the semantic core. If only there was enough money for everything.

Hope this tutorial was helpful to you. Save it to your favorites so as not to lose it, and share with your friends. Don't forget to download my book. There I show you the fastest way from zero to the first million on the Internet (extract from personal experience for 10 years =)

See you later!

Your Dmitry Novosyolov

Let's write a simple kernel that can be loaded with the x86 GRUB bootloader. This kernel will display a message on the screen and wait.

How does an x86 system boot?

Before we start writing the kernel, let's understand how the system boots and transfers control to the kernel.

In most of the processor registers, at startup, certain values ​​are already found. The register pointing to the address of instructions (Instruction Pointer, EIP) stores the memory address at which the instruction being executed by the processor lies. EIP defaults to 0xFFFFFFF0... Thus, x86 processors at the hardware level start working at 0xFFFFFFF0. This is actually the last 16 bytes of the 32-bit address space. This address is called the reset vector.

Now the chipset memory card ensures that 0xFFFFFFF0 belongs to a specific part of the BIOS, not RAM. At this time, the BIOS copies itself into RAM for faster access. Address 0xFFFFFFF0 will only contain an instruction to jump to an address in memory where a copy of the BIOS is stored.

This is how the BIOS code starts executing. First, the BIOS looks for a device to boot from, in a preset order. Looking for a magic number that determines whether the device is bootable (511th and 512th bytes of the first sector must be equal to 0xAA55).

When the BIOS finds a boot device, it copies the contents of the first sector of the device into RAM, starting at the physical address 0x7c00; then navigates to the address and executes the loaded code. This code is called bootloader.

The bootloader loads the kernel at a physical address 0x100000... This address is used as the starting address in all large kernels on x86 systems.

All x86 processors start in a simple 16-bit mode called real regime... GRUB bootloader switches mode to 32-bit protected mode by setting the lower bit of the CR0 register to 1 ... Thus, the kernel boots in 32-bit protected mode.

Note that in the case of the Linux kernel, GRUB sees the Linux boot logs and loads the kernel in real mode. The kernel automatically switches to protected mode.

What we need?

  • x86 computer;
  • Linux;
  • ld (GNU Linker);

Setting the entry point in assembler

As much as I would not like to limit myself to one C, I have to write something in assembler. We will write a small file on it that will serve as the starting point for our kernel. All it will do is call an external function written in C and stop the program flow.

How can we make sure that this code is exactly the starting point?

We will use a linker script that links the object files to create the final executable. In this script, we will explicitly indicate that we want to load data at 0x100000.

Here is the assembler code:

;; kernel.asm bits 32; nasm directive - 32 bit section .text global start extern kmain; kmain is defined in the c file start: cli; block interrupts mov esp, stack_space; set stack pointer call kmain hlt; halt the CPU section .bss resb 8192; 8KB for stack stack_space:

The first instruction, bits 32, is not an x86 assembly instruction. This is a directive to the NASM assembler to generate code for a processor running in 32-bit mode. In our case, this is not necessary, but generally useful.

The section with the code begins on the second line.

global is another NASM directive that makes source code symbols global. Thus, the linker knows where the start symbol is located - our entry point.

kmain is a function that will be defined in the kernel.c file. extern means the function is declared somewhere else.

Then comes the start function, which calls the kmain function and stops the processor with the hlt instruction. That is why we disable interrupts in advance with the cli instruction.

Ideally, we want to allocate some memory and point to it with a stack pointer (esp). However, it looks like GRUB has already done this for us. However, you will still allocate some space in the BSS section and move the stack pointer to its beginning. We use the resb instruction, which reserves the specified number of bytes. Immediately before calling kmain, the stack pointer (esp) is set to the desired location with the mov instruction.

Core in C

In kernel.asm, we made a call to the kmain () function. Thus, our "sish" code should start execution with kmain ():

/ * * kernel.c * / void kmain (void) (const char * str = "my first kernel"; char * vidptr = (char *) 0xb8000; // video mem begins here. unsigned int i = 0; unsigned int j = 0; / * this loops clears the screen * there are 25 lines each of 80 columns; each element takes 2 bytes * / while (j< 80 * 25 * 2) { /* blank character */ vidptr[j] = " "; /* attribute-byte - light grey on black screen */ vidptr = 0x07; j = j + 2; } j = 0; /* this loop writes the string to video memory */ while(str[j] != "\0") { /* the character"s ascii */ vidptr[i] = str[j]; /* attribute-byte: give character black bg and light grey fg */ vidptr = 0x07; ++j; i = i + 2; } return; }

All our kernel will do is clear the screen and print the string “my first kernel”.

First, we create a vidptr pointer that points to the address 0xb8000... "Video memory" begins from this address in protected mode. For displaying text on the screen, we reserve 25 lines of 80 ASCII characters, starting at 0xb8000.

Each character is displayed not with the usual 8 bits, but 16. The first byte contains the character itself, and the second - the attribute-byte. It describes the formatting of a symbol, such as its color.

To display a green s character on a black background, we write this character in the first byte and the value 0x02 in the second. 0 means black background, 2 means green text color.

Here is the color chart:

0 - Black, 1 - Blue, 2 - Green, 3 - Cyan, 4 - Red, 5 - Magenta, 6 - Brown, 7 - Light Gray, 8 - Dark Gray, 9 - Light Blue, 10 / a - Light Green, 11 / b - Light Cyan, 12 / c - Light Red, 13 / d - Light Magenta, 14 / e - Light Brown, 15 / f - White.

In our kernel, we will be using light gray text on a black background, so our byte attribute will be 0x07.

In the first loop, the program outputs an empty character over the entire 80x25 zone. This will clear the screen. In the next loop, characters from the null-terminated string “my first kernel” with the attribute byte equal to 0x07 are written to the “video memory”. This will print the string to the screen.

Connecting part

We have to compile kernel.asm into an object file using NASM; then use GCC to compile kernel.c into another object file. Then they need to be attached to the executable bootable kernel.

To do this, we will use a bind script that is passed to ld as an argument.

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

First, we will set output format as 32-bit Executable and Linkable Format (ELF). ELF is the standard binary file format for x86 Unix systems. ENTRY takes one argument specifying the name of the symbol that is the entry point. SECTIONS is the most important part. It defines the markup of our executable file. We define how the different sections should be connected and where to place them.

In parentheses after SECTIONS, a period (.) Represents the position counter, which is 0x0 by default. It can be changed, which is what we do.

We look at the next line: .text: (* (. Text)). An asterisk (*) is a special character that matches any file name. The * (. Text) expression means all .text sections from all input files.

Thus, the linker combines all sections of the object file code into one section of the executable file at the address in the position counter (0x100000). After that, the counter value will be equal to 0x100000 + the size of the resulting section.

Similarly, everything happens with other sections.

Grub and Multiboot

All files are now ready to create a kernel. But there is one more step left.

There is a standard for booting x86 kernels using a bootloader called Multiboot specification... GRUB will only boot our kernel if it meets these specifications.

Following them, the kernel should contain the header in its first 8KB. In addition, this header must contain 3 fields, which are 4 bytes:

  • magical field: contains magic number 0x1BADB002 to identify the kernel.
  • field flags: we don't need it, set it to zero.
  • field checksum: if you add it with the previous two, you should get zero.

Our kernel.asm will become like this:

;; kernel.asm; nasm directive - 32 bit bits 32 section .text; multiboot spec align 4 dd 0x1BADB002; magic dd 0x00; flags dd - (0x1BADB002 + 0x00); checksum. m + f + c should be zero global start extern kmain; kmain is defined in the c file start: cli; block interrupts mov esp, stack_space; set stack pointer call kmain hlt; halt the CPU section .bss resb 8192; 8KB for stack stack_space:

Building the core

Now we will create object files from kernel.asm and kernel.c and link them using our script.

Nasm -f elf32 kernel.asm -o kasm.o

This line will run the assembler to generate the kasm.o object file in ELF-32 format.

Gcc -m32 -c kernel.c -o kc.o

The -c option ensures that no hidden linking occurs after compilation.

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

This will launch the linker with our script and create an executable called kernel.

Configuring grub and starting the kernel

GRUB requires the kernel name to match the pattern kernel- ... So rename the kernel. I named mine kernel-701.

Now put it in the directory / boot... This will require superuser rights.

In the GRUB config file grub.cfg add the following:

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

Don't forget to remove the hiddenmenu directive, if there is one.

Restart your computer and you will see a list of kernels with yours as well. Select it and you will see:

This is your core! Let's add an I / O system.

P.S.

  • For any kernel trick, it is better to use a virtual machine.
  • To run the kernel in grub2 the config should look like this: menuentry "kernel 7001" (set root = "hd0, msdos1" multiboot / boot / kernel-7001 ro)
  • if you want to use qemu emulator use: qemu-system-i386 -kernel kernel

© 2021 hecc.ru - Computer technology news