JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法

JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法

JavaScriptの問題がGoogle検索エンジンのコンテンツの表示をブロックできると思われますか?問題を排除するためにガイドを使用してJavaScriptに関連する問題を排除する方法をご覧ください。

JavaScriptは、Webプラットフォームの重要な部分です。これは、Webを強力なアプリケーションプラットフォームに変える多くの機能を提供するためです。 JavaScriptを使用してWebアプリケーションをGoogle検索エンジンで利用できるようにすることで、新しいユーザーを引き付けるのに役立ち、Webアプリケーションが提供するコンテンツを探すときに既存のユーザーを返すことができます。

Google Searchは、現在のバージョンのChromiumを使用してJavaScriptを起動しますが、最適化できるものがいくつかあります。

このリーダーシップは、Googleの検索がJavaScriptとGoogleのサイトのJavaScriptアプリケーションの可視性を改善するためのベストプラクティスをどのように処理するかを説明しています。

GoogleがGoogle WebサイトでJavaScriptを処理する方法

Googleは、3つの主要な段階でサイトのJavaScriptアプリケーションを処理します。

  • クローニング(クロール)
  • レンダリング(レンダリング)
  • インデックス(インデックス作成)

GoogleBotは、Keueにページをキューに入れて、KralingとRenderingに配置します。ページがKralingを待っているとき、そしてレンダリングをいつ待っているかは明らかではありません。 GoogleBotがCrowringラインからURLを抽出すると、最初にスキャンが許可されているかどうかを確認します。 GoogleBotはrobots.txtファイルを読み取ります。

Kralingのページがブロックされている場合、GoogleBotはリクエストを逃し、GoogleはサイトのブロックされたページでJavaScriptをレンダリングしません。

Googleでサイトを検索するためのJavaScriptの最適化

JavaScriptアプリケーションのページがAPPを使用する場合があります。これは、初期にコンテンツが含まれていない場合、GoogleはJavaScriptを生成する実際のコンテンツを表示するためにJavaScriptを実行する必要があります。

GoogleBotは、すべてのページをレンダリングラインに配置します。ロボットメタグまたは見出しがページをインデックス作成してはならないことを示していない場合。ページは数秒間並んでいる可能性がありますが、これには時間がかかる場合があります。 Googleリソースが許可された後、ページはヘッドレスクロムとJavaScriptの助けを借りてレンダリングします。

Googleであなたのサイトのユニークな見出しとメタ記述を設定する方法

