Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google

Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google

Czy podejrzewasz, że problemy z JavaScript mogą zablokować wyświetlanie treści w wyszukiwarce Google? Dowiedz się, jak wyeliminować problemy związane z JavaScript za pomocą naszego przewodnika w celu wyeliminowania problemów.

JavaScript jest ważną częścią platformy internetowej, ponieważ zapewnia wiele funkcji, które zamieniają Internet w potężną platformę aplikacji. Aby Twoje aplikacje internetowe za pomocą JavaScript są dostępne w wyszukiwarce Google, może pomóc w przyciągnięciu nowych użytkowników i zwróceniu istniejących, gdy szukają treści oferowanych przez aplikację internetową.

Chociaż Google Search uruchamia JavaScript przy użyciu bieżącej wersji Chromium, istnieje kilka rzeczy, które można zoptymalizować.

To przywództwo opisuje, w jaki sposób wyszukiwanie Google przetwarza JavaScript i najlepsze praktyki w celu poprawy widoczności aplikacji JavaScript Twojej witryny w Google.

Jak Google przetwarza JavaScript na Twojej stronie Google

Google przetwarza zastosowanie JavaScript Twojej witryny na trzech głównych etapach:

  • Pełzanie (pełzanie)
  • Rendering (rendering)
  • Indeksowanie (indeksowanie)

GoogleBot umieszcza strony w kolejce do Kraling i Rendering. Czasami nie jest to oczywiste, gdy strona czeka na Kraling i podczas renderowania. Kiedy GoogleBot wyodrębnia adres URL z linii Crowring, najpierw sprawdza, czy skan jest dozwolony. GoogleBot odczytuje plik robots.txt.

Jeśli strona jest zablokowana dla Kraling, Googlebot nie pomija jego żądania, a Google nie renderuje JavaScript na zablokowanych stronach Twojej witryny.

Optymalizacja JavaScript w celu wyszukiwania Twojej witryny w Google

Czasami strony aplikacji JavaScript korzystają z aplikacji, w których inicjał nie zawiera zawartości, a Google musi wykonać JavaScript, aby zobaczyć rzeczywistą zawartość generującą JavaScript.

GoogleBot umieszcza wszystkie strony w linii renderowania, jeśli tylko roboty metag lub nagłówek nie wskazuje, że strona nie powinna być indeksowana. Strona może pozostać w kolejce przez kilka sekund, ale może to zająć więcej czasu. Po zezwalaniu na zasoby Google strona renderuje za pomocą bezgłowego chromu i JavaScript.

Jak ustawić unikalne nagłówki i meta-dessyjne dla swojej witryny w Google

