質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • SEO

    248questions

    SEO(Search Engine Optimization)は、検索エンジンでウェブページがランキング上位に上がるように工夫する様々なテクニックの事です。

・重複コンテンツをクリックイベントでDOM生成するのは、問題ないでしょうか?

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 309
退会済みユーザー

退会済みユーザー

重複コンテンツをクリックイベントでDOM生成するのは、問題ないでしょうか?

他のページの紹介文や、アプリの使い方の説明文など、どうしても重複コンテンツになってしまう部分を何とかしたいです。
下記のような情報を見たのですが、

>>>
クリックによるDOM生成はページ遷移に該当するのでクローキング判定される可能性は低い。スクロールイベントに連動するものはガイドラインを厳格に適用すればクローキングに該当します。

>>>

つまり、スクロールイベントを使って、ある程度下がったらDOM生成して、他のページの紹介文などが作られる場合はクローキングになる可能性が高いので、やめたほうがいい。
しかし、リンクをクリックさせて、DOM生成する形で、テキスト情報を作成する場合は、クローキングになる可能性が極めて低いと考えて良いという情報です。

もしこれが正しければ、
他のページの紹介文を見るというページ内遷移のボタンを作ってこのボタンを押すと、
するっと移動しながらDOM生成して、到着と同時に作られた紹介文を見ることが出来るという形にすることが出来ます。

これなら、クローキングになる可能性はほぼありえないでしょうか?

一番の理想は、アプリのスタートボタンを押したら、紹介文などが、DOM生成する形です。
これなら絶対に、押すので、わざわざもう一度、紹介文を見るボタンを押してもらう手間が省けます。

ただこれだとクローキングになる可能性が高いのですかね?
いまいち、違いがわかりません。

・URLパラメータという方法もあるようですがこれは、サーバサイドのプログラミングをしないと不可能なのでしょうか?

フロントjsしかできない人には無理ですかね?


>>>
質問者さんの言う、”重複コンテンツ”はSEO上での、検索エンジンにとっての重複コンテンツ、という認識で合っていますか?それであれば、回答することが可能です。
>>>

そうです。おそらく重複コンテンツが原因でページでの順位が全く上がらなくなりました。

ページは下記のようなイメージです。

ヘッダー
アプリの内容(SPAなので、クリック時に表記される。それまでは何もない状態なのでクローラーは認識できていない。)
アプリの実行ボタン

他のサイトの紹介文

SNSのお願い文

その他文三種類ほど

アプリの内容をズラッとliで羅列表記。
(クローラーに重複コンテンツのページと思われないように。あえて記載している。)
フッター

上記のようになっています。

*ソースコードは下記のようになっています。
今は、スクロールイベントをコメントアウトしています。

