Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site no Google

Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site no Google

Você suspeita que os problemas com JavaScript possam bloquear a exibição do seu conteúdo no mecanismo de pesquisa do Google? Descubra como eliminar os problemas associados ao JavaScript usando nosso guia para eliminar os problemas.

O JavaScript é uma parte importante da plataforma da Web, pois fornece muitas funções que transformam a Web em uma poderosa plataforma de aplicativos. Para disponibilizar seus aplicativos da Web usando o JavaScript no mecanismo de pesquisa do Google pode ajudá -lo a atrair novos usuários e retornar os existentes quando procuram conteúdo que seu aplicativo da Web oferece.

Embora a pesquisa do Google inicie o JavaScript usando a versão atual do Chromium, há várias coisas que podem ser otimizadas.

Essa liderança descreve como o Google Search Processa JavaScript e as melhores práticas para melhorar a visibilidade dos aplicativos JavaScript do seu site no Google.

Como o Google processa JavaScript no site do seu Google

O Google processa o aplicativo JavaScript do seu site em três etapas principais:

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

O Googlebot coloca páginas na fila para kraling e renderização. Às vezes, não é óbvio quando a página aguarda kraling e ao renderizar. Quando o Googlebot extrai o URL da linha Crowring, ele primeiro verifica se a varredura é permitida. Googlebot lê o arquivo robots.txt.

Se a página estiver bloqueada para o KRALING, o Googlebot perderá sua solicitação e o Google não renderizará JavaScript nas páginas bloqueadas do seu site.

Javascript Optimization para pesquisar seu site no Google

Às vezes, as páginas dos aplicativos JavaScript usam o aplicativo devem modelar, quando a inicial não contém o conteúdo, e o Google deve executar o JavaScript para ver o conteúdo real que gera JavaScript.

O Googlebot coloca todas as páginas na linha de renderização, se apenas os robôs metag ou o título não indicarem que a página não deve ser indexada. A página pode permanecer na fila por alguns segundos, mas isso pode levar mais tempo. Depois que os recursos do Google permitem, a página renderiza com a ajuda do cromo e JavaScript sem cabeça.

Como definir manchetes e meta-descrições exclusivas para o seu site no Google

