So verstecke ich meine XML-Sitemap vor Mitbewerbern, aber nicht vor Suchmaschinen


10

Ich möchte meine Sitemap-XML-Datei vor allen Benutzern verbergen, aber den Zugriff von Suchmaschinen zulassen.

Wie geht das?

Ich möchte die Tiefe des Inhalts der Website vor Mitbewerbern verbergen.


1
Wenn die Site und ihre Seiten nicht mit Benutzer und Passwort geschützt sind, kann jeder Körper sie durchsuchen. Er muss lediglich den Links auf Ihrer eigenen Site folgen.
PatomaS

Ich kann die IP von Google Bot überprüfen und anderen erlauben und verweigern. Wir können jedoch nicht die vollständige IP-Liste von Googlebot abrufen.
AgA

Antworten:


8

Der erste Schritt besteht darin, den Benutzeragenten der Bots zu ermitteln, die Sie zulassen möchten , und eine andere Datei bereitzustellen, wenn es sich nicht um einen Benutzeragenten handelt, den Sie zulassen möchten.

Sie könnten beispielsweise zwei Versionen von haben robots.txt, eine mit und eine ohne Verweis auf die Sitemap, sodass Ihre Konkurrenten die Sitemap nicht finden, wenn sie in Ihre schauen robots.txt.

Anschließend können Sie Besuche Ihrer Sitemap-URL erkennen und die Sitemap nur dann bereitstellen, wenn die UA korrekt ist. Wenn Sie andernfalls eine generische 404-Seite bereitstellen, wissen Ihre Konkurrenten möglicherweise nicht einmal, dass Ihre Sitemap vorhanden ist.

Alle bisher beschriebenen Maßnahmen sind jedoch lediglich Sicherheit durch Dunkelheit. Ein User-Agent kann leicht gefälscht werden.

Daher empfiehlt Google , dass Sie zur Erkennung des echten GoogleBot:

  1. Führen Sie eine umgekehrte DNS-Suche für die IP-Adresse durch, die angeblich GoogleBot ist.
  2. Überprüfen Sie, ob der Host eine Subdomain von ist googlebot.com..
  3. Führen Sie eine normale DNS-Suche für die Subdomain durch.
  4. Überprüfen Sie, ob die Subdomain auf die IP-Adresse des Bots verweist, der Ihre Site crawlt.

Etwas zusammenfassen:

Flussdiagramm (wann die Sitemap angezeigt werden soll)

Microsoft empfiehlt, das gleiche Verfahren zum Erkennen des Crawlers zu verwenden.

Dieser Trick funktioniert für Yahoo! auch.

Für DuckDuckGo können Sie diese Liste von IP-Adressen verwenden

Hinweis

Sie müssen keinen 404-Fehler verwenden, wenn Sie die DNS-Lookup-basierte Spinnenerkennung verwenden.

Der Zweck der Verwendung der 404-Fehlerseite besteht darin, zu verbergen, dass Ihre Sitemap überhaupt vorhanden ist. Wenn Sie jedoch die fortgeschrittenere Technik verwenden, die nicht nur auf User-AgentHeadern basiert, sollte es nicht möglich sein, diese zu umgehen, damit Sie sicher einen anderen Fehlercode verwenden können, z. B. 403 Forbiddenden richtigen Fehlercode, der hier verwendet wird.


6

Das Problem ist, dass, wenn Sie (zu Recht) möchten, dass Ihre Inhalte von Suchmaschinen indiziert werden, jeder, der eine Website durchführt: Suche in einer der Suchmaschinen, sehen kann, welche URLs indiziert sind.

Wenn Sie Ihre Sitemap "verstecken" möchten, können Sie sie auf einer URL mit einem "geheimen" Namen haben, sodass es für niemanden offensichtlich ist, der danach sucht. Es ist jedoch empfehlenswert, eine Sitemap in eine robots.txt aufzunehmen Datei und laden Sie es in eines der Webmaster-Tools-Profile der Suchmaschinen hoch. Wie andere bereits gesagt haben, ist es schwer zu erkennen, warum Sie dies tun müssen.


