Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C?

W idealnym świecie procesy interakcji pomiędzy stroną internetową a biznesem są doskonale ułożone. Struktura sald magazynowych dokładnie odzwierciedla strukturę katalogu na stronie, a CRM śledzi efektywność każdego kanału sprzedaży.

Produkty są przesyłane na stronę z 1C z pełnym opisem, charakterystyką i wysokiej jakości obrazami.

Co dzieje się w prawdziwym życiu?

Opcja 1:

Firma zaczyna myśleć o stronie internetowej, gdy biznes offline działa już od dłuższego czasu. Katalog w 1C jest zorganizowany dla działów sprzedaży i logistyki; dostawcy przesyłają swoje katalogi w różnych formatach, z którymi wszyscy są przyzwyczajeni.

Opcja 2:

Zamiast automatycznego pobierania z 1C stosowany jest zaktualizowany cennik różnych dostawców, który należy pobierać kilka razy w miesiącu. W takim przypadku parsery są opracowywane dla każdego dostawcy i na stronie nie są widoczne żadne zmiany.

Główne zadania katalogu:

  • Aktualne ceny i stany magazynowe.
  • Promocja w wyszukiwarkach jako główny kanał przyciągania ruchu.
  • Użytkownik powinien łatwo i szybko znaleźć pożądany produkt.
  • Struktura katalogów powinna być logiczna i zrozumiała.

Ale są problemy:

  • Struktury katalogów nie można zmienić, gdyż wymagałoby to restrukturyzacji procesów biznesowych.
  • Adresy stron produktów mogą ulec zmianie.
  • Niektóre produkty mogą zniknąć, inne mogą się pojawić.

Prowadzi to do następujących problemów dla SEO:

  • Brak możliwości stworzenia przejrzystej i logicznej struktury serwisu uwzględniającej żądania użytkowników.
  • Ciągłe zmiany adresów stron i co za tym idzie błędy 404 i opóźnienia w indeksowaniu.
  • Niestabilna zawartość sekcji witryny.

Efekt: niespójny ruch w wynikach wyszukiwania, wysoki współczynnik odrzuceń i nieprzewidywalna liczba stron w indeksie.

Czy jest coś, co można zrobić?

Nasz projekt obejmował duży sklep internetowy z ogromnym katalogiem części zamiennych do sprzętu specjalnego, produkty ładowane były zarówno automatycznie, jak i ręcznie. Mamy do czynienia z faktem, że wiele stron produktów jest regularnie usuwanych.

Do promocji w wyszukiwarkach zastosowaliśmy kilka metod:

  • Wymuszone zaindeksowanie wszystkich stron produktów.
  • Zoptymalizowane strony.

