問題タブ [search-engine-bots]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-3 - GoogleBotや他の検索エンジンクローラーによってクロールされるべきではないインデックス付きページを修正するにはどうすればよいですか?
既存の.NetMVC3サイトで、URLがのようなページングを実装しましたwww.mysite.com/someterm/anotherterm/_p/89/10
。89はページ番号、10はページあたりの結果数です。
残念ながら、rel="nofollow"
3を超えるページ番号のリンクからが欠落しており、それらのページも欠落してい<meta name="robots" content="noindex,nofollow" />
ます。
問題は、Googleと他のいくつかの検索エンジンがこれらのページのインデックスを作成し、それらすべてを頻繁にクロールしようとしていることです。これは、proddbサーバーに劇的な影響を及ぼし始めたことがわかりました。これらの追加の数千ページすべてをクロールするのではなく、最初の数ページだけをクロールします。
DBサーバーがそれほど大きな打撃を受けないように、コードをページングを含まないバージョンのサイトに戻しました。したがって、検索エンジンではこれらすべてのページで404エラーが発生しますが、しばらくしてからページングサイトを再度紹介するので、これが最善の方法かどうかを知りたいと思います。
以下をweb.configに追加して、すべての404をホームページにリダイレクトすることができます。
しかし、これを行うと、ページ付けURLパラメーターを持つすべてのページの「重複コンテンツ」としてレンダリングされると思います。
ここで、これらの404を1〜2週間継続させてから、ページングサイトを再導入するのが最善の方法ですか?
別のオプションは、3を超えるページのクローラーを拒否するためにいくつかのコードが追加されたページングサイトを解放することです。
それらのページをインデックスから削除して、クロールされないようにするためのより迅速な方法はありますか?
ありがとう。
search-engine - Robots.txt ファイルの Disallow ステートメントの * 文字
さまざまな検索ボットは、robots.txt ファイルの disallow ステートメントの * 文字をどのように解釈しますか? それらはすべて「なし、1つまたは複数の文字」として扱いますか?
次の例を見てみましょう。
上記のコードはどういう意味ですか? 「バックエンド」という単語の後に任意の文字セットが続いていても、「バックエンド」を含むディレクトリはインデックス化されないということですか? / の後の * はどうですか?それを書くのは良い慣習ですか?
一般的に言えば、disallow ステートメントでの * の使用法と、すべての検索エンジン クローラーがそれを同じように扱うかどうかについての私の質問です。
php - ページが存在しないことを検索エンジンに伝える
ログを確認したところ、検索エンジンが私のWebサイト上の多くの偽のURLにアクセスしていることがわかりました。多くのリンクが変更される前のものである可能性が高く、301リダイレクトを行ったにもかかわらず、一部のリンクが非常に奇妙な方法で変更され、.htaccessファイルで認識されません。
すべてのリクエストはindex.phpによって処理されます。URLが正しくないために応答を作成できない場合は、代わりにカスタムエラーページが表示されます。簡略化されたコードでは、index.phpは次のようになります
このページがステータス200を返し、ボットにページが有効でなくても有効であることを通知していることに気づきました。
ボットにそのページへのアクセスを停止するように指示するために、catchステートメントに404を含むヘッダーを追加するだけで十分ですか?
このような:
テストすると問題ないように見えますが、SEボット(およびおそらくユーザーエージェント)が混乱するのではないかと心配しています。
search - 一部の URL をクロールするすべての検索エンジン、ボットを停止する方法
ウィジェットの広告クリックをカウントしたい。
私は robot.txt ファイルで使用しました:
nofollow
そのウィジェットのすべてのリンクにも追加しました。
しかし、多くのボットは依然としてそのウィジェットの URL をたどっています。URL をカウントするクライアント IP を取得し、多くの IP フォーム ボットを取得しました。
html - Google 検索からログイン フィールドを非表示にする
背景: 私の Web サイトでは、登録ユーザーが動画をアップロードして共有することができます。
メインページには「ユーザー名」と「パスワード」欄があり、登録ユーザーは必要に応じてログインできます。
また、各ビデオ ページには、ビットレートとフラッシュ プレーヤーを選択するためのテキスト リンクがあります。
(両方の例については、 http ://videoflier.com/およびhttp://videoflier.com/movies/1360488842878341996730を参照してください。)
または、Google で「site:videoflier.com」を検索して、私が話していることを確認してください。
私の問題: Googleまたは検索エンジンがインデックスを作成すると、もちろん、ログインテキストとビデオビットレートを設定するためのリンクが表示されます(「 190 234 [698] 1247 kbps | osflv [jwplayer] flowplayer 」のようになります)
(Google で「site:videoflier.com」を検索して例を確認してください。)
次のようになります。
段ボール飛行機 videoflier.com/movies/1352509017371554759177 段ボール飛行機 osflv jwplayer [flowplayer] ダンボールとテープで作った飛行機の模型です。リモコンが装備されていた...
(ビットレートとプレーヤーの選択が見苦しく、スペースを浪費していることに注意してください。)
これまでのところ、きれいに整頓された方法で解決しようとする私の試み (そして、なぜ私はそれらのどれも好きではないのですか。)
テキストの代わりに画像を使用する:サイトを高速かつ効率的にしたいので、必要がなければテキストに画像を使用したくありません。
設定用の別のページを用意する:サイトを高速で使いやすいものにしたいと考えています。
robots.txt:検索エンジンがページを読み取れなければ、ページを見つける方法がわかりません!
CGI を使用して検索ボットから情報を隠すこれは私が思いついた最良のアイデアについてですが、私は汚いハックをしたくありません。Google 自身もいくつかの異なるユーザー エージェント文字列を使用していますが、実際には「ロボット」という単語を含むものはありません。ほとんどに「Googlebot」が含まれていますが、すべてではありません。そして、他の検索エンジンが何を使用しているのか誰にもわかりません。
もちろん、彼らが通常の Web ブラウザのように見えるエージェント文字列を使用する理由は理解できます (Google もこれを主張しています)。
しかし、可能性のあるすべての検索エンジンを特定するために、絶えず変化するブラックリストを本質的に実行する必要はありません。電子メールのスパムとの戦いのように聞こえます。さらに、検索結果が読みやすくなるように、ログイン リストとビットレート リストを非表示にしようとしています。
javascript: Javascript には独自の問題があります (ブラウザの互換性の問題、アクセシビリティなど)。仕事に最適なツールである場合は Javascript を使用しますが、できる限り純粋でクリーンな HTML が大好きです。
理想的な世界では: <NOBOT>ユーザー名: パスワード:</NOBOT> のような HTML タグがあればいいのにと思いますが、私の知る限り、何も存在しません。理想的には、この架空のタグにより、検索エンジンが非表示のアイテムに基づいて結果を返さないようにすることもできます。「パスワード」という単語を Google に入力する人は、間違いなく私のサイトを見つけようとしているわけではありません。
schema.org? HTML の範囲内でデータの型を指定できるので、最初は schema.org に期待していました。残念ながら、私が知る限り、そのカテゴリとものはすべて次のようなものです。「無視」または「管理オブジェクト」オプションがないようです。
検索エンジンが作成者、説明、およびタイトル テキストをどこから取得するかを既に知っているように、他のすべてに schema.org を広範囲に使用することが、おそらくより大雑把な答えになるでしょう。
どうもありがとうございました、
ジェシー・ゴードン
search - 人間のような検索エンジンのクエリを作成するには?
私はプログラムで検索エンジンとやり取りしていますが、ロボットではなく、クエリを作成する人間であると認識させる必要があります。これには、「ncaa サッカー スケジュール」や「月面着陸はいつですか」など、通常のユーザーが検索する可能性が高いと思われるクエリの生成が含まれます。私はこれらのクエリを毎日 1,000 件以上作成していますが、辞書からランダムな単語を検索しても、それはうまくいきません。
これまで、現実的なクエリを生成する方法をいくつか考えてきました。
- その日の上位の Google (または Yahoo や Bing など) 検索のリストを取得する
- Google のオートコンプリート機能を利用するには、辞書からランダムな単語を入力し、その後にスペースを入力して、推奨されるクエリをスクレイピングします。
後者のアプローチは、多くのリバース エンジニアリングを伴うように思えます。そして、前者のアプローチでは、80 ほどを超えるクエリのリストを見つけることができませんでした。私が見つけた情報源は、AOL トレンド(50 ~ 100) とGoogle トレンド(30) だけです。
人間のような検索フレーズの大規模なセットを生成するにはどうすればよいですか?
(言語に依存する回答: Python でプログラミングしています)
javascript - 怒っているボットの危険を冒すことなく、再訪問者のコンテンツを制限する方法は?
website.com のいくつかのページで、新しい訪問者にいくつかのコンテンツ (紹介) を表示しようとしています。ユーザーが既に見たことがある場合は、ユーザーに再び「迷惑をかけない」ことを望みます。
ユーザーが website.com/cool-article にアクセスすると、上部に紹介が表示され、ユーザーが website.com/useful-article-43 をクリックすると、そのページには紹介が含まれなくなります。または、紹介を残して、2 ページ目のユーザーを下にスクロールする必要がありますか? また、ユーザーがリピーターの場合は紹介を表示したくありません。ウェブサイトはPHPで構築されています。
私の懸念は、これらのソリューションのどれを選択して、SE ボットがコンテンツの変化に腹を立てないようにすることですか? 私が理解していることから、ボットはリファラー情報を持ち込むことはありません。
オプション:
1) Lookup $_SERVER['HTTP_REFERER'] ($httpReferer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;)
mywebsite.com または NULL
DO A または Bに設定されている場合
2) ユーザーがページにアクセスしたときに設定される Cookie を保存して確認します。session_start(); if !$_SESSION['intro']
DO A または B
$_SESSION['intro']='introSeen';
3) JS/localStorage 経由ですか?
(不要なコンテンツの読み込み?)
どのようにしますか?
(A&B)
A)ページの紹介をまったくロードしないでください
- +保存されたリンクをクリックしたユーザーがページに到着したとき、およびユーザーの読み込み時間が短縮されました。
- -混乱の危険性
- -ページが同じに見えません。
B) ユーザーを記事まで下にスクロールし、紹介を一番上に置きます。
- +ユーザーが上にスクロールすると、ページは前と同じように見えます。
- +ウェブサイトには、すべてのユーザーとボットに対して常に同じコンテンツがあります。
- -コンテンツの不要な読み込み
asp.net - 検索エンジンの結果で Robots.txt を非表示にする方法は?
検索の結果リストにRobots.txtを表示したくありません。私はasp.netプロジェクトに取り組んでいます。
失敗した解決策をいくつか見つけました。そのうちの 1 つを以下に示します。
- ヘッダーに「X-Robots-Tag」を使用。
しかし、txtファイルを非表示にしたいので、「ヘッダー」部分はありません。
手伝ってくれてありがとう。
asp.net - 私のボタンを押してロボットを検索...?それを防ぐことはできますか?
「いいね」できるコンテンツのサイトがあります。これにはAPIを使用せず、カスタムのいいねボタンで、コンテンツの「いいね」統計を増やすだけです。
これで、ビュー カウンター、ページの読み込みごと、いいね ボタンができました。いいねボタンを押すと、そのページのライフサイクルの連続したいいねに対して無効になります。
私は、私の好きなものが私の見解よりも多いという問題を経験しています.. 理論的には起こり得ないはずです. それ以来、ボタンの配線を解除する (基本的には要素を非表示にする) Java コードを実装し、Java を無視するロボット用のサーバー側コードも追加しました。
サーバー側のボタンを押すと、セッション変数を設定し、このセッション変数がページのそのインスタンスに設定されている場合に発生する連続したイベントを終了します。
過去に戻るボタンをすばやくクリックすると、最大で 2 つまたは 3 つのイベントが発生します。2 回目または 3 回目の実行でセッション変数を認識するのに十分な時間が経過した後でのみ、イベント コードは無視されます。私のセッション var トリックの前に、ボタンをすばやく 10 回クリックすると、ページが最終的にポストバックしてボタンを無効にする前に、いいね! が 10 増えました。
ですから、2 つや 3 つに減らしても悪くはありませんが、一部のコンテンツでは一貫してビュー数よりもいいね数の方が多くなっています。
- 私のビューは正常にカウントされています。それを再確認しました。
- 私の好きなものは、いくつかの不要なイベントが発生した後、最初の無効化/セッションvarトリガー/イベントのみを確実にキャッチします...(すばやくクリックします)
- その検索エンジンはおそらくリンクをたどっているのではないでしょうか...?
補足情報: jquery ボタンの無効化:
何か案は?