Jak być dobrym obywatelem podczas indeksowania stron internetowych?

83

Mam zamiar opracować funkcjonalność, która będzie indeksować różne publiczne strony internetowe i przetwarzać / agregować na nich dane. Nic nie jest złowrogie jak poszukiwanie adresów e-mail - w rzeczywistości jest to coś, co może faktycznie zwiększyć ruch w ich witrynach. Ale dygresję.

Poza honorowaniem robots.txt, czy istnieją jakieś zasady lub wytyczne, pisemne lub niepisane, których powinienem przestrzegać, aby (a) uniknąć pojawienia się złośliwego i potencjalnie zbanowanego oraz (b) nie powodować żadnych problemów dla właścicieli witryn / webmasterów?

Oto kilka przykładów, które mogą mieć znaczenie:

  • Liczba równoległych wniosków
  • Czas między żądaniami
  • Czas między pełnymi indeksowaniami
  • Unikanie potencjalnie destrukcyjnych linków (nie chcę być Pająkiem Zagłady - ale kto wie, czy to w ogóle praktyczne)

Ale to naprawdę tylko plucie jaja; czy jest jakaś sprawdzona mądrość, która ma szerokie zastosowanie dla każdego, kto zamierza pisać lub wykorzystywać pająka?

Aaronaught
źródło
1
Poniższe odpowiedzi stanowią świetną odpowiedź na temat tego, jak z szacunkiem indeksować treść, ale pamiętaj o dopuszczalnym wykorzystaniu tej treści po jej zaindeksowaniu. Ponowne opublikowanie go, w całości lub w części, może stanowić naruszenie praw autorskich właścicieli.
Gavin Coates

Odpowiedzi:

85

Oprócz przestrzegania pliku robots.txt, słuchaj nofolloworaz noindexw <meta>elementach i linkach:

  • Jest wielu, którzy uważają, że plik robots.txt nie jest właściwym sposobem blokowania indeksowania iz tego punktu widzenia, poinstruował wielu właścicieli witryn, aby polegali na <meta name="robots" content="noindex">tagu i informowali roboty indeksujące strony, aby nie indeksowały strony.

  • Jeśli próbujesz utworzyć wykres połączeń między stronami internetowymi (coś podobnego do PageRank), (i <meta name="robots" content="nofollow">) ma oznaczać, że witryna źródłowa nie ufa stronie docelowej na tyle, aby zapewnić jej odpowiednie poparcie. Chociaż możesz indeksować witrynę docelową, nie powinieneś przechowywać relacji między tymi dwiema stronami.

SEO jest bardziej sztuką niż prawdziwą nauką i jest praktykowane przez wielu ludzi, którzy wiedzą, co robią, i wielu ludzi, którzy czytają streszczenia ludzi, którzy wiedzą, co robią. Będziesz mieć problemy z blokowaniem stron za robienie rzeczy, które inne strony uznają za całkowicie akceptowalne z powodu pewnych zasad, które ktoś podsłuchał lub przeczytał w poście na blogu na SEOmoz, które mogą, ale nie muszą być poprawnie interpretowane.

Z powodu tego elementu ludzkiego, chyba że jesteś Google, Microsoft lub Yahoo !, jesteś uważany za złośliwego, chyba że udowodniono inaczej. Musisz zachować szczególną ostrożność, aby zachować się tak, jakby nie stanowił zagrożenia dla właściciela strony internetowej, i postępować zgodnie z tym, w jaki sposób chciałbyś, aby działał potencjalnie złośliwy (ale miejmy nadzieję łagodny) robot:

  • przestań indeksować witrynę po wykryciu, że jesteś blokowany: 403 / 401s na stronach, o których wiesz, że pracujesz, dławienie, limity czasu itp.
  • unikaj wyczerpujących indeksowań w stosunkowo krótkim czasie: zaindeksuj część witryny i wróć później (kilka dni później), aby zaindeksować inną część. Nie składaj równoległych wniosków.
  • unikaj indeksowania potencjalnie wrażliwych obszarów: /admin/na przykład adresów URL z nimi zawartych.

Nawet wtedy będzie to bitwa pod górę, chyba że skorzystasz z technik czarnych kapeluszów, takich jak podszywanie się pod UA lub celowe maskowanie wzorców indeksowania: wielu właścicieli witryn z tych samych powodów zablokuje widok nieznanego robota zamiast brać szansa, że ​​ktoś nie próbuje „zhakować swojej witryny”. Przygotuj się na wiele niepowodzeń.

Jedną z rzeczy, które możesz zrobić, aby zwalczyć negatywny obraz nieznanego przeszukiwacza, jest wyjaśnienie w łańcuchu klienta użytkownika, kim jesteś:

Aarobot Crawler 0.9 created by John Doe. See http://example.com/aarobot.html for more information.

