Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google

Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google

Avez-vous pensé que les problèmes JavaScript peuvent interférer avec votre site ou votre contenu à afficher dans les résultats de la recherche Google? Dans ce manuel, nous expliquerons comment résoudre les problèmes JavaScript afin que votre site soit disponible pour l'indexation dans le moteur de recherche.

JavaScript joue un rôle important dans le développement Web, offrant de nombreuses fonctions qui transforment le site en une plate-forme à part entière pour les applications. Pour rendre votre projet JavaScript disponible pour une recherche dans Google est l'occasion d'attirer de nouveaux utilisateurs et de retourner les anciens qui recherchent votre contenu.

Malgré le fait que Google utilise le moteur de chrome moderne pour traiter JavaScript, il y a plusieurs choses qui devraient être optimisées pour améliorer la visibilité dans le moteur de recherche.

Comment Google traite JavaScript sur votre site

Google passe par trois étapes clés pour traiter les pages Web JavaScript:

  • Crawing (ramper)
  • Rendu (rendu)
  • Indexation (indexation)

Googlebot met des pages dans la file d'attente pour KraLing et Renduring. Cela peut prendre un certain temps, car ce n'est pas toujours évident lorsque la page est traitée à chacune des étapes. Avec CRAILING, Googlebot fait des vérifications et vérifie le fichier robots.txt. Si l'URL est bloquée, Googlebot le manque sans effectuer de rendu.

Comment configurer des titres et des méta-descriptions uniques pour votre site Google

