検索エンジンからではなく、競合他社からXMLサイトマップを隠す方法


10

サイトマップXMLファイルをすべて非表示にしたいが、検索エンジンからのアクセスは許可したい。

それを行う方法は何ですか?

競合他社からサイトのコンテンツの深さを隠したい。


1
サイトとそのページがユーザーとパスワードで保護されていない場合、誰でも閲覧できます。自分のサイトのリンクをたどるだけです。
PatomaS 2014年

GoogleボットのIPを確認し、他のユーザーを許可および拒否できます。ただし、Googlebotの完全なIPリストを取得することはできません。
AgA 2014年

回答:


8

最初のステップは、許可したいボットのユーザーエージェントを検出し、許可したいユーザーエージェントでない場合は別のファイルを提供することです。

たとえばrobots.txt、サイトマップへの参照のあるバージョンとないバージョンの2つのバージョンを使用できるため、競合他社がの内部を見てもサイトマップは見つかりませんrobots.txt

次に、サイトマップURLへのアクセスを検出し、UAが正しい場合にのみサイトマップを提供できます。それ以外の場合は、一般的な404ページを提供すると、競合他社はサイトマップの存在さえ知らない可能性があります。

ただし、これまでに説明したすべての対策は、あいまいさによるセキュリティです。User-Agentは簡単に偽装できます。

したがって、実際のGoogleBotを検出するには、次のことをお勧めします。

  1. GoogleBotであると主張するIPアドレスに対してDNS逆引き参照を実行します。
  2. ホストがのサブドメインかどうかを確認しますgooglebot.com.
  3. サブドメインの通常のDNSルックアップを実行します。
  4. サブドメインがサイトをクロールするボットのIPアドレスを指しているかどうかを確認します。

要約すると:

フローチャート(サイトマップを表示するタイミング)

マイクロソフトは、同じ手順を使用してクローラーを検出することをお勧めします

このトリックはYahoo!で機能します。同じように。

DuckDuckGoの場合、この IPアドレスのリストを使用できます

注意

DNSルックアップベースのスパイダー検出を使用する場合は、404エラーを使用する必要はありません。

404エラーページを使用する目的は、サイトマップが存在することを隠すことです。ただし、User-Agentヘッダーのみに依存しないより高度な手法を使用している場合は、それを回避することはできないので、403 Forbiddenここで使用する正しいエラーコードなどの別のエラーコードを安全に使用できます。


6

問題は、コンテンツを検索エンジンでインデックスに登録する場合(かなり正しい)、サイトを実行するすべてのユーザーが検索エンジンの1つで検索すると、インデックスに登録されているURLを確認できることです。

サイトマップを「非表示」にしたい場合は、「秘密の」名前のURLに配置することができます。そのため、サイトマップを探している誰にとっても明白ではありませんが、robots.txtにサイトマップを含めることをお勧めします。他の人が言ったように、それをファイルし、検索エンジンのウェブマスターツールプロファイルの1つにアップロードします。これを行う必要がある理由を理解するのは困難です。


Googleウェブマスターツール/ Search Consoleの場合は、アップロードする必要もありません。非表示のサイトマップURLを一度追加するだけで、引き続き使用されます。
Devabc 2017年

4

巧妙な解決策は、2つのサイトマップを生成することです。これらの1つ目は競合他社の利益のためで、2つ目は優先検索エンジンの利益のためです。軍事用語では、この最初のサイトマップはフェイントです。

「フェイント」には、基本的なウェブサイトの構造、ホームページ、お問い合わせ、私たちについて、主なカテゴリが含まれています。それは本当の取引のように見え、あなたが気にしない曖昧な検索エンジンでうまく機能します。また、競合他社にとっても役に立ちません。彼らがそれを見つけることができるようにそれが索引付けされることを許可し、それにsitemap.xmlのような明白な名前を付けてください。

次に、コードを使用して実際のサイトマップを作成します。'product-information-sitemap.xml'などの名前を付けて、わかりやすい名前にしますが、実際にはパスワードよりも簡単に推測できないようにします。

サイトマップフォルダーのapache構成で、この2番目のサイトマップに検索エンジンがアクセスできるが、インデックスは作成されないように何かを配置します。

<IfModule mod_rewrite.c>
    <Files product-information-sitemap.xml>
        Header set X-Robots-Tag "noindex"
    </Files>
</IfModule>

次に、更新を維持するコードを作成し、画像の3番目のサイトマップを検討します。「フェイント」を作成するために必要に応じてダウグレードします。タイムスタンプにも注意してください。Googleはそれらに注意を払っています。これは、サイトマップが大きい場合に重要です。

次に、製品のサイトマップを定期的にGoogleに送信する「cron」ジョブを作成します。crontabエントリに次のようなものを追加して、実際のサイトマップを毎週送信します。