Unikalne i opisowe elementy i meta-opisy pomagają użytkownikom szybko wybrać najlepszy wynik dla ich celu w wyszukiwaniu. Możesz użyć JavaScript do ustawienia lub zmiany meta-opisowej, a także elementu <Bitle>.</p><H3>Spraw, aby kod był kompatybilny z Google dla Twojej witryny</H3><p>Przeglądarki oferują wiele interfejsów API, a JavaScript to szybko rozwijający się język. Google ma ograniczenia, na których obsługuje możliwości API i JavaScript. Aby upewnić się, że kod jest kompatybilny z Google, postępuj zgodnie z naszymi zaleceniami, aby wyeliminować problemy z JavaScript.</p><H2>Jak używać kodów stanu HTTP dla swojej witryny Google</H2><p>GoogleBot używa kodów stanu HTTP, aby ustalić, co poszło nie tak, gdy wrzucając stronę Twojej witryny.</p><p>Aby poinformować GoogleBot, że strony nie można skanować ani indeksować, użyj zrozumiałych kodów stanu, takich jak 404 dla nie znalezionych stron lub 401 dla stron chronionych hasłem.</p><H3>Jak uniknąć miękkich błędów 404 w aplikacjach jednopunktowych (SPA)</H3><p>W jednej stronie aplikacji z renderowaniem klientów routing jest często wdrażany za pomocą routingu klienta. W takim przypadku użycie prawidłowych kodów stanu HTTP może być niemożliwe lub nieodpowiednie. Aby uniknąć miękkich błędów 404 podczas korzystania z renderowania i ryczania klientów, skorzystaj z następujących strategii:</p><ul><li>Użyj przekierowania JavaScript do adresu URL, dla którego serwer spotyka się z kodem 404 (na przykład /nie odkryte).</li><li>Dodaj <meta name = "robots" content = "noindex"> na stronach z błędami za pomocą JavaScript.</li></ul><H2>Korzystanie z interfejsu API historii dla witryny Google</H2><p>Google może znaleźć twoje linki tylko w elementach <a> z atrybutem HREF.</p><p>W przypadku jednostronicowych aplikacji z renderowaniem klientów użyj interfejsu API History, aby wdrożyć routing między różnymi pomysłami aplikacji internetowej. Upewnij się, że GoogleBot może przetwarzać i wyodrębniać adresy URL bez użycia fragmentów adresów URL do pobierania różnych treści.</p><H2>Prawidłowa implementacja tag rel = „Canonical” dla Twojej witryny w Google</H2><p>Chociaż nie zaleca się używania JavaScript do wprowadzenia tag rel = „Canonical”, jest to możliwe. Google Search znajdzie wprowadzony kanoniczny adres URL podczas renderowania strony.</p><H2>Jak prawidłowo używać metatów robotów dla witryny Google</H2><p>Możesz zapobiec indeksowaniu stron lub śledzeniu linków za pośrednictwem robotów metag. Na przykład, dodając następny metatheg na początek strony, możesz zablokować indeksowanie strony w Google:</p><p><Meta name = "Robots" conte = "noindex, nofollow"></p><p>Korzystanie z JavaScript do dodawania robotów metaga do strony lub zmiany jej zawartości jest możliwe, ale ważne jest, aby pamiętać, że Google nie może renderować ani indeksować strony, jeśli znacznik Noindex jest już obecny w kodzie strony.</p><H2>Korzystanie z długoterminowych buforowania dla Twojej witryny Google</H2><p>GoogleBot aktywnie buforuje strony, aby zmniejszyć żądania sieci i wykorzystanie zasobów. Aby uniknąć problemów z przestarzałymi zasobami JavaScript lub CSS, skorzystaj z strategii odcisków palców, aby stworzyć unikalne treści oparte na oparciu o zawartość.</p><H2>Jak korzystać z ustrukturyzowanych danych na swojej stronie Google</H2><p>Korzystając z strukturalnych danych na stronach Twojej witryny, możesz użyć JavaScript do generowania JSON-LD i zaimplementowania go na stronie. Upewnij się, że przetestowałeś swoją implementację, aby uniknąć możliwych problemów.</p><H2>Jak śledzić najlepsze praktyki komponentów internetowych na swojej stronie Google</H2><p>Google obsługuje komponenty internetowe. Podczas renderowania strony Google „pochlebia” zawartość Shadow Dom i Light Dom. Oznacza to, że Google widzi tylko treści widoczne w Lean. Aby upewnić się, że Google może zobaczyć Twoją treść, użyj narzędzia testowego Rich Results lub narzędzia sprawdzania adresu URL i zobacz Lean.</p><H2>Korekta obrazów i leniwe ładowanie treści dla Twojej witryny w Google</H2><p>Obrazy mogą znacznie ładować przepustowość i wpływać na wydajność. Dobrą strategią jest zastosowanie leniwego ładowania do ładowania obrazów tylko wtedy, gdy użytkownik je zobaczy. Upewnij się, że wdrożenie leniwego ładowania odpowiada zaleceniom Google.</p><H2>Jak zaprojektować witrynę w celu uzyskania dostępności w Google</H2><p>Utwórz strony dla użytkowników, nie tylko dla wyszukiwarek. Kiedy opracowujesz witrynę, weź pod uwagę potrzeby użytkowników, w tym tych, którzy mogą nie korzystać z przeglądarek obsługujących JavaScript (na przykład osoby, które używają programów do czytania z ekranu lub mniej potężnych urządzeń mobilnych).</p><p>Jednym z prostych sposobów przetestowania dostępności witryny jest przeglądanie jej w przeglądarce z odłączonym JavaScript lub użycie przeglądarki tekstowej, takiej jak Lynx. Przeglądanie strony w trybie tekstowym pomaga również zidentyfikować inną treść, która może być trudna dla Google, na przykład tekst wbudowany w obraz.</p><p>W przypadku problemów związanych z SEO Twojej witryny możesz skontaktować się z towarzyszem SEO <strong>CEO</strong> Przez e -Mail <a href="mailto:info@seo.computer">info@seo.computer</a> lub przez WhatsApp według numeru +79202044461.</p><p>ID: 125</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="uRGxN9ovkmiVol5DXILevandjj9JLh8hBXtX3GwL" 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 h6 mb-0 p-0 text-white" style="text-align:center"> <a style="text-decoration:none; color:inherit" href="mailto:info@seo.computer">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 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google w Moskwie" title="SEO Computer Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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-10125.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="#tarifs" class="nav-link p-0 color-bfbfbf" title="SEO Taryfy">SEO Taryfy</a></li> <li class="nav-item mb-2"><a href="#reviews" class="nav-link p-0 color-bfbfbf" title="SEO Recenzje">SEO Recenzje</a></li> <li class="nav-item mb-2"><a href="#quiz" class="nav-link p-0 color-bfbfbf" title="SEO Kalkulator">SEO Kalkulator</a></li> <li class="nav-item mb-2"><a href="#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ę Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google w Moskwie" title="Zostaw prośbę Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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="uRGxN9ovkmiVol5DXILevandjj9JLh8hBXtX3GwL" 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="uRGxN9ovkmiVol5DXILevandjj9JLh8hBXtX3GwL" 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="fr" >Francuski (fr)</option> <option value="nl" >Holenderski (nl)</option> <option value="de" >Niemiecki (de)</option> <option value="pl" selected >Polski (pl)</option> <option value="ru" >Rosyjski (ru)</option> <option value="cn" >Uproszczony chiński) (cn)</option> <option value="it" >Włoski (it)</option> <option value="es" >hiszpański (es)</option> <option value="id" >indonezyjski (id)</option> <option value="en" >język angielski (en)</option> <option value="jp" >język japoński (jp)</option> <option value="pt" >portugalski (pt)</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 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google w Moskwie" title="Wysłano pomyślnie Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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="uRGxN9ovkmiVol5DXILevandjj9JLh8hBXtX3GwL" 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 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google w Moskwie" title="Napisz do telegram Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google w Moskwie" title="Napisz do whatsapp Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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 defer async type="text/javascript" async> setTimeout(function(){ (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", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, ecommerce:"dataLayer" }); }, 4000); </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 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google w Moskwie" title="Top 100 Podstawy JavaScript SEO: Jak poprawić widoczność swojej witryny w Google 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>