Gdzie http://example.com/aarobot.htmlwyjaśnia, co próbujesz osiągnąć i dlaczego nie jesteś zagrożeniem. Ta strona powinna zawierać kilka rzeczy:

  • Informacje na temat bezpośredniego kontaktu z tobą
  • Informacje o tym, co gromadzi przeszukiwacz i dlaczego je gromadzi
  • Informacje na temat rezygnacji i usunięcia zebranych danych

Ta ostatnia jest kluczowa: dobra rezygnacja jest jak zwrot pieniędzy i zapewnia nieuzasadnioną wartość dobrej woli. Powinien być humanitarny: jeden prosty krok (adres e-mail lub, najlepiej, formularz) i wyczerpujący (nie powinno być żadnych „gotchas”: rezygnacja oznacza, że ​​przestaniesz indeksować bez wyjątku).


źródło
18
Ogromny +1 za sugestię umieszczenia jasnych informacji w User-Agent. Miałem za zadanie przeglądanie dzienników serwera WWW, aby dowiedzieć się, kto spidering dużej strony, i nie jest fajnie próbować wyśledzić, kto obsługuje wszystkie niejasne pająki.
Carson63000,
4
Dość często umieszcza się URL w formularzu (+http://example.com/aarobot.html). Nie wiem, jaki jest cel tego +znaku, ale często go widziałem. Web-Sniffer to robi, podobnie jak wiele innych.
TRiG,
To świetna informacja, ale nie rozumiem jednej rzeczy: wspominasz o rel="noindex"niej jak o <a>atrybucie, ale strona, do której prowadzisz, opisuje ją jako część atrybutu <meta>tagu content. Czy to jedno, czy może to była literówka w odpowiedzi?
Aaronaught
1
„SEO to bardziej sztuka niż prawdziwa nauka” - nieprawda. Jeśli jesteś programistą statystycznym, SEO jest mniej sztuką, a bardziej matematyczną umiejętnością rozpoznawania. Oceny matematyczne, które są wykwalifikowane w programowaniu lub programiści z matematyki, są bardzo poszukiwane w branży profilowania danych w sieci.
שינתיא אבישגנת
4
@TRiG: znak plus przed adresami URL w klientach użytkownika .
poza
32

Chociaż to nie odpowiada na wszystkie pytania, uważam, że będzie to pomocne dla Ciebie i dla stron, które indeksujesz.

Podobnie jak w przypadku techniki brutalnej siły witryn bez zwracania uwagi, jeśli masz wystarczająco dużą pulę witryn, którą musisz zaindeksować, nie indeksuj następnej strony w witrynie, dopóki nie zaindeksujesz następnej strony wszystkich innych witryn . Cóż, nowoczesne serwery pozwolą na ponowne użycie połączenia HTTP , więc możesz chcieć zrobić więcej niż jeden, aby zminimalizować koszty ogólne, ale pomysł nadal istnieje. Nie indeksuj jednej witryny do wyczerpania, dopóki nie przejdziesz do następnej . Dziel się miłością.

Dla Ciebie na koniec dnia możesz zaindeksować tyle samo stron, ale średnie wykorzystanie przepustowości w jednej witrynie będzie znacznie niższe.

Jeśli chcesz uniknąć bycia pająkiem zagłady, nie ma pewnej metody ognia. Jeśli ktoś chce wsadzić fasolę do nosa , zrobi to i prawdopodobnie w sposób, którego nigdy nie można było przewidzieć. Powiedziawszy to, jeśli nie masz nic przeciwko pominięciu sporadycznie ważnej strony, przygotuj czarną listę słów dla linku, który uniemożliwi ci jej podążanie. Na przykład:

  • Usunąć
  • Usunąć
  • Aktualizacja
  • Edytować
  • Modyfikować

Nie jest głupi, ale czasem po prostu nie możesz powstrzymać ludzi przed trudem;)

Dan McGrath
źródło
3
Dobra rada na temat „dzielenia się miłością” - wcale tego nie brała pod uwagę, choć oczywiście z perspektywy czasu wydaje się to oczywiste.
Aaronaught
Twoja odpowiedź będzie prawie idealna, jeśli wspomnisz o
pliku
7
@deadalnix, ale robots.txtjest już wspomniany w pytaniu i można go przyjąć za zakładany.
TRiG,
20