Bei Google Webmaster-Tools / Suchkonsole müssen Sie diese nicht einmal hochladen. Sie können eine versteckte Sitemap-URL nur einmal hinzufügen und sie wird weiterhin verwendet.
Devabc

4

Die clevere Lösung besteht darin, zwei Sitemaps zu erstellen. Die erste ist zum Nutzen Ihrer Konkurrenten, die zweite zum Nutzen Ihrer bevorzugten Suchmaschinen. Im militärischen Sprachgebrauch ist diese erste Sitemap eine Finte.

Die 'Finte' enthält Ihre grundlegende Website-Struktur, Homepage, Kontakt, über uns, Hauptkategorien. Es sieht aus wie das echte Geschäft und funktioniert hervorragend in obskuren Suchmaschinen, die Sie nicht interessieren. Es wird auch für Ihre Konkurrenten keinen Nutzen haben. Lassen Sie es indizieren, damit sie es finden, und geben Sie ihm einen offensichtlichen Namen wie sitemap.xml.

Erstellen Sie jetzt Ihre echte Sitemap mit Code. Geben Sie ihm einen Namen wie "product-information-sitemap.xml", damit es ein vernünftiger Name ist, der jedoch nicht einfacher zu erraten ist als Ihr Passwort.

Fügen Sie in Ihrer Apache-Konfiguration für den Sitemap-Ordner etwas ein, damit Suchmaschinen auf diese zweite Sitemap zugreifen können, die jedoch nicht indiziert ist:

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

Erstellen Sie nun den Code, um diesen auf dem neuesten Stand zu halten. Betrachten Sie eine dritte Sitemap für Bilder. Verringern Sie es nach Bedarf, um die 'Finte' zu erstellen. Achten Sie auch auf die Zeitstempel, Google achtet auf diese und dies ist wichtig, wenn Ihre Sitemap groß ist.

Erstellen Sie jetzt einen Cron-Job, um Ihre Produkt-Sitemap regelmäßig an Google zu senden. Fügen Sie in Ihrem Crontab-Eintrag so etwas hinzu, um jede Woche Ihre echte Sitemap einzureichen:

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

Beachten Sie, dass die URL URL-codiert ist.

Sie können Ihre Sitemap auch gzipen, wenn die Größe ein Problem darstellt, obwohl Ihr Webserver diese komprimierte Karte bereitstellen sollte, wenn Sie diese aktiviert haben.

Ihre robots.txt muss nichts Besonderes sein, nur solange sie den Zugang zu Ihren Sitemaps nicht blockiert, sollte es in Ordnung sein. Es ist wirklich nicht nötig, verschiedene robots.txt-Dateien basierend auf Benutzeragentenzeichenfolgen oder etwas so Kompliziertem zu versenden. Ziehen Sie einfach Ihre wertvollen Inhalte in eine zusätzliche, nicht beworbene Datei und senden Sie sie bei einem Cron-Job an Google (anstatt auf den Bot zu warten). Einfach.


0

Ich verstehe nicht, warum eine Struktur einer Website Probleme mit einem Konkurrenten verursachen kann.

Der Zweck der Sitemap besteht darin, die Seiten zu indizieren, damit die Benutzer sie leichter finden können. Dies muss bis zu einem gewissen Punkt Aufschluss darüber geben, wie Ihre Website organisiert ist, z.

  • /news/ enthält Ihre Artikel
  • /forum/ Hier finden alle Forumsdiskussionen statt

Diese sind indizierbar, um mehr Verkehr zu gewinnen und Informationen zu präsentieren.

Die Ordner, für die Sie keinen Index haben möchten, sind wie folgt

  • PHP-Klassen und -Funktionen, mit denen eine Site funktioniert
  • Site-Bilder, CSS, JavaScript-Ordner
  • Administrationsbereich

