Jak ukryć mapę witryny XML przed konkurentami, ale nie przed wyszukiwarkami

10

Chcę ukryć plik XML mapy witryny przed wszystkimi, ale zezwalam na dostęp z wyszukiwarek.

Jak to zrobić?

Chcę ukryć głębię treści witryny przed konkurentami.

Aga
źródło
1
Jeśli witryna i jej strony nie są chronione hasłem użytkownika i hasłem, każdy organ może je przeglądać, muszą jedynie podążać za linkami na własnej stronie.
PatomaS
Mogę sprawdzić adres IP bota Google i zezwolić innym osobom na odmowę. Chociaż nie możemy uzyskać pełnej listy adresów IP Googlebota.
AgA

Odpowiedzi:

9

Pierwszym krokiem byłoby wykrycie User-Agent botów, na które chcesz zezwolić , i podanie innego pliku, jeśli nie jest to User-Agent, na który chcesz zezwolić.

Na przykład możesz mieć dwie wersje robots.txt, z jedną i bez odniesienia do mapy witryny, aby konkurenci nie mogli znaleźć mapy witryny, jeśli zaglądną do Twojej witryny robots.txt.

Następnie możesz wykryć wizyty pod adresem URL mapy witryny i wyświetlać mapę witryny tylko wtedy, gdy UA jest poprawna. Jeśli w przeciwnym razie wyświetlisz ogólną stronę 404, konkurenci mogą nawet nie wiedzieć, że istnieje mapa witryny.

Jednak wszystkie środki opisane do tej pory są jedynie bezpieczeństwem poprzez niejasność. User-Agent może być łatwo sfałszowany.

Dlatego Google zaleca , aby w celu wykrycia prawdziwego GoogleBota:

  1. Przeprowadź odwrotne wyszukiwanie DNS dla adresu IP podającego się za GoogleBota.
  2. Sprawdź, czy host jest poddomeną googlebot.com..
  3. Przeprowadź normalne wyszukiwanie DNS dla subdomeny.
  4. Sprawdź, czy subdomena wskazuje adres IP bota indeksującego Twoją witrynę.

Podsumowując:

Schemat blokowy (kiedy pokazać mapę witryny)

Microsoft zaleca stosowanie tej samej procedury do wykrywania ich przeszukiwacza.

Ta sztuczka działa w przypadku Yahoo! także.

W przypadku DuckDuckGo możesz użyć tej listy adresów IP

Uwaga

Nie musisz używać błędu 404, jeśli używasz wykrywania pająków na podstawie DNS.

Korzystanie ze strony błędu 404 ma na celu ukrycie, że mapa witryny w ogóle istnieje. Jeśli jednak używasz bardziej zaawansowanej techniki, która nie opiera się wyłącznie na User-Agentnagłówkach, nie powinno być możliwe obejście jej, aby można było bezpiecznie użyć innego kodu błędu, na przykład takiego, 403 Forbiddenktóry jest prawidłowym kodem błędu do użycia tutaj.

użytkownik2428118
źródło
6

Problem polega na tym, że jeśli (całkiem słusznie) chcesz, aby Twoje treści były indeksowane przez wyszukiwarki, każdy, kto wykonuje witrynę: wyszukiwanie w jednej z wyszukiwarek będzie mogło zobaczyć, które adresy URL są indeksowane.

Jeśli chcesz „ukryć” mapę witryny, możesz mieć ją pod adresem URL o „tajnej” nazwie, więc nie jest to oczywiste dla nikogo, kto może jej szukać, ale biorąc pod uwagę najlepszą praktykę, aby dołączyć mapę witryny do pliku robots.txt plik i prześlij go do jednego z profili narzędzi dla webmasterów wyszukiwarek, jak powiedzieli inni ludzie, trudno zrozumieć, dlaczego musisz to zrobić.

użytkownik3336644
źródło
W przypadku Narzędzi Google dla webmasterów / Search Console nawet nie musisz go przesyłać. Możesz po prostu dodać ukryty adres URL mapy witryny i będzie go nadal używać.
Devabc
4

Podstępnym rozwiązaniem jest wygenerowanie dwóch map witryn. Pierwszy z nich jest z korzyścią dla konkurentów, drugi z korzyścią dla preferowanych wyszukiwarek. W mowie wojskowej ta pierwsza mapa witryny jest zwodnicza.

„Zwód” zawiera podstawową strukturę witryny, stronę główną, skontaktuj się z nami, o nas, główne kategorie. Wygląda jak prawdziwa okazja i sprawdzi się świetnie w niejasnych wyszukiwarkach, na których ci nie zależy. Nie przyda się również twoim konkurentom. Pozwól na indeksowanie, aby mogli je znaleźć, nadaj mu oczywistą nazwę, np. Sitemap.xml.

Teraz stwórz swoją prawdziwą mapę witryny z kodem. Nadaj mu nazwę, taką jak „product-information-sitemap.xml”, aby była to rozsądna nazwa, ale tak naprawdę nie jest łatwiejsza do odgadnięcia niż hasło.

W konfiguracji apache dla folderu mapy witryny umieść coś na swoim miejscu, aby umożliwić dostęp do tej drugiej mapy witryny przez wyszukiwarki, ale bez indeksowania:

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

Teraz utwórz kod, aby go aktualizować, rozważ trzecią mapę witryny dla obrazów. Rozwiń go, aby utworzyć „zwód”. Zwróć też uwagę na znaczniki czasu, Google zwraca na nie uwagę, a to ważne, jeśli Twoja mapa witryny jest duża.