Moja jedyna rada to wysłuchanie, co mówi witryna, którą indeksujesz, i dynamiczne zmienianie indeksowania w reakcji na to.

  • Czy strona działa wolno? Czołgaj się wolniej, więc nie DDOS. Czy to jest szybkie Czołgaj się więc jeszcze trochę!

  • Czy witryna zawiera błędy? Czołgaj się mniej, aby nie stresować witryny, która już znajduje się pod przymusem. Używaj wykładniczo wydłużającego się czasu ponawiania, abyś ponawiał próbę, im dłużej witryna będzie zawierała błędy. Pamiętaj jednak, aby spróbować później, abyś mógł zobaczyć wszystko, czego brakuje z powodu, powiedzmy, tygodniowego błędu w określonej ścieżce adresu URL.

  • Dostajesz dużo 404? (pamiętaj, że nasze fantazyjne strony 404 również zajmują czas serwera!) Na razie unikaj indeksowania kolejnych adresów URL tą ścieżką, ponieważ być może wszystko, czego brakuje; jeśli file001.html- file005.htmlnie ma, założę się, że dolary na pączki też file999.htmlnie są! A może zmniejszyć procent czasu, w którym odzyskujesz coś na tej ścieżce.

Myślę, że w tym miejscu wielu naiwnych robotów idzie głęboko w błędzie, mając jedną strategię robotów, którą wycinają tak samo bez względu na sygnały, które wracają z miejsca docelowego.

Inteligentny przeszukiwacz reaguje na dotykane witryny docelowe.

Jeff Atwood
źródło
19

Inni wspominali o niektórych mantrach, ale dodam trochę.

Zwróć uwagę na typ i rozmiar pliku. Nie wyciągaj tych ogromnych plików binarnych.

Zoptymalizuj pod kątem niektórych typowych stron z listą katalogów. W szczególności pozwalają sortować według rozmiaru, daty, nazwy, uprawnień i tak dalej. Nie traktuj każdej metody sortowania jako osobnego katalogu głównego do indeksowania.

Zapytaj o gzip (kompresja w locie), gdy tylko jest to możliwe.

Ogranicz głębokość lub wykryj rekurencję (lub obie).

Ogranicz rozmiar strony. Niektóre strony implementują plandeki, aby udaremnić roboty zbierające wiadomości e-mail. Jest to strona ładująca się z prędkością ślimaka i ma długość terabajtów.

Nie indeksuj 404 stron. Silniki o największych indeksach to robią i otrzymują w zamian zasłużoną nienawiść.

Może to być trudne, ale spróbuj wykryć farmy równoważące obciążenie. Jeśli v329.host.com/pages/article.php?99999 zwraca to samo co v132.host.com/pages/article.php?99999, nie usuwaj pełnej listy serwerów z v001.host.com do v999. host.com

SF.
źródło
Ważne walizki narożne!
M. Dudley,
Obecnie często można celowo wykryć zduplikowane treści (np. Farmy równoważące obciążenie), sprawdzając znaczniki kanoniczne.
Brian
4

Dodam tylko jedną małą rzecz.

Prawa autorskie i inne kwestie prawne: wiem, że piszesz, że są to publiczne strony internetowe, więc może nie być praw autorskich, ale mogą istnieć inne problemy prawne związane z przechowywaniem danych.

Będzie to oczywiście zależeć od tego, jakie dane kraju przechowujesz (i gdzie je przechowujesz). Przykładem mogą być problemy z amerykańską ustawą Patriot Act vs. unijną dyrektywą o ochronie danych. Streszczenie problemu polega na tym, że firmy amerykańskie muszą podać swoje dane np. na prośbę FBI, bez informowania o tym użytkowników, w przypadku gdy dyrektywa o ochronie danych stanowi, że użytkownicy muszą zostać o tym poinformowani. Se http://www.itworld.com/government/179977/eu-upset-microsoft-warning-about-us-access-eu-cloud

Holger
źródło
2
„Wiem, że piszesz, że są to publiczne strony internetowe, więc może nie być praw autorskich”. Każda witryna internetowa jest publiczna, a każda witryna jest chroniona prawem autorskim, chyba że wyraźnie stanowi inaczej.
Gavin Coates
3

Zadzwoń do swojego webcrawlera albo tego, albo pająka, powiązanego z twoim imieniem. To jest ważne. Silniki analityczne i tym podobne szukają osób, które kojarzą cię jako ... pająka. ;)

Widziałem, jak to zrobiłem, za pośrednictwem nagłówka żądania User-Agent

jcolebrand
źródło
Myślałem, że to zwykle „bot” lub „robot” - wiem, że Google to Googlebot.
Aaronaught
Słuszna uwaga. Tak długo, jak można to rozróżnić. Prawdopodobnie jest post o SO.
jcolebrand
2
  • W razie potrzeby zachowuj pliki cookie, aby zapobiec tworzeniu niepotrzebnych sesji na stronie internetowej.
  • Zaimplementuj zachowanie parsowania linków, najbliższe przeglądarce. Nasza witryna na żywo zgłasza wiele „404” z powodu żądań botów o brakujące pliki.
Valera Kolupaev
źródło