(function () {

    // document.addEventListener('scroll', function() {

    //     // var scrollFrag;

    //     if(scrollFrag !== true && window.scrollY >= 1500) {

    //         scrollFrag = true;
            var punPage = document.querySelector('#js-other');
            punPage.innerHTML = `
            <aside id="js-goto-other">
                <h4 class="heading4">
ここに、テキスト情報がごっそり入っている。~
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • miyabi_takatsuk

    2018/10/09 17:26

    前回の質問時に、こちらからの質問をしなくてすみませんでした。質問者さんの言う、”重複コンテンツ”はSEO上での、検索エンジンにとっての重複コンテンツ、という認識で合っていますか?それであれば、回答することが可能です。

    キャンセル

  • miyabi_takatsuk

    2018/10/09 17:35

    もう一点、だいたいでいいので、訪問ページと、表示させたい内容が記載さ入れているページなどの、サイト全体のディレクトリ構成や、js構文を記載してください。正直、今のままでは、クローキングになるかどうかも判断できません。重複コンテンツになるか否かくらいしか、お答えできません。

    キャンセル

回答 1

checkベストアンサー

0

質問文の修正、ありがとうございます。

回答いたしますと、
クライアントサイド(JavaScriptでHTMLの内容を変えることも、クライアントサイドとなります。)で、いくら文面を変えようとも、
元のHTML文が同じ内容、構成であれば、いくらJavaScriptでリッチテキストでコントロールしようとも、
重複コンテンツとみなされる確率が非常に高くなります。(というかほぼ100%でしょう)
現在の技術では、ロボットのクロールの際の、サーバーから返ってきたHTML文章の内容で、
そのページの内容が判別されております。
である以上、ロボットが判断した後にいくらJavaScriptで内容を変えようが、Ajaxで別ページの内容を入れこもうが、重複コンテンツとみなされます。
よって、同じHTML上で、かつ重複コンテンツとみなされないようにするには、サーバーサイド(PHPとか、Perlとかです)で、URLパラメータなどによって判別し、
サーバーから返ってくるHTML文章の内容自体を変えるしかありません。
なので、クローキングの可能性云々ではなく、
JavaScriptでのリッチコンテンツは、検索エンジンロボットにとっては、”見えない内容”、なのです。
(見えないからこそ、下手なことをするとクローキングとみなされるのです)

検索技術の進歩を期待して止みませんが、
(現在は画像に書かれた文字を検索にひっかけるなどの技術が研究されています。そうなれば、JavaScriptの内容をも検索できる時代がいずれくるでしょう)
今のところは、質問者さんのやりたいことで、重複コンテンツ回避は不可能です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/09 22:36

    >>>
    検索技術の進歩を期待して止みませんが、
    (現在は画像に書かれた文字を検索にひっかけるなどの技術が研究されています。そうなれば、JavaScriptの内容をも検索できる時代がいずれくるでしょう)
    今のところは、質問者さんのやりたいことで、重複コンテンツ回避は不可能です。
    >>>

    クリックイベントや
    記載したソースに今コメントアウトされている、スクロールイベントを実行してからDOM生成する形にしても、
    クローラーは認識できるので、定型文は重複コンテンツになっているという事ですね。

    私は、技術力が低いので、大変恐縮ですが、この結論の場合いくつか気になる点があります。

    ・モバイルフレンドリーテストで確認したところ、スクロールイベントを使うと、フックとなるdivしか存在しませんでした。
    その後スクロールイベントを外すとちゃんとDOM生成された、テキストが表記されました。

    ・もしそうなら、クリックイベント時に実行されるアプリの内容にあたるテキストも全て認識できていることになります。
    数千文字がここにあるので、定型文が数百文字あっても重複コンテンツページとして認識されないはずです。
    ある意味そうであれば、始めから、この問題は一切起きていないのではと思います。

    よって、私は、やはりイベント実行時にinnerHTMLで挿入されたテキストは認識していないと思います。


    ただ、2年後あたりに、画像の中の文字も認識できるようになると、イベント実行時にinnerHTMLに挿入される
    形でも、認識できるようになるので、数年で、また重複コンテンツ扱いになるのですね。
    原理がいまいちわかりませんが、なぜ画像のテキストを認識できるとイベント実行時にinnerHTMLで挿入される
    テキストを認識できるようになるのでしょうか?

    本当にそうなら、もうコンバージョン率がさがっても定型文を減らすか、詳細を見るボタンをつけて、別ページに飛ばして、
    そこに記載して、このページはインデックスさせないしかないですね。

    キャンセル

  • 2018/10/11 04:01

    >・モバイルフレンドリーテストで確認したところ、スクロールイベントを使うと、フックとなるdivしか存在しませんでした。
    >その後スクロールイベントを外すとちゃんとDOM生成された、テキストが表記されました。
    モバイルフレンドリーは、CSSや画像、JSなど全ての実行の後、最終的にモバイルデバイスに最適化された表示をしているかを計測するものなので、
    今回の、SEO上での重複コンテンツとは関係ありません。
    (モバイルフレンドリーであること自体は、SEOにとても重要になります。)

    >・もしそうなら、クリックイベント時に実行されるアプリの内容にあたるテキストも全て認識できていることになります。
    >数千文字がここにあるので、定型文が数百文字あっても重複コンテンツページとして認識されないはずです。
    >ある意味そうであれば、始めから、この問題は一切起きていないのではと思います。
    その認識で大丈夫です。
    DOM生成したものは、クローラーがページを認識した後に実行されるものなので、JSを実行した時はすでに時遅しなのです。

    >ただ、2年後あたりに、画像の中の文字も認識できるようになると、イベント実行時にinnerHTMLに挿入される
    >形でも、認識できるようになるので、数年で、また重複コンテンツ扱いになるのですね。
    >原理がいまいちわかりませんが、なぜ画像のテキストを認識できるとイベント実行時にinnerHTMLで挿入される
    >テキストを認識できるようになるのでしょうか?
    2年後とは、どこから出たのが存じ上げませんが、
    画像の文字の認識と、JSの内容の認識は全く別個です。
    私が申し上げたのは、画像の文字の認識ができるくらいの技術革新があれば、JS上の内容の認識をするのは造作もないだろう、といった趣旨の話です。

    >本当にそうなら、もうコンバージョン率がさがっても定型文を減らすか、詳細を見るボタンをつけて、別ページに飛ばして、
    >そこに記載して、このページはインデックスさせないしかないですね。
    そうですね。
    現在表示させているページのせいで、順位が下がっており、影響をさせたくないのであれば、
    そのページに、ユニークな内容を入れるか、もしくは、インデックスをさせない、しかないでしょうね。

    キャンセル

  • 2018/10/11 11:11

    >>>
    モバイルフレンドリーは、CSSや画像、JSなど全ての実行の後、最終的にモバイルデバイスに最適化された表示をしているかを計測するものなので、
    今回の、SEO上での重複コンテンツとは関係ありません。
    (モバイルフレンドリーであること自体は、SEOにとても重要になります。)
    >>>

    もちろんブラウザ上の画面も確認できますがソースコード自体も確認できます。

    ソースコードにDOM生成されたhtmlが存在しなくて、JSのフックのdivしかないという事は、
    やはり、スクロールイベントをトリガーとしたJSは実行できていないという事ではないのですか?

    つまり、スクロールイベントで生成されるhtmlは認識できていないので、
    存在しないと思っているのではないのですか?



    >>>
    DOM生成したものは、クローラーがページを認識した後に実行されるものなので、JSを実行した時はすでに時遅しなのです。
    >>>

    JSを実行した後の最終的なhtmlにないものは、実行できなかったJSなので、認識できていないのではないのですか?



    >>>
    2年後とは、どこから出たのが存じ上げませんが、
    画像の文字の認識と、JSの内容の認識は全く別個です。
    私が申し上げたのは、画像の文字の認識ができるくらいの技術革新があれば、JS上の内容の認識をするのは造作もないだろう、といった趣旨の話です。
    >>>

    イベント実行時にinnerHTMLで挿入するテキストも、数年くらいで、理解できるようになりそうなのですね。




    >>>
    そうですね。
    現在表示させているページのせいで、順位が下がっており、影響をさせたくないのであれば、
    そのページに、ユニークな内容を入れるか、もしくは、インデックスをさせない、しかないでしょうね。
    >>>

    おっしゃる通りなので、オリジナルのテキストを2000文字以上追加しました。しかしそれでも、
    翌日1から0の表記数が70前後になって、翌日また0になってしまいます。

    もしかして、短期間にこれと関連する内容のページを量産したのが問題だったのでしょうか?
    つまり、例えば、中国語のクイズがクリックされるとわかったからと言って、問題数をりょうさんして、
    ページ数を一気に増やすと、クローラーは同じ内容のページを量産した水増し請求のページを量産したと、
    勘違いされるのでしょうか?



    最後に、これだけ教えていただければ幸いです。
    スクロールイベントは、クローキングになる可能性が高いので行いませんが、
    クリックイベント時にDOM生成する形なら、ページ遷移と同じとグーグルは考えているので、
    クローキングになる可能性がほぼないと聞いたのですが、これなら、少なくてもクローキングになる可能性は、
    ないと考えてよろしいでしょうか?

    もちろんこれをやってもクローラーは認識しているので、完全に別ページを作って、そこに記載するしかないという、
    お考えなのは分かっています。

    キャンセル

  • 2018/10/12 04:44 編集

    >ソースコードにDOM生成されたhtmlが存在しなくて、JSのフックのdivしかないという事は、
    >やはり、スクロールイベントをトリガーとしたJSは実行できていないという事ではないのですか?

    >つまり、スクロールイベントで生成されるhtmlは認識できていないので、
    >存在しないと思っているのではないのですか?

    そうですね、認識されていないでしょうね。というかJSがうまく動いていないんだと思います。

    >スクロールイベントは、クローキングになる可能性が高いので行いませんが、
    >クリックイベント時にDOM生成する形なら、ページ遷移と同じとグーグルは考えているので、
    >クローキングになる可能性がほぼないと聞いたのですが、これなら、少なくてもクローキングになる可能性は、
    >ないと考えてよろしいでしょうか?

    クリック時にDOM修正、クローキングにならないと思いますよ。
    というか、スクロール時でも、そんなに大量でない、ページと関連している内容であれば、クローキングにはならないと思いますよ。(最初の回答と矛盾するかもしれませんが)

    うーん、もう一度確認します。
    その質問者さんの言う定型文は、ページによってユニークですか?
    それぞれ別々のHTMLページとして存在しているのでしょうか?
    いくら何万文字、文字列を追加しても、同じ内容ならまったく意味がありません。
    そして、そのサイト、そのページに関連づいている内容でなければ、SEO上の意味を全く成しません。むしろペナルティを食らう可能性が高くなります。

    キャンセル

  • 2018/10/12 11:21

    >>>
    そうですね、認識されていないでしょうね。というかJSがうまく動いていないんだと思います
    >>>

    認識しているとおっしゃっていませんでしたか?


    定型文がユニークという事はあり得ませんよね。


    数千文字のオリジナルの情報は、ユニークで定型文とは別の内容です。


    ちょっと矛盾が多すぎるので混乱します。

    キャンセル

  • 2018/10/12 11:57

    今までご回答ありがとうございました。

    ちょっと矛盾が多すぎて理解できないので、他の人の意見も聞きたいと思います。

    最後に、クリックイベントでDOM生成するのは、別ページに移動したものとして、グーグルは認識するので、重複コンテンツになることは、ありえないのですね。

    また、スクロールイベントも、重複コンテンツになる可能性はクリックイベントでDOM生成するのと比べると多少ありうるが、確率としては低いのですね。

    キャンセル

  • 2018/10/12 12:42

    >認識しているとおっしゃっていませんでしたか?

    認識しているといったのは、モバイルフレンドリーでは認識してる、ということです。
    私が認識しないと言ったのは、あくまで検索ロボットがって話です。
    表現足らずですみません。
    ですが、矛盾はしておりませんよ。
    あくまで検索ロボットは、JSでDOM生成後の文章は認識しません。

    >定型文がユニークという事はあり得ませんよね。

    >数千文字のオリジナルの情報は、ユニークで定型文とは別の内容です。

    では、質問者さんが言う定型文=HTML上の静的文章(DOMで生成前の文章)
    ではないということですね?
    HTMLの静的文章が同じ内容である(ユニークでない)限り重複コンテンツと認識されます。
    何度も申し上げますが、JSでいくらDOM生成してHTML内容を変えても、HTMLの静的内容が同じであれば、重複コンテンツになります。

    キャンセル

同じタグがついた質問を見る

  • SEO

    248questions

    SEO(Search Engine Optimization)は、検索エンジンでウェブページがランキング上位に上がるように工夫する様々なテクニックの事です。