Teraz utwórz zadanie „cron”, aby regularnie przesyłać mapę witryny swoich produktów do Google. W swoim wpisie na crontab dodaj coś takiego, aby co tydzień przesyłać swoją prawdziwą mapę witryny:

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

Pamiętaj, że adres URL jest zakodowany.

Możesz także spakować swoją mapę witryny, jeśli rozmiar jest problemem, chociaż twój serwer internetowy powinien obsługiwać ten gzip, jeśli masz tę opcję włączoną.

Plik robots.txt nie musi być niczym specjalnym, o ile nie blokuje wejścia do map witryn, powinno być w porządku. Naprawdę nie ma potrzeby wysyłania różnych plików robots.txt w oparciu o ciągi agenta użytkownika lub coś tak skomplikowanego. Po prostu wyciągnij swoją cenną zawartość do dodatkowego, niezareklamowanego pliku i prześlij ją do Google na zlecenie crona (zamiast czekać na bota). Prosty.

Theodores
źródło
0

Nie rozumiem, dlaczego struktura witryny może powodować problemy z konkurencją?

Celem mapy witryny jest zaindeksowanie stron, aby ludzie mogli je łatwiej znaleźć, co w pewnym stopniu musi ujawnić sposób organizacji witryny, na przykład:

  • /news/ zawiera artykuły z wiadomościami
  • /forum/ to tam są wszystkie dyskusje na forum

Będą one indeksowane w celu zwiększenia ruchu i prezentacji informacji.

Foldery, których nie chcesz indeksować, są jak

  • Klasy i funkcje PHP, które pozwalają na działanie strony
  • Obrazy witryn, CSS, foldery JavaScript
  • Panel administracyjny

Jeśli tak jest, to nie powinny one w ogóle znajdować się w mapie witryny. Dodatkowo możesz wykluczyć te z indeksowania.

Zistoloen
źródło
0

Jeśli masz adresy IP botów, na które chcesz zezwolić:

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

Jeśli chcesz na podstawie ciągu agenta użytkownika:

Order Allow,Deny
allow from env=good_bot_1
allow from env=good_bot_2
Martijn
źródło
Pełna lista adresów IP Google, Bing jest tajna. Nie ujawnią tego światu, ponieważ wiąże się to z dużym ryzykiem maskowania stron internetowych.
AgA
I dlatego dodałem drugą możliwość :) Na imię jest o wiele łatwiej, ale chciałem podać pełną odpowiedź
Martijn
0

Jeden ze sposobów wypróbowania: Podczas zwykłej sesji indeksowania boty Google uzyskują dostęp do pliku robots.txt, a następnie przechodzą do pliku mapy witryny. Wciśnij plik cookie dla wszystkich porcji pliku robots.txt i zezwól na dostęp do mapy witryny tylko tym osobom, które mają plik cookie. Będzie problem, gdy boty Google nie zaakceptują plików cookie. Zrób też odwrotnie. Wciśnij plik cookie, gdy użytkownik uzyska dostęp do strony innej niż robots.txt, i odmów dostępu do mapy witryny osobom z plikiem cookie. Nadaj też rozszyfrowaną nazwę swojej mapie witryny, coś, co zmienia się z czasem i sprawia, że ​​nie można jej zgadnąć. Jeśli twoi konkurenci mają włączoną obsługę plików cookie w przeglądarce, niezwykle trudno będzie im uzyskać dostęp do mapy witryny, chyba że podążą oni dokładnie ścieżką, którą podąża wyszukiwarka.

Rana Prathap
źródło
0

Zakładam, że poprawnie zrozumiałem twoje wymagania, więc wykazałem się odwagą, aby odpowiedzieć.

podaj link do mapy witryny tuż przed </html>tagiem. Użyj przezroczystego pliku gif 1px:

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

Na stronie zawierającej link do Twojej mapy witryny ustaw odpowiedni metatag:

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

sprawdź stan wizualny po naciśnięciu Ctrl+, Aaby wybrać całą stronę. Czy link 1px jest dla Ciebie widoczny, ryzykowny?

Jeśli powiesz tak, może być inną opcją jest:

  1. utwórz link do swojej mapy witryny: <a href="sitemap.xml">&nbsp;</a>
  2. zmień kolor czcionki tak samo jak kolor tła
  3. Korzystając z technik CSS, ukryj ten link za obrazem

W ten sposób zwykły zwykły użytkownik nie zauważy Twojego linku. Wyszukiwarki to zauważą. Pamiętaj jednak, że nieodłączny charakter twojego pytania wiąże się z niemożliwością.

Mówię niemożliwością, ponieważ jeśli użytkownik szuka w Google na przykład za pomocą tych warunków

* site:www.yoursite.com

cały świat może zobaczyć wszystkie Twoje linki, jeśli nie zmęczyły się klikaniem nextlinków.

Mam nadzieję, że to pomoże.

Andre Chenier
źródło
Dlaczego miałoby to powstrzymywać użytkowników przed wyszukiwaniem mapy witryny XML / uzyskiwaniem do niej dostępu, skoro na początku normalnie nie prowadziłbyś do niej?
MrWhite
Zadałem sobie to samo pytanie, ale to właśnie rozumiem od właściciela pytania. Myślę, że to jakoś jego wymaganie. Nie jestem pewien :-)
Andre Chenier