Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google

Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google

Você já pensou que os problemas de JavaScript podem interferir no seu site ou conteúdo para mostrar nos resultados da pesquisa do Google? Neste manual, explicaremos como resolver problemas de JavaScript para que seu site fique disponível para indexação no mecanismo de pesquisa.

O JavaScript desempenha um papel importante no desenvolvimento da Web, fornecendo muitas funções que transformam o site em uma plataforma completa para aplicativos. Para disponibilizar seu projeto JavaScript para uma pesquisa no Google, é uma oportunidade para atrair novos usuários e retornar os antigos que estão procurando seu conteúdo.

Apesar de o Google usar o mecanismo de cromo moderno para processar o JavaScript, há várias coisas que devem ser otimizadas para melhorar a visibilidade no mecanismo de pesquisa.

Como o Google processa JavaScript em seu site

O Google passa por três etapas principais para o processamento de páginas da web javascript:

  • Crawing (rastejando)
  • Renderização (renderização)
  • Indexação (indexação)

O Googlebot coloca páginas na fila para kraling e renderização. Isso pode levar algum tempo, pois nem sempre é óbvio quando a página é processada em cada uma das etapas. Com o Crailing, o Googlebot faz verifica o HTTP e verifica o arquivo robots.txt. Se o URL estiver bloqueado, o Googlebot o perderá sem executar a renderização.

Como configurar manchetes e meta-descrições exclusivas para o seu site do Google