Elementos exclusivos e descritivos do e meta-descrições ajudam os usuários a escolher rapidamente o melhor resultado para sua meta na pesquisa. Você pode usar o JavaScript para definir ou alterar a meta-descrição, bem como um elemento de <bitle>.</p><H3>Torne o código compatível com o Google para o seu site</H3><p>Os navegadores oferecem muitas APIs, e o JavaScript é uma linguagem em rápido desenvolvimento. O Google tem restrições sobre quais recursos da API e JavaScript ele suporta. Para garantir que seu código seja compatível com o Google, siga nossas recomendações para eliminar os problemas com o JavaScript.</p><H2>Como usar os códigos de status HTTP para o seu site do Google</H2><p>O GoogleBot usa códigos de status HTTP para determinar o que deu errado ao cair na página do seu site.</p><p>Para informar o Googlebot que a página não pode ser digitalizada ou indexada, use códigos de status compreensíveis, como 404, para não encontradas páginas ou 401 para páginas protegidas por senha.</p><H3>Como evitar erros 404 suaves em aplicações de página única (SPA)</H3><p>Em aplicativos de uma página com renderização do cliente, o roteamento é frequentemente implementado usando o roteamento do cliente. Nesse caso, o uso de códigos de status HTTP corretos pode ser impossível ou inadequado. Para evitar erros suaves 404 ao usar a renderização e rugido do cliente, use as seguintes estratégias:</p><ul><li>Use o redirecionamento do JavaScript para o URL, para o qual o servidor se reúne com o Código 404 (por exemplo, /não achado).</li><li>Adicione o <meta name = "robots" content = "noindex"> nas páginas com erros usando javascript.</li></ul><H2>Usando a API do histórico para o seu site do Google</H2><p>O Google pode encontrar seus links apenas em elementos <a> com um atributo href.</p><p>Para aplicativos de uma página com a renderização do cliente, use a API do histórico para implementar o roteamento entre diferentes idéias do seu aplicativo da Web. Verifique se o GoogleBot pode processar e extrair seus URLs sem usar fragmentos de URL para baixar conteúdo diferente.</p><H2>A implementação correta da tag rel = "Canonical" para o seu site no Google</H2><p>Embora não seja recomendável usar o JavaScript para introduzir a tag rel = "canonical", isso é possível. A Pesquisa do Google encontrará o URL canônico inserido ao renderizar a página.</p><H2>Como usar os robôs metathes para o seu site do Google corretamente</H2><p>Você pode impedir a indexação de páginas ou seguir os links através do Robots Methag. Por exemplo, adicionando o próximo metatheg ao início da página, você pode bloquear a indexação da página no Google:</p><p><meta name = "robots" conte = "noindex, nofollow"></p><p>O uso do JavaScript para adicionar robôs metag à página ou altera seu conteúdo é possível, mas é importante lembrar que o Google não pode renderizar ou indexar a página se a tag Noindex já estiver presente no código da página.</p><H2>Usando cache de longo prazo para o seu site do Google</H2><p>O Googlebot está ativamente em armazenamento em armazenamento em armazenamento em armazenamento em armazenamento em armazenamento em solicitações de rede e uso de recursos. Para evitar problemas com os recursos desatualizados de JavaScript ou CSS, use a estratégia de impressão digital para criar conteúdos exclusivos baseados em conteúdo.</p><H2>Como usar dados estruturados no site do seu Google</H2><p>Ao usar dados estruturados nas páginas do seu site, você pode usar o JavaScript para gerar JSON-LD e implementá-los em uma página. Verifique se você testou sua implementação para evitar possíveis problemas.</p><H2>Como seguir as melhores práticas para componentes da web no site do seu Google</H2><p>O Google suporta componentes da Web. Ao renderizar a página do Google "lisonjeia" o conteúdo de Shadow Dom e Light DOM. Isso significa que o Google só pode ver o conteúdo visível no Lean. Para garantir que o Google possa ver seu conteúdo, use a ferramenta de teste de resultados ricos ou a ferramenta de verificação de URL e consulte o Lean.</p><H2>Correção de imagens e carregamento de conteúdo preguiçoso para o seu site no Google</H2><p>As imagens podem carregar bastante a taxa de transferência e afetar o desempenho. Uma boa estratégia é o uso de carregamento preguiçoso para carregar imagens apenas quando o usuário as verá. Verifique se a implementação do carregamento preguiçoso corresponde às recomendações do Google.</p><H2>Como projetar seu site para acessibilidade no Google</H2><p>Crie páginas para usuários, não apenas para mecanismos de pesquisa. Quando você estiver desenvolvendo um site, leve em consideração as necessidades de seus usuários, incluindo aqueles que não podem usar navegadores que suportam JavaScript (por exemplo, pessoas que usam os programas para ler a tela ou dispositivos móveis menos poderosos).</p><p>Uma das maneiras simples de testar a disponibilidade do site é visualizá -lo em um navegador com um JavaScript desconectado ou usar um navegador de texto, como o Lynx. Visualizar o site no modo de texto também ajuda a identificar outro conteúdo que pode ser difícil para o Google, por exemplo, um texto incorporado na imagem.</p><p>Para quaisquer problemas relacionados ao SEO do seu site, você pode entrar em contato com o companheiro de SEO <strong>CEO</strong> Por e -mail <a href="mailto:info@seo.computer">info@seo.computer</a> ou através do WhatsApp por número +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">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="tRQAjtmafcWyXz1CYxIzJ3hvfxPmUGEudK9ZdKk3" 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: Como melhorar a visibilidade do seu site no Google em Moscou" title="SEO Computer Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site 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-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">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: Como melhorar a visibilidade do seu site no Google em Moscou" title="Deixe um pedido Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site 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="tRQAjtmafcWyXz1CYxIzJ3hvfxPmUGEudK9ZdKk3" 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="tRQAjtmafcWyXz1CYxIzJ3hvfxPmUGEudK9ZdKk3" 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="nl" >Holandês (nl)</option> <option value="en" >Inglês (en)</option> <option value="fr" >Francês (fr)</option> <option value="de" >Alemão (de)</option> <option value="id" >indonésio (id)</option> <option value="it" >italiano (it)</option> <option value="jp" >japonês (jp)</option> <option value="pl" >polonês (pl)</option> <option value="pt" selected >Português (pt)</option> <option value="ru" >russo (ru)</option> <option value="es" >Espanhol (es)</option> <option value="tr" >turco (tr)</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: Como melhorar a visibilidade do seu site no Google em Moscou" title="Enviado com sucesso Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site 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="tRQAjtmafcWyXz1CYxIzJ3hvfxPmUGEudK9ZdKk3" 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: Como melhorar a visibilidade do seu site 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: Como melhorar a visibilidade do seu site no Google em Moscou" title="Escreva para telegram Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site 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: Como melhorar a visibilidade do seu site 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: Como melhorar a visibilidade do seu site no Google em Moscou" title="Escreva para whatsapp Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site 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: Como melhorar a visibilidade do seu site no Google em Moscou" title="Top 100 Fundamentos do JavaScript SEO: Como melhorar a visibilidade do seu site 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>