 Paolo Scala è il nostro primo speaker di oggi, quindi fateli un applauso per iniziare. Grazie. Paolo ha iniziato a usare Warpress da poco e da poco più di un anno ufficialmente, ma lo usava per altri progetti già da un paio di tempo prima. Però seriamente, diciamo, ha iniziato a usare da poco più di un anno e in questo periodo è diventato sua insaputa core contributor per la versione 6 di Warpress, aiutando in iosta a risolvere un bag o una faccia giusta. Sì, sì, sì, sì, ha durato un contributor day. Quindi la volta succedono anche cose strane, perché l'ha scoperto poi e veneno pingato su Slack di essere un core contributor. E su talk di oggi si intitola Crawler Killer, migliorare il mondo un robot alla volta e ci spiegherà l'impatto che possono avere i crawlers sul nostro sito, ma anche sull'ambiente e sull'ecosistema più in generale. Quindi, buon talk. Grazie. Va bene. Allora, niente, il titolo l'abbiamo già detto, dal vago sapore sci-fi. L'outline è questo, ovvero vedremo un attimo il contesto in cui ci muoviamo. Qual è il problema? L'inquadreremo alcune strategie di mitigazione. Non ci sono più le slide però. Grazie. Poi vedremo un'architettura alternativa a quella che fondamentalmente crea questo problema e poi vi lascerò alcuni key takeaways. Quindi contesto, l'impatto che ha il VU sul l'ambiente. Da una prospettiva di un server web e nello specifico andremo a vedere un po' l'energia elettrica e rapportere richieste che il server web deve supportare. Qual è il problema? Non so quanti di voi conoscano questo grafico e non so quanti di voi conoscano l'Earth Overshoot Day, ovvero è il giorno in cui la terra sostanzialmente esaurisce prende le risorse rinnovabili. L'anno scorso, ovviamente vedete il trend, l'anno scorso è stato il 28 luglio e credo sia abbastanza preoccupante come cosa. Un altro problema grosso è la carbon footprint, ovvero che cos'è? Questa è la definizione che ho trovato, ovvero the life cycle carbon equivalent emissions and effects related to a product or service. Nel 2016 il World Economic Forum ha definito, ha classificato diciamo riscaldamento globale come l'aminaccia numero uno per la società e per l'economia perché essendo il World Economic Forum pensano anche a quello. Da questo grafico della carbon footprint possiamo vedere, più o meno, perché mi sa che è piccolino, che il contributo, quello che ho cerchiato in rosso, dato dall'energia elettrica e il riscaldamento è il 18%. Quindi non è trascurabile, è uno di, credo, il più alto, se non ricordo male. Poi c'è industry in generale che però ha il 19 qualcosa, quindi non è che c'è un grosso scar. Vuol dire 2,3TW circa, che sono 20.150TW ogni anno che vengono consumati. Questa l'ho messa questa mattina perché venendo qua, proprio all'inizio di questa via, ho trovato il Fight Global Warming e quindi mi piaceva metterla come ricordo, come mi mento mori, ecco. Quindi l'impatto del WW, qual è il contributo che dà la rete a la carbon footprint, a quella porzione di carbon footprint? Circa il 3,6% o 6,2%. Ci sono questi margini molto ampi, perché ho scoperto, facendo la ricerca, diciamo, per il talk, che è davvero difficile estimare qual è il consumo elettrico di, ovviamente, un'infrastruttura come internet, quindi non solo i server, tutto. Ma anche in generale, anche cose più semplici, è difficile non tanto capire, ma mettersi d'accordo, come al solito, su che cosa entra nel computo, quant'è il contributo reale, quello stimato, eccetera, eccetera, per cui ci sono, insomma, c'è una forbice abbastanza grossa, ma ci accontentiamo, ecco. I server, come vedete, sono circa 18,8 gigawatt su 84. Prendiamo il total power, ecco. Ovviamente, l'energia che un server web consuma è proporzionale al traffico che il server web deve supportare, deve soddisfare. Ho trovato questo bel grafico, diciamo, su Cloudflare, che ci fa vedere tra tutte le richieste che arrivano ai server web quali sono fatte da esseri umani e quali da bot. Ok, quindi, richieste da esseri umani, qualcuno va naviga al sito, si guarda alle pagine. BOT sono richieste automatiche, andremo a vedere poi, durante il total, che un po' cosa serve. E è circa 30%, 32%. Questo l'ho presa a marzo, ma avevo visto a febbraio, era il 32%, insomma, è una circa, siamo in questo ballpark, ecco, tra 28%, 32%, 33% di richieste automatiche. Quindi non richieste soddisfatte affronte di utente umano. Quindi, che cos'è un BOT? BOT, è anche chiamato Crawler, anche chiamato Spider, BOT è la contrazione di robot, e quindi è un termine generico che è utilizzato per definire una gente che in maniera programmatica visita tutti i siti web, seguendo, diciamo, facendo hopping tra un link e l'altro. È interessante notare, diciamo, come Crawler, robot e Spider, siano tre sinonimi per quanto riguarda il nostro ambito, ma ognuno dei quali si focalizza su una caratteristica specifica di questi agenti, ovvero, se parli di Crawler, Crawler è qualcosa legato ai tentacoli, quindi una roba che arriva con i suoi tentacoli dappertutto, robot mette in luce, diciamo, la parte automatica di questi agenti, mentre Spider fa riferimento a quella che è un po' la metafora storica del VUV, ovvero la rete, il web, no? Mi piaceva questa cosa. Ovviamente, potete capire che i motori di ricerca sono fortemente basati su questi Spider, questi bot slash Crawler. Quindi, come funziona un bot? Adesso lo vediamo. Questa è un'immagine riassuntiva. Quindi vedete, no, il robotino che va a chiedere al server i server gli ridi da inditro qualcosa, il robotino lo analizza e poi si magazzina qualcosa da qualche parte. Nello specifico, fase 0, quindi che non c'è qua, l'aiore al discovery, perché non esiste un registro delle pagine web, non c'è un post dove potete andare, sono allencate tutte le pagine web, probabilmente c'era all'inizio del VUV, ma ora è impensabile. Come vengono scoperte le pagine nuove, appunto, attraverso link, navigando link che partono da pagine che Google già conosce. Parliamo di Google, ovviamente, la cosa è traslabile, diciamo, rigidamente anche su yandex, Bing, quello che volete, ok? Oppure voi potete, voi, nel senso di persone che curano il sito web slash server, fornire una sitemap che Google consulta per sapere quali link voi mettete a disposizione per l'indicizzazione. Fase 1, quindi crawling. Quello che viene chiamato Googlebot, che è il bot di Google, utilizza un algoritmo loro, proprietario, per capire di quali siti deve fare crawling, quanto spesso e quanti pagine, e quante, scusate, quali pagine deve visitare durante quel sugiro. La fase 2 è rendering della pagina, ovvero, la pagina viene renderizzata, non so come, è brutta come parola, però immagino che ci capiamo, ecco. JavaScript compreso, perché il punto è analizzare il contenuto, tantissime pagine web adesso hanno contenuto generato dinamicamente, per cui se voi tirate su sono l'HTML, è ovvio che vi perdete probabilmente molto contenuto. Fase 3 è quella di indexing o indicizzazione, per cui la pagina, che è stata analizzata dal bot, viene inserita nel Google Index. Gli vengono attaccate tutte delle metri che sono utilizzate per i ranking di quella pagina, ovvero per definire quanto quella pagina è importante, quanto quella pagina è autoregola, e quindi la visibilità sostanzialmente, e gli vengono appiccicati altri metà dati vari che Google consuma, come meglio crede. Quindi, una delle cose importanti da capire è che non è che una volta il bot arriva la pagina, la visita e fa tutta questa storia, ma questa operazione continua nel tempo, per sempre. Mettiamola così. Perché? Perché il Google Index va aggiornato, voi cambiate una pagina, volete che il vostro cambiamento venga riflesso dal motore di ricerca. Circa Googlebot ogni 4-30 giorni, in base all'attività del sito, passa e rifà tutta questa attività. Ok, avete un sito statico, mi so, poco aggiornato, allora Google se ne accorge e passa molto di meno, rispetto che è un sito con tantissimi aggiornamenti, tantissimo traffico. Domanda, è possibile limitare ragionevolmente, intendo questo traffico, perché è chiaro che voi potete chiudere le porte, non Google nessun motore di ricerca, può indicizzare il mio sito, però non è utile neanche fare un sito a questo punto, per cui tra parentesi dovrebbe esserci, è possibile limitare ragionevolmente questo traffico automatico. La risposta è sì, perché se non sarei qui, potete riuscire adesso, e ragazze, ci sono diverse strategie di mitigazione che possiamo mettere in pratica, partendo dei metodi tradizionali, mettiamo così, quindi quelli che magari già molti di voi hanno utilizzato. Il file robots.txt, che cos'è, è un file di testo, per cui voi attraverso il contenuto di quel file, istruite i vari crawler, dei vari motori di ricerca, su quali URL possono visitare del vostro sito. Il robots metatag, che è un metatag che potete specificare nel lead della vostra pagina HTML, a cui potete associare tra i altri vari valori. Il valore noindex o nofollow, ovvero noindex vuol dire Googlebot ad esempio non indicizzare questa pagina, non seguire i link che ci sono in questa pagina, indicizza questa pagina, ma non muoverti da questa pagina. C'è la Google Search Console, che è il metodo più alto livello, mettiamola così, credo sia un strumento abbastanza utilizzato e conosciuto, che vi mette a disposizione un'unica funzionalità, che è l'alimentazione della crawl rate, e poi c'è l'attributo rel, dei link, che potete, è ovviamente opzionale, e per ogni link che voi avete, potete specificare il valore di questo attributo come nofollow, per cui quel link non verrà seguito. Vediamo alcuni esempi. Robots.tixi, come vedete, è abbastanza semplice la sintasi, in questo caso voi avete la specifica dello user agent, ovvero qual è, sostanzialmente, il motore di ricerca che voi andate a definire come deve comportarsi, in questo caso Google, perché è Googlebot, gli dite una directory, ad esempio che non volete che venga seguita, in questo caso si chiama NoGooglebot, la seconda parte, invece, questa diciamo, vuol dire lo star, espressione regolare, vuol dire tutti i bot, quindi a prescindere da quale motore di ricerca arriva, gli si permette di visitare tutto il sito, perché è parte dalla route del motore di ricerca, e poi si dice anche la sitemap del mio sito sta qui, quindi lì ci sono più indicazioni, sperabilmente. Robots metathug, voi avete il vostro ad, vedete che dopo il charset, charset, avete la specifica del metathug Robots vedete dire index follow e poi tutta una serie di altri parametri abbastanza granulari, ad esempio quanto volete che sia grossa l'immagine che Google usa come privio, quanto volete che siano lunghi in carattere gli snippet, in questo caso meno uno, vuol dire non c'è, non c'è limite, e appunto max video privio, se ci sono dei video, la privio quanti secondi deve durare, è la stessa cosa, dura tutto il tempo del video. Google search console è semplicissima, avete un toggle e potete dire ok, Google fai come vuoi, se no gli chiedi per favore di fare un po' di meno, basta. L'attributo rel è ancora più semplice, diciamo questo link non lo segui fine, e lì il non entra. Quali sono le limitazioni scusate, perché quals'è? Oh, grazie. Ok. Quali sono le limitazioni di questi metodi tradizionali, forse devo accelerare un po', robot txt non è sempre possibile che voi lo possiate modificare direttamente, magari non gestite voi tutto, non potete metterci le mani. Non è comunque la portata di tutti, perché non tutti sono tenuti o possono sapere come mettere le mani in un file comunque delicato, perché potete fare dei danni abbastanza grossi per la visibilità del sito, se non sapete cosa scrivere. Robot Smetathag dovete specificare pagina per pagina, e allo stesso modo è limitato a risorse HTML, quindi tutto quello che è ad esempio immagini, contenuto multimediale, non potete dominarlo con questo. Ancora non è la portata di tutti, perché diciamo si parla in senso largo di programmazione. La Google Search Console non c'è sostanzialmente granularità, avete quella unica opzione. E l'attributo REL ha efficacia limitata, che cosa vuol dire? Che sostanzialmente voi state chiedendo, iCrowler per favore puoi evitare di entrare qua dentro, però non c'è garanzia. E poi ovviamente dovete specificarlo per ogni REL. C'è un approccio diverso che si può seguire, che è specifico per WordPress e prevede l'utilizzo del look per evitare la creazione di URL che non sono utili spesso, ok? Quindi qua è chiaro che entriamo un po' in un territorio dove alcune cose le dovete fare se sapete cosa state facendo. Ad esempio FIDER-SS quanti di voi sanno cosa sono i FIDER-SS? Ok vuol dire la sigla, l'acronimo release impulse indication ed è uno standard per pubblicare e distribuire gli aggiornamenti dei contenuti, ok? Era molto utilizzato negli anni passati nel decennio passato di sicuro adesso è ancora comunque abbastanza utilizzato. Che cos'è uno stream XML che un content provider che potreste essere voi che avete vostro sito, mette a disposizione chi è interessato a ricevere aggiornamenti del vostro sito o comunque di quel sito si iscrive diciamo a questo si abbona, si iscrive al FID e attraverso dei news reader o comunque degli aggregatori anche può essere diciamo avvertito quando ci sono delle modifiche degli aggiornamenti. Ed è utile appunto per fare news aggregation. Voi seguite diversi siti avete un RSS feed reader che raccoglie tutti gli aggiornamenti di tutti i siti quindi voi avete un unico post dove andare a vedere che cos'è stato aggiornato è bello il problema quale è tra i tanti è che WordPress genera un global feed questo automaticamente, cioè voi lo fate per ogni vostra pagina o meglio, cioè questo è il feed generale del vostro sito degli aggiornamenti poi c'è un feed per ogni commento un feed per ogni commento di ogni post un feed per ogni pagina autore uno per ogni post type uno per ogni categoria uno per ogni tag uno per ogni taxonomy taxonomy a custom e uno per i risultati di ricerca. Ora ci sono anche quali atom che è un altro standard per gli RSS fatico a credere che uno abbia bisogno di tutti i questioni per carità il mondo è estremamente vario quindi ci può essere anche il caso in cui qualcuno utilizzi tutti però mi sembra un po' strano altro tipo di link spesso non utilizzato o embed è uno standard che permette di fare le embedding di risorse web l'epi è molto semplice e diciamo quando si parla di embedding vuol dire che voi fruite di una risorsa che sta da una parte nella pagina che state visitando quindi il vantaggio è che non dovete spostarvi di pagina per accedere alla risorsa embedded si è piccolino qua potete vedere un esempio di richiesta o embed che come vedete è abbastanza semplice cioè il sito e flicker non so quanti lo conoscono ancora lo utilizzino gli dite il formato che volete in quel caso jason e gli dite l'URL la risposta è questa, è un jason con un po' di metadati e con quello che voi volete embeddare nel caso di un post-wordpress vengono generati due link embed che sono la stessa cosa fondamentalmente soltanto che uno è xml e l'altro è jason è la stessa cosa l'app jason rest che cos'è, è un'interfaccia che vi permette o meglio, che permette delle applicazioni terzi di interagire con wordpress avviene attraverso lo scambio di messaggi jason come standard dell'API rest e wordpress cosa fa pubblica questi world che sono chiamati endpoint che rappresentano le varie risorse come è possibile interagire con queste risorse che sono mie etc etc questo è un esempio in più avete gli short link ovvero sono una versione accorciata di un URL in questo caso vedete quel più uguale a uno è il primo post del vostro blog questo succede nonostante a prescindere dal formato dell'URL che voi avete deciso di utilizzare per il vostro sito soluzione manuale a tutto questo macello di link abbiamo questa direttiva che è la remove action e quindi potete decidere di rimuovere selettivamente tutti questi link ad esempio per i feed rss voi avete remove action feed links extra per ombed avete quest'altra adesso non ve li sto a leggere letteralmente per l'API rest avete questa coppia di remove action per il short link questa c'è una proposta per un controllo più granulare perché abbiamo visto che per i feed rss ne vengono generati tantissimi alcuni potrebbero essere oggettivamente utili, cioè immagino che magari una persona voglia mantenere il feed generale del sito quando cambia qualcosa quindi non toglielevo tutto tutto questa proposta è una patch che è stata presentata durante il world camp U22 l'opo Enrico che è lui è disponibile da worldpress e effettivamente vi dà una granularità molto ampia potete decidere cosa tenere cosa togliere, più altro cosa togliere non siete particolarmente pratici, ci sono delle plugin specifiche che vi permettono di togliere dei link specifici ad esempio vi ho fatto alcuni esempi qua e poi sono i miei colleghi che hanno iniziato a sviluppare questa plugin che si chiama Eco Mode a chi ha vinto al cloudfest di quest'anno e che vi permette fondamentalmente di ottimizzare le richieste che worldpress fa in maniera ricorrente specificando il throttling di queste richieste quindi un pochettino più non è ancora utilizzabile infatti stanno cercando contributor per cui mi raccomando fatevi sotto perché è davvero bella come iniziativa secondo me dopo aver visto queste strategie di mitigazione a quella che è l'architettura basata sui ok basata sui bot è possibile un'architettura alternativa ovvero cosa succede attualmente abbiamo visto i motori di ricerca visitano tutti gli URL indipendentemente si sono aggiornati o meno quindi possiamo dire che è una strategia di tipo pull l'approccio inverso quale può essere che chi genera i contenuti chi li aggiorna va a pingare i motori di ricerca gli dice guarda che questa cosa è stata aggiornata quindi un approccio di tipo push quali sono i vantaggi maggior visibilità nel senso che il tempo che intercorre tra quando voi pubblicate qualcosa e quando il motore di ricerca si accorge è tempo che voi perdete invisibilità ok e poi minor traffico inutile perché magari invece contrariamente voi non aggiornate niente ma ogni tot i bot continuano a passare c'è questo protocollo index now si chiama che consente appunto di inviare ai motori di ricerca un ping relativo ad un URL che è stato cambiato modificate il contenuto create i contenuti cancellate i contenuti sono tutte azioni che possono pingare i motori di ricerca l'API è davvero semplice e quali sono i vantaggi è supportato da più motori di ricerca adesso i index Bing e Setsnam Google sta valutando se supportarlo o meno e poi permette di utilizzare un ping solo per più URL cioè voi aggiornate 30 pagine non mandate 30 ping le mandate uno e gli dici sono aggiornate queste 30 pagine la cosa ancora più bella diciamo è che questo ping si propaga tre motori di ricerca pingate un motore di ricerca supportato e tutti gli altri raccolgono diciamo il segnale mi sono dimenticato di dirvi che sia per quanto riguarda l'ottimizzazione del crawling che index now la plugin Yoast versione free supporta tutto questo ok quindi non vi sto vendendo la plugin la versione gratuita supporta tutto questo in maniera abbastanza intuitiva direi quindi ce l'abbiamo fatta quali sono i kit takeaway abbiamo visto che una porzione rilevante diciamo di traffico è dovuta a robot quindi non interattiva questa attività ha un impatto rilevante sul consumo energetico e quindi sull'ambiente si può limitare questo traffico tra l'altro aumentando la performance del server web del sito e limitando il consumo di energia ci sono delle buone prospettive perché comunque index now nonostante non sia ora supportato da google comunque qualcosa a mosso e magari nel futuro google lo supporterà sarebbe un grande passo domanda è vero che cambiamo il mondo sfortunatamente no nel senso che noi con tutto quello che vi ho detto oggi ci posizioniamo nella low impact ok però se guardate che cosa c'è nella high impact ad esempio c'è avere uno o meno figli quindi capite che si chiede molto di più chiaramente per avere un impatto rilevante rispetto che quello che vi ho fatto vedere oggi che fondamentalmente ci richiede di muovere le dita e basta una volta quindi diciamo non mi piace autocitarmi però un viaggio di mille miglia inizia con un singolo passo scherzo era di lauzé grazie a tutti grazie paulo brava non avvicinarmi troppo la cassa allora se avete domande che vengo lì o fai pure la ripeto poi sì sì però l'approccio di index now è più ottimizzato cioè il fatto di avere un ping per cento pagine che si propaga capito? sì sì sì diciamo la mia reazione non è perché il google è cattivo è perché è davvero difficile assicurare con un'infrastruttura come quella di google e quella sottostante della rete intro 24 ore la tua aggiornamento è visibile dappertutto però va bene per spingere un po' è un passo infatti le prospettive sono incoraggianti ecco altre domande? te lo passo che altro è un'osservazione cioè tutte queste cose funzionali possono aiutare ovviamente nei limiti come abbiamo visto però finché secondo me non diventa uno standard questa cosa non funzionerà mai cioè adesso esagerò ma secondo me il 90% delle persone che ha fatto un sito web non fa nulla di tutto ciò neanche indicizzare partiamo proprio a monte quindi andali a proporre di fare poi determinati passaggi secondo me è complicato o diventa uno standard che allora li si fa sul sicuro per quanto l'impatto sia minimo però sempre meglio di niente o altrimenti è veramente complicata sì infatti diciamo sono i grossi player che devono muoversi per fare un po' di prosilitismo nel senso io sono qua rappresento i host è da un paio d'anni che noi ci stiamo muovendo in questa direzione anche del risparmio energetico appunto prima abbiamo reso disponibile questa sezione di ottimizzazione del crawling per il premium adesso tipo se non sbaglio dall'ultima release che abbiamo fatto è in free proprio per spingere sta cosa perché diciamo l'idea di renderla disponibile per premium era il fatto di dare diciamo queste funzionalità ha un ristretto numero più ristretto diciamo numero di utenti e vedere quanti la usavano se era apprezzata abbiamo visto che è addirittura richiesta diciamo e quindi speriamo però è chiaro che risultati rilevanti si avranno quando o sarà uno standard o comunque diventi uno standard de facto cioè tante persone lo usano già diciamo partiamo bene perché WordPress è installato su il 40% di macchine che hanno city web per cui diciamo prospettive rose grazie se avete altre domande comunque lui sarà in giro tutto il giorno quindi potete pingarlo in giro per il workcamp basta un altro applauso grazie