web-dev-qa-db-ja.com

Noscriptタグ、JavaScript無効警告、Googleペナルティ

ユーザーがJavaScriptを無効にしているか、Noscriptなどのスクリプトブロックプラグインを使用しているときに警告を表示するために、noscriptタグを使用しています。 JavaScriptが無効になっている場合、Webサイトは正しく機能せず、ユーザーは警告なしにWebサイトが機能しない理由を理解できない場合があります。

最新のGoogleアルゴリズムのシャッフル後、毎日のトラフィックが前の月のトラフィックの約3分の1に減少しました。 SERPSで1位または2位にランク付けされていたページが結果から除外されることも確認しました。ウェブマスターツールを調査したところ、「JavaScript」がキーワードセクションの#16としてリストされていることに気付きました。このサイトはJavaScriptとは関係なく、Wordが表示される唯一の場所はnoscriptタグの間のテキストであるため、これは意味がありません。

Googleは現在、noscriptタグの間にコンテンツを含め、インデックス化しているようです。これが以前に起こっていたとは思わない。警告は3つの文です。同じ3つの文がサイトのすべてのページの上部に表示されると、SEOに悪影響を与える可能性があると思います。

これがSEOの問題の原因になると思いますか?また、JavaScriptが無効になっていて、インデックスに登録されない、または検索エンジンによって読み取られないユーザーに警告を表示する他の方法はありますか?

49
undoIT

別のフォーラムの誰かが警告に画像を使用することについて言及しました。私の見たところ、これには3つの利点があります。

  1. 検索エンジンが索引付けするための無関係なテキストはありません。
  2. 単一の画像を表示するコードは、テキスト警告(すべてのページに読み込まれます)よりもかさばりません。
  3. トラッキングを実装して、画像が呼び出される回数を決定し、JavaScriptが無効またはブロックされているビジターの数を知ることができます。

これをJ-Pで言及されている非noscriptテクニックのようなものと組み合わせると、それが可能な最善の解決策のようです。

14
undoIT

置く <noscript>コンテンツをHTMLのendに配置し、CSSを使用してブラウザウィンドウの上部に配置します。グーグルはもはやそれを重要だとは考えない。

Stack Overflow自体がこの手法を使用しています。このページでソースの表示を行うと、HTMLの終わり近くに「JavaScriptで最適に機能します」という警告が表示され、JavaScriptをオフにするとページの上部に表示されます。

42
RichieHindle

<noscript>は、次のような意味のない警告のためのものではありません。

<noscript>
大野! JavaScriptが有効になっていません! JSを有効にしないと、運命にあります。 [これまでに作成されたすべてのブラウザでJSを有効にする方法についての詳細な説明]
</noscript>

JSを有効にすると特定の追加機能へのアクセスが提供されるという丁寧な言及とともに、できる限り多くのコンテンツを提供することを意味します。基本的にすべての人気サイトがこのガイドラインに従っていることがわかります。

23

<noscript>の使用はお勧めしません。クライアントがJavaScriptをブロックするファイアウォールの内側にある場合は効果がないと聞きました。クライアントのブラウザでJavaScriptが有効になっている場合、<noscript>タグはアクティブになりません。ブラウザに関する限り、JavaScriptは完全に機能するためです。ドキュメント内で操作可能...

IMOのより良い方法は、「noscript」になる可能性のあるすべてのコンテンツをJavaScriptで非表示にすることです。

これは非常に基本的な例です:

...
<body>

    <script>
        document.body.className += ' js-enabled';
    </script>

    <div id="noscript">
        Welcome... here's some content...
    </div>

そしてあなたのStyleSheet内で:

body.js-enabled #noscript { display: none; }

より詳しい情報:

21
James

これに関連する興味深い一口を投稿したかっただけです。私のサイトでは、スタックオーバーフローが使用するものと同様のことをしましたが、ユーザーがこのサイトほど技術的ではないため、「もっと探す」リンクが追加されています。

興味深い部分は、人々の助言に続いて、私の解決策はメッセージのdivをjavascriptで非表示にする代わりにnoscriptタグを捨てたことです。しかし、Firefoxがマスターパスワードを待機している場合、このメッセージの非表示が中断されるので、noscriptに戻ると思います。

3
James P McGrath

Noscriptタグを使用するのではなく、divコンテンツの置き換えに基づいてソリューションを選択する場合(jsが有効になっている場合、divコンテンツが更新されます)、注意してくださいグーグルがこの慣習をどう見るかについて:

http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=6635

グーグルがそれを不正だと考えるかどうかはわかりませんが、それは考慮し、さらに調査する必要があります。これに関するstackoverflowの別の投稿は次のとおりです: noscript google snapshot、safe way

1
prograhammer