Come sapere quali bots/spider rallentano il server (e come bloccarli)

    2 Comments

    Un crawler, detto anche bot oppure spider, è un software che analizza i contenuti di un sito, per raccogliere informazioni (collect data). In sostanza visitano i siti presenti sul server, raccolgono dati, pagine, informazioni e li inviano ai loro server di provenienza, per essere elaborati e archiviati. Parlando in maniera semplicistica, sono come degli ambasciatori che vengono a vedere casa vostra o il vostro negozio. Sono indispensabili al funzionamento dei motori di ricerca, in quanto raccolgono (collect) tutti i dati del vostro sito per poterli poi restituire agli utenti che fanno ricerche (se i loro algoritmi decidono che i vostri dati possono essere utili all’utente che ha effettuato la ricerca). Ma dietro questa nobile attività vi sono due tipi di problemi:

    1. gli spider dei motori di ricerca possono consumare molte risorse del vostro sito, sia per quanto riguarda la bandwith (traffico dati), sia per quanto riguarda il carico del server
    2. non sempre si tratta di bot dei motori di ricerca, ma spesso di altre tipologie di siti che vogliono utilizzare i dati del vostro sito per altri scopi (copiatura, analisi da parte della concorrenza)

    Spider e consumo risorse del sito

    Ogni volta che lo spider visita il vostro sito, generalmente lo visita tutto o almeno tenta di collezionare le informazioni del maggior numero di pagine possibile. Questa procedura consuma bandwith: questa rappresenta il traffico dati (in entrata e in uscita) concesso al vostro sito. Ogni piano hosting lo prevede (anche quando trovate in certe offerte bandwith illimitata c’è in realtà un limite). Anche se oggigiorno questo limite mensile di banda dati è aumentato rispetto al passato, esiste e va considerato, sopratutto se avete un hosting economico. Gli spider sono ingordi, gli piace leggere e rileggere tutti i siti. Tutti insieme consumano. Gli stessi motori di ricerca ammettono questa cosa: Google, ad esempio, attraverso il Google Webmaster Tool (o Search Console) permette di ridurre la frequenza di queste scansioni da parte del loro bot. E’ un’opzione semplice da utilizzare e comunque da considerare a seconda del tipo di sito che abbiamo. Un sito di notizie, aggiornato più volte al giorno, va scansionato spesso, per indicizzare subito le novità. Stesso discorso per un forum. Un sito più statico, nel senso che posta news con minor frequenza, può benissimo impostare una scansione meno frequente. E risparmiare bandwith. E non solo: a volte l’insieme dei bot concorre ad aumentare il carico del server, provocando rallentamenti al sito. Se è vero che i rallentamenti di un server (e dei siti che ospita) dipendono sopratutto dalla configurazione (errata) o dagli script (malscritti o non aggiornati), la coincidenza di più bot contemporaneamente è un fattore che in alcuni casi provoca high cpu usage , cosa che manda in crash/black out tutto quando si tratta di attacchi ddos.

    Come dicevamo, i bot che visitano il sito sono inviati anche da altri siti che non sono motori di ricerca, ma che hanno scopi totalmente differenti dal collezioare dati per restituirli nei risultati di ricerca. Tra questi siti che “copiano” le vostre pagine: dal quasi legittimo Google News che legge le vostre notizie e le riporta sul suo aggregatore (o come Trivago o Momondo che analizzano ed estraggono dati relativi alle tariffe hotels o alle offerte di viaggi), ai veri e propri siti scraper (che ri-copiano nei loro siti), fino ai siti per analisi seo (search engine oriented) che leggono il vostro sito simulando il motore di ricerca, ma per capire quali parole chiave avete, che densità hanno, come sono linkate le pagine, chi vi linka, ecc. in modo da aggregare ai dati e far capire alla concorrenza quali sono i vostri punti di forza. Alcuni esempi trai i più famosi: Ahrefs, SiteExplorer, Moz.

    Conoscere quali spiders/bot contattano i siti ospitati sul server

    Se avete accesso alla console SSH del server, allora ecco uno script già pronto per conoscere: nome dello spider, indirizzo ip (da quale server è stato lanciato), numero di volte ha contattato il sito. Copiatelo, aprite la console SSH, incollatelo e premete invio. Dal momento che lancia un processo (di calcolo) intensivo, ci impiegherà qualche minuto per restituire i dati che ci interessano (presi dal domainlogs, dalla mezzanotte precedente). Ecco lo script:

    echo -e "\n\e[1;31m=== Bots (robots or crawlers) ===\e[0m\n"; find /usr/local/apache/domlogs/*/ -type f|grep -v -E $'(_|-)log|.gz'|xargs grep -H "" | perl -ne 'if (/$DATE/ && /\/usr\/local\/apache\/domlogs\/.*\/(.*):(\d{1,3}(?:\.\d{1,3}){3}).*\((?:.*?;)*([^;]*(?:b(?:ot|ing)|crawl|yahoo|google|spider)[^;]*);/i) { print ("$1\t$2\t$3\n")}'|sort|uniq -c|sort -rn|awk '{print $1" "$3" "$4" "$2}'|column -t|head

    Il risultato sarà come il seguente:

    2735  162.158.78.71    SemrushBot/1.2~bl                  ###ar.it
    62    141.101.105.133  AhrefsBot/5.2                      ##zar.it
    124   88.198.66.230    MJ12bot/v1.4.7                     tuttoblog.com
    82    5.9.63.162       MJ12bot/v1.4.7                     tuttoblog.com
    56    198.204.243.138  MJ12bot/v1.4.7                     tuttoblog.com
    76    162.158.74.178   bingbot/2.0                        ##log.com
    72    172.68.58.42     bingbot/2.0                        ##log.com

    Notare ad esempio quanto sia vorace Semrush (noto tool di analisi siti), e come ad esempio il bot del motore di ricerca Bing arrivi da diversi IP (i motori di ricerca ne utilizzano centinaia). E’ normale vedere più ip (in quanto se il server ne blocca uno, ne hanno altri da cui far partire l’analisi al nostro sito)

    Bloccare gli spider indesiderati

    Abbiamo diverse possibilità per bloccare i bot che non ci interessano, e che anzi possono solo danneggiarci (provocando rallentamenti al sito, consumando risorse, copiando i nostri dati per la concorrenza), ovvero inserire delle istruzioni apposite. Possiamo scoraggiarli inserendo l’istruzione nel file robots.txt del sito (maniera soft) oppure bloccando tali bot direttamente tramite il server (istruzioni nel file .htaccess)

    Di seguito una lista di spider da bloccare già pronta all’uso, solo da copiare ed incollare nel vostro file robots.txt Due note importanti: è una lista molto ampia, che ovviamente esclude i motori di ricerca, ma è bene controllare che non vi siano servizi che invece vi interessano al suo interno, perchè finireste per bloccarli. E secondo, ognuno la usa sotto la propria responsabilità, proprio perchè state decidendo di scoraggiare la raccolta dei dati del vostro sito a questi spider. Se non avete un file robots, andate nel file manager del vostro sito web, create un file robots.txt e copiate questa lista. Se esiste già, dopo le istruzioni già presenti, potete aggiungere questa lista:

    User-agent: 1 2 3 Submit PRO
     disallow: /
    
    User-agent: 200PleaseBot
     disallow: /
    
    User-agent: 2ADAMbot
     disallow: /
    
    User-agent: 2ADAMbot/1.0
     disallow: /
    
    User-agent: 360Spider
     disallow: /
    
    user-agent: Abonti
     disallow: /
    
    user-agent: Abonti/0.92
     disallow: /
    
    user-agent: abot v1.0
     disallow: /
    
    user-agent: aboutthedomain
     disallow: /
    
    user-agent: Add Catalog
     disallow: /
    
    user-agent: Add Catalog/2.1
     disallow: /
    
    user-agent: AdvBot
     disallow: /
    
    user-agent: AdvBot/2.0
     disallow: /
    
    user-agent: AhrefsBot
     disallow: /
    
    user-agent: Ahrefs-Bot
     disallow: /
    
    user-agent: AhrefsBot/1.0
     disallow: /
    
    user-agent: Ahrefs-Bot/1.0
     disallow: /
    
    user-agent: Ahrefs-Bot/2.0
     disallow: /
    
    user-agent: Ahrefs-Bot/3.0
     disallow: /
    
    user-agent: Ahrefs-Bot/4.0
     disallow: /
    
    user-agent: Ahrefs-Bot/5.0
     disallow: /
    
    user-agent: aiHitBot
     disallow: /
    
    user-agent: aiHitBot/2.9
     disallow: /
    
    user-agent: Anonymous/0.0
     disallow: /
    
    user-agent: Arachnida
     disallow: /
    
    user-agent: Associative Spider
     disallow: /
    
    User-agent: Baiduspider
     disallow: /
    
    User-agent: Baidu Spider
     disallow: /
    
    User-agent: Battleztar Bazinga
     disallow: /
    
    User-agent: Battleztar Bazinga/0.01
     disallow: /
    
    User-agent: BDFetch
     disallow: /
    
    User-agent: betaBot
     disallow: /
    
    User-agent: bieshu
     disallow: /
    
    User-agent: Bigli SEO
     disallow: /
    
    User-agent: Blackboard Safeassign
     disallow: /
    
    User-agent: Blazer 1.0
     disallow: /
    
    User-agent: BLEXBot
     disallow: /
    
    User-agent: BLEXBot/1.0
     disallow: /
    
    User-agent: BLP_bbot
     disallow: /
    
    User-agent: BLP_bbot/0.1
     disallow: /
    
    User-agent: BOIA-Accessibility-Agent/PR 1.0
     disallow: /
    
    User-agent: BOT for JCE
     disallow: /
    
    User-agent: BOT/0.1 (BOT for JCE)
     disallow: /
    
    User-agent: BPImageWalker
     disallow: /
    
    User-agent: BPImageWalker/2.0
     disallow: /
    
    User-agent: BUbiNG
     disallow: /
    
    User-agent: BuiBui-Bot
     disallow: /
    
    User-agent: BuiBui-Bot/1.0
     disallow: /
    
    User-agent: ca-crawler
     disallow: /
    
    User-agent: ca-crawler/1.0
     disallow: /
    
    User-agent: CakePHP
     disallow: /
    
    User-agent: Calypso v/0.01
     disallow: /
    
    User-agent: Calypso
     disallow: /
    
    User-agent: CB/Nutch-1.7
     disallow: /
    
    User-agent: CCBot
     disallow: /
    
    User-agent: CCBot/2.0
     disallow: /
    
    User-agent: Checkbot
     disallow: /
    
    User-agent: checkgzipcompression.com
     disallow: /
    
    User-agent: chushou
     disallow: /
    
    User-agent: CloudServerMarketSpider
     disallow: /
    
    User-agent: CloudServerMarketSpider/1.0
     disallow: /
     
    User-agent: Clushbot/3.x-BinaryFury
     disallow: /
    
    User-agent: CMS Crawler
     disallow: /
    
    User-agent: CMS Crawler: http://www.cmscrawler.com
     disallow: /
    
    User-agent: coccoc
     disallow: /
    
    User-agent: CoinCornerBot
     disallow: /
    
    User-agent: CoinCornerBot/1.1
     disallow: /
    
    User-agent: Copyscape
     disallow: /
    
    User-agent: crawler4j
     disallow: /
    
    User-agent: CRAZYWEBCRAWLER 0.9.0
     disallow: /
    
    User-agent: CRAZYWEBCRAWLER 0.9.1
     disallow: /
    
    User-agent: CRAZYWEBCRAWLER 0.9.7
     disallow: /
    
    User-agent: CrazyWebCrawler
     disallow: /
    
    User-agent: CrazyWebCrawler-Spider
     disallow: /
    
    User-agent: Crowsnest
     disallow: /
    
    User-agent: Crowsnest/0.5
     disallow: /
    
    User-agent: Curious George - www.analyticsseo.com/crawler
     disallow: /
    
    User-agent: Curious George
     disallow: /
    
    User-agent: cuwhois
     disallow: /
    
    User-agent: cuwhois/1.0
     disallow: /
    
    User-agent: dahoms
     disallow: /
    
    User-agent: datagnionbot
     disallow: /
    
    User-agent: DeuSu/5.0.2
     disallow: /
    
    User-agent: Digincore
     disallow: /
    
    User-agent: Digincore bot
     disallow: /
    
    User-agent: Dispatch/0.11.0
     disallow: /
    
    User-agent: Domain Re-Animator Bot
     disallow: /
    
    User-agent: DomainAppender /1.0
     disallow: /
    
    User-agent: DomainAppender
     disallow: /
     
     User-agent: DomainCrawler/3.0
     disallow: /
    
    User-agent: DomainSigmaCrawler
     disallow: /
    
    User-agent: DomainSigmaCrawler/0.1
     disallow: /
    
    User-agent: Domnutch
     disallow: /
    
    User-agent: Domnutch-Bot
     disallow: /
    
    User-agent: Domnutch-Bot/Nutch
     disallow: /
    
    User-agent: Domnutch-Bot/Nutch-1.0
     disallow: /
    
    User-agent: dotbot
     disallow: /
    
    User-agent: ECCP/1.2.1
     disallow: /
    
    User-agent: eCommerceBot
     disallow: /
    
    User-agent: enlle punto com/Nutch-1.9
     disallow: /
    
    User-agent: EPiServer Link Checker
     disallow: /
    
    User-agent: EuripBot
     disallow: /
    
    User-agent: EuripBot/2.0
     disallow: /
    
    User-agent: evc/2.0
     disallow: /
    
    User-agent: evc-batch
     disallow: /
    
    User-agent: evc-batch/2.0
     disallow: /
    
    User-agent: Express WebPictures
     disallow: /
    
    User-agent: Faraday v0.8.8
     disallow: /
    
    User-agent: Faraday
     disallow: /
    
    User-agent: Findxbot
     disallow: /
    
    User-agent: Findxbot/1.0
     disallow: /
    
    User-agent: Flamingo_SearchEngine
     disallow: /
    
    User-agent: Flipboard Robot
     disallow: /
    
    User-agent: GetProxi.es-bot
     disallow: /
    
    User-agent: GetProxi.es-bot/1.1
     disallow: /
    
    User-agent: GigablastOpenSource
     disallow: /
    
    User-agent: GigablastOpenSource/1.0
     disallow: /
    
    User-agent: Girafabot
     disallow: /
    
    User-agent: Gluten Free Crawler
     disallow: /
    
    User-agent: Gluten Free Crawler/1.0
     disallow: /
    
    User-agent: GriffinBot
     disallow: /
    
    User-agent: GrifinBot/0.01
     disallow: /
    
    User-agent: GWPImages
     disallow: /
    
    User-agent: GWPImages/1.0
     disallow: /
    
    User-agent: Haiula
     disallow: /
    
    User-agent: Haiula/1.4
     disallow: /
    
    User-agent: HaosouSpider
     disallow: /
    
    User-agent: Hivemind
     disallow: /
    
    User-agent: HostHarvest
     disallow: /
    
    User-agent: HostHarvest/0.4.28
     disallow: /
    
    User-agent: HRCrawler
     disallow: /
    
    User-agent: HRCrawler/2.0
     disallow: /
    
    User-agent: http://git.io/tl_S2w
     disallow: /
    
    User-agent: http://www.checkprivacy.or.kr:6600/RS/PRIVACY_ENFAQ.jsp
     disallow: /
    
    User-agent: HubSpot Links Crawler 1.0
     disallow: /
    
    User-agent: HubSpot Webcrawler
     disallow: /
    
    User-agent: HubSpot
     disallow: /
    
    User-agent: hunchan
     disallow: /
    
    User-agent: HyperCrawl
     disallow: /
    
    User-agent: HyperCrawl/0.2
     disallow: /
    
    User-agent: ICAP-IOD
     disallow: /
    
    User-agent: ICC-Crawler
     disallow: /
    
    User-agent: ICC-Crawler/2.0
     disallow: /
    
    User-agent: Ichiro Robot
     disallow: /
    
    User-agent: image.coccoc/1.0
     disallow: /
    
    User-agent: Image2play
     disallow: /
    
    User-agent: Image2play/0.1
     disallow: /
    
    User-agent: Indy Library
     disallow: /
    
    User-agent: InsightsCollector
     disallow: /
    
    User-agent: InsightsCollector/0.1
     disallow: /
    
    User-agent: InsightsCollector/0.1beta
     disallow: /
    
    User-agent: integrity/5
     disallow: /
    
    User-agent: InterNaetBoten
     disallow: /
    
    User-agent: InterNaetBoten/0.99
     disallow: /
    
    User-agent: IRL Crawler
     disallow: /
    
    User-agent: James BOT - WebCrawler
     disallow: /
    
    User-agent: James BOT
     disallow: /
    
    User-agent: JamesBOT
     disallow: /
    
    User-agent: JetBrains 5.0
     disallow: /
    
    User-agent: JetBrains
     disallow: /
    
    User-agent: Kraken
     disallow: /
    
    User-agent: Kraken/0.1
     disallow: /
    
    User-agent: Kyoto-Tohoku-Crawler/v1
     disallow: /
    
    User-agent: larbin
     disallow: /
    
    User-agent: lechenie
     disallow: /
    
    User-agent: libwww-perl
     disallow: /
    
    User-agent: link checker
     disallow: /
    
    User-agent: Link/1.0
     disallow: /
    
    User-agent: linkCheck
     disallow: /
    
    User-agent: linkCheckV3.0
     disallow: /
    
    User-agent: Linkdex
     disallow: /
    
    User-agent: linkdex.com/v2.0
     disallow: /
    
    User-agent: linkdex.com/v2.1
     disallow: /
    
    User-agent: LinkdexBot
     disallow: /
    
    User-agent: linkdexbot/2.0
     disallow: /
    
    User-agent: linkdexbot/2.1
     disallow: /
    
    User-agent: linkdexbot-mobile/2.1
     disallow: /
    
    User-agent: LinkpadBot
     disallow: /
    
    User-agent: LinkpadBot/1.06
     disallow: /
    
    User-agent: LinqiaScrapeBot
     disallow: /
    
    User-agent: LinqiaScrapeBot/1.0
     disallow: /
    
    User-agent: Lipperhey SEO Service
     disallow: /
    
    User-agent: Lipperhey
     disallow: /
    
    User-agent: Lipperhey-Kaus-Australis
     disallow: /
    
    User-agent: Lipperhey-Kaus-Australis/5.0
     disallow: /
    
    User-agent: listicka
     disallow: /
    
    User-agent: LSSRocketCrawler
     disallow: /
    
    User-agent: LSSRocketCrawler/1.0 LightspeedSystems
     disallow: /
    
    User-agent: LSSRocketCrawler/1.0
     disallow: /
    
    User-agent: ltx71
     disallow: /
    
    User-agent: LWNutch/Nutch-1.4
     disallow: /
    
    User-agent: Mail.RU
     disallow: /
    
    User-agent: Mail.RU_Bot
     disallow: /
    
    User-agent: Mail.RU_Bot/2.0
     disallow: /
    
    User-agent: Mail.RU_Bot/Fast/2.0
     disallow: /
    
    User-agent: md5sum
     disallow: /
    
    User-agent: md5sum\x22
     disallow: /
    
    User-agent: meanpathbot
     disallow: /
    
    User-agent: MegaIndex.ru
     disallow: /
    
    User-agent: MegaIndex.ru/2.0
     disallow: /
    
    User-agent: mezhpozvonochnoi
     disallow: /
    
    User-agent: Mike-Crawler
     disallow: /
    
    User-agent: MixBot
     disallow: /
    
    User-agent: MixrankBot
     disallow: /
    
    User-agent: MJ12bot
     disallow: /
    
    User-agent: Monkeybot/0.1
     disallow: /
    
    User-agent: my crawler
     disallow: /
    
    User-agent: My Nutch Spider/Nutch-1.9
     disallow: /
    
    User-agent: mycrowl/Nutch-1.9
     disallow: /
    
    User-agent: MyGreatUA/2.0
     disallow: /
    
    User-agent: MyIPTest
     disallow: /
    
    User-agent: NameProtect Robot
     disallow: /
    
    User-agent: NerdyBot
     disallow: /
    
    User-agent: Netcraft Spider
     disallow: /
    
    User-agent: netEstate NE Crawler
     disallow: /
    
    User-agent: NetLyzer FastProbe
     disallow: /
    
    User-agent: NetResearchServer
     disallow: /
    
    User-agent: NetResearchServer/4.0
     disallow: /
    
    User-agent: Nmap Scripting Engine
     disallow: /
    
    User-agent: node.io
     disallow: /
    
    User-agent: node.js
     disallow: /
    
    User-agent: Node/simplecrawler 0.5.2
     disallow: /
    
    User-agent: Node/simplecrawler
     disallow: /
    
    User-agent: oBot/2.3.1
     disallow: /
    
    User-agent: omgilibot
     disallow: /
    
    User-agent: omgilibot/0.4
     disallow: /
    
    User-agent: Online Domain Tools - Online Website Link Checker
     disallow: /
    
    User-agent: Online Domain Tools - Online Website Link Checker/1.2
     disallow: /
    
    User-agent: Openfind Robot
     disallow: /
    
    User-agent: OpenHoseBot
     disallow: /
    
    User-agent: OpenHoseBot/2.1
     disallow: /
    
    User-agent: Openstat
     disallow: /
    
    User-agent: Openstat/0.1
     disallow: /
    
    User-agent: OptimizationCrawler
     disallow: /
    
    User-agent: OptimizationCrawler/0.2
     disallow: /
    
    User-agent: Page Analyzer v4.0
     disallow: /
    
    User-agent: Page Analyzer
     disallow: /
    
    User-agent: PageAnalyzer
     disallow: /
    
    User-agent: PageAnalyzer/1.1
     disallow: /
    
    User-agent: PageAnalyzer/1.5
     disallow: /
    
    User-agent: PagesInventory
     disallow: /
    
    User-agent: Pagespeed/1.1 Fetcher
     disallow: /
    
    User-agent: Pagespeed/1.1
     disallow: /
    
    User-agent: Pagespeedbot
     disallow: /
    
    User-agent: Perl LWP
     disallow: /
    
    User-agent: PHPCrawl
     disallow: /
    
    User-agent: phpSiteCheck 1.0
     disallow: /
    
    User-agent: phpSiteCheck
     disallow: /
    
    User-agent: Plukkie
     disallow: /
    
    User-agent: POGS/2.0
     disallow: /
    
    User-agent: Powermarks
     disallow: /
    
    User-agent: PowerPivot
     disallow: /
    
    User-agent: PRIVACY_ENFAQ.jsp
     disallow: /
    
    User-agent: Prlog
     disallow: /
    
    User-agent: Prlog/1.0
     disallow: /
    
    User-agent: publiclibraryarchive.org
     disallow: /
    
    User-agent: publiclibraryarchive.org/1.0
     disallow: /
    
    User-agent: Pu_iN Crawler
     disallow: /
    
    User-agent: Putin
     disallow: /
    
    User-agent: Putin spider
     disallow: /
    
    User-agent: qingdao
     disallow: /
    
    User-agent: QlikView
     disallow: /
    
    User-agent: quipu
     disallow: /
    
    User-agent: quipu/1.0
     disallow: /
    
    User-agent: quipu/2.0
     disallow: /
    
    User-agent: R6_CommentReader
     disallow: /
    
    User-agent: R6_FeedFetcher
     disallow: /
    
    User-agent: Riddler
     disallow: /
    
    User-agent: RivalSeek.com-Bot
     disallow: /
    
    User-agent: rogerbot
     disallow: /
    
    User-agent: rogerbot/1.0
     disallow: /
    
    User-agent: rootlink
     disallow: /
    
    User-agent: RU_Bot/2.0
     disallow: /
    
    User-agent: Scopia
     disallow: /
    
    User-agent: Scopia crawler
     disallow: /
    
    User-agent: Scopia crawler 1.0
     disallow: /
    
    User-agent: Scopia crawler 1.1
     disallow: /
    
    User-agent: Scopia crawler 1.2
     disallow: /
    
    User-agent: Scrapy
     disallow: /
    
    User-agent: Scrapy/0.16.5
     disallow: /
    
    User-agent: Scrapy/0.24.4
     disallow: /
    
    User-agent: Scrapy/0.24.5
     disallow: /
    
    User-agent: Scrapy/0.24.6
     disallow: /
    
    User-agent: Scrapy/1.0.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/2,55
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/2.55
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/3.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/3.3
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/4.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/5.0
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/5.1
     disallow: /
    
    User-agent: Screaming Frog SEO Spider/5.1 Beta 2
     disallow: /
    
    User-agent: scrutiny/4
     disallow: /
    
    User-agent: SemrushBot
     disallow: /
    
    User-agent: SemrushBot-SA
     disallow: /
     
    User-agent: SEOdiver/1.0
     disallow: /
    
    User-agent: SEOkicks
     disallow: /
    
    User-agent: SEOkicks-Robot
     disallow: /
    
    User-agent: SEOlyticsCrawler
     disallow: /
    
    User-agent: SEOlyticsCrawler/3.0
     disallow: /
    
    User-agent: seoscanners
     disallow: /
    
    User-agent: seoscanners.net/1
     disallow: /
    
    User-agent: SEOstats 2.1.0
     disallow: /
    
    User-agent: Seosys/Nutch-2.3
     disallow: /
    
    User-agent: SetCronJob/1.0
     disallow: /
    
    User-agent: SeznamBot
     disallow: /
    
    User-agent: SheerBoredom.Experimental.Robot
     disallow: /
    
    User-agent: SheerBoredom.Experimental.Robot/0.2
     disallow: /
    
    User-agent: ShowyouBot
     disallow: /
    
    User-agent: Simplecrawler
     disallow: /
    
    User-agent: SISTRIX Crawler
     disallow: /
    
    User-agent: sistrix
     disallow: /
    
    User-agent: SiteBot
     disallow: /
    
    User-agent: SiteBot/0.1
     disallow: /
    
    User-agent: SiteExplorer
     disallow: /
    
    User-agent: SiteExplorer/1.0
     disallow: /
    
    User-agent: SiteExplorer/1.0b
     disallow: /
    
    User-agent: Siteluxbot
     disallow: /
    
    User-agent: Siteluxbot/1.0
     disallow: /
    
    User-agent: SkimBot
     disallow: /
    
    User-agent: SkimBot/1.0
     disallow: /
    
    User-agent: sky nutch crawler/Nutch-1.9
     disallow: /
    
    User-agent: SMTBot
     disallow: /
    
    User-agent: SMTBot/1.0
     disallow: /
    
    User-agent: SNK Screenshot Bot
     disallow: /
    
    User-agent: SNK Screenshot Bot/0.20
     disallow: /
    
    User-agent: Sogou Spider
     disallow: /
    
    User-agent: Sogou web spider
     disallow: /
    
    User-agent: SpamBayes
     disallow: /
    
    User-agent: SpamBayes/1.1a3+
     disallow: /
    
    User-agent: spbot
     disallow: /
    
    User-agent: spbot/4.4.2
     disallow: /
    
    User-agent: spiderbot
     disallow: /
    
    User-agent: SpiderLing
     disallow: /
    
    User-agent: Spiderbot/Nutch-1.7
     disallow: /
    
    User-agent: spray-can
     disallow: /
    
    User-agent: spray-can/1.2.1
     disallow: /
    
    User-agent: SSG/3.0
     disallow: /
    
    User-agent: Statastico
     disallow: /
    
    User-agent: Statastico/4.0
     disallow: /
    
    User-agent: Steeler
     disallow: /
    
    User-agent: Steeler/3.5
     disallow: /
    
    User-agent: Stratagems Kumo
     disallow: /
    
    User-agent: Stratagems
     disallow: /
    
    User-agent: StudioFACA Search
     disallow: /
    
    User-agent: StudioFACA
     disallow: /
    
    User-agent: sukibot
     disallow: /
    
    User-agent: sukibot_heritrix
     disallow: /
    
    User-agent: sukibot_heritrix/3.1.1
     disallow: /
    
    User-agent: SurveyBot
     disallow: /
    
    User-agent: Synapse
     disallow: /
    
    User-agent: Synthesio Crawler release MonaLisa
     disallow: /
    
    User-Agent: tbot-nutch/Nutch-1.10
     disallow: /
    
    User-Agent: Traackr.com bot
     disallow: /
    
    User-Agent: trendictionbot
     disallow: /
    
    User-Agent: Trendiction-Bot
     disallow: /
    
    User-Agent: TrueBot
     disallow: /
    
    User-Agent: TrueBot/1.0
     disallow: /
    
    User-Agent: TulipChain/5.xx
     disallow: /
    
    User-Agent: TWMBot/0.1
     disallow: /
    
    User-Agent: Typhoeus
     disallow: /
    
    User-Agent: UCMore Crawler App
     disallow: /
    
    User-Agent: uMBot-LN
     disallow: /
    
    User-Agent: uMBot-LN/1.0
     disallow: /
    
    User-Agent: updown_tester
     disallow: /
    
    User-Agent: URLChecker
     disallow: /
    
    User-agent: V1.0/1.2
     disallow: /
    
    User-agent: w3af.org
     disallow: /
    
    User-agent: WASALive
     disallow: /
    
    User-agent: WASALive-Bot
     disallow: /
    
    User-agent: vBSEO
     disallow: /
    
    User-agent: WBSearchBot
     disallow: /
    
    User-agent: WBSearchBot/1.1
     disallow: /
    
    User-agent: WeAreNotEvil
     disallow: /
    
    User-agent: WebAlta
     disallow: /
    
    User-agent: WebAlta Crawler
     disallow: /
    
    User-agent: Web corpus crawler
     disallow: /
    
    User-agent: WebCookies
     disallow: /
    
    User-agent: WebCookies/1.0
     disallow: /
    
    User-agent: WebCopier vx.xa
     disallow: /
    
    User-agent: Webnest 0.9
     disallow: /
    
    User-agent: WebQL
     disallow: /
    
    User-agent: Webscout
     disallow: /
    
    User-agent: Webscout/1.0
     disallow: /
    
    User-agent: Web-sniffer
     disallow: /
    
    User-agent: Web-sniffer/1.1.0
     disallow: /
    
    User-agent: Webster Pro V3.4
     disallow: /
    
    User-agent: WebTarantula.com Crawler
     disallow: /
    
    User-agent: WeCrawlForThePeace
     disallow: /
    
    User-agent: VegeBot
     disallow: /
     
     User-agent: Vegi bot
     disallow: /
    
    User-agent: WeLikeLinks
     disallow: /
    
    User-agent: VeriCiteCrawler
     disallow: /
    
    User-agent: VeriCiteCrawler/Nutch-1.9
     disallow: /
    
    User-agent: WhatWeb
     disallow: /
    
    User-agent: WhatWeb/0.4.8-dev
     disallow: /
    
    User-agent: Visited by http://tools.geek-tools.org
     disallow: /
    
    User-agent: Voila Robot
     disallow: /
    
    User-agent: voltron
     disallow: /
    
    User-agent: woobot
     disallow: /
    
    User-agent: woobot/1.1
     disallow: /
    
    User-agent: woobot/2.0
     disallow: /
    
    User-agent: Vorboss Web Crawler
     disallow: /
    
    User-agent: Vorboss Web Crawler/Nutch-2.3
     disallow: /
    
    User-agent: WorldBrewBot
     disallow: /
    
    User-agent: WorldBrewBot/2.1
     disallow: /
    
    User-agent: worldwebheritage.org
     disallow: /
    
    User-agent: worldwebheritage.org/1.0
     disallow: /
    
    User-agent: wscheck.com
     disallow: /
    
    User-agent: wscheck.com/1.0.0
     disallow: /
    
    User-agent: www.deadlinkchecker.com
     disallow: /
    
    User-agent: www.petitsage.fr site detector 0.4
     disallow: /
    
    User-agent: WWW-Mechanize
     disallow: /
    
    User-agent: WWW-Mechanize/1.74
     disallow: /
    
    User-agent: Xenu Link Sleuth
     disallow: /
    
    User-agent: Xenu's Link Sleuth
     disallow: /
    
    User-agent: XoviBot
     disallow: /
    
    User-agent: XoviBot/2.0
     disallow: /
    
    User-agent: XSpider
     disallow: /
    
    User-agent: Yandex Robot
     disallow: /
    
    User-agent: Yandex
     disallow: /
    
    User-agent: Yetibot
     disallow: /
    
    User-agent: YisouSpider
     disallow: /
    
    User-agent: yoozBot
     disallow: /
    
    User-agent: yoozBot-2.2
     disallow: /
    
    User-agent: zgrab/0.x
     disallow: /
    
    User-agent: zzabmbot
     disallow: /
    
    User-agent: zzabmbot/1.0
     disallow: /

    Nota: è stato bloccato anche Yandex. Se al vostro sito interessa essere presente sul motore di ricerca russo, allora rimuovetelo. Suggerimenti e aggiunte sono ben accetti.

    WordPress, come passare da http a https (e aumentare le visite al sito)

    7 Comments

    Le operazioni necessarie per gestire correttamente il cambio di indirizzo del sito dal vecchio formato http al nuovo protocollo sicuro https

    Nell’articolo precedente abbiamo parlato delle tipologie di certificati SSL, quale scegliere per il nostro sito e come acquistarlo. Noi, grazie al nostro fornitore di hosting, l’abbiamo acquistato tramite il pannello di controllo hosting cPanel. Questa operazione ha due grossi vantaggi: il certificato di cui ha bisogno il nostro sito ha un prezzo molto accessibile, e inoltre il certificato – una volta rilasciato dall’authority competente – viene direttamente installato sul nostro server. Non dobbiamo preoccuparci di nulla, se non della parte post installazione, ovvero fare le opportune modifiche al nostro wordpress per gestire correttamente il cambio da http ad https senza avere errori nel sito e senza perdere posizionamenti sui motori di ricerca. Anzi, il cambio a protocollo sicuro in teoria ci porterà più visite.

    Dopo aver installato il certificato sul server dobbiamo mettere mano alla nostra installazione wordpress per cambiare le impostazioni (url, media) da http a https. In sostanza si tratta di trasformare le pagine vecchie in pagine nuove, e pertanto non dobbiamo lasciare errori nei link interni, nel caricamento delle immagini, oltre che reindirizzare le pagine linkate da siti esterni verso le la nuova struttura url. Può sembrare un lavoraccio, ma in realtà seguendo pochi semplici passaggi possiamo già sistemare il 95% di tutta la struttura (il restante 5% lo scopriremo in seguito grazie a qualche verifica post migrazione).

    1) Cambio della struttura dei permalink

    Semplice ma fondamentale. Fare il login nel pannello di amministrazione wordpress, andare nel menu Impostazioni e poi su Permalink. Si tratta di quella impostazione che si setta una volta nella vita quando installi wordpress e poi ci si mette mano in occasioni straordinarie. Ecco questa è una di quelle. Nella schermata seguente dei aggiungere la s all’http, ovvero cambiare il percorso del sito da http ad https, come nella figura:

    ssl cambio url wordpress

    Salvate. Il sistema ora vi farà fare il logout, e vi reindirizzerà alla nuova pagina di login https://www.vostrosito.com/wp-login.php . Potete rientrare con stessi username e password di sempre.

    2) Reindirizzare da http ad https tutte le url del sito

    Ora dobbiamo impostare il redirect di tutti gli indirizzi da http ad https, in modo che ogni link/richiesta ad una vecchia pagina tipo http://www.miosito.net/articolo-numero-1/ venga automaticamente indirizzata alla nuova https://www.miosito.net/articolo-numero-1/ . Per fare questo, dobbiamo inserire queste poche righe di codice nel file .htaccess . Quindi, tramite un programma FTP oppure tramite il gestore file del nostro pannello hosting, andiamo ad editare il file .htaccess che si trova nella directory principale dell’installazione wordpress (in genere in /home/vostroaccount/public_html/ ). Ecco le righe da inserire all’inizio:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.tuttoblog.com/$1 [R,L]
    </IfModule>

    Dove ovviamente al posto di tuttoblog.com metterete l’indirizzo del vostro sito. Dopo aver inserito il codice e aver salvato il file, ogni vostro indirizzo url verrà automaticamente reindirizzato, in maniera permanente, alla nuova versione https. Come ad esempio la vecchia pagina in esempio

    indirizzo http non sicuro

    ricaricando la pagina (tasto F5), verrà automaticamente reindirizzata alla versione https, e comparirà il lucchetto che sancisce la sicurezza del sito

    indirizzo https sicuro, con lucchetto

    Cliccando sul lucchetto, è possibile avere informazioni aggiuntive, ovvero la dicitura “sito sicuro” e ulteriori informazioni sul certificato e da chi è stata emessa la certificazione:

    info sul certificato del sito

    Finito? Diciamo che oltre il 75% del lavoro è già fatto. Se il sito è recente, o comunque è stato realizzato in maniera corretta, allora siamo vicini al 100%. Cosa può essere sfuggito? Immagini e iframe possono causare errore di sicurezza ed impedire al sito di essere sicuro al 100%. Ad esempio il caricamento di immagini interne che abbiamo inserito utilizzando un percorso assoluto. Se la nostra pagina di esempio è ora con indirizzo https://www.nostrosito.it/pagina1/ , e al suo interno un’immagine è stata inserita con percorso tipo

    <img src="http://www.nostrosito.it/immagine1.jpg" />

    allora dovremmo modificare anche questa aggiungendo la s all’http. Ma come facciamo se abbiamo molte immagini da sistemare? Un aiuto ci viene utilizzando in modo corretto il phpmyadmin che gestisce il database: con queste poche istruzioni possiamo cambiare tutti i percorsi di tutte le immagini incluse nei nostri post e nelle nostre pagine. In sostanza, dobbiamo dire alla macchina che ogni volta che (nel database) trova il tag immagine
    src=”http:// lo deve sostituire con il codice src=”// , ovvero il percorso relativo. L’ideale, è avere le immagini richiamate in questo modo:

    <img src="//example.com/image.jpg" alt="nome immagine">

    In questo modo, le immagini che nel nostro wordpress sono inserite con il percorso relativo, sarà il nostro wordpress ad attribuirgli il giusto https davanti. Attenzione: questa istruzione, inserita nello spazio istruzioni sql del nostro phpmyadmin, è irreversibile. Pertanto è opportuno fare un backup del database. Per passare anche le immagini in https andare nel pannello hosting fornito dal vostro provider, aprire il phpmyadmin. Una volta aperto, selezionate il database del vostro wordpress (generalmente trovate solo un database). Nella schermata che si apre, cliccare sul tab “SQL” in alto:

    phpmyadmin tab sql

    Qui possiamo inserire questa istruzione che sostituisce il percorso immagine all’interno del contenuto di post e pagine.

    UPDATE wp_posts 
    SET    post_content = ( Replace (post_content, 'src="http://', 'src="//') )
    WHERE  Instr(post_content, 'jpeg') > 0 
            OR Instr(post_content, 'jpg') > 0 
            OR Instr(post_content, 'gif') > 0 
            OR Instr(post_content, 'png') > 0;

    La ripetiamo nel caso siano state inserite con l’apostrofo ‘ anzichè con le doppie virgolette ” (thanks to css-tricks.com)

    UPDATE wp_posts 
    SET   post_content = ( Replace (post_content, "src='http://", "src='//") )
    WHERE  Instr(post_content, 'jpeg') > 0 
            OR Instr(post_content, 'jpg') > 0 
            OR Instr(post_content, 'gif') > 0 
            OR Instr(post_content, 'png') > 0;

    Secondo lo stesso criterio, aggiusteremo non solo il percorso delle immagini, ma anche quello degli iframes (come ad esempio un video di youtube o un widget con una mappa). Anche questi tag non devono più comparire nella forma

    <iframe src="http://

    bensì nella forma

    <iframe src="https://

    Con il codice seguente, lo sistemiamo all’interno dei postmeta:

    UPDATE wp_postmeta 
    SET meta_value=(REPLACE (meta_value, 'iframe src="http://','iframe src="//'));

    Dopo aver lanciato le query sql appena menzionate, il vostro phpmyadmin vi indicherà l’esito e quante sostituzioni ha effettuato:
    sql query completata

    3) Operazioni aggiuntive e opzionali

    Per rendere più sicuro il pannello di amministrazione, possiamo forzare l’utilizzo del protocollo https anche per tutte le pagine di gestione del sito. E’ sufficiente andare ad editare il file wp-config.php che si trova sempre nella directory principale, andando ad aggiungere il seguente codice:

    define('FORCE_SSL_ADMIN', true);

    Devi informare Google del cambio di dominio da http ad https? Se utilizzi Google Webmaster Tools la risposta è sì. Attenzione: con il redirect 301 che abbiamo inserito (vedi sopra), ogni volta che un motore di ricerca visita il nostro sito viene automaticamente informato che gli url sono cambiati e quali sono quelli nuovi. Un po’ di tempo e il cambio viene digerito. Ma se usi il GWT, allora come indicato da Google qui, è bene inserire la nuova proprietà (dominio con https) e segnalare il cambio nella vecchia proprietà.

    Ora non ti resta che navigare nel tuo sito (se hai un sistema di cache svuota tutto), e verificare che le immagini si carichino correttamente (non dovrebbero esserci problemi) e che sopratutto l’icona del certificato sia ok (se il sito ancora carica immagini non https allora ti comparirà errore). Come è andato il passaggio verso il sito più sicuro?

    Categories: Tutorial & Modifiche Tags: Tag:, ,

    Come scegliere un certificato SSL e rendere sicuro il sito passando al protocollo HTTPS

    1 Comment

    Ovvero come rendere il sito attendibile e mostrare agli utenti l’icona verde nella barra del browser che attesti la sicurezza del sito anzichè il messaggio “sito non sicuro” che li allontanerebbe. Una guida semplice e veloce per capire cosa sia un certificato SSL, perché server per il tuo sito e come sceglierlo.

    I certificati SSL portano il sito internet e le transazioni online ad un livello di sicurezza avanzato in quanto permettono di criptare e quindi proteggere tutti i dati sensibili raccolti. L’utilizzo di certificati SSL e del protocollo HTTPS è de facto diventato uno standard per tutti i siti web autorevoli e che hanno necessità di garantire la sicurezza dei loro utenti. Questo standard non è più solo un requisito degli e-commerce e dei siti in generale in cui l’utente lascia una carta di credito o altri dati sensibili (come servizi di posta elettronica, ecc.), ma anche per i siti wordpress che hanno un sistema di commenti e di registrazione utente. Da giugno 2016 infatti Google ha avvisato che marcherà come “non sicuri” tutti i siti che non adottano il protocollo HTTPS. Anche questo sito, che “semplicemente” permette agli utenti di chiedere aiuto per il proprio sito e di ricevere notifica quando un esperto risponde alla domanda. No carte di credito, no particolari dati sensibili (non viene chiesta data di nascita, codice fiscale, ecc. ma solo email per essere avvisati della risposta), ma anche solo la password è considerata un dato sensibile. E infatti dal Google Webmaster Tool è arrivato l’avviso:

    avviso Google siti non sicuri Ecco la trascrizione, dove in sostanza ci spiega il problema e come risolverlo:

    A partire da gennaio 2017, Chrome (versione 56 e versioni successive) contrassegnerà come “Non sicure” le pagine che raccolgono password o dati di carte di credito, a meno che le pagine vengano pubblicate tramite HTTPS. Gli URL che seguono includono campi per l’inserimento di password e dati di carte di credito che attiveranno il nuovo avviso di Chrome. Esamina questi esempi per sapere dove verranno visualizzati questi avvisi e poter così adottare misure per proteggere i dati degli utenti. L’elenco non è completo.

    Il nuovo avviso rappresenta solo la prima fase di un piano a lungo termine per contrassegnare come “Non sicure” tutte le pagine pubblicate tramite il protocollo HTTP non criptato.
    Ecco come risolvere il problema:
    Usa le pagine HTTPS per raccogliere dati sensibili
    Per evitare che venga visualizzata la notifica “Non sicura” quando gli utenti di Chrome visitano il tuo sito, sposta i campi per l’inserimento di password e carte di credito in pagine pubblicate usando il protocollo HTTPS.

    Se hai quindi un sito web dove vengono raccolti dati sensibili, dal pagamento con carta di credito al “semplice” account per commentare dotato di password, allora devi pianificare il passaggio al protocollo https. Ecco i passaggi da seguire

    Scelta del tipo di certificato SSL adatto al nostro sito

    Esistono varie possibilità (e range di costo). La scelta va fatta in base all’utilizzo del sito. Esistono anche certificati gratuiti, che possono andare benissimo per siti semplici, ma che si rivelano insufficienti per altre tipologie di siti (con e-commerce, oppure booking online, ecc.). Di seguito una tabella riepilogativa semplificata dei tipi di certificati disponibili:

    Tipo di Certificato Descrizione Esempio
    Standard SSL Rende sicuro un Fully Qualified Domain Name (FQDN)
    • www.tuttoblog.com
    Wildcard SSL Estensione del precedente che permette di rendere sicuri tutti i sottodomini del dominio: *.yourdomain.com
    • www.tuttoblog.com
    • blog.yourdomain.com
    • qualsiasicosa.tuosito.net
    Organization SSL Rende sciuro un Fully Qualified Domain Name (FQDN), ma contiene i dettagli della tua azienda/organizzazione (indirizzo, ecc.), anch’essi autenticati. Certifica dominio + organizzazione. Può essere combinata con Wildcard ssl e il seguente Unified Communication (SAN) SSL.
    • www.tuttoblog.com
    • blog.yourdomain.com
    • qualsiasicosa.tuosito.net
    • sub.sub.sito.it
    • 212.100.100.1
    • 10.10.10.1
    Unified Communication SSL oppure Multi-Domain SSL Certificates (SANs – Subject Alternative Names) Rende sicuro fino a 11 domini/sottodomini/server names o indirizzi IP interni con un unico certificato SSL. Si tratta di addon (aggiunte) per le tipologie descritte sopra.
    • www.tuttoblog.com
    • blog.yourdomain.com
    • qualsiasicosa.tuosito.net
    • sub.sub.sito.it
    • 212.100.100.1
    • 10.10.10.1
    • server1

    Come si può intuire, per le aziende è necessaria la consulenza di un professionista.

    Quale certificato SSL ha bisogno il mio sito?

    In generale, valgono i criteri seguenti:

    • DV – Domain Validation: ogni sito wordpress che utilizza un form (commenti, login) che trasmette dati
    • EV – Extended Validation: E-Commerce e aziende che devono mostrare di essere trustworthy, ovvero fidate
    • UC – Unified Communications: email servers (esempi: gmail, libero), nonchè aziende che utilizzano Microsoft Exchange
    • SUN – Subject Alternative Name:  più domini, anche non collegati tra di loro, e non necessariamente sottodomini
    • Wildcard: wordpress multisite networks, con sottodomini
    • OV – Organization Validation : organizzazioni che devono apparire fidate

    In questa guida ci concentriamo sul certificato DV (Domain Validation), che viene emesso velocemente una volta che viene verificato/legittimato il dominio. Si differenzia dal certicato EV (Extended Validation), che offre un livello maggiore di sicurezza (non viene solo verificato il dominio ma anche l’organizzazione che vi sta dietro) e mostra ai visitatori la barra verde nel browser durante la navigazione.

    Come acquistare un certificato

    Molti siti di hosting, anche per rendere appetibile la propria offerta, hanno iniziato ad includere gratuitamente certificati SSL nei lori piani hosting. E’ certo una comodità, anche dovuta al fatto che offrono guide dedicate interne. Ma è doveroso fare una premessa: ha senso risparmiare qualche euro per il certificato scegliendo l’hosting in base solo a questa offerta, dimenticando tutte le altre prerogative che l’hosting deve avere (velocità, stabilità, assistenza)?. Tanto più, che alcuni di questi certificati offerti dall’hoster sono sì inclusi, ma gratuiti se ve li andate ad acquisire da soli (o magari tramite il vostro servizio di hosting attuale). Mi spiego: ci sono hosting (anche validi, per carità) che al momento offrono Let’s Encrypt. Si tratta di una Certificate Authority no profit, che fa parte di un progetto Open Source rivolto alla diffusione del protocollo https, e che per questo rilascia certificati web gratuiti, riconosciuti da gran parte dei browser. Utilizzare il certificato ssl gratuito offerto da Let’s Encrypt può essere la soluzione ideale per il nostro sito web. Cambiare hosting per avere questa cosa inclusa nell’hosting, che è già gratuita di per sè, non è proprio una mossa ben ragionata. I vantaggi di Lets’ Encrypt sono che si possono attivare quanti certificati gratuiti si vuole, i rinnovi sono automatici e gratuiti, l’emissione è praticamente istantanea, e funzionano con la maggior parte dei browsers e dei dispositivi. Viceversa, sono disponibili solo certificati di tipo DV, SAN e UC. Inoltre non esiste garanzia e non vi sono servizi aggiuntivi.

    A parte i certificati gratuiti, che possono andare bene per alcune tipologie di sito, ma sono insufficienti per altre (vedi ecommerce), esistono moltissime organizzazioni abilitate al rilascio di certificati, ed ognuna con prezzi diversi e servizi aggiuntivi diversi. Vi invito a dare un’occhiata ad alcuni dei più famosi per rendervi conto della varietà di servizi offerta, come ad esempio SSL.com, oppure i più costosi Comodo, Symantec, Digicert (con cifre a partire da due zeri a salire…). Noi, attraverso il pannello di cPanel offerto dal nostro fornitore di hosting, abbiamo optato per la seguente soluzione, con ottimo rapporto qualità/prezzo in base alle esigenze del sito specifico. Ecco i vari passaggi dell’acquisto del certificato tramite il pannello hosting

    Acquisto ed installazione certificato (tramite cPanel)

    Una volta che il nostro fornitore di hosting ha abilitato questa funzione nel pannello cPanel (ripeto, solo alcuni la forniscono, è bene chiedere tramite l’assistenza), ci troveremo nella seguente schermata, che ci riepiloga cosa stiamo facendo:

    Che cos’è un certificato SSL e perché è consigliabile averne uno?
    Un certificato SSL consente ai visitatori di comunicare con i siti Web dell’utente su connessioni protette, ad esempio per inviare informazioni sui pagamenti con carta di credito.
    Scopo di questa interfaccia
    Utilizzare questa interfaccia per acquistare e installare i certificati SSL per l’account. Più nomi di dominio possono fare riferimento allo steso sito Web. Ad esempio, i domini configurati nell’interfaccia cPanel’s “Alias” faranno riferimento al sito Web principale dell’account. Si consiglia di assegnare a ciascun sito Web con protezione SSL un certificato che protegga tutti i domini del sito Web.

    acquisto certificato SSL cPanel

    Ora dobbiamo selezionare cosa vogliamo includere nel protocollo https: il dominio? qualche sottodominio? tutti i sottodomini? il server di posta? Nel nostro caso – un sito wordpress con form commenti/login – ci basta il dominio, con certificato DV. Selezioniamo e proseguiamo, e nella schermata successiva troviamo anche i prezzi. Come vedete sono più che interessanti: notare che esiste la possibilità di farsi autenticare dall’organizzazione Comodo citata qualche riga sopra come tra le più costose (provate a visitare il sito), mentre qui i prezzi (in partnership con cPanel e grazie al fornitore di hosting) sono molto più bassi e convenienti. In sostanza, possiamo avere il certificato DV per il dominio a prezzi dai 9 ai 12 dollari; wildcard (tutti i sottodomini) a prezzi dai 75 ai 99 dollari. Anche il certificato EV (adatto per e-commerce) è acquistabile per prezzi che vanno dai 60usd ai 108usd (Comodo).

    prezzi certificati SSL cPanel

    Una volta completato l’acquisto, bisogna attendere che l’organizzazione effettui le opportune verifichi e ci rilasci/invii il certificato digitale. Il seguito su come installare il certificato e migrare correttamente wordpress ta http ad https lo trovate qui

    Categories: Hosting, Tutorial & Modifiche Tags: Tag:, ,

    Come rendere anonime le statistiche di Google Analytics

    No Comments

    Come mettersi in regola con la legge sui cookie trasformando i cookies di Analytics da cookie di profilazione a cookie tecnici

    Google Analytics permette di monitorare il traffico del tuo sito in maniera gratuita ed offrendoti molteplici parametri e filtri per comprendere come arrivano i visitatori del tuo sito, quali pagine visitano maggiormente, da quali paesi arrivano, con quali parole chiave hanno trovato il tuo sito, ecc. Per attivare le statistiche, basta inserire il codice che ci fornisce Google Analytics una volta registrato l’account ed attivato un account relativo al sito web che vogliamo monitorare. Ma questa raccolta di dati cade nella sfera della protezione della privacy, e dobbiamo pertanto avvisare l’utente che il sito che sta visitando raccoglie dati attraverso Google Analytics. E’ fondamentale, senza avvisare l’utente si rischiano multe salate da parte del garante della privacy. La versione “completa” del codice di raccolta dati implica la previa accettazione da parte dell’utente: in sostanza, dovreste mettere un avviso che -solo se accettato – permette al sito di caricare il codice. Una semplice soluzione può essere quella di anonimizzare le statistiche, oltre che deselezionare l’opzione per il remarketing (ovvero consentire a Google di utilizzare tali statistiche ai fini di ri-elaborazione per proporre pubblicità più in linea con i “gusti” dell’utente). Le statistiche implicano utilizzo di cookies, e il garante considera tali cookies come di profilazione, e pertanto serve accettazione preventiva dall’utente. Ma se rendiamo “anonime” queste statistiche, pare che non siano più di profilazione (in quanto anonime), e pertanto vanno sì “dichiarate” ma non necessariamente in maniera preventiva. In pratica, un IP dell’utente del tipo 12.34.567.890 diventerà 12.34.567.XXX. Quindi, la soluzione ideale minima è anonimizzare.
    Come fare?
    La soluzione pratica è aggiungere una riga di codice che le rende anonime, oppure installare un plugin che permette di selezionare l’opzione per “anonimizzare”.

    Modificare il codice Google Analytics

    Quando attivate il vostro contatore attraverso il pannello di Google Analytics, il codice che vi viene fornito è come il seguente:

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
     
      ga('create', 'UA-12345678-1', 'auto');
      ga('send', 'pageview');
     
    </script>

    Dove il codice UA-…. è quanto identifica il vostro sito. Ora, prima di inserirlo in tutte le pagine del vostro sito (ad esempio mettendolo nel footer o nell’header) per anonimizzare dovete aggiungere il codice seguente:

    ga('set', 'anonymizeIp', true);

    e il codice finale sarà come il seguente:

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
     
      ga('create', 'UA-12345678-1', 'auto');
      ga('set', 'anonymizeIp', true);
      ga('send', 'pageview');
     
    </script>

    Questa è una regola generale, che vale per tutti i siti (non solo quelli basati su WordPress). Un’alternativa è utilizzare un plugin apposito.

    Plugin per statistiche Google Analytics con opzione per anonimizzarle

    Tutti permetteno di inserire automaticamente il codice in tutte le pagine del sito, e di monitorarle attraverso il pannello di controllo fornito da http://analytics.google.com . Alcune hanno caratteristiche aggiuntive o semplicemente di più immediata visione:

    Google Analyticator: supporta anche il tracciamento dei link in uscita, dei download, monitoraggi avanzati, supporta il monitoraggio asincrono (maggior velocità di caricamento del tuo sito), e di aggiungere nella dashboard un widget per visualizzare il grafico degli ultimi 30 giorni, con le statistiche più importanti. Ha ovviamente la possibilità di renderle anonime.
    Google Analyticator

    Google Analytics by Yoast. Dato che molti siti utilizzano il plugin di Yoast per l’ottimizzazione SEO del sito (titoli, struttura link, ecc.), allora questa è la soluzione ideale per non aggiungere plugin aggiuntivi, in quanto basterà semplicemente selezionare l’opzione che permette di rendere anonime le statistiche. Ora è diventato Google Analytics by MonsterInsights, anche se le recensioni non sono proprio tutte positive.

    E tu, quale soluzione hai adottato?

    Categories: Tutorial & Modifiche Tags: Tag:,

    WP Google Fonts in italiano

    4 Comments

    WordPress offre un ampio numero di plugin grazie ai quali é possibile integrare al codice di base della piattaforma alcune nuove opzioni potenzialmente utili per estendere ed ottimizzare al meglio le funzionalità del proprio weblog. Inside Plugins nasce come rubrica informativa e di segnalazione con il chiaro intento di fornire un supporto di base ai blogger che affidano a WordPress le loro pubblicazioni online: WP Google Fonts by Adrian Hanft.

    WP Google Fonts é un ottimo plugin che permette di inserire nelle pagine del proprio sito (previa configurazione) gli oltre 200 Google Web Fonts offerti gratuitamente da Google.

    Installazione:

    1. Scaricare* e decomprimere il file zip del plugin
    2. Upload della cartella “wp-google-fonts” sotto wp-content/plugins/
    3. Attivare WP Google Fonts
    4. Impostazioni – (Bacheca/Impostazioni/Google Fonts)

    Configurazione e note informative:

    Nella pagina delle impostazioni del plugin sarà possibile disegnare una configurazione ottimale alle nostre necessità grazie ad una ricca serie di opzioni diponibili.
    Ricordo che l’utilizzo di un numero elevato di stili di font rallenterà sensibilmente il caricamento delle pagine del proprio sito.
    NOTA: qualora non si volesse fare uso di un plugin, per l’installazione dei Google web fonts invito alla lettura di questo mio articolo precedente: Google Web Fonts per i temi WordPress.

    Opzioni elementi CSS – Google Web fonts:

    • Tutti (tag body)
    • Headline 1 (tag h1)
    • Headline 2 (tag h2)
    • Headline 3 (tag h3)
    • Headline 4 (tag h4)
    • Headline 5 (tag h5)
    • Headline 6 (tag h6)
    • Citazioni
    • Paragrafi (tag p)
    • Liste (tag li)

    Localizzazione:

    Ho realizzato il file di localizzazione in italiano per il plugin. Affinché i file di traduzione del plugin possano essere sempre disponibili ed aggiornati alla ultima versione, sarà necessario scaricare l’archivio googlefonts-it_IT.zip qui sotto ed estrarre quindi i file googlefonts-it_IT.po e googlefonts-it_IT.mo. Ad operazione avvenuta, caricare via FTP il file “googlefonts-it_IT.mo” nella sotto-cartella “languages” del plugin.

    Download googlefonts-it_IT

    WP Google Fonts

    Versione: 2.5
    Ultimo aggiornamento: 2-10-2011
    Versione minima di WordPress: 2.0.2 o superiore
    Compatibile sino alla: WP 3.2.1

    *NOTA: in alternativa, il plugin può essere installato effettuando una ricerca (WP Google Fonts) sotto Bacheca/Plugin/Aggiungi nuovo e cliccando quindi sul link “BackWPup”.

    Categories: Plugins Wordpress Tags: Tag:,

    Google Web Fonts per i temi WordPress

    17 Comments

    Premessa

    Il Google Web Fonts é un servizio gratuito offerto da Google (via Google Web Fonts API) espressamente rivolto ai webmaster, ai designer ed agli sviluppatori in genere affinché essi abbiano la posibilità di accecedere, in un modo semplice e gratuito, ad una ricca collezione di font (open source license) di alta qualità utilizzabili per i loro siti web.

    Attuazione

    I Google Web Fonts vengono forniti attraverso i server di Google quindi, sarà necessario come prima cosa scegliere quale font utilizzare. Per nostra comodità, prenderemo come esempio il primo font al momento disponibile presente nell’elenco: Marvel.
    Premendo ora sul link “Quick-use”, verremo di fatto condotti direttamente alla pagina per le impostazioni per il nostro font Marvel. Adesso, qualora non avessimo competenza sul cosa veramente modificare, potremo tranquillamente lasciare il tutto così come è e procedere verso il prossimo passo: aggiungere il codice al nostro sito.

    @import

    Facciamo scorrere verso il basso la pagina delle impostazioni sino a giungere alla sezione numero 3 laddove troveremo le tre opzioni disponibili per aggiungere il codice:
    “Standard”, “@import” e “Javascript”.
    Clicchiamo quindi sulla tab a nome “@import” ottenendo così quanto segue:

    @import url(http://fonts.googleapis.com/css?family=Marvel);

    Una volta ottenuto il codice di importazione, saremo pronti per potere aggiornare il foglio di stile (style.css) del nostro tema WordPress.

    Integrazione font nel CSS del tema

    Effettuiamo un backup del file .css del nostro tema e procediamo quindi con l’operazione aggiungendo il codice giusto al di sotto della header del nostro foglio di stile (a seguire il Nome del Tema, la Versione, etc. e subito prima di ogni definizione CSS per intenderci).

    /* Importazione Google Web Fonts
    ———————————————————— */
    @import url(http://fonts.googleapis.com/css?family=Marvel);

    e definizione utilizzo

    Il nostro ultimo passo sarà quello di informare il nostro tema sul come utilizzare il font di Google. Ad esempio, volessimo che il font “Marvel” venisse utilizzato per tutti i titoli degli articoli/pagine del nostro blog, dovremo aggiungere il nome del nuovo font (avvolto da singoli apici) al primo posto della lista dei font già presenti (proprietà CSS a nome “font-family”).

    font-family: ‘Marvel’, Helvetica, Arial, serif;

    Esempio installazione con più font

    /* Importazione Google Web Fonts
    ———————————————————— */
    @import url(http://fonts.googleapis.com/css?family=Marvel);
    @import url(http://fonts.googleapis.com/css?family=Goudy+Bookletter+1911&v1);
    @import url(http://fonts.googleapis.com/css?family=Droid+Serif&v1);

    Laddove il font “Marvel” potrà essere utilizzato ad esempio per il titolo degli articoli/pagine, il font “Goudy Bookletter” per il titolo dei widget e “Droid Serif” per le citazioni. Ricordarsi infine di aggiungere il nuovo font alla proprietà CSS a nome “font-family” corrispondente (vedi sopra).

    Conclusione

    Sebbene sia tecnicamente possibile aggiungere al foglio di stile del nostro tema uno o più Google Web Fonts, sarà sufficiente operare sulla proprietà CSS a nome “font-family”, ricordo che l’utilizzo di un numero elevato di stili di font rallenterà sensibilmente il caricamento delle pagine del nostro sito.

    Suggerimenti

    • utilizzare il componente aggiuntivo per FireFox, Firebug. (potrebbe rivelarsi particolarmente utile durante l’esplorazione del CSS)
    • ricordarsi di effettuare il backup del file style.css prima di procedere con le modifiche
    • ricordarsi di salvare il file style.css una volta apportate le modifiche
    Categories: Tutorial & Modifiche Tags: Tag:,

    Gmail Motion for WordPress in italiano

    2 Comments

    WordPress offre un ampio numero di plugin grazie ai quali é possibile integrare al codice di base della piattaforma alcune nuove opzioni potenzialmente utili per estendere ed ottimizzare al meglio le funzionalità del proprio weblog. Inside Plugins nasce come rubrica informativa e di segnalazione con il chiaro intento di fornire un supporto di base ai blogger che affidano a WordPress le loro pubblicazioni online: Gmail Motion for WordPress by Google Docs Motion.
    Gmail Motion for WordPress é un ottimo plugin che ti permette di utilizzare il nuovo ed innovativo servizio di Google direttamente dalla bacheca del tuo blog WordPress.

    Installazione:

    1. Scaricare e decomprimere il file zip del plugin
    2. Upload via FTP della cartella “gmotionwp” in wp-content/plugins/
    3. Attivare il plugin
    4. Configurare le opzioni nella pagina Impostazioni/Gmail Motion

    Gmail Motion – Introduzione

    Configurazione di base:

    1. Possibilità di riconoscere in automatico le actions in relazione al luogo di provenienza
    2. Possibilità di implementare le Emoticons in base allo stato patrimoniale dell’amministratore

    Configurazione avanzata:

    • Possibilità di cancellare i commenti spam grazie al riconoscimento della miscela di gas prodotta dai batteri simbiotici, dai lieviti e dalle particelle aerosolizzate  sotto pressione prodotte dall’amministartore del sito (versione PRO)

    Nella sezione per le impostazioni del plugin, viene infine offerta la possibilità di attivare/disattivare nella Bacheca il tester che permetterà all’amministratore del sito di sintonizzare al meglio l’emissione dei gas ed il valore dei decibel.

    Gmail Motion – Actions

    Localizzazione:

    Ho realizzato il file di localizzazione in italiano per il plugin. Affinché i file di traduzione del plugin possano essere sempre disponibili ed aggiornati alla ultima versione, sarà necessario scaricare l’archivio gm-it_IT.zip qui sotto ed estrarre quindi i file gm-it_IT.po e gm-it_IT.mo. Ad operazione avvenuta, caricare via FTP i due file nella sotto-cartella lang del plugin.

    Scarica gm-it_IT

    Gmail Motion – logo

    *NOTA: in alternativa, il plugin può essere installato effettuando una ricerca (Gmail Motion for WordPress) sotto Bacheca/Plugin/Aggiungi nuovo e cliccando quindi sul link “Gmail Motion for WordPress”.

    Categories: Plugins Wordpress Tags: Tag:,