Wenn dies der Fall ist, sollten diese überhaupt nicht in Ihrer Sitemap enthalten sein. Außerdem können Sie diese auch von der Indizierung ausschließen.


0

Wenn Sie die IP-Adressen der Bots haben, die Sie zulassen möchten:

<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>

Wenn Sie es basierend auf der Zeichenfolge des Benutzeragenten möchten:

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

Vollständige IP-Adressliste von Google, Bing ist geheim. Sie werden dies nicht an die Welt weitergeben, da dies ein großes Risiko für das Verschleiern von Websites darstellt.
AgA

Und deshalb habe ich die 2. Möglichkeit hinzugefügt :) On Name ist viel einfacher, wollte aber eine vollständige Antwort geben
Martijn

0

Eine Möglichkeit, die Sie ausprobieren können: In einer normalen Crawling-Sitzung greifen Google-Bots auf robots.txt zu und wechseln dann zur Sitemap-Datei. Drücken Sie ein Cookie für alle Portionen von robots.txt ein und erlauben Sie den Zugriff auf die Sitemap nur den Personen mit dem Cookie. Es wird ein Problem geben, wenn Google-Bots keine Cookies akzeptieren. Also mach das Gegenteil. Drücken Sie ein Cookie ein, wenn ein Benutzer auf eine andere Seite als die robots.txt zugreift, und verweigern Sie denjenigen mit dem Cookie den Zugriff auf die Sitemap. Geben Sie Ihrer Sitemap auch einen verschlüsselten Namen, der sich mit der Zeit ändert und ihn nicht erraten lässt. Wenn Ihre Konkurrenten Cookies in ihrem Browser aktiviert haben, ist es für sie äußerst schwierig, auf die Sitemap zuzugreifen, es sei denn, sie folgen genau dem Pfad, dem eine Suchmaschine folgt.


0

Ich gehe davon aus, dass ich Ihre Anforderung richtig verstanden habe, und zeige den Mut, zu antworten.

Geben Sie kurz vor Ihrem </html>Tag einen Bildlink zu Ihrer Sitemap . Verwenden Sie eine transparente 1px-GIF-Datei:

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

Legen Sie auf der Seite mit dem Link Ihrer Sitemap das zugehörige Metatag fest:

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

Überprüfen Sie den visuellen Status, wenn Sie Ctrl+ drücken A, um alle Seiten auszuwählen. Ist der 1px-Link sichtbar und für Sie riskant?

Wenn Sie ja sagen, kann eine andere Option sein:

  1. Erstellen Sie einen Link zu Ihrer Sitemap: <a href="sitemap.xml">&nbsp;</a>
  2. Ändern Sie die Schriftfarbe mit der Hintergrundfarbe
  3. Verstecken Sie diesen Link mithilfe von CSS-Techniken hinter einem Bild

Auf diese Weise wird ein ungewöhnlicher normaler Benutzer Ihren Link nicht bemerken. Suchmaschinen werden es bemerken. Bitte beachten Sie jedoch, dass die inhärente Natur Ihrer Frage mit Unmöglichkeit verbunden ist.

Ich sage Unmöglichkeit, denn wenn ein Nutzer beispielsweise mit diesen Begriffen in Google sucht

* site:www.yoursite.com

Die ganze Welt kann alle Ihre Links sehen, wenn sie nicht müde werden, auf nextLinks zu klicken .

Ich hoffe das hilft.


Warum sollte dies Benutzer davon abhalten, die XML-Sitemap zu finden / darauf zuzugreifen, wenn Sie normalerweise zunächst keine Verknüpfung zu Ihrer XML-Sitemap herstellen würden?
MrWhite

Ich habe mir das gleiche Q gefragt, aber das verstehe ich vom Besitzer der Frage. Ich denke, das ist irgendwie seine Anforderung. Ich bin nicht sicher :-)
Andre Chenier
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.