0 0 * * 0 wget www.google.com/webmasters/tools/ping?sitemap=http%3A%2F%2Fwww.example.com%2Fsitemaps%2Fproduct-information-sitemap.xml

URLはURLエンコードされていることに注意してください。

サイズが問題である場合は、サイトマップをgzipすることもできます。ただし、有効になっている場合は、ウェブサーバーがgzipで圧縮されたファイルを提供する必要があります。

robots.txtは、サイトマップへのエントリを妨げない限り、特別なものである必要はありません。ユーザーエージェント文字列や複雑なものに基づいて、さまざまなrobots.txtファイルを送信する必要はありません。貴重なコンテンツを宣伝されていない補足ファイルに取り出し、それを(ボットを待つのではなく)cronジョブでGoogleに送信するだけです。シンプル。


0

サイトの構造によって競合他社に問題が発生する理由がわかりません。

サイトマップの目的は、ページをインデックスに登録することです。そうすることで、人々はそれらを簡単に見つけられるようになります。

  • /news/ ニュース記事が含まれています
  • /forum/ フォーラムのすべての議論が行われる場所です

これらは、より多くのトラフィックを獲得し、情報を提示するために、索引付け可能になります。

インデックスを付けたくないフォルダは

  • サイトの動作を可能にするPHPクラスと関数
  • サイト画像、CSS、JavaScriptフォルダー
  • 管理パネル

次に、それが事実である場合、それらはサイトマップにまったく含まれていてはなりません。さらに、それらをインデックスから除外することもできます。


0

許可するボットのIPアドレスがある場合:

<Limit GET POST PUT>
order deny,allow
deny from all
allow from 192.168.1.1 # IP 1
allow from 192.168.1.2 # IP 3
allow from 192.168.1.3 # IP 2
</LIMIT>

ユーザーエージェント文字列に基づいて必要な場合:

Order Allow,Deny
allow from env=good_bot_1
allow from env=good_bot_2

Google、Bingの完全なIPアドレスリストは秘密です。ウェブサイトによるクローキングの大きなリスクをもたらすため、彼らはこれを世界に漏らしません。
AgA 2014

そして、それが私が2番目の可能性を追加した理由です:)名前についてははるかに簡単ですが、完全な答えを提供したかった
Martijn

0

試してみる方法の1つ:通常のクロールセッションでは、Googleボットがrobots.txtにアクセスしてから、サイトマップファイルにアクセスします。robots.txtのすべての配信に対してCookieをプッシュし、Cookieを持つユーザーにのみサイトマップへのアクセスを許可します。GoogleボットがCookieを受け入れない場合に問題が発生します。だから反対を行います。ユーザーがrobots.txt以外のページにアクセスしたときにCookieをプッシュし、Cookieがあるサイトマップへのアクセスを拒否します。また、サイトマップに時間の経過とともに変化してわかりにくい名前を付けます。競合他社のブラウザでCookieが有効になっている場合、検索エンジンが追跡している正確なパスに従わない限り、競合他社がサイトマップにアクセスすることは非常に困難です。


0

私はあなたの要件を正しく理解したと仮定して、答える勇気を示します。

</html>タグの直前にサイトマップへの画像リンクを追加します。透明な1px gifファイルを使用します。

<a href="sitemap.xml"><img src="transparent.gif" alt="" height="1" width="1" /></a>

サイトマップのリンクがあるページで、関連するメタタグを設定します。

<meta name="robots" content="{index or noindex},follow">

Ctrl+ Aを押してすべてのページを選択するときに、視覚的な状態を確認します。1pxリンクは表示されていますか?

はいと答えた場合、別のオプションが考えられます:

  1. サイトマップへのリンクを作成します。 <a href="sitemap.xml">&nbsp;</a>
  2. フォントの色を背景色と同じに変更する
  3. CSSテクニックを使用して、このリンクを画像の後ろに隠します

このようにして、好奇心旺盛な通常のユーザーはあなたのリンクに気付かないでしょう。検索エンジンはそれを認識します。ただし、質問の固有の性質には不可能性が含まれることに注意してください。

たとえば、ユーザーがこの用語を使ってGoogleで検索すると、

* site:www.yoursite.com

nextリンクをクリックするのに飽きなければ、全世界がすべてのリンクを見ることができます。

これらがお役に立てば幸いです。


通常、最初からXMLサイトマップにリンクしないのに、ユーザーがXMLサイトマップを検索/アクセスできないのはなぜですか?
MrWhite、2014年

同じQを自分に尋ねましたが、それは私が質問の所有者から控えめに言っているものです。なんとなくこれが彼の要求だと思います。よくわかりません:-)
Andre Chenier 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.