web-dev-qa-db-ja.com

1つの画像をWebページの検索エンジンにインデックス付け不可にする

私の連絡先ページでは、連絡先の部門を選択し、基本情報(名前、メール、メッセージ)を入力できるフォームです。

さらに、PHPスクリプトが(HTML IMGタグを介して)呼び出されて、メッセージを確認するためにボックスに正確に入力する必要がある数字を示す画像を読み込みますcomposerは実際のものです人間。数字はロードごとにランダムに生成されます。テキストを使用してランダムテキストを生成できない、またはスパムボットが数字を簡単に検出できなかった。

サーバーログで気づいたのは、Google画像ボットがこの番号を生成するPHPスクリプトに週に1回アクセスしていることです。ウェブ上でユーザーが検索可能な画像としてインデックス付けしようとしているに違いない。

Googleのドキュメントで、画像(番号生成スクリプト)のインデックスを作成できないようにする具体的な方法を確認しましたが、画像があるページ全体のインデックスを作成しないことを提案していました。

https://moz.com/community/q/should-i-index-or-noindex-a-contact-page を読んだ。

Robots.txtのファイルをブロックする提案もありましたが、これによりハッカーはサイトをさらにスパムしようとする可能性があります。 robots.txtはできる限りクリーンに保ちたいと思います。

ページ内の1つの画像のみをインデックス化できないようにし、同じページ内の残りのリンクをインデックス化可能なままにする簡単な方法はありますか?

2
Mike

単一の画像にインデックスを付けない場合(またはHTML以外のリソース)、リソースと共にX-Robots-Tag: noindex HTTP応答ヘッダーを送信します。これは、HTMLページをインデックスに登録しないことを指定するときに、noindex robotsメタタグを設定することと同じです。

PHPスクリプトを使用してこの特定のイメージを生成しているため、スクリプトの一部としてこれを組み込むのは簡単です。

<?php
header('X-Robots-Tag: noindex, noimageindex');

(正直なところ、このインスタンスでnoindexnoimageindexのどちらが必要かはわかりませんが、両方に害はありません。)

参照:
https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag?hl=en

ただし、既に述べたように、robots.txtでこれをブロックしても害はないようです-Googleをcrawlingイメージ(およびサーバーログに表示されないようにする)。実際、robots.txtでスクリプトをブロックすることは、IMOの推奨されるアプローチだと思います。

1
MrWhite