Google ha recentemente presentato (in beta test) al pubblico , attraverso questo Twitter thread, due nuovi operatori per il suo motore di ricerca: “before:” e “after:“. Il loro scopo è filtrare i risultati della query attraverso nuova specifica dimensione, relativa ad uno specifico periodo di tempo, espresso in anni, mesi e giorni (utilizzati in combinazioni esplicite o implicite), nel quale il documento è stato prodotto (o “collocato”, ci tornerò sopra). Ho passato diverse ore a testarlo e l’ho trovato un operatore interessante ma, diciamo, birichino… non funziona esattamente come c’è stato descritto. Questo articolo parla proprio dei miei test e delle mie scoperte, usandole anche come scusa per ragionare ad alta voce su Google e i suoi meccanismi. E per parlare di due miti. Buona lettura!
Sintassi degli operatori before: e after: e altri importanti dettagli
Cito l’esempio prodotto da Google su Twitter (tradotto da me):
I comandi before: e after: fanno si che Google ritorni documenti precedenti o successivi ad una data (non è proprio così, ci torniamo su tra poco N.D. Emanuele). E’ possibile inserire date che comprendano anno+mese+giorno, il solo anno o combinazioni di questi elementi. Ad esempio:
[avengers endgame before:2019]
[avengers endgame after:2019-04-01]
[avengers endgame after:2019-03-01 before:2019-03-05]
Alcune regole:
Se viene inserito il solo anno gli operatori “traducono” quel dato in una data completa per permettere al sistema di funzionare. Ciò avviene in questa maniera:
- [before:2018] = [before:2018-01-01]
- [after:2018] = [after:2018-12-31]
Possono essere utilizzati indifferentemente sia il trattino che lo slash per esprimere una data. Ad esempio queste due sintassi sono entrambe valide:
- 2018-12-31
- 2018/12/31
Si può anche usare la singola cifra per il mese o per il giorno. Ecco alcuni esempi di sintassi ugualmente valide:
- 2019-3-1
- 2019-3-12
- 2019-03-01
Un sistema che trovo molto interessante ma che mi porta a pormi domande quali:
- A quale data si fa riferimento esattamente?
- Fa riferimento a dati espliciti? A dati strutturati? Alla data del primo rilevamento da Google?
- Quando e perché stampa la data in SERP?
- E’ davvero “solo un filtro”?
Sono tutte domande alle quali troverai (la mia personale) risposta proseguendo la lettura di questo articolo.
A quale data fanno (veramente) riferimento gli operatori before: e after:?
Partiamo dalla prima domanda: a quale data fa riferimento esattamente? Google dice che l’operatore serve per trovare “documenti precedenti o successivi alle date dedicate“. Indovina: non è sempre così! Ti farò vedere alcuni test che ho fatto per farti capire cosa intendo.
Nel caso di query “news related“
Se parliamo di argomenti relativi a “news”, o comunque a fatti di interesse pubblico inseriti in un periodo più o meno specifico di tempo (ma non per forza esplicitamente “evocate” dalle query) gli operatori possono comportarsi come effettivamente previsto da Google. Dico possono perché la data viene “pescata” da fonti molto differenti e, a tratti, molto sorprendenti.
Mettiamo che, presi dalla nostalgia, volessimo cercare notizie sul mitico Fabio Grosso nel periodo nel quale si svolse il (mitico) mondiale di calcio 2006: usiamo quindi la query “fabio grosso after:2006-06-09 before:2006-07-09” e cerchiamo indizi riguardo la possibile origine del segnale che è stato, di volta in volta, il trigger degli operatori, che nella pratica, secondo le indicazioni di Google dovrebbero trovare documenti datati tra il 9 giugno 2006 e il 9 luglio 2006:
Non è un caso che io abbia scelto il mitico Fabio come esempio: inserita nel contesto di quella data dagli operatori before: e after: l’entità “Fabio Grosso” è sicuramente news-worthy e citato in tantissime pubblicazioni online, eppure Google crea un mix dove vengono inserite pagine che non trattano strettamente di news e non utilizzano la data come “data di pubblicazione” in modo esplicito. Il comportamento dell’operatore non è quello dichiarato nel Twitter thread. Come “controprova” del funzionamento degli operatori ho provato ad invocarli con una sintassi non descritta nelle dichiarazioni di Google, ovvero con la query “fabio grosso after 2006-06-09 before 2006-07-09“. Ecco il risultato:
Oltre all’ultimo video nel carosello, datato 2017, che riporta al massimo l’anno 2006 tra i correlati di YouTube e alla poco sorprendente presenza del mitico rigore di Grosso, probabilmente l’evento più conosciuto che lo riguarda insieme al gol contro la Germania in semifinale, possiamo notare che nella SERP il comportamento di Google è riferito alla ricerca di keyword: riporta infatti come risultato una pagina dove segnala lui stesso che mancano i riferimenti alle date per le quali volevamo filtrare la SERP stessa attraverso l’operatore, che quindi non ha funzionato. La SERP poi è molto differente, non la riporto tutta per non appesantire ulteriormente l’articolo con gli screenshot.
Anche se non possiamo sapere con certezza se Google memorizza l’esatta data di discovery, ovvero quando esattamente il crawler visita una specifica pagina per la prima volta , a giudicare dagli esperimenti che ho svolto penso che a prescindere dalla sua esistenza non venga presa in considerazione da questo operatore. A livello ingegneristico, se ci pensi, è “giusto” che sia così: l’operatore non può basarsi su di un dato, la data di discovery, raccolto con metodi presumibilmente differenti nel tempo (Google è ormai un arzillo ultra 20enne). I dati debbono avere un certo livello di coerenza per venire trattati dall’operatore, appunto, con coerenza. Ha bisogno di un dato che venga analizzato con un metodo consistente, e per questo mi pare di capire che sia before: che after: cercano sempre una data espressa in modo esplicito, apparentemente (e sorprendentemente) almeno nel codice. Qualcosa che può analizzare in modo “paritario” a prescindere dalla vera e propria data di pubblicazione. Passiamo ora ad un caso molto interessante.
Nel caso di query non esplicitamente di news
Da bravo nerd, durante i test ho utilizzato gli operatori per cercare vecchi articoli su di uno specifico argomento, nel mio caso su vecchi videogames. Non news ma comunque contenuti che hanno una loro “posizione specifica” nell’asse del tempo. Ho quindi inserito la query “earthbound before:1999” volendo:
- ricercare articoli riguardanti il mitico capolavoro per Super Nintendo “Earthbound” (se non l’hai fatto…giocalo!);
- “forzare” il sistema con articoli molto vecchi (quando il motore era sicuramente meno raffinato e non penso avessero in mente di implementare 20 anni dopo questi operatori);
- osservare il comportamento dell’operatore su di una query ambigua e non esplicitamente “news related“;
Posso già dirti che l’operatore funziona ed influenza la SERP anche in questo caso. Basta utilizzare la query “earthbound before 1999” per rendersi conto che non invocare esplicitamente l’operatore con la stringa “before:” (omettendo il simbolo “:”) riporta una query completamente differente e molto meno attinente al search intent.
Detto questo ecco uno screenshot dove ho voluto commentare la possibile origine del dato che fa da trigger all’operatore before:
Dopo aver visto questa SERP, nella quale la data alla quale si riferisce (presumibilmente) l’operatore non è praticamente mai riferita alla vera e propria “età del documento”, mi sono chiesto “ma l’operatore sta funzionando davvero per questa query?” Per testarla ho voluto utilizzare una sintassi più specifica cercando di “andare a prendere” una data specifica, ovvero il “1992-06-19”, data citata nel secondo risultato, attraverso la query “earthbound before:1992-06-20 after:1992-06-18” . Ecco qui cosa ne è venuto fuori:
E quindi si, l’operatore pesca proprio quella specifica data in documenti dove riscontra un collegamento tra le keyword presenti nella query e la stringa dell’operatore stesso. Il secondo risultato non è molto rilevante per la query (la keyword “earthbound” è stata sostituita con “earth-bound“) ma è molto affascinante: si tratta di un file PDF che contiene la scansione di un documento militare de-secretato, battuto probabilmente a macchina. Non sto scherzando. La data rilevata e stampata in SERP è stata pescata e scannerizzata tramite OCR dal timbro (storto) apposto sul documento (!!!). Google non smette di stupirmi.
Rapporto tra gli operatori before: e after: e il Knowledge Panel
A proposito di cose sorprendenti: ho notato che questi operatori (quando funzionano) escludono il Knowledge Panel dalle SERP. Guardate le query “fabio grosso” ed “earthbound” invocate senza gli operatori:
Utilizzando l’operatore in modo poco specifico, con risultati che risultano “ambigui” riguardo l’efficacia o anzi l‘effettivo utilizzo nella SERP dell’operatore, il Knowledge Graph viene stampato. Con altre query più specifiche invece si. Ammetto di essere confuso. Ecco qui:
Una cosa curiosa è che ci sono più risultati con l’inclusione degli operatori che per la query “fabio grosso” formulata senza operatori! Forse l’operatore effettivamente lavora sulla SERP e aumenta il volume dei risultati agendo in modo inclusivo, cioè aggiungendone? E’ un comportamento derivato dal fatto che questa tecnologia è in beta-testing?
Guarda cosa succede invocando l’operatore in modo più specifico con la query “fabio grosso after:2006-07-09 before:2009-05-01” e utilizzando, per testare che il problema non sia l’utilizzo di uno solo dei due operatori, un range di date più ampio:
Con un periodo di tempo di poco inferiore ai 3 anni l’operatore si comporta come osservato in precedenza:
- presenza delle date esplicite nel codice;
- assenza del Knowledge Panel;
Come novità appare un rich result di ricerche correlate sotto forma di carosello per le query:
- “giocatore calcio italiano“, avendo in evidenza membri della squadra del 2006. Apparentemente vi è una correlazione temporale specifica, forse causata dagli operatori before: e after:, anche se penso che più che per il filtro dipenda dal fatto che è famoso per quel periodo a prescindere. Da notare che nella query “fabio grosso” il carosello non appare;
- “film biografici correlati” con calciatori e allenatori di calcio: anche questa volta possiamo osservare una disambiguazione;
Senza stare a incollare ogni singolo screenshot vi riporto i risultati di test fatti su periodi temporali differenti:
- dal 2006/07/09 al 2010/07/09 ovvero 4 anni: l’operatore sembra funzionare;
- dal 2006/07/09 al 2011/07/09 ovvero 5 anni: l’operatore sembra funzionare, la SERP è la stessa della precedente;
- dal 2006/07/09 al 2012/07/09 ovvero 6 anni: l’operatore sembra funzionare, la SERP è molto diversa, dal terzo al settimo risultato abbiamo video disposti uno per riga, i quali curiosamente fanno comunque riferimento, tranne il secondo, ad un periodo compreso nell’estate del 2006: un solo risultato cambia tutta la SERP sbilanciandola verso il media video;
- dal 2006/07/09 al 2013/07/09 ovvero 7 anni: l’operatore sembra funzionare, la SERP è praticamente identica alla precedente;
- dal 2006/07/09 al 2014/07/09 ovvero 8 anni: l’operatore sembra funzionare, la SERP ha 3 nuovi risultati datati 2014 in modo esplicito (riportano la data in SERP). Questo è uno scenario dove l’operatore si comporta come descritto da Google;
- dal 2006/07/09 al 2015/07/09 ovvero 9 anni: l’operatore sembra funzionare, la SERP è molto diversa: scompaiono i video e appaiono diversi articoli datati 2015. In questo periodo Grosso è “raccontato” per un monologo teatrale e Google sceglie di mostrarci risultati che toccano il biennio 2014, dove la gente si chiedeva che fine avesse fatto, e il 2015, dove la gente lo trovava in teatro invece che sul campo. Viene cambiato il vero e proprio paradigma della SERP, la quale parla dell’entità “fabio grosso” in modo molto differente. Compaiono anche video pubblicati nel 2014 e nel 2012 che parlano del mondiale 2006 ma riportano la data più recente di pubblicazione su YouTube;
- dal 2006/07/09 al 2016/07/09 ovvero 10 anni: l’operatore sembra smettere di funzionare e appare la SERP con il Knowledge Panel;
Ho testato, il giorno 2 Maggio 2019, una lunga serie di date andando a ritroso e l’ultimo periodo utile nella quale la SERP appare senza il Knowledge Graph è quello relativo alla query “fabio grosso after:2006-07-09 before:2015-11-07“: inserendo “before:2015-11-08” la query stampa il Knowledge Graph. Il limite però sembra essere temporale più che riferito al periodo: se invece di aumentare il limite riferito al before: mettiamo una data antecedente in after: vediamo che la SERP rimane quella “pulita”, anche se gli articoli tra le prime posizioni rimangono quelli più recenti:
Vorrei fare sicuramente più test ma mi pare di capire che per entità molto conosciute esistano dei limiti temporali, in questo caso di “freschezza” del corpus che si va a filtrare per data, dopo i quali semplicemente l’operatore smette di funzionare: questo perché immagino che Google effettui caching per risparmiare computazione su SERP popolari come possono esserlo queste entità ben conosciute e delineate, escludendo su range più grandi di “X” (o più recenti) il filtro degli operatori per risparmiare potenza computazionale. questo comportamento rende l’operatore meno “maneggevole” e affidabile soprattutto in fase di scraping.
Nota: La query ha lo stesso comportamento, ovvero la stampa del Knowledge Graph invocandola con “before:2015-11-08” anche il 3 Maggio 2019. Il limite o non è temporale o non ha un refresh costante/giornaliero. Continuerò a testare.
Quindi Google non ce la racconta giusta?
In realtà… non proprio. Innanzitutto le mie sono supposizioni basate sull’osservazione dell’output, le SERP, in base al mio input, la query: il “metodo scientifico” della SEO che di scientifico non ha proprio nulla, visto che il sistema Google è in buona parte “black box“, ovvero non sappiamo come funzioni o cosa contenga. Il “sapere SEO” in molti casi (sicuramente in questo) ha un’origine empirica. Proprio per questo, anche se l’operatore sulle query non news-related sembra avere un ruolo concreto nel filtrare i risultati, potrebbe benissimo essere che influenzi direttamente solo alcuni risultati nel mix e ne ignori altri per non ritornare SERP semi-vuote. Non penso sia questo il caso visto il test della query super-specifica ma volendo essere sempre preciso e coerente non potevo non farti pensare anche a questa cosa. Detto questo possiamo rilevare alcuni dati e comportamenti e ragionare su di essi.
Quando viene stampata la data che ci interessa in SERP?
Un’altra cosa che ho notato nella SERP della query “earthbound before:1999” è stato l’utilizzo sporadico del dato della data direttamente in SERP rispetto a quella riferita a Grosso. La stampa di questo elemento è avvenuta solo in specifici casi:
- Per una data che rappresenta in modo esplicito la data di pubblicazione dell’articolo;
- Per una data riportata nell’elemento HTML per la tabella della pagina https://www.romhacking.net/translations/2638/
- Per una data riportata nel dato strutturato esplicito riguardante la data di pubblicazione nella pagina https://www.giantbomb.com/earthbound-beginnings/3030-11753/
- Per una data di un documento del 1992 scannerizzato tramite, plausibilmente, tecnologia OCR;
Questi casi non sono sorprendenti (per quanto riguarda la data almeno) e anzi mi aspettavo questo comportamento: come al solito Google vuole tendenzialmente una conferma esplicita prima di utilizzare un dato come elemento esplicito di una SERP.
Le tabelle HTML sono qualcosa dalle quali già da tantissimi anni Google pesca dati ritenendoli espliciti in quanto, nel loro uso semanticamente corretto (ovvero non di puro “design” inteso come divisione dello spazio) vengono utilizzate per riportare e mettere in correlazione esplicita dati e, quando necessario, metterli a confronto/in rapporto. Non mi sorprende quindi che le date vengano pescate e pubblicate in SERP solamente da quei due risultati. Ricordatevi che esiste un motore di ricerca Google dedicato alle tabelle sul web. Anche la data del documento è un dato esplicito che di fatto influenza la rilevanza del documento per chi ha digitato la query, e quindi ci sta che venga stampata direttamente sulla SERP. Google inoltre, in questo senso, ragiona solo su dati che l’utente può rilevare a sua volta e che possono influenzare la sua percezione e quindi il gradimento della SERP, punto chiave a livello concreto ed economico per Google, che i soldi li fa al 90% con l’advertising sulle SERP. Me l’hai probabilmente già sentito dire ma è molto importante tenerlo sempre a mente.
La vera funzione (ad oggi) di questi operatori
Questa però è una ulteriore indicazione del fatto che questo operatore, mentre finisco di scrivere questo articolo (due maggio 2019) viene essenzialmente utilizzato per filtrare attraverso l’elemento data sotto diversi punti di vista e non riguardante la sola data di pubblicazione del contenuto. Come hai potuto vedere tu stesso dagli esempi riportati abbiamo date che ad esempio si riferiscono a:
- Date di pubblicazione di opere d’ingegno, anche di versioni differenti, quali musica e videogames riportate anche solamente nel testo della pagina;
- Date di pubblicazione di altri articoli solamente citati con link e senza link;
- Date citate solamente nell’URL, nel nome file di una immagine e nella URL dei link di sharing nella classica “pagina media” di un CMS, per la quale non possiamo determinare l’esatta “considerazione” che Google ha di essa. Presumibilmente la data di pubblicazione dell’immagine, la data di creazione dell’immagine (in senso pratico, ad esempio “foto scattata il giorno 01/05/2019” ) o il riferimento temporale riguardo il soggetto dell’immagine ( ad esempio “foto di una statua del 1965 scattata nel 2019“);
- Date citate solamente in un campo “meta name” nella sezione “head” dell’HTML e nelle URL delle immagini in una galleria di immagini, facendo le stesse considerazioni del precedente punto;
Penso sia piuttosto plausibile pensare che in tutti i casi si parli sempre di date riferite non a documenti quanto a entità relative alle keyword contenute nella query. Il che rende questo strumento molto più interessante e molto, molto più utile, anche se probabilmente meno preciso.
A livello pratico Pasquale di Dato mi segnala giustamente su Facebook che “(per gli sviluppatori e i programmatori)… cercare una soluzione a un problema “storico” ora è possibile, di solito, quando ci sono errori di incompatibilità, periodicamente vai a cercare per vedere se è arrivato un aggiornamento ed è (era) davvero difficile trovare documentazione recente senza dover spulciare in mezzo a migliaia di cose inutili”.
L’operatore funziona su date antecedenti la creazione di Internet?
Visto e considerato che abbiamo visto che l’operatore non utilizza sempre la data del documento per ritornare alcuni risultati ho voluto provare a vedere come si sarebbe comportato con date antecedenti alla diffusione di Internet a livello commerciale, ovvero nel 1991.
Visto che usare un semplice “before:” o “after:” avrebbe portato a risultati molto ambigui ho aperto la pagina di Wikipedia di Albert Einstein e ho scelto una data, quella del suo diploma nel 1896, per vedere come si sarebbe comportato Google. Ecco il risultato per la query “einstein before:1897 after:1895“:
In questo caso oltre a trovare il Knowledge Panel, che come abbiamo sembra scomparire per ogni query dove l’operatore funziona e filtra effettivamente i documenti proposti in SERP, ci sono risultati che non contengono nel codice l’anno 1896: l’operatore non pare funzionare per date così vecchie. In un qualche modo, in questo caso, mi pare che ci sia davvero un forcing riguardante la scansione per la data di pubblicazione del documento, cosa bizzarra ripensando ai risultati degli altri esperimenti.
Un’altra cosa che mi sento di indicare è che seppur il periodo sia relativamente limitato, ovvero circa 1 anno (secondo le indicazioni di Google before:1897 after:1895” corrisponde in realtà “before:1897-01-01 after:1895-12-31“), l’operatore non funziona andando ad aumentare il sospetto che il limite di funzionamento sia legato alla posizione nel tempo di ciò che viene richiesto, in questo caso forse “troppo lontano” dal presente o comunque dai periodi di interesse dell’entità principale della query.
Come era presumibile pensare la query con la sintassi sbagliata degli operatori, ovvero “einstein before 1897 after 1895“, cambia la lingua dei risultati in SERP in quanto l’operatore, invocato con la sintassi giusta, è globale e si adatta alla versione regionale di Google (o almeno alla geolocalizzazione dell’IP del browser che chiama la query) ma la query così formulata risulta completamente in lingua inglese. Ecco qui lo screenshot:
Quindi a che punto è l’implementazione di questi operatori?
Questo è molto difficile da determinare ma posso dire di aver osservato una notevole volatilità nella composizione delle SERP che includono operatori. Per la stessa query, su giorni differenti, è stato restituito da Google un volume molto diverso di risultati:
Così come l’inclusione di specifici periodi non filtri solamente quali documenti ma anche che tipo di mix di documenti viene presentato. Questo è un punto molto interessante perché di fatto ci dice che l’operatore lavora anche sul search intent. Probabilmente, visto che le query tramite l’operatore sono relativamente nuove (un paio di settimane fa non esisteva proprio!), c’è lo zampino di RankBrain, che come sappiamo filtra proprio le query che Google vede per la prima volta mettendosi “in fondo” alla pipeline della Google Search. Puoi saperne (o per meglio dire accettare di non poterne sapere) di più leggendo questo articolo di AJ Kohn che tradussi ormai un po’ di tempo fa. Un capolavoro del buon AJ.
Come possono venire utilizzati per la SEO?
Bella domanda! In questo senso ci sto giocando un po’, ho diverse idee, tra le quali:
- Fare ricerche mirate in ambito di copywriting, andando a pescare risorse vecchie e che hanno una valenza particolare in quanto tali;
- Fare scraping mirato di forum/UGC alla ricerca di topic (si può fare anche con crawler e XPath ma in questo caso si usa Google come “filtro a monte”);
- Cercare subtopic partendo da chiavi ambigue e facendole affiorare segmentandole utilizzando proprio l’elemento “data”. Il passato ha diverse accezioni specifiche così come determinati periodi si intersecano con mode e culture pop: con un po’ di arguzia si possono tirare fuori cose molto interessanti;
- Fare competitor research a livello strategico su query stagionali in modo non esplicito (molto, molto sfizioso);
Sono tutte cose che ho intenzione di approfondire sulla newsletter o in altra sede. Ci sono un sacco di opportunità perché questi operatori sono di fatto un metodo di rifinimento delle ricerche che ha il vantaggio di essere manipolabile e “scalabile” perché passato “da linea di comando”: una specie di “argomento” per “query-time” purtroppo ancora un po’ “volubile”. Scusa le tantissime virgolette ma ho voluto semplificare e chiarire il più possibile Non c’è bisogno di API per sfruttarlo massivamente (al massimo di proxy). Divertiti ma non farti bannare l’IP aziendale da Google, a me è capitato (con il mitico SEOQuake) e i colleghi di allora non furono contentissimi!
Detto questo grazie per aver letto fin qui e spero che l’articolo ti sia piaciuto e che possa esserti utile. Per concludere mi raccomando: comprati uno SNES mini e gioca a Earthbound! Buon divertimento.