およびメタ記述のユニークで記述的な要素は、ユーザーが検索の目標に最適な結果を迅速に選択するのに役立ちます。 JavaScriptを使用して、メタ説明と<bitle>の要素を設定または変更できます。</p><H3>サイトのコードをGoogleと互換性のあるものにします</H3><p>ブラウザは多くのAPIを提供し、JavaScriptは急速に発展している言語です。 Googleには、サポートするAPIおよびJavaScript機能がどのような制限があります。コードがGoogleと互換性があることを確認するには、JavaScriptの問題を排除するために推奨事項に従ってください。</p><H2>GoogleサイトにHTTPステータスコードの使用方法</H2><p>GoogleBotは、HTTPステータスコードを使用して、サイトのページを鳴らすときに何が間違っているかを判断します。</p><p>Pageをスキャンまたはインデックス作成できないことをGoogleBotに通知するには、パスワードで保護されているページでは、発見されていないページでは404などの理解可能なステータスコードを使用します。</p><H3>シングルページアプリケーション(SPA)のソフト404エラーを回避する方法</H3><p>クライアントレンダリングを備えた1ページのアプリケーションでは、クライアントルーティングを使用してルーティングが実装されることがよくあります。この場合、正しいHTTPステータスコードの使用は不可能または不適切な場合があります。顧客のレンダリングとro音を使用するときにソフト404エラーを回避するには、次の戦略を使用します。</p><ul><li>JavaScriptリダイレクトをURLに使用します。これには、サーバーがコード404(たとえば、 /not-found)で満たされています。</li><li><Meta name = "robots" content = "noindex"> javascriptを使用したエラーのあるページに追加します。</li></ul><H2>GoogleサイトにHistory APIを使用します</H2><p>Googleは、HREF属性を持つ<a>要素でのみリンクを見つけることができます。</p><p>クライアントレンダリングを備えた1ページのアプリケーションの場合、履歴APIを使用して、Webアプリケーションのさまざまなアイデア間のルーティングを実装します。 GoogleBotがURLフラグメントを使用してさまざまなコンテンツをダウンロードせずにURLを処理および抽出できることを確認してください。</p><H2>GoogleのサイトのタグRel = "Canonical"の正しい実装</H2><p>JavaScriptを使用してタグRel = "Canonical"を導入することはお勧めしませんが、これは可能です。 Google検索では、ページをレンダリングするときに入力された標準URLが見つかります。</p><H2>Googleサイトにロボットメタスを適切に使用する方法</H2><p>ロボットメタグを介してページインデックスまたはフォローリンクを防ぐことができます。たとえば、ページの先頭に次のメタテグを追加すると、Googleのページのインデックス作成をブロックできます。</p><p><Meta name = "robots" conte = "noindex、nofollow"></p><p>JavaScriptを使用してロボットメタグをページに追加したり、コンテンツを変更したりすることは可能ですが、Googleがページコードに既に存在している場合、Googleがページをレンダリングまたはインデックス化しない場合があることを覚えておくことが重要です。</p><H2>Googleサイトに長期キャッシュを使用します</H2><p>GoogleBotは、ネットワークリクエストとリソースの使用を削減するために、積極的にキャッシュページです。時代遅れのJavaScriptまたはCSSリソースの問題を回避するために、フィンガープリント戦略を使用して、ユニークなコンテンツベースを作成します。</p><H2>Google Webサイトで構造化されたデータを使用する方法</H2><p>サイトのページで構造化されたデータを使用する場合、JavaScriptを使用してJSON-LDを生成し、ページに実装できます。可能な問題を回避するために、実装をテストしていることを確認してください。</p><H2>Google WebサイトでWebコンポーネントのベストプラクティスに従う方法</H2><p>GoogleはWebコンポーネントをサポートしています。 Googleページをレンダリングすると、Shadow DomとLight Domの内容が「平ら」になります。これは、Googleがリーンで見えるコンテンツのみを見ることができることを意味します。 Googleがコンテンツを確認できるようにするには、Rich ResultsテストツールまたはURLチェックツールを使用して、リーンを確認してください。</p><H2>Googleでサイトの画像と怠zyコンテンツの読み込みの修正</H2><p>画像はスループットを大きくロードし、パフォーマンスに影響を与える可能性があります。優れた戦略は、ユーザーがそれらを表示する場合にのみ、画像をロードするために怠zyなロードを使用することです。怠zyなロードの実装がGoogleの推奨事項に対応していることを確認してください。</p><H2>Googleでアクセシビリティのためにサイトを設計する方法</H2><p>検索エンジンだけでなく、ユーザー向けのページを作成します。サイトを開発している場合は、JavaScriptをサポートするブラウザを使用していないユーザー(たとえば、画面からプログラムを使用する人や強力なモバイルデバイスを使用する人など)を含むユーザーのニーズを考慮してください。</p><p>サイトの可用性をテストする簡単な方法の1つは、切断されたJavaScriptを使用してブラウザで表示するか、Lynxなどのテキストブラウザを使用することです。テキストモードでサイトを表示すると、Googleにとって難しい可能性のある別のコンテンツ、たとえば画像に組み込まれたテキストを識別することもできます。</p><p>サイトのSEOに関連する問題については、SEOコンパニオンに連絡できます <strong>最高経営責任者(CEO)</strong> E -Mailによって <a href="mailto:info@seo.computer">info@seo.computer</a> またはwhatsappを介して数字 +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">リクエストを送信してください、ご相談に応じます の上 せお あなたのウェブサイトの宣伝</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="kE5kN0qAEgsu5b5cfxWc6A21w3tSDxnLc30bVy32" autocomplete="off"> <div class="col-12 col-xl-3"> <input type="text" name="name" class="form-control form-padding rounded-5" placeholder="あなたの名前" required=""> </div> <div class="col-12 col-xl-3"> <input type="tel" name="phone" class="form-control form-padding rounded-5" placeholder="電話番号" 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">送信</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">申し込みを送信すると、プライバシーポリシーに同意したものとみなされます</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/jp"> <img src="https://seo.computer/assets/svg/seo_logo.svg" alt="SEO Computer JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" title="SEO Computer JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" class="rounded-5" width="200" height="40" /> </a> <ul class="nav flex-column"> <li class="fn org" itemprop="name">せお クオムプウテエリ</li> <li class="category">インターネットマーケティング</li> <li>営業時間: <span class="workhours" itemprop="openingHours" datetime="Mo-Su">24時間いつでも</span></li> <li class="norender"> <span itemprop="priceRange" class="pricerange">から 31287 JPY</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">ムオスケヴア</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">メニュー</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="#tarifs" class="nav-link p-0 color-bfbfbf" title="SEO 関税">SEO 関税</a></li> <li class="nav-item mb-2"><a href="#reviews" class="nav-link p-0 color-bfbfbf" title="SEO レビュー">SEO レビュー</a></li> <li class="nav-item mb-2"><a href="#quiz" class="nav-link p-0 color-bfbfbf" title="SEO 電卓">SEO 電卓</a></li> <li class="nav-item mb-2"><a href="#sales" class="nav-link p-0 color-bfbfbf" title="SEO プロモーション">SEO プロモーション</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/jp/contact" class="nav-link p-0 color-bfbfbf" title="連絡先">SEO 連絡先</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">サービス</div> <ul class="nav flex-column"> <li class="nav-item mb-2"><a href="https://seo.computer/jp/business" class="nav-link p-0 color-bfbfbf" title="ビジネス">SEO ビジネス向け</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/jp/type-sites" class="nav-link p-0 color-bfbfbf" title="サイトの種類">SEO サイトの種類について</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/jp/cms" class="nav-link p-0 color-bfbfbf" title="せえめすシステム">SEO のために せえめす システム</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/jp/languages" class="nav-link p-0 color-bfbfbf" title="言語">SEO 言語用</a></li> <li class="nav-item mb-2"><a href="https://seo.computer/jp/engines" class="nav-link p-0 color-bfbfbf" title="サーチエンジン">SEO 検索エンジン用</a></li> </ul> </div> <div class="col-12 col-xl-3 col-md-6"> <div class="fw-500 fs-20 mb-2">ソーシャルネットワーク</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="ワハアテスアププ"><i class="fab fa-whatsapp me-1"></i>ワハアテスアププ</a></li> <li class="nav-item mb-2"><a href="https://t.me/t9202044461/" class="nav-link p-0 color-bfbfbf" title="テエルエグリアム"><i class="fab fa-telegram-plane me-1"></i>テエルエグリアム</a></li> <li class="nav-item mb-2"><a href="mailto:info@seo.computer" class="nav-link p-0 color-bfbfbf" title="エムアイル"><i class="fas fa-envelope me-1"></i>エムアイル</a></li> </ul> </div> </div> <div class="justify-content-between pt-2 pb-4 mt-2 border-top col-md-12 text-light"> <p>このサイトは情報提供のみを目的としており、公募ではありません。提供されるサービスとその費用に関する正確な情報を入手するには、会社のマネージャーにお問い合わせください。</p> <a class="text-decoration-none color-bfbfbf" href="https://seo.computer/jp/policy">プライバシーポリシー</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">リクエストを残す</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="リクエストを残す JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" title="リクエストを残す JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア"> <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="kE5kN0qAEgsu5b5cfxWc6A21w3tSDxnLc30bVy32" autocomplete="off"> <div class="modal-body"> <label class="fs-5 text-center fw-bold">リクエストを残してください。 せお スペシャリストがすぐにご連絡します</label> <div class="row"> <div class="col-12"> <input type="text" name="name" class="form-control form-padding my-2" placeholder="あなたの名前" required> </div> <div class="col-12"> <input type="tel" name="phone" class="form-control form-padding my-2" placeholder="電話番号" required> </div> </div> </div> <div class="modal-footer justify-content-center"> <button class="btn rounded-5 btn-primary w-100 form-padding" type="submit">送信</button> <a href="policy.html" class="text-decoration-none text-dark text-center fs-14">データを送信すると、プライバシー ポリシーに同意したことになります。</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">言語を選択</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="kE5kN0qAEgsu5b5cfxWc6A21w3tSDxnLc30bVy32" autocomplete="off"> <select class="form-select mb-2" aria-label="言語を選択" name="language" id="language"> <option selected>言語を選択</option> <option value="cn" >中国語(簡体字) (cn)</option> <option value="nl" >オランダの (nl)</option> <option value="en" >英語 (en)</option> <option value="fr" >フランス語 (fr)</option> <option value="de" >ドイツ人 (de)</option> <option value="id" >インドネシア語 (id)</option> <option value="it" >イタリアの (it)</option> <option value="jp" selected >日本語 (jp)</option> <option value="pl" >研磨 (pl)</option> <option value="pt" >ポルトガル語 (pt)</option> <option value="ru" >ロシア (ru)</option> <option value="es" >スペイン語 (es)</option> <option value="tr" >トルコ語 (tr)</option> </select> <button type="submit" class="btn btn-primary w-100">変化</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="正常に送信されました JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" title="正常に送信されました JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" width="160" height="144" class="mb-5"> <div class="h4" style="color: #000;">正常に送信されました!</div> <p style="color: #000;">ありがとうございます。申請は正常に送信されました。すぐにご連絡させていただきます。</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">リクエストを残す</span> <p class="text-muted mt-1">そして、私たちのSEOスペシャリストは近い将来にあなたに連絡します</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="kE5kN0qAEgsu5b5cfxWc6A21w3tSDxnLc30bVy32" autocomplete="off"> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="あなたの名前" name="name" id="name" required /> </div> <div class="modal__contents_input"> <input type="tel" class="form-control phone_input" placeholder="電話番号" id="phone" name="phone" required /> </div> <div class="modal__contents_input"> <input type="text" class="form-control" placeholder="ウェブサイトのアドレス" name="website" id="website" required /> </div> <button type="submit" class="button desctop">送信</button> <button type="submit" class="button mobile">送信</button> </form> <p class="policy mt-3">アプリケーションを送信することで、あなたは同意します <a href="https://seo.computer/ru/policy">機密性の方針があります</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">都市を選択してください</div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="近い"></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="都市の名前を入力してください..."> </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="書き込み先 テエルエグリアム" title="書き込み先 テエルエグリアム JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" 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="書き込み先 テエルエグリアム JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" title="書き込み先 テエルエグリアム JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア"> </button> <button class="shareButton wt open" data-bs-toggle="modal" data-bs-target="#SocialModal" data-bs-content="書き込み先 ワハアテスアププ" title="書き込み先 ワハアテスアププ JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" 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="書き込み先 ワハアテスアププ JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" title="書き込み先 ワハアテスアププ JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア"> </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">私達と接続</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="#">書く</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="テオプ 100 JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" title="テオプ 100 JavaScriptSEOの基礎:Googleでサイトの可視性を改善する方法 で ムオスケヴア" /> </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('続きを読む'); } else { $('.content_toggle').html('崩壊'); } 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/jp/' + 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: 'jp' }, 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/jp')); }); } else { results.html('<div class="col"><span>結果が見つかりません。</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>