Les éléments uniques et informatifs de et des Meta-Descriptions aident les utilisateurs à déterminer rapidement quel résultat sera le plus pertinent pour leur demande dans Google.</p><H2>Comment écrire un code compatible avec Google pour votre site</H2><p>Les navigateurs offrent de nombreuses API et JavaScript est une langue qui se développe constamment. Pour que votre code fonctionne avec Google, suivez les recommandations pour éliminer les erreurs JavaScript.</p><H2>Utilisation des statuts HTTP corrects pour votre site Google</H2><p>Googlebot utilise les statuts HTTP pour déterminer ce qui n'a pas fonctionné pendant le Crowring. Si la page ne peut pas être indexée ou disponible, envoyez le code d'état correct, par exemple, 404 ou 401.</p><H3>Évitez les erreurs "Soft 404" sur votre site Google</H3><p>Pour les applications d'une page qui implémentent le routage du côté client, il est très important d'utiliser correctement les codes d'état. Utilisez la redirection JavaScript pour une erreur avec une erreur, par exemple:</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>Utilisation de l'histoire de l'API au lieu de fragments pour votre site Google</H2><p>Google peut trouver vos liens s'ils sont en <a> éléments avec l'attribut HREF. Pour les applications d'une page, utilisez l'historique de l'API pour le routage entre les différentes pages de votre application Web.</p><H2>Implémentation appropriée de la balise rel = "Canonical" sur votre site pour Google</H2><p>Vous pouvez introduire la balise rel = "Canonical" à l'aide de JavaScript pour indiquer la version de la page doit être indexée. Cependant, soyez prudent afin qu'il n'y ait pas de liens en double rel = "Canonical" sur la page.</p><H2>Utilisation de balises Meta Robots sur votre site pour Google</H2><p>Vous pouvez utiliser le Meta-Tag des robots pour interdire l'indexation des pages ou suivre des liens vers lui. Par exemple, pour bloquer l'indexation, ajoutez la méta-tag suivante:</p><pre> <meta name="robots" content="noindex, nofollow"> </pre><p>Il est important de se rappeler que si Google voit NOINDEX avant le rendu JavaScript, il manquera cette page. Si vous souhaitez que la page soit indexée, n'utilisez pas NOINDEX dans le code source.</p><H2>Utilisation de la mise en cache à long terme pour votre site Google</H2><p>Googlebot utilise activement un cache pour réduire le nombre de demandes et enregistrer les ressources. Utilisez la stratégie de mise en cache en tenant compte du changement de contenu, par exemple, en ajoutant des montants de contrôle aux noms de fichiers.</p><H2>Utilisation de données structurées sur votre site Web Google</H2><p>Si vous utilisez des données structurées sur votre site, vous pouvez générer JSON-LD à l'aide de JavaScript et l'introduire sur la page. Cependant, assurez-vous que votre implémentation ne se trompe pas.</p><H2>Suivre les meilleures pratiques pour les composants Web sur votre site Web Google</H2><p>Google prend en charge les composants Web. Cependant, il ne peut voir que le contenu affiché dans le rendu. Si vous utilisez l'ombre ou le DOM de l'ombre de Dom, assurez-vous que Google peut voir tout le contenu.</p><H2>Correction d'images et de contenu paresseux Chargement sur votre site sur Google</H2><p>Les images peuvent prendre beaucoup de trafic et ralentir le chargement des pages. Appliquez un chargement paresseux afin que les images ne soient chargées que lorsque l'utilisateur les approche. Assurez-vous que votre paresse est compatible avec le référencement, en suivant les recommandations sur ce sujet.</p><H2>Conception, en tenant compte de la disponibilité de votre site dans Google</H2><p>Lors de la création de votre site, pensez non seulement aux moteurs de recherche, mais aussi sur les utilisateurs, y compris les personnes ayant des besoins spéciaux, tels que les lecteurs d'écran ou les appareils mobiles moins puissants. Cela vous aidera à créer un site qui sera disponible et pratique pour tout le monde.</p><p>Si vous avez des questions sur l'optimisation JavaScript pour votre site ou si vous devez établir un référencement, contactez l'équipe SEO. Nous sommes heureux d'aider!</p><p>Coordonnées: <strong>info@seo.computer</strong>, <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">Envoyez une demande et nous vous fournirons une consultation sur SEO promotion de votre site internet</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="oB5XOi3UnYWMvl0wC1701FHfuUVdCnHE8dIUbBYI" autocomplete="off"> <div class="col-12 col-xl-3"> <input type="text" name="name" class="form-control form-padding rounded-5" placeholder="votre nom" required=""> </div> <div class="col-12 col-xl-3"> <input type="tel" name="phone" class="form-control form-padding rounded-5" placeholder="Numéro de téléphone" 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">Envoyer</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">En soumettant une candidature, vous acceptez la politique de confidentialité</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/fr"> <img src="https://seo.computer/assets/svg/seo_logo.svg" alt="SEO Computer Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" title="SEO Computer Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" class="rounded-5" width="200" height="40" /> </a> <ul class="nav flex-column"> <li class="fn org" itemprop="name">SEO ÇÔMPÛTÉR</li> <li class="category">Marketing Internet</li> <li>Horaires d'ouverture: <span class="workhours" itemprop="openingHours" datetime="Mo-Su">24 heures sur 24</span></li> <li class="norender"> <span itemprop="priceRange" class="pricerange">depuis 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">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 Tarifs">SEO Tarifs</a></li> <li class="nav-item mb-2"><a href="#reviews" class="nav-link p-0 color-bfbfbf" title="SEO Avis">SEO Avis</a></li> <li class="nav-item mb-2"><a href="#quiz" class="nav-link p-0 color-bfbfbf" title="SEO Calculatrice">SEO Calculatrice</a></li> <li class="nav-item mb-2"><a href="#sales" class="nav-link p-0 color-bfbfbf" title="SEO Promos">SEO Promos</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/fr/contact" class="nav-link p-0 color-bfbfbf" title="Contacts">SEO Contacts</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Prestations de service</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/fr/business" class="nav-link p-0 color-bfbfbf" title="Entreprises">SEO pour les entreprises</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/fr/type-sites" class="nav-link p-0 color-bfbfbf" title="Types de sites">SEO pour les types de sites</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/fr/cms" class="nav-link p-0 color-bfbfbf" title="Systèmes CMS">SEO pour CMS systèmes</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/fr/languages" class="nav-link p-0 color-bfbfbf" title="Langues">SEO pour les langues</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/fr/engines" class="nav-link p-0 color-bfbfbf" title="Moteurs de recherche">SEO pour les moteurs de recherche</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">Réseau 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="Whàtsàpp"><i class="fab fa-whatsapp me-1"></i>Whàtsàpp</a></li> <li class="nav-item mb-2"><a href="https://t.me/t9202044461/" class="nav-link p-0 color-bfbfbf" title="Télégràm"><i class="fab fa-telegram-plane me-1"></i>Télégràm</a></li> <li class="nav-item mb-2"><a href="mailto:info@seo.computer" class="nav-link p-0 color-bfbfbf" title="Émàîl"><i class="fas fa-envelope me-1"></i>Émàîl</a></li> </ul> </div> </div> <div class="justify-content-between pt-2 pb-4 mt-2 border-top col-md-12 text-light"> <p>Ce site est à titre informatif uniquement et ne constitue pas une offre publique. Pour obtenir des informations précises sur les services fournis et leurs coûts, veuillez contacter les responsables de l’entreprise.</p> <a class="text-decoration-none color-bfbfbf" href="https://seo.computer/fr/policy">politique de confidentialité</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">Laisser une demande</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="Laisser une demande Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" title="Laisser une demande Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans 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="oB5XOi3UnYWMvl0wC1701FHfuUVdCnHE8dIUbBYI" autocomplete="off"> <div class="modal-body"> <label class="fs-5 text-center fw-bold">Laissez une demande et notre SEO un spécialiste vous contactera bientôt</label> <div class="row"> <div class="col-12"> <input type="text" name="name" class="form-control form-padding my-2" placeholder="votre nom" required> </div> <div class="col-12"> <input type="tel" name="phone" class="form-control form-padding my-2" placeholder="Numéro de téléphone" required> </div> </div> </div> <div class="modal-footer justify-content-center"> <button class="btn rounded-5 btn-primary w-100 form-padding" type="submit">Envoyer</button> <a href="policy.html" class="text-decoration-none text-dark text-center fs-14">En soumettant des données, vous acceptez la politique de confidentialité</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">Choisissez la langue</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="oB5XOi3UnYWMvl0wC1701FHfuUVdCnHE8dIUbBYI" autocomplete="off"> <select class="form-select mb-2" aria-label="Choisissez la langue" name="language" id="language"> <option selected>Choisissez la langue</option> <option value="cn" >Chinois simplifié) (cn)</option> <option value="en" >Anglais (en)</option> <option value="it" >italien (it)</option> <option value="nl" >Néerlandais (nl)</option> <option value="pl" >polonais (pl)</option> <option value="de" >Allemand (de)</option> <option value="tr" >turc (tr)</option> <option value="fr" selected >Français (fr)</option> <option value="jp" >Japonais (jp)</option> <option value="id" >indonésien (id)</option> <option value="pt" >Portugais (pt)</option> <option value="ru" >russe (ru)</option> <option value="es" >Espagnol (es)</option> </select> <button type="submit" class="btn btn-primary w-100">Changement</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="Bien envoyé Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" title="Bien envoyé Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" width="160" height="144" class="mb-5"> <div class="h4" style="color: #000;">Bien envoyé!</div> <p style="color: #000;">Merci, votre candidature a été envoyée avec succès ! Nous vous contacterons sous peu.</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">Laisser une demande</span> <p class="text-muted mt-1">Et notre spécialiste du référencement vous contactera dans un avenir proche</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="oB5XOi3UnYWMvl0wC1701FHfuUVdCnHE8dIUbBYI" autocomplete="off"> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="votre nom" name="name" id="name" required /> </div> <div class="modal__contents_input"> <input type="tel" class="form-control phone_input" placeholder="Numéro de téléphone" id="phone" name="phone" required /> </div> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="L'adresse de votre site Web" name="website" id="website" required /> </div> <button type="submit" class="button desctop">Envoyer</button> <button type="submit" class="button mobile">Envoyer</button> </form> <p class="policy mt-3">En envoyant une demande, vous êtes d'accord <a href="https://seo.computer/ru/policy">Avec une politique de confidentialité</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">Sélectionnez une ville</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></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="Entrez le nom de la ville..."> </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="Écrivez à télégràm" title="Écrivez à télégràm Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans 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="Écrivez à télégràm Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" title="Écrivez à télégràm Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou"> </button> <button class="shareButton wt open" data-bs-toggle="modal" data-bs-target="#SocialModal" data-bs-content="Écrivez à whàtsàpp" title="Écrivez à whàtsàpp Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans 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="Écrivez à whàtsàpp Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" title="Écrivez à whàtsàpp Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans 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">Connecte-toi avec nous</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="#">Écrire</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="Tôp 100 Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans Moscou" title="Tôp 100 Fondamentaux de JavaScript SEO pour votre site: Comment fournir une visibilité dans Google dans 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('En savoir plus'); } else { $('.content_toggle').html('Effondrement'); } 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/fr/' + 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: 'fr' }, 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/fr')); }); } else { results.html('<div class="col"><span>Aucun résultat trouvé.</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>