Jak to wdrożyć?

  • Regularna aktualizacja pliku sitemap.xml.
  • Adresy stron produktów pozostały stabilne.
  • Skonfiguruj automatyczne tworzenie i metaopisy. W <title> Wyświetlana jest nazwa produktu, cena i regiony dostawy. Słowa kluczowe tworzone są z uwzględnieniem kategorii i produktu. W opisie - nazwa produktu i towarzyszący mu tekst.</li><li>Ustanawiamy relację pomiędzy produktami dostępnymi w magazynie a katalogiem ogólnym, zachęcając użytkownika do zamówienia produktu, jeśli nie ma go w magazynie.</li><li>Uzgodniliśmy z programistą kwestię powiadomień o nowościach.</li></ul><p>Efekt: aktualny, zoptymalizowany katalog, który jest prawidłowo indeksowany przez wyszukiwarki.</p><h3>Co dalej?</h3><p>Do skutecznego SEO katalogów samo to nie wystarczy. Postawiliśmy na precyzyjne zapytania użytkowników, takie jak wyszukiwanie produktów po nazwie czy SKU, a także po typie produktu i marce.</p><p>Stworzyliśmy głęboką strukturę witryny uwzględniającą wszystkie możliwe warianty wyszukiwania. Pozwoliło nam to poprawić optymalizację wyszukiwarek, a strona stała się łatwiejsza dla użytkowników.</p><h3>Jak skonstruowaliśmy katalog?</h3><p>Opracowaliśmy dwie części katalogu:</p><ul><li><strong>Katalog z produktami dostępnymi w magazynie</strong> — produkty, które można kupić od razu, jeśli użytkownik zna dokładną nazwę. Produkty można znaleźć poprzez wyszukiwarkę lub sekcję „W magazynie”.</li><li><strong>Katalog produktów</strong> — do poruszania się po kategoriach, markach i modelach. Katalog ten powiązany jest z rzeczywistą dostępnością towaru na magazynie, co gwarantuje aktualność informacji.</li></ul><p>Taka struktura pozwala łatwo pracować z SEO dla drugiego katalogu, konfigurować <title>, metaopisy i kategorie produktów bez ryzyka, że ​​zostaną zniszczone podczas aktualizacji.</p><p>W przypadku braku towaru na magazynie uzgadnialiśmy z klientem terminy dostaw i tworzyliśmy scenariusz pracy działu sprzedaży, aby uniknąć nieporozumień z klientami.</p><h3>Podsumujmy:</h3><p>Jeśli Twój katalog jest stale aktualizowany, nie marnuj wysiłku na doskonalenie go pod kątem SEO. Zamiast:</p><ul><li>Skonfiguruj indeksowanie i optymalizację zaktualizowanych kart produktów.</li><li>Utwórz drugi katalog statyczny dla SEO.</li><li>Opracuj scenariusz, w którym dział sprzedaży będzie radził sobie z towarami, których nie ma w magazynie.</li></ul><p>W razie pytań prosimy o kontakt ze studiem SEO „SEO COMPUTER” pod adresem info@seo.computer.</p><p>Identyfikator 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">Wyślij zapytanie, a my udzielimy konsultacji NA SEO promocja Twojej strony internetowej</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="iDC3gv9CIKhsAnRWnAVab8TEMfrnSyKCBweXPCQm" autocomplete="off"> <div class="col-12 col-xl-3"> <input type="text" name="name" class="form-control form-padding rounded-5" placeholder="Twoje imię" required=""> </div> <div class="col-12 col-xl-3"> <input type="tel" name="phone" class="form-control form-padding rounded-5" placeholder="Numer telefonu" 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">Wysłać</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">Wysyłając zgłoszenie zgadzasz się z polityką prywatności</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/pl"> <img src="https://seo.computer/assets/svg/seo_logo.svg" alt="SEO Computer Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" title="SEO Computer Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" 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">Marketing internetowy</li> <li>Godziny otwarcia: <span class="workhours" itemprop="openingHours" datetime="Mo-Su">całą dobę</span></li> <li class="norender"> <span itemprop="priceRange" class="pricerange">z 792 PLN</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">Moskwa</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/pl?city=moscow#tarifs" class="nav-link p-0 color-bfbfbf" title="SEO Taryfy">SEO Taryfy</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl?city=moscow#reviews" class="nav-link p-0 color-bfbfbf" title="SEO Recenzje">SEO Recenzje</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl?city=moscow#quiz" class="nav-link p-0 color-bfbfbf" title="SEO Kalkulator">SEO Kalkulator</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl?city=moscow#sales" class="nav-link p-0 color-bfbfbf" title="SEO Promocje">SEO Promocje</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl/contact" class="nav-link p-0 color-bfbfbf" title="Łączność">SEO Łączność</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Usługi</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/pl/business" class="nav-link p-0 color-bfbfbf" title="Biznes">SEO dla firm</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl/type-sites" class="nav-link p-0 color-bfbfbf" title="Rodzaje witryn">SEO dla typów witryn</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl/cms" class="nav-link p-0 color-bfbfbf" title="Systemy CMS">SEO dla CMS systemy</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl/languages" class="nav-link p-0 color-bfbfbf" title="Języki">SEO dla języków</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pl/engines" class="nav-link p-0 color-bfbfbf" title="Wyszukiwarki">SEO dla wyszukiwarek</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Sieć społeczna</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>Niniejsza strona ma charakter wyłącznie informacyjny i nie stanowi oferty publicznej. W celu uzyskania dokładnych informacji na temat świadczonych usług i ich kosztów prosimy o kontakt z menadżerami firmy.</p> <a class="text-decoration-none color-bfbfbf" href="https://seo.computer/pl/policy">Polityka prywatności</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">Zostaw prośbę</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="Zostaw prośbę Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" title="Zostaw prośbę Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie"> <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="iDC3gv9CIKhsAnRWnAVab8TEMfrnSyKCBweXPCQm" autocomplete="off"> <div class="modal-body"> <label class="fs-5 text-center fw-bold">Zostaw prośbę i nasze SEO specjalista wkrótce się z Tobą skontaktuje</label> <div class="row"> <div class="col-12"> <input type="text" name="name" class="form-control form-padding my-2" placeholder="Twoje imię" required> </div> <div class="col-12"> <input type="tel" name="phone" class="form-control form-padding my-2" placeholder="Numer telefonu" required> </div> </div> </div> <div class="modal-footer justify-content-center"> <button class="btn rounded-5 btn-primary w-100 form-padding" type="submit">Wysłać</button> <a href="policy.html" class="text-decoration-none text-dark text-center fs-14">Przesyłając dane zgadzasz się z polityką prywatności</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">Wybierz język</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="iDC3gv9CIKhsAnRWnAVab8TEMfrnSyKCBweXPCQm" autocomplete="off"> <select class="form-select mb-2" aria-label="Wybierz język" name="language" id="language"> <option selected>Wybierz język</option> <option value="cn" >Uproszczony chiński) (cn)</option> <option value="nl" >Holenderski (nl)</option> <option value="en" >język angielski (en)</option> <option value="fr" >Francuski (fr)</option> <option value="de" >Niemiecki (de)</option> <option value="id" >indonezyjski (id)</option> <option value="it" >Włoski (it)</option> <option value="jp" >język japoński (jp)</option> <option value="pl" selected >Polski (pl)</option> <option value="pt" >portugalski (pt)</option> <option value="ru" >Rosyjski (ru)</option> <option value="es" >hiszpański (es)</option> <option value="tr" >turecki (tr)</option> </select> <button type="submit" class="btn btn-primary w-100">Zmiana</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="Wysłano pomyślnie Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" title="Wysłano pomyślnie Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" width="160" height="144" class="mb-5"> <div class="h4" style="color: #000;">Wysłano pomyślnie!</div> <p style="color: #000;">Dziękujemy, Twoje zgłoszenie zostało pomyślnie wysłane! Skontaktujemy się z Tobą wkrótce.</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">Zostaw prośbę</span> <p class="text-muted mt-1">A nasz specjalista SEO skontaktuje się z Tobą w najbliższej przyszłości</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="iDC3gv9CIKhsAnRWnAVab8TEMfrnSyKCBweXPCQm" autocomplete="off"> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="Twoje imię" name="name" id="name" required /> </div> <div class="modal__contents_input"> <input type="tel" class="form-control phone_input" placeholder="Numer telefonu" id="phone" name="phone" required /> </div> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="Adres Twojej witryny" name="website" id="website" required /> </div> <button type="submit" class="button desctop">Wysłać</button> <button type="submit" class="button mobile">Wysłać</button> </form> <p class="policy mt-3">Wysyłając wniosek, zgadzasz się <a href="https://seo.computer/ru/policy">Z polityką poufności</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">Wybierz miasto</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zamknąć"></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="Podaj nazwę miasta..."> </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="Napisz do telegram" title="Napisz do telegram Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" 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="Napisz do telegram Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" title="Napisz do telegram Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie"> </button> <button class="shareButton wt open" data-bs-toggle="modal" data-bs-target="#SocialModal" data-bs-content="Napisz do whatsapp" title="Napisz do whatsapp Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" 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="Napisz do whatsapp Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" title="Napisz do whatsapp Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie"> </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">Połącz się z nami</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="#">Pisać</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 Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" title="Top 100 Co zrobić z SEO, jeśli produkt jest aktualizowany codziennie od 1C? w Moskwie" /> </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('Czytaj więcej'); } else { $('.content_toggle').html('Zawalić się'); } 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/pl/' + 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: 'pl' }, 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/pl')); }); } else { results.html('<div class="col"><span>Nie znaleziono wyników.</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>