Что делать с SEO, если товар обновляется из 1С каждый день?

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

Товары на сайт выгружаются из 1С с полноценным описанием, характеристиками и качественными изображениями.

Что же происходит в реальной жизни?

Вариант 1:

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

Вариант 2:

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

Основные задачи для каталога:

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

Но есть проблемы:

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

Это приводит к следующим проблемам для SEO:

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

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

Можно ли что-то сделать?

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

Для поискового продвижения мы использовали несколько методов:

  • Заставили все страницы товаров индексироваться.
  • Оптимизировали страницы.

Как это реализовать?

  • Регулярное обновление файла sitemap.xml.
  • Адреса страниц товаров остались стабильными.
  • Настроили автоматическое создание и meta-описаний. В <title> выводится название товара, цена и регионы доставки. Keywords формируются с учетом категории и товара. В description — название товара и сопроводительный текст.</li><li>Настроили взаимосвязь между товарами в наличии и общим каталогом, предлагая пользователю заказать товар, если он не в наличии.</li><li>Договорились с программистом об уведомлениях о новых товарах.</li></ul><p>Результат: актуальный, оптимизированный каталог, который корректно индексируется поисковыми системами.</p><h3>И что дальше?</h3><p>Для эффективного SEO каталога недостаточно только этого. Мы сосредоточились на точных запросах пользователей, таких как поиск товаров по названию или артикулу, а также по типам продукции и брендам.</p><p>Мы создали глубокую структуру сайта с учетом всех возможных вариаций поиска. Это позволило улучшить поисковое продвижение, а сайт стал проще для пользователей.</p><h3>Как мы структурировали каталог?</h3><p>Мы разработали две части каталога:</p><ul><li><strong>Каталог с товарами в наличии</strong> — товары, которые можно купить сразу, если пользователь знает точное наименование. Товары можно найти через поиск или раздел "В наличии".</li><li><strong>Каталог продукции</strong> — для навигации по категориям, брендам и моделям. Этот каталог связан с реальным наличием товаров на складе, что обеспечивает актуальность информации.</li></ul><p>Эта структура позволяет спокойно работать с SEO для второго каталога, настраивать <title>, meta-описания и категории товаров без риска, что они будут сбиты при обновлениях.</p><p>Если товар отсутствует на складе, мы согласовали с заказчиком сроки доставки и создали сценарий работы для отдела продаж, чтобы избежать недоразумений с клиентами.</p><h3>Подытожим:</h3><p>Если ваш каталог постоянно обновляется, не тратьте усилия на его идеализацию для SEO. Вместо этого:</p><ul><li>Настройте индексацию и оптимизацию обновляемых карточек товаров.</li><li>Создайте второй статичный каталог для SEO.</li><li>Разработайте сценарий для работы отдела продаж с отсутствующими товарами.</li></ul><p>По любым вопросам обращайтесь в SEO-студию "SEO COMPUTER" по адресу info@seo.computer.</p><p>id 9361</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">Отправьте заявку и мы предоставим консультацию на SEO продвижение вашего сайта</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="ll84rtdp9IXE0AOFLdtNjD1YeJbWDk86xHWHf6JH" autocomplete="off"> <div class="col-12 col-xl-3"> <input type="text" name="name" class="form-control form-padding rounded-5" placeholder="Ваше имя" required=""> </div> <div class="col-12 col-xl-3"> <input type="tel" name="phone" class="form-control form-padding rounded-5" placeholder="Номер телефона" 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">Отправить</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">Отправляя заявку, вы соглашаетесь с политикой конфиденциальности</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="tel:+79202044461">+7 (920) 204-44-61</a> <span style="opacity:0.5">|</span> <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/ru"> <img src="https://seo.computer/assets/svg/seo_logo.svg" alt="SEO Computer Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" title="SEO Computer Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" 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">Интернет-маркетинг</li> <li>Часы работы: <span class="workhours" itemprop="openingHours" datetime="Mo-Su">круглосуточно</span></li> <li class="norender"> <span itemprop="priceRange" class="pricerange">от 10000 RUB</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-9361.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">Москва</span></span> </li> <li class="nav-item mb-2 tel"><a href="tel:+79202044461" class="nav-link p-0 color-bfbfbf"><span class="type">Рабочий телефон</span>: <span class="value" itemprop="telephone">+7 (920) 204-44-61</span></a></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">Меню</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/ru?city=moscow#tarifs" class="nav-link p-0 color-bfbfbf" title="SEO Тарифы">SEO Тарифы</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru?city=moscow#reviews" class="nav-link p-0 color-bfbfbf" title="SEO Отзывы">SEO Отзывы</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru?city=moscow#quiz" class="nav-link p-0 color-bfbfbf" title="SEO Калькулятор">SEO Калькулятор</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru?city=moscow#sales" class="nav-link p-0 color-bfbfbf" title="SEO Акции">SEO Акции</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru/contact" class="nav-link p-0 color-bfbfbf" title="Контакты">SEO Контакты</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Услуги</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/ru/business" class="nav-link p-0 color-bfbfbf" title="Бизнесы">SEO для бизнесов</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru/type-sites" class="nav-link p-0 color-bfbfbf" title="Виды сайтов">SEO для видов сайтов</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru/cms" class="nav-link p-0 color-bfbfbf" title="ЦМС системы">SEO для ЦМС систем</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru/languages" class="nav-link p-0 color-bfbfbf" title="Языки">SEO для языков</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/ru/engines" class="nav-link p-0 color-bfbfbf" title="Поисковые системы">SEO для поисковых систем</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Соц-сети</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="Ватсап"><i class="fab fa-whatsapp me-1"></i>Ватсап</a></li> <li class="nav-item mb-2"><a href="https://t.me/t9202044461/" class="nav-link p-0 color-bfbfbf" title="Телеграм"><i class="fab fa-telegram-plane me-1"></i>Телеграм</a></li> <li class="nav-item mb-2"><a href="mailto:info@seo.computer" class="nav-link p-0 color-bfbfbf" title="Эмэил"><i class="fas fa-envelope me-1"></i>Эмэил</a></li> </ul> </div> </div> <div class="justify-content-between pt-2 pb-4 mt-2 border-top col-md-12 text-light"> <p>Данный сайт носит исключительно информационный характер и не является публичной офертой. Для получения точной информации об оказываемых услугах и их стоимости обращайтесь к менеджерам компании.</p> <a class="text-decoration-none color-bfbfbf" href="https://seo.computer/ru/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">Оставьте заявку</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="Оставьте заявку Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" title="Оставьте заявку Что делать с SEO, если товар обновляется из 1С каждый день? в Москве"> <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="ll84rtdp9IXE0AOFLdtNjD1YeJbWDk86xHWHf6JH" autocomplete="off"> <div class="modal-body"> <label class="fs-5 text-center fw-bold">Оставьте заявку и наш СЕО специалист свяжется с вами в ближайшее время</label> <div class="row"> <div class="col-12"> <input type="text" name="name" class="form-control form-padding my-2" placeholder="Ваше имя" required> </div> <div class="col-12"> <input type="tel" name="phone" class="form-control form-padding my-2" placeholder="Номер телефона" required> </div> </div> </div> <div class="modal-footer justify-content-center"> <button class="btn rounded-5 btn-primary w-100 form-padding" type="submit">Отправить</button> <a href="policy.html" class="text-decoration-none text-dark text-center fs-14">Отправляя данные, вы соглашаетесь с политикой конфиденциальности</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">Выберите язык</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="ll84rtdp9IXE0AOFLdtNjD1YeJbWDk86xHWHf6JH" autocomplete="off"> <select class="form-select mb-2" aria-label="Выберите язык" name="language" id="language"> <option selected>Выберите язык</option> <option value="cn" >китайский (упрощенный) (cn)</option> <option value="en" >английский (en)</option> <option value="nl" >нидерландский (nl)</option> <option value="it" >итальянский (it)</option> <option value="jp" >японский (jp)</option> <option value="de" >немецкий (de)</option> <option value="es" >испанский (es)</option> <option value="fr" >французский (fr)</option> <option value="pl" >польский (pl)</option> <option value="pt" >португальский (pt)</option> <option value="ru" selected >русский (ru)</option> <option value="tr" >турецкий (tr)</option> <option value="id" >индонезийский (id)</option> </select> <button type="submit" class="btn btn-primary w-100">Изменить</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="Успешно отправлена Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" title="Успешно отправлена Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" width="160" height="144" class="mb-5"> <div class="h4" style="color: #000;">Успешно отправлена!</div> <p style="color: #000;">Спасибо, Ваша заявка успешно отправлена! Мы свяжемся с Вами в ближайшее время.</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">Оставьте заявку</span> <p class="text-muted mt-1">и наш SEO специалист свяжется с Вами в ближайшее время</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="ll84rtdp9IXE0AOFLdtNjD1YeJbWDk86xHWHf6JH" autocomplete="off"> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="Ваше имя" name="name" id="name" required /> </div> <div class="modal__contents_input"> <input type="tel" class="form-control phone_input" placeholder="Номер телефона" id="phone" name="phone" required /> </div> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="Адрес вашего сайта" name="website" id="website" required /> </div> <button type="submit" class="button desctop">Отправить</button> <button type="submit" class="button mobile">Отправить</button> </form> <p class="policy mt-3">Отправляя заявку, вы соглашаетесь <a href="https://seo.computer/ru/policy">с политикой конфиденциальности</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">Выберите город</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></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="Введите название города..."> </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="Написать в телеграм" title="Написать в телеграм Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" 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="Написать в телеграм Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" title="Написать в телеграм Что делать с SEO, если товар обновляется из 1С каждый день? в Москве"> </button> <button class="shareButton wt open" data-bs-toggle="modal" data-bs-target="#SocialModal" data-bs-content="Написать в ватсап" title="Написать в ватсап Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" 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="Написать в ватсап Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" title="Написать в ватсап Что делать с SEO, если товар обновляется из 1С каждый день? в Москве"> </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">Связаться с нами</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="#">Написать</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="Топ 100 Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" title="Топ 100 Что делать с SEO, если товар обновляется из 1С каждый день? в Москве" /> </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('Читать далее'); } else { $('.content_toggle').html('Свернуть'); } 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/ru/' + 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: 'ru' }, 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/ru')); }); } else { results.html('<div class="col"><span>Результатов не найдено.</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>