Controllare i Web Crawler per un Sito

:bookmark: Questa guida spiega come gestire i web crawler sul tuo sito Discourse.

:person_raising_hand: Livello utente richiesto: Amministratore

I web crawler possono influire in modo significativo sulle prestazioni del tuo sito aumentando le visualizzazioni di pagina e il carico del server.

Quando un sito nota un picco nelle visualizzazioni di pagina, è importante verificare come i web crawler si inseriscono nel quadro generale.


Verifica dell’attività dei crawler

Per verificare se i crawler stanno influenzando il tuo sito, naviga nel report Visualizzazioni di pagina consolidate (/admin/reports/consolidated_page_views) dalla tua dashboard di amministrazione. Questo report suddivide i numeri delle visualizzazioni di pagina degli utenti registrati, degli utenti anonimi e dei crawler.

Identificazione di crawler specifici

Vai al report User Agent Web Crawler (/admin/reports/web_crawlers) per trovare un elenco di nomi di web crawler ordinati per numero di visualizzazioni di pagina.

Quando un web crawler problematico raggiunge il sito, il numero delle sue visualizzazioni di pagina sarà molto più elevato rispetto agli altri web crawler. Tieni presente che potrebbero esserci diversi web crawler dannosi in funzione contemporaneamente.

Blocco e limitazione dei crawler

È buona abitudine non bloccare i crawler dei principali motori di ricerca, come Google, Bing, Baidu (cinese), Yandex (russo), Naver (coreano), DuckDuckGo, Yahoo e altri, in base al tuo paese.

Quando un web crawler è fuori controllo, è molto probabile che lo stesso crawler abbia raggiunto altri siti e che qualcun altro abbia già richiesto informazioni o creato report su di esso, che saranno utili per capire se limitare o bloccare quel particolare crawler.

Tieni presente che alcuni crawler potrebbero contribuire a un gran numero di visualizzazioni di pagina se utilizzi servizi di terze parti per monitorare o aggiungere funzionalità al tuo sito tramite script, ecc.

Per ottenere un elenco di web crawler inaffidabili, puoi fare riferimento a questo elenco: https://github.com/mitchellkrogza/apache-ultimate-bad-bot-blocker/blob/master/robots.txt/robots.txt

Regolazione delle impostazioni dei crawler

Nella sezione Admin > Impostazioni sono presenti alcune impostazioni che possono aiutare a limitare la frequenza di specifici crawler:

  • Rallenta i crawler utilizzando:

    • slow down crawler user agents
    • slow down crawler rate
  • Blocca i crawler con:

    • blocked crawler user agents

Assicurati di conoscere il nome esatto dello user agent per i crawler che desideri controllare. Se modifichi una delle impostazioni sopra e non noti una riduzione delle visualizzazioni di pagina di quell’agente, potresti voler verificare di aver utilizzato il nome corretto.

In caso di dubbi su come agire, inizia sempre con l’opzione “rallenta” anziché un blocco completo. Verifica nel tempo se ci sono miglioramenti. Puoi procedere con un blocco completo se non noti risultati apprezzabili.

17 Mi Piace

Dovrebbe esserci una sorta di disclaimer che questo funziona solo con quelli che si comportano bene? E anche Google bypasserà tutti quelli quando arrivano tramite link da Gmail.

Entrambi sono applicati sul server.

Tuttavia, se un bot dannoso finge di essere Chrome o qualcun altro falsificando gli header, non possiamo usare gli header per rilevarlo…

2 Mi Piace

Fatto interessante: le anteprime delle schede contano come visualizzazione di pagina!

Il server che amministro sembra essere stato sommerso da richieste di anteprime di schede del tipo http.rb/5.1.0 (Mastodon/4.0.2; + [https://mstdn.science/](https://mstdn.science/))

Non credo si possa fare altro se non dire agli utenti di Mastodon di includere un’immagine in modo che l’anteprima della scheda non venga aggiunta automaticamente.

1 Mi Piace

Ho già oltre 1500 visite al giorno da parte di crawler. :tired_face: Posso bloccarli tutti usando Cloudflare DNS? O quale opzione è necessaria per bloccarli tutti forzatamente? (Istanza privata)

Semplicemente non li voglio.

Utilizzando, ad esempio, nginx come proxy inverso e bloccando lì user agent indesiderati. Questo aiuta molto. Bloccare i paesi di cui non si ha bisogno aiuta anche parecchio.

Non posso bloccare Stati Uniti, Francia e Germania (grandi paesi con VPS), ma per me Russia, Vietnam, Iran, Iraq, ecc. hanno aiutato parecchio.

Ma Discourse è piuttosto… è resiliente la parola giusta. La situazione è molto diversa rispetto a WordPress, dove quei bot SEO inutili, i knockers, gli script kiddies e gli attori malevoli possono facilmente mettere in ginocchio un server.

2 Mi Piace

Ospito su Hetzner Germania, con solo due porte aperte nel mio firewall (80/443). E Discourse è in esecuzione dietro NGINX proxy manager (certo, ci sono soluzioni migliori, ma sono una persona pigra per programmare e mi piacciono le interfacce web).

Ora sto andando per la strada del whitelist, con una stringa casuale come unica voce consentita… d’ora in poi, niente più visualizzazioni di pagine :smiley:

Una domanda su cosa inserire esattamente in “rallenta gli user agent dei crawler”.
Per noi Facebook è un colpevole principale, con Bing al terzo posto.
Il report mostra i seguenti agenti come i principali crawler che assorbono le visualizzazioni di pagina:

Cosa dovrebbe esserci esattamente in “rallenta gli user agent dei crawler”: questi URL esatti inclusi “https” o “http”? O tutto dopo il doppio slash? O qualcos’altro? O dobbiamo procedere per tentativi?

Grazie!

Per semplificare le cose, dovresti usare i nomi di quei bot. Ma puoi usare qualsiasi parte della stringa user agent, assicurati solo che non influenzi più di quanto desideri.

Rallentare i bot è un modo molto inaffidabile, ma alcuni seguono quella regola. Ma questi provengono dalle tue condivisioni, ecc. e non creano così tanto carico di lavoro. WordPress sarebbe un’altra storia.

Ma questa è parte della mia lista di bot bloccati. Puoi farti un’idea da essa.

1 Mi Piace

Grazie, @Jagster, molto utile. A volte sembra un gioco a rimpiattino, ma ho capito l’idea di usare parte della stringa del nome del crawler invece dell’intero nome.

Un lavoro in corso per me come amministratore del sito, immagino: avanti!

1 Mi Piace

Ci possono essere diverse ragioni, ma Googlebot ha il suo budget e quando le sitemap sono il modo più importante per trovare link, non raggiunge mai i link interni quando viene utilizzato il budget giornaliero/settimanale/mensile.

E in un forum i link interni sono importanti per gli utenti, non per Google.

Ma non so se Googlebot vede i link interni. Dovrebbe, però.

1 Mi Piace