Os elementos exclusivos e informativos do e meta-descrições ajudam os usuários a determinar rapidamente qual resultado será o mais relevante para sua solicitação no Google.</p><H2>Como escrever um código compatível com o Google para o seu site</H2><p>Os navegadores oferecem muitas APIs, e o JavaScript é um idioma que está se desenvolvendo constantemente. Para que seu código funcione com o Google, siga as recomendações para eliminar erros de JavaScript.</p><H2>Usando os status HTTP corretos para o seu site do Google</H2><p>O GoogleBot usa status HTTP para determinar o que deu errado durante o Crowring. Se a página não puder ser indexada ou disponível, envie o código de status correto, por exemplo, 404 ou 401.</p><H3>Evite erros "Soft 404" em seu site do Google</H3><p>Para aplicativos de uma página que implementam o roteamento no lado do cliente, é muito importante usar os códigos de status corretamente. Use o redirecionamento do JavaScript para um erro com um erro, por exemplo:</p><pre> fetch(`/api/products/${productId}`).then(response => response.json()).then(product => { if (product.exists) { showProductDetails(product); // отображает информацию о продукте } else { window.location.href = '/not-found'; // перенаправление на страницу 404 } }); </pre><H2>Usando o histórico da API em vez de fragmentos para o seu site do Google</H2><p>O Google pode encontrar seus links se estiverem em elementos <a> com o atributo href. Para aplicativos de uma página, use o histórico da API para rotear entre diferentes páginas do seu aplicativo da web.</p><H2>Implementação adequada da tag rel = "Canonical" em seu site para o Google</H2><p>Você pode apresentar a tag Rel = "Canonical" usando JavaScript para indicar qual versão da página deve ser indexada. No entanto, tenha cuidado para que não haja links duplicados rel = "Canonical" na página.</p><H2>Usando robôs meta tags no seu site para o google</H2><p>Você pode usar o meta-tag robôs para proibir a indexação da página ou os links seguintes. Por exemplo, para bloquear a indexação, adicione a seguinte meta-tag:</p><pre> <meta name="robots" content="noindex, nofollow"> </pre><p>É importante lembrar que, se o Google vê noindex antes da renderização do JavaScript, ele perderá esta página. Se você deseja que a página seja indexada, não use o Noindex no código -fonte.</p><H2>Usando cache de longo prazo para o seu site do Google</H2><p>O Googlebot usa ativamente um cache para reduzir o número de solicitações e a economia de recursos. Use a estratégia de cache levando em consideração a alteração do conteúdo, por exemplo, adicionando valores de controle aos nomes dos arquivos.</p><H2>Usando dados estruturados no site do seu Google</H2><p>Se você usar dados estruturados no seu site, poderá gerar JSON-LD usando JavaScript e apresentá-los na página. No entanto, verifique se sua implementação não está enganada.</p><H2>Seguindo as melhores práticas para componentes da web no site do seu Google</H2><p>O Google suporta componentes da Web. No entanto, ele só pode ver o conteúdo exibido na renderização. Se você usar a sombra ou o DOM de Dom, verifique se o Google pode ver todo o conteúdo.</p><H2>Correção de imagens e carregamento de conteúdo preguiçoso no seu site no Google</H2><p>As imagens podem levar muito tráfego e desacelerar o carregamento das páginas. Aplique o carregamento preguiçoso para que as imagens sejam carregadas apenas quando o usuário as abordar. Verifique se sua preguiça é compatível com o SEO, seguindo as recomendações sobre este tópico.</p><H2>Design, levando em consideração a disponibilidade do seu site no Google</H2><p>Ao criar seu site, pense não apenas nos mecanismos de pesquisa, mas também sobre usuários, incluindo pessoas com necessidades especiais, como leitores de tela ou dispositivos móveis menos poderosos. Isso ajudará você a criar um site que estará disponível e conveniente para todos.</p><p>Se você tiver dúvidas sobre a otimização de JavaScript para o seu site ou precisar estabelecer SEO, entre em contato com a equipe do Seo.computer. Estamos felizes em ajudar!</p><p>Detalhes de contato: <strong>info@seo.computer</strong>, Assim, <strong>WhatsApp: +79202044461</strong></p><p>Id 71</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">Envie uma solicitação e forneceremos uma consulta sobre SEO promoção do seu site</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="FrSeIF0ibK3kKIruArlXGou74bm2XE0Ow2tjRYnW" autocomplete="off"> <div class="col-12 col-xl-3"> <input type="text" name="name" class="form-control form-padding rounded-5" placeholder="seu nome" required=""> </div> <div class="col-12 col-xl-3"> <input type="tel" name="phone" class="form-control form-padding rounded-5" placeholder="Número de telefone" 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">Enviar</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">Ao enviar uma inscrição, você concorda com a política de privacidade</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/pt"> <img src="https://seo.computer/assets/svg/seo_logo.svg" alt="SEO Computer Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" title="SEO Computer Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" 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 na Internet</li> <li>Horário de funcionamento: <span class="workhours" itemprop="openingHours" datetime="Mo-Su">24 horas por dia</span></li> <li class="norender"> <span itemprop="priceRange" class="pricerange">de 186 EUR</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-10071.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">Moscou</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">Cardápio</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="#tarifs" class="nav-link p-0 color-bfbfbf" title="SEO Tarifas">SEO Tarifas</a></li> <li class="nav-item mb-2"><a href="#reviews" class="nav-link p-0 color-bfbfbf" title="SEO Avaliações">SEO Avaliações</a></li> <li class="nav-item mb-2"><a href="#quiz" class="nav-link p-0 color-bfbfbf" title="SEO Calculadora">SEO Calculadora</a></li> <li class="nav-item mb-2"><a href="#sales" class="nav-link p-0 color-bfbfbf" title="SEO Promoções">SEO Promoções</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pt/contact" class="nav-link p-0 color-bfbfbf" title="Contatos">SEO Contatos</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Serviços</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/pt/business" class="nav-link p-0 color-bfbfbf" title="Negócios">SEO para empresas</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pt/type-sites" class="nav-link p-0 color-bfbfbf" title="Tipos de sites">SEO para tipos de sites</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pt/cms" class="nav-link p-0 color-bfbfbf" title="Sistemas CMS">SEO para CMS sistemas</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pt/languages" class="nav-link p-0 color-bfbfbf" title="línguas">SEO para idiomas</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/pt/engines" class="nav-link p-0 color-bfbfbf" title="Mecanismos de busca">SEO para motores de busca</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Rede social</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>Este site é apenas para fins informativos e não é uma oferta pública. Para obter informações precisas sobre os serviços prestados e seus custos, entre em contato com os gestores da empresa.</p> <a class="text-decoration-none color-bfbfbf" href="https://seo.computer/pt/policy">política de Privacidade</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">Deixe um pedido</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="Deixe um pedido Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" title="Deixe um pedido Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou"> <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="FrSeIF0ibK3kKIruArlXGou74bm2XE0Ow2tjRYnW" autocomplete="off"> <div class="modal-body"> <label class="fs-5 text-center fw-bold">Deixe um pedido e nosso SEO especialista entrará em contato com você em breve</label> <div class="row"> <div class="col-12"> <input type="text" name="name" class="form-control form-padding my-2" placeholder="seu nome" required> </div> <div class="col-12"> <input type="tel" name="phone" class="form-control form-padding my-2" placeholder="Número de telefone" required> </div> </div> </div> <div class="modal-footer justify-content-center"> <button class="btn rounded-5 btn-primary w-100 form-padding" type="submit">Enviar</button> <a href="policy.html" class="text-decoration-none text-dark text-center fs-14">Ao enviar dados você concorda com a política de privacidade</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">Escolha o seu idioma</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="FrSeIF0ibK3kKIruArlXGou74bm2XE0Ow2tjRYnW" autocomplete="off"> <select class="form-select mb-2" aria-label="Escolha o seu idioma" name="language" id="language"> <option selected>Escolha o seu idioma</option> <option value="cn" >Chinês simplificado) (cn)</option> <option value="en" >Inglês (en)</option> <option value="it" >italiano (it)</option> <option value="nl" >Holandês (nl)</option> <option value="pl" >polonês (pl)</option> <option value="de" >Alemão (de)</option> <option value="tr" >turco (tr)</option> <option value="fr" >Francês (fr)</option> <option value="jp" >japonês (jp)</option> <option value="id" >indonésio (id)</option> <option value="pt" selected >Português (pt)</option> <option value="ru" >russo (ru)</option> <option value="es" >Espanhol (es)</option> </select> <button type="submit" class="btn btn-primary w-100">Mudar</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="Enviado com sucesso Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" title="Enviado com sucesso Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" width="160" height="144" class="mb-5"> <div class="h4" style="color: #000;">Enviado com sucesso!</div> <p style="color: #000;">Obrigado, sua inscrição foi enviada com sucesso! Entraremos em contato em breve.</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">Deixe um pedido</span> <p class="text-muted mt-1">E nosso especialista em SEO entrará em contato com você em um futuro próximo</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="FrSeIF0ibK3kKIruArlXGou74bm2XE0Ow2tjRYnW" autocomplete="off"> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="seu nome" name="name" id="name" required /> </div> <div class="modal__contents_input"> <input type="tel" class="form-control phone_input" placeholder="Número de telefone" id="phone" name="phone" required /> </div> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="Endereço do seu site" name="website" id="website" required /> </div> <button type="submit" class="button desctop">Enviar</button> <button type="submit" class="button mobile">Enviar</button> </form> <p class="policy mt-3">Ao enviar uma inscrição, você concorda <a href="https://seo.computer/ru/policy">Com uma política de confidencialidade</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">Selecione uma cidade</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fechar"></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="Digite o nome da cidade..."> </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="Escreva para telegram" title="Escreva para telegram Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" 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="Escreva para telegram Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" title="Escreva para telegram Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou"> </button> <button class="shareButton wt open" data-bs-toggle="modal" data-bs-target="#SocialModal" data-bs-content="Escreva para whatsapp" title="Escreva para whatsapp Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" 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="Escreva para whatsapp Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" title="Escreva para whatsapp Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou"> </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">conecte-se conosco</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="#">Escrever</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 Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" title="Top 100 Fundamentos do JavaScript SEO para o seu site: como fornecer visibilidade no Google em Moscou" /> </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('Consulte Mais informação'); } else { $('.content_toggle').html('Colapso'); } 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/pt/' + 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: 'pt' }, 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/pt')); }); } else { results.html('<div class="col"><span>Nenhum resultado encontrado.</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>