List of knowledge and skills that SEO department employees should have

When I needed to recruit employees for the SEO department, I was faced with the task of separating real specialists from those who simply want to appear so. Often people come to interviews who want to get a high salary, but are not ready for probationary periods or additional checks.

To simplify the selection process, a list of knowledge and skills that a real SEO specialist must possess has been compiled.

So, the knowledge requirements for an SEO specialist

Keyword analysis

1. Selection of keywords using:

  • 1.1 Brainstorming
  • 1.2 Search suggestions from popular search engines
  • 1.3 Special services for selecting keywords
  • 1.4 Client website statistics
  • 1.5 Analysis of words used by competitors
  • 1.6 Using offers from contextual advertising services
  • 1.7 Knowledge of the list of available search query databases and the ability to use them

2. Extending the query core:

  • 2.1 Enabling single and multiword queries
  • 2.2 Use of synonyms and abbreviations
  • 2.3 Combining words
  • 2.4 Typos
  • 2.5 Request masking

3. The ability to check whether users are searching for similar queries.

4. Analysis of competition for selected key phrases.

5. Selecting promising key queries.

Site structure

1. Knowledge of the principles of clustering key phrases.

  • 1.1 Ability to group keywords
  • 1.2 Ability to create a schematic site tree

Content

  • 1. Heading optimization </code></li><li>2. Optimizing the meta description (to increase CTR)</li><li>3. Heading optimization <code>x1-x6</code></li><li>4. Optimize content for usability and relevance</li></ul><h3>Links</h3><ul><li>1. Optimization of internal links and interlinking on the site</li><li>2. Carrying out link building work and filtering unnecessary links</li><li>3. Moderation of outgoing links</li><li>4. Checking the functionality of all links</li><li>5. Selection of donors for rental and permanent links</li></ul><h3>Technical knowledge requirements</h3><ul><li>1. Working with duplicate content:</li><ul><li>1.1 Setting up the main mirror (with or without www)</li><li>1.2 Formation and configuration of the file <code>robots.txt</code></li><li>1.3 Specifying the main host for Yandex in <code>robots.txt</code></li><li>1.4 Finding non-existent pages with a 404 error</li><li>1.5 Finding hidden duplicate content</li></ul><li>2. Registering a site in webmaster panels of various systems</li></ul><h3>Social factors</h3><ul><li>1. Ability to attract a fast bot for indexing through social networks</li><li>2. Knowledge of methods for speeding up page indexing through the webmaster panel</li></ul><h3>Workflow</h3><p>Ability to work with various tools such as:</p><ul><li>KayCollector</li><li>Crawlers</li><li>Meta data parsers</li><li>Working with Excel to analyze data</li></ul><h3>Analytics</h3><p>Ability to segment and analyze data using analytics tools such as Yandex.Metrica and other similar services.</p><h3>What to do if there is no time for training or lack of skills?</h3><p>In this case, you can use specialized services to automate processes and accelerate analysis, for example, OverLead.me.</p><p>If you have any questions about SEO optimization, you can contact the SEO studio "SEO COMPUTER" by email info@seo.computer.</p><p>ID 9035</p> </div> </div> </div> </section> <section id="consultation" class="py-5"> <div class="container"> <div class="form-bg-gradient bor-r-20 my-3 p-4 p-md-5"> <div class="head-title-white text-center">Send a request and we will provide a consultation on SEO promotion of your website</div> <form class="form row my-3 justify-content-center gy-2 needs-validation" id="form-consultation" action="https://seo.computer/form" method="post" novalidate=""> <input type="hidden" name="form_name" value="Отправьте заявку и мы бесплатно Блог"> <input type="hidden" name="_token" value="61yNG0ZMSqTbOqv7q1uTZWgtuvJAWBHUhiyBwmfA" autocomplete="off"> <div class="col-12 col-xl-3"> <input type="text" name="name" class="form-control form-padding rounded-5" placeholder="your name" required=""> </div> <div class="col-12 col-xl-3"> <input type="tel" name="phone" class="form-control form-padding rounded-5" placeholder="Phone number" required="" maxlength="18"> </div> <div class="col-12 col-xl-3"> <button type="submit" class="btn btn-send btn-light form-padding rounded-5 w-100">Send</button> </div> <div class="col-12 col-md-12"> <div class="text-center"> <a class="text-decoration-none text-white fs-14" href="https://seo.computer/policy">By submitting an application, you agree to the privacy policy</a> </div> </div> </form> </div> </div> </section> <footer class="footer-bg"> <style> .bottom-contact-bar { display:none; } @media(max-width:992px) { .bottom-contact-bar { display:block; position:fixed; bottom:0; left:0; right:0; z-index: 9999; } .footer-bg { padding-bottom: 16px; } .b24-widget-button-position-bottom-right, .social { margin-bottom: 24px; } } </style> <div class="navbar navbar-dark bg-dark py-1 bottom-contact-bar"> <div class="container justify-content-center"> <div class="nav-link mb-0 p-0 text-white d-flex align-items-center justify-content-center flex-wrap gap-2" style="font-size:0.85rem;text-align:center"> <a style="text-decoration:none; color:inherit; white-space:nowrap" href="mailto:info@seo.computer"><i class="fas fa-envelope me-1" style="font-size:0.75rem"></i>info@seo.computer</a> </div> </div> </div> <style>.norender{display:none;visibility:hidden;}</style> <div class="container"> <div class="row row-cols-4 col-md-12 text-light pt-3 pt-md-5 g-3"> <div class="col-12 col-xl-3 col-md-6 vcard" itemscope itemtype="http://schema.org/LocalBusiness"> <a class="url" href="https://seo.computer/en"> <img src="https://seo.computer/assets/svg/seo_logo.svg" alt="SEO Computer List of knowledge and skills that SEO department employees should have in Moscow" title="SEO Computer List of knowledge and skills that SEO department employees should have in Moscow" class="rounded-5" width="200" height="40" /> </a> <ul class="nav flex-column"> <li class="fn org" itemprop="name">SEO COMPUTER</li> <li class="category">Internet Marketing</li> <li>Opening hours: <span class="workhours" itemprop="openingHours" datetime="Mo-Su">around the clock</span></li> <li class="norender"> <span itemprop="priceRange" class="pricerange">from 200 USD</span> <img loading="lazy" aria-hidden="true" width="2048" height="2048" itemprop="image" style="width:unset;height:unset;" class="absolute-bg-from-top__image photo" src="https://seo.computer/uploads/seo-article-1x1/seo-article-9035.webp"> </li> <li class="nav-item mb-2 color-bfbfbf adr"> <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><span class="locality" itemprop="addressLocality">Moscow</span></span> </li> <li class="nav-item mb-2 email"><a href="mailto:info@seo.computer" style="text-decoration:none;" class="color-bfbfbf" title="Email"><span itemprop="email">info@seo.computer</span></a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Menu</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/en?city=moscow#tarifs" class="nav-link p-0 color-bfbfbf" title="SEO Tariffs">SEO Tariffs</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en?city=moscow#reviews" class="nav-link p-0 color-bfbfbf" title="SEO Reviews">SEO Reviews</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en?city=moscow#quiz" class="nav-link p-0 color-bfbfbf" title="SEO Calculator">SEO Calculator</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en?city=moscow#sales" class="nav-link p-0 color-bfbfbf" title="SEO Promotions">SEO Promotions</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en/contact" class="nav-link p-0 color-bfbfbf" title="Contacts">SEO Contacts</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Services</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/en/business" class="nav-link p-0 color-bfbfbf" title="Businesses">SEO for businesses</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en/type-sites" class="nav-link p-0 color-bfbfbf" title="Types of websites">SEO for types of websites</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en/cms" class="nav-link p-0 color-bfbfbf" title="CMS systems">SEO for CMS systems</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en/languages" class="nav-link p-0 color-bfbfbf" title="Languages">SEO for languages</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/en/engines" class="nav-link p-0 color-bfbfbf" title="Search engines">SEO for search engines</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Social network</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://wa.me/79202044461" class="nav-link p-0 color-bfbfbf" title="Whatsapp"><i class="fab fa-whatsapp me-1"></i>Whatsapp</a></li> <li class="nav-item mb-2"><a href="https://t.me/t9202044461/" class="nav-link p-0 color-bfbfbf" title="Telegram"><i class="fab fa-telegram-plane me-1"></i>Telegram</a></li> <li class="nav-item mb-2"><a href="mailto:info@seo.computer" class="nav-link p-0 color-bfbfbf" title="Email"><i class="fas fa-envelope me-1"></i>Email</a></li> </ul> </div> </div> <div class="justify-content-between pt-2 pb-4 mt-2 border-top col-md-12 text-light"> <p>This website is for informational purposes only and is not a public offer. To obtain accurate information about the services provided and their costs, please contact the company’s managers.</p> <a class="text-decoration-none color-bfbfbf" href="https://seo.computer/en/policy">Privacy Policy</a> <div class="mt-2"> <!--LiveInternet counter--><a href="https://www.liveinternet.ru/click" target="_blank"><img id="licntD152" width="31" height="31" style="border:0" title="LiveInternet" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7" alt="LiveInternet"/></a><script defer async>setTimeout(function(){(function(d,s){d.getElementById("licntD152").src="https://counter.yadro.ru/hit?t44.6;r"+escape(d.referrer)+((typeof(s)=="undefined")?"":";s"+s.width+"*"+s.height+"*"+(s.colorDepth?s.colorDepth:s.pixelDepth))+";u"+escape(d.URL)+";h"+escape(d.title.substring(0,150))+";"+Math.random()})(document,screen)},4000);</script><!--/LiveInternet--> </div> </div> </div> </footer> <div class="modal fade" id="exampleModalToggle" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title fw-500 fs-20" id="exampleModalToggleLabel">Leave a request</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <img loading="lazy" src="https://seo.computer/assets/svg/mobile_marketing.svg" class="my-3 mx-auto" width="300" height="260" alt="Leave a request List of knowledge and skills that SEO department employees should have in Moscow" title="Leave a request List of knowledge and skills that SEO department employees should have in Moscow"> <form class="form needs-validation" action="https://seo.computer/form" id="form-popup" method="post" novalidate> <input type="hidden" name="form_name" value="Цены - форма (гл. стр.)"> <input type="hidden" name="_token" value="61yNG0ZMSqTbOqv7q1uTZWgtuvJAWBHUhiyBwmfA" autocomplete="off"> <div class="modal-body"> <label class="fs-5 text-center fw-bold">Leave a request and our SEO specialist will contact you soon</label> <div class="row"> <div class="col-12"> <input type="text" name="name" class="form-control form-padding my-2" placeholder="your name" required> </div> <div class="col-12"> <input type="tel" name="phone" class="form-control form-padding my-2" placeholder="Phone number" required> </div> </div> </div> <div class="modal-footer justify-content-center"> <button class="btn rounded-5 btn-primary w-100 form-padding" type="submit">Send</button> <a href="policy.html" class="text-decoration-none text-dark text-center fs-14">By submitting data, you agree to the privacy policy</a> </div> </form> </div> </div> </div> <div class="modal fade" id="ModalLanguage" tabindex="-1" aria-labelledby="ModalLanguage" aria-hidden="true"> <div class="modal-dialog modal-sm modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title fs-22 fw-500" id="exampleModalLabel">Choose language</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <form class="modal-body" id="languageForm" method="post"> <input type="hidden" name="_token" value="61yNG0ZMSqTbOqv7q1uTZWgtuvJAWBHUhiyBwmfA" autocomplete="off"> <select class="form-select mb-2" aria-label="Choose language" name="language" id="language"> <option selected>Choose language</option> <option value="cn" >Chinese (simplified) (cn)</option> <option value="nl" >Dutch (nl)</option> <option value="en" selected >English (en)</option> <option value="fr" >French (fr)</option> <option value="de" >German (de)</option> <option value="id" >Indonesian (id)</option> <option value="it" >Italian (it)</option> <option value="jp" >Japanese (jp)</option> <option value="pl" >Polish (pl)</option> <option value="pt" >Portuguese (pt)</option> <option value="ru" >Russian (ru)</option> <option value="es" >Spanish (es)</option> <option value="tr" >Turkish (tr)</option> </select> <button type="submit" class="btn btn-primary w-100">Change</button> </form> </div> </div> </div> <div class="modal fade" id="SuccessModal" tabindex="-1" aria-labelledby="SuccessModal" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title fs-22 fw-500" id="SuccessModalLabel"></div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body text-center"> <img src="https://seo.computer/assets/svg/mail_send.svg" alt="Sent successfully List of knowledge and skills that SEO department employees should have in Moscow" title="Sent successfully List of knowledge and skills that SEO department employees should have in Moscow" width="160" height="144" class="mb-5"> <div class="h4" style="color: #000;">Sent successfully!</div> <p style="color: #000;">Thank you, your application has been sent successfully! We will contact you shortly.</p> </div> </div> </div> </div> <div class="modal fade" id="myModal" tabindex="-1" aria-labelledby="modalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content custom-modal"> <div class="modal-body d-flex align-items-center justify-content-between"> <!-- Rasm joyi --> <div class="modal__contents"> <div class="modal_top"> <span class="section_title">Leave a request</span> <p class="text-muted mt-1">And our SEO specialist will contact you in the near future</p> </div> <form id="form-analytcs" action="https://seo.computer/form" method="post" class="modal__contents_inputs flex flex-wrap justify-content-between "> <input type="hidden" name="form_name" value="Страница анализатора"> <input type="hidden" name="_token" value="61yNG0ZMSqTbOqv7q1uTZWgtuvJAWBHUhiyBwmfA" autocomplete="off"> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="your name" name="name" id="name" required /> </div> <div class="modal__contents_input"> <input type="tel" class="form-control phone_input" placeholder="Phone number" id="phone" name="phone" required /> </div> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="Your website address" name="website" id="website" required /> </div> <button type="submit" class="button desctop">Send</button> <button type="submit" class="button mobile">Send</button> </form> <p class="policy mt-3">By sending an application, you agree <a href="https://seo.computer/ru/policy">With a policy of confidentiality</a></p> </div> <div class="img-container d-flex align-items-start"> <!-- Rasmni o'z manzilingiz bilan almashtiring --> <img src="https://seo.computer/assets/images/modal_img.png" alt="Rasm" class="img-fluid" /> <button class="close" data-bs-dismiss="modal" aria-label="Close"> <img src="https://seo.computer/assets/images/exit.svg" alt=""> </button> </div> <!-- Forma --> </div> </div> </div> </div> <div class="modal fade" id="ModalCity" tabindex="-1" aria-labelledby="ModalCity" aria-hidden="true"> <div class="modal-dialog modal-xl modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title fs-22 fw-500" id="exampleModalLabel">Select a city</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body cites"> <div class="row mb-2"> <div class="col-sm-12"> <input class="form-control form-padding" id="search" name="query" placeholder="Enter the name of the city..."> </div> </div> <div class="row row-cols-1" id="cites"></div> </div> </div> </div> </div> <style>.lateload-show-buttons{display:none;}</style> <div class="social lateload-show-buttons"> <button class="shareButton tg open" data-bs-toggle="modal" data-bs-target="#SocialModal" data-bs-content="Write to telegram" title="Write to telegram List of knowledge and skills that SEO department employees should have in Moscow" data-bs-link="https://t.me/t9202044461/"> <img width="24" height="24" style="display:inline-block" src="https://seo.computer/assets/images/c_telegram.webp" alt="Write to telegram List of knowledge and skills that SEO department employees should have in Moscow" title="Write to telegram List of knowledge and skills that SEO department employees should have in Moscow"> </button> <button class="shareButton wt open" data-bs-toggle="modal" data-bs-target="#SocialModal" data-bs-content="Write to whatsapp" title="Write to whatsapp List of knowledge and skills that SEO department employees should have in Moscow" data-bs-link="https://wa.me/79202044461"> <img width="24" height="24" style="display:inline-block" src="https://seo.computer/assets/images/c_whatsapp.webp" alt="Write to whatsapp List of knowledge and skills that SEO department employees should have in Moscow" title="Write to whatsapp List of knowledge and skills that SEO department employees should have in Moscow"> </button> </div> <script defer async> setTimeout(function(){$('.lateload-show-buttons').css('display','flex').hide().fadeIn();}, 4000); </script> <!-- Modal --> <div class="modal fade" id="SocialModal" tabindex="-1" aria-labelledby="SocialModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header" style="text-align:center;"> <span style="font-size: 1.25rem;" class="modal-title" id="SocialModalLabel">Connect with us</span> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body text-center"> <a type="button" class="btn btn-primary" id="Soclink" href="#">Write</a> </div> </div> </div> </div> <script defer async> var SocialModal = document.getElementById('SocialModal') SocialModal.addEventListener('show.bs.modal', function (event) { setTimeout(function(el){ let halfScreenHeight = window.screen.height / 2; let coefdBlockHeight = el.offsetHeight * 1.75; //console.log(el.offsetHeight); let newTopPx = Math.round(halfScreenHeight - coefdBlockHeight); el.style.transform = 'translate(0, ' + newTopPx + 'px)'; }, 250, SocialModal.children[0]); // Button that triggered the modal var button = event.relatedTarget // Extract info from data-bs-* attributes var link = button.getAttribute('data-bs-link') var content = button.getAttribute('data-bs-content') var Soclink = SocialModal.querySelector('#Soclink') Soclink.setAttribute('href', link) Soclink.textContent = content }); (() => { 'use strict' // Fetch all the forms we want to apply custom Bootstrap validation styles to const forms = document.querySelectorAll('.needs-validation') // Loop over them and prevent submission Array.from(forms).forEach(form => { form.addEventListener('submit', event => { if (!form.checkValidity()) { event.preventDefault() event.stopPropagation() } form.classList.add('was-validated') }, false) }) })() </script> <!--JavaScripts--> <script rel="lazy" src="https://seo.computer/assets/js/jquery-3.6.0.min.js" ></script> <script defer async src="https://seo.computer/assets/js/bootstrap.min.js" ></script> <script src="https://seo.computer/assets/js/custom-blocks.js" charset="utf-8"></script><script defer async src="https://seo.computer/assets/js/jquery.mask.min.js" async></script> <!-- <script defer async src="https://seo.computer/assets/js/lottie-player.js" ></script> --> <!-- Bitrix --> <!-- <script defer async> setTimeout(function(){ (function(w,d,u){ var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0); var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h); })(window,document,'https://cdn-ru.bitrix24.ru/b20061858/crm/site_button/loader_7_7psi5t.js'); setTimeout(function(){ let linksNoHref = [...document.querySelectorAll('a.b24-widget-button-social-item')]; if (linksNoHref.length > 0) { for (l of linksNoHref) { if (!l.href) l.setAttribute('href','#'); } } }, 1000); }, 4000); </script> <script defer async> window.addEventListener('onBitrixLiveChat', function(event) { var widget = event.detail.widget; widget.subscribe({ type: BX.LiveChatWidget.SubscriptionType.configLoaded, callback: function() { widget.addLocalize({BX_LIVECHAT_LOADING: ' '}); widget.addLocalize({BX_LIVECHAT_ERROR_TITLE: ' '}); widget.addLocalize({ BX_LIVECHAT_VOTE_BUTTON: ' ', BX_LIVECHAT_ERROR_DESC: ' ', BX_MESSENGER_TEXTAREA_PLACEHOLDER: '✎...', }) } }); }); </script> <style>.b24-widget-button-wrapper.b24-widget-button-position-bottom-right, .b24-widget-button-wrapper.b24-widget-button-position-bottom-middle, .b24-widget-button-wrapper.b24-widget-button-position-bottom-left {bottom: 5px; right: 2px;} .bx-livechat-logo-name, .bx-livechat-logo-icon, .bx-livechat-copyright-link, .bx-livechat-help-title-lg, .bx-im-dialog-group-date, .b24-form-sign, .bx-imopenlines-message-dialog-number, .bx-imopenlines-form-result-title, .bx-livechat-user-position, .bx-im-message-type-system .bx-im-message-content, .b24-form-control-alert-message, .bx-touch .b24-widget-button-position-bottom-right .b24-widget-button-popup-triangle {display:none} .bx-livechat-help-title-sm {font-size:0px;} .b24-form-wrapper {min-height: 150px !important;} .bx-imopenlines-form-result-container {min-height: 50px !important;} .bx-imopenlines-form-result-container.bx-imopenlines-form-success {background: none;border-bottom: none;} .bx-touch .b24-widget-button-position-bottom-right .b24-widget-button-popup {left: -240px !important; bottom: 5px !important;}</style> --> <!-- /Bitrix --> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(86303743, "init", { webvisor: true, clickmap: true, trackLinks: true, accurateTrackBounce: true, ecommerce: "dataLayer" }); </script> <noscript><div><img width="1" height="1" src="https://mc.yandex.ru/watch/86303743" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-R6MGYCXWFG"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-R6MGYCXWFG'); </script> <!-- Top100 (Kraken) Counter --> <script defer async> setTimeout(function(){ (function (w, d, c) { (w[c] = w[c] || []).push(function() { var options = { project: 7728665, }; try { w.top100Counter = new top100(options); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//st.top100.ru/top100/top100.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(window, document, "_top100q"); }, 4000); </script> <noscript> <img width="1" height="1" src="//counter.rambler.ru/top100.cnt?pid=7728665" alt="Top 100 List of knowledge and skills that SEO department employees should have in Moscow" title="Top 100 List of knowledge and skills that SEO department employees should have in Moscow" /> </noscript> <!-- END Top100 (Kraken) Counter --> <script defer async> $(document).ready(function() { $(".form").submit(function(e) { e.preventDefault(); var form = $(this); if (form.find('input:invalid').length === 0) { $.ajax({ type: "POST", url: form.attr('action'), datatype: 'json', data: form.serialize(), // serializes the form's elements. success: function(data) { if(data.message === true) { $('#SuccessModal').modal('show'); form.trigger('reset'); } } }); } }); $("#form-analytcs").submit(function(e) { e.preventDefault(); var form = $(this); if (form.find('input:invalid').length === 0) { $.ajax({ type: "POST", url: form.attr('action'), datatype: 'json', data: form.serialize(), // serializes the form's elements. success: function(data) { if(data.message === true) { $('#myModal').modal('hide'); $('#SuccessModal').modal('show'); form.trigger('reset'); } } }); } }); // ---- Analyzer redirect: hijack hero_form to push directly into seo-analyzer ---- $('form.hero_form[data-analyzer-redirect="1"]').on('submit', function(e){ var form = $(this); var input = form.find('input[name="domain"]'); var raw = (input.val() || '').trim(); if (!raw) { return; } var endpoint = form.attr('data-analyzer-url') || 'https://seo-analyzer.seo.computer/domain'; // Normalize: drop scheme, leading www, trailing slash, anything after first slash/space var host = raw.replace(/^https?:\/\//i,'').replace(/^www\./i,'').split(/[\/\?#\s]/)[0].toLowerCase(); if (!host || host.indexOf('.') === -1) { return; } e.preventDefault(); // Build hidden form and submit it (POST so analyzer can read $_POST['url']) var hf = $('<form>').attr({method:'POST', action: endpoint}).css('display','none'); hf.append($('<input>').attr({type:'hidden', name:'url', value: host})); $('body').append(hf); hf[0].submit(); }); $('.content_toggle').click(function(){ $('.content_block').toggleClass('hide'); if ($('.content_block').hasClass('hide')) { $('.content_toggle').html('Read more'); } else { $('.content_toggle').html('Collapse'); } return false; }); $('.load-more').click(function () { var button = $(this); var link = $(this).data('cat'); var page = $(this).data('page'); var count = page + 1; $.ajax({ type: "GET", url: 'https://seo.computer/en/' + link +'?page=' + page, success: function(response) { if (response.html === ''){ button.fadeOut('slow'); } else { $('#' + link + '_results').append(response.html); button.data('page', count); } }, error: function(request, status, error) { console.log(request); } }); }); $('#languageForm').on('submit', function(e) { e.preventDefault(); $.ajax({ type: 'POST', url: 'https://seo.computer/change-language', data: $('#languageForm').serialize(), success: function(data) { if (data.message === true) { // Обновите URL с новым языком var currentUrl = window.location.href; var split = currentUrl.split('/'); split[3] = data.lang; var newUrl = split.join('/'); if (currentUrl === newUrl) { window.location = '/' + data.lang + '/'; } else { window.location = newUrl; } } } }); }); $('#search').on('input', function(e) { e.preventDefault(); var query = $(this).val(); $.ajax({ type: 'GET', url: 'https://seo.computer/search', data: { query: query, locale: 'en' }, success: function(data) { var results = $('#cites'); results.empty(); if (data.length > 0) { data.forEach(function(city) { results.append($('<a class="col text-decoration-none text-dark">').text(city.prepositional).attr('href', 'https://' + city.slug + '.seo.computer/en')); }); } else { results.html('<div class="col"><span>No results found.</span></div>'); } } }); }); }); </script> <script defer async> (function(){ async function hrefifyLinks(){ let linksnh = []; while (linksnh.length < 2) { linksnh = [...document.querySelectorAll('a')].filter(v=>v.getAttribute('href')===null); if (linksnh.length < 2) { await new Promise(r=>setTimeout(r,500)); } } for (let l of linksnh) {l.href = '#';} } hrefifyLinks(); })(); </script> </body> </html>