No.5060, No.5059, No.5058, No.5057, No.5056, No.5055, No.5054[7件]
➡ 2025年3月29日(土) 15時38分 〔76日前〕 No.5059 ✎ !
にししさん、とても詳しく教えてくださりありがとうございます🙇てがろぐと離れた話題にも関わらずお答え頂き感謝です!
私のように間違った使い方で併用している方も少なくないと思いますので(たぶん…)、検索避けされている方々に広く認知されるといいなと思います。
そういう意味で、てがろぐのログイン者限定公開のモードはとても有難い存在です!素晴らしいCGIをありがとうございます!
➡ 2025年3月29日(土) 15時22分 〔76日前〕 No.5058 ✎ !
こんな話だけで申し訳ない、てがろぐ、とても愛用させてもらっています。いつもありがとうございます。
➡ 2025年3月29日(土) 10時39分 〔76日前〕 回答/返信 No.5057 ✎ !
🍔Re:5055◆その適用順序は半分(前半が)間違っていますのでご注意下さい。robots.txtでクローラーをブロックすると検索避けができなくなる点は、Google自身が公式ヘルプで明言しています。(「インデックスに登録してはいけない」という指示自体が読めなくなるため)
robots.txt ファイルでページのクロールが許可されていない場合、インデックス登録や表示に関するルールについての情報は検出されず、その結果無視されます。
後半の「metaタグ→それでも読まないお行儀悪いものは.htaccess」は正しい順序ですが、最初に「まずはrobots.txtを読んでもらう」とすると、Googleでは検索避けに失敗します。(※robots.txtでGoogle等の紳士的なクローラーをブロックしていないなら問題ありませんが。)
🍔Re:5053◆Googleに関してはその通りです。.htaccessでブロックしてもいけないし、robots.txtでブロックしてもいけません。なぜなら、ブロックされると「登録するな」という指示自体も読めないからです。
- もちろん、robots.txtでブロックされているならクローラーはページの内容を読みませんから、(ページ内に何が書かれているのかの情報は得られないため)インデックスに登録される可能性は減りはします(※なので「この方法で検索避けは成功する」と思えるケースもあるでしょう)。
- しかし、登録禁止だという指示自体も伝わっていないため、よほど評価値の高い外部サイトからリンクされている場合などの外部要因次第では(リンク元ページにあるリンクテキストなどのように「読むことを禁止されていない場所にある情報」を用いて)インデックスに登録される可能性が残ります。
※2000年代からある古典的な話ですが、「出口」という検索語でググると、Yahoo! Japanがヒットします。これは「出口」というリンクテキストを使ってYahoo!にリンクしているサイトが多いことによる影響です。つまり、「どんなリンクテキストを使ってリンクされているのか」という情報も検索サイトに反映される(要素の1つになる)のです。なので、robots.txtでページの中身を読むことだけを禁止しても(&.htaccessでページ自体を読めなくしても)、インデックスに登録される可能性はあります。
したがって、インデックス登録を避けるには、ページそのものに書かれた登録禁止の指示を確実に読ませる必要があるため、ブロックしてはいけないのです。
……とはいえ、世の中に存在するクローラーはGoogleやBingのような比較的紳士的に動作するものだけではありません(※検索のシェアはGoogleが1強ですが)。metaタグの存在を無視してインデックスに登録しようとするクローラーも存在するでしょう。なので、metaタグを読まないような無作法なクローラーに対しては、何らかのブロックをするほかありません。(そのような無作法なクローラーはrobots.txtだって読まないでしょうから、.htaccessでサーバ側に応答を拒否させるしかないでしょう。)
したがって、検索避けを厳密にしたいなら、以下のような方策が必要です。
- まずは、metaタグを読ませる。(←紳士的なクローラーはこの指示に従うので、まずはこれを確実に読ませる必要がある。)
- (次に、metaタグを無視するようなBotだけに限定して、robots.txtでブロックする。)
- 最後に、1も2も無視するようなBotだけに限定して、.htaccessでブロックする。
この順序を逆にしてしまうと(=あらゆるクローラーを.htaccessでブロックすると)、そもそもmetaタグを書く意味がなくなってしまいますから注意して下さい。なぜなら『あらゆるクローラーがmetaタグを読めなくなる』からです。
Googleだけを対象にするなら、そもそもmetaタグだけで充分です。他の無作法なBotも対象にしたい場合は、「Googleのような紳士的なクローラーにはアクセスを許可しつつ、無作法なクローラーだけを拒否するような .htaccessを書く」必要があります。
※なお、robots.txt自体に意味がないわけではありません。検索サイト以外のクローラー(最近ではAI学習用のBotも多いですね)をブロックする用途や、「クロールそのものは許可したいがクロール頻度を低く抑えたい(=負荷軽減)」場合などの指示には役立ちます。
とはいえ、Googleはrobots.txtに書かれた「クロール頻度の指示」は無視するんですけども……。┌(:3」└)┐
🍔Re:5054◆その場合は、2つの方法があります。
- 『サイトマップページモードをカテゴリ限定で表示させたページ』をiframeで読み込んで並べるページを作る。
- 『サイトマップページモードをカテゴリ限定で表示させたページ』の中身をJavaScriptで読み込んで1ページに合成するページを作る。
➡ 2025年3月29日(土) 00時08分 〔77日前〕 No.5056 ✎ !
せっかく検索避けしているのに意味がないかもしれないと知って焦っていたので、少し落ち着けました。冷静に対処していきます。
➡ 2025年3月28日(金) 23時43分 〔77日前〕 No.5055 ✎ !
なんでもかんでも.htaccessで弾いてしまうと、robots.txtやmetaタグを読んでくれるbotには意味がなくなってしまうよ、ということではないかと思います。.htaccessで弾きつつ、robots.txtだけはアクセス許可するとかもできますよ。調べればそれぞれ出てくるかと…