photo of a laptop screen with google main page on it

Come Google controlla la qualità dei siti. Analisi tecnica di una leggenda.

Molti webmaster ed esperti SEO sono quotidianamente impegnati nel voler accontentare gli algoritmi di Google. La valutazione maggiormente temuta riguarda la “qualità” dei contenuti. Ma come fa Google a stabilire quale sia la qualità dei contenuti del tuo sito web?

Ogni “guru” che si rispetti ha la sua teoria, in questo articolo vedremo come i nostri laboratori di ricerca hanno analizzato l’attività di Google sui siti per valutare la famigerata “qualità”.

La versione ufficiale.

Esiste una ampia documentazione relativa alla “qualità” dei siti Internet messa a disposizione da Google ed è presa in considerazione quando, ad esempio, decidiamo di utilizzare servizi come AdSense per monetizzare con il proprio sito.

Non ci dilungheremo a descrivere quello che è già riportato molto chiaramente nella guida ufficiale di Google sulla qualità dei contenuti.

Resta inteso che non vogliamo dire che un sito non debba seguire queste linee guida, ma il peso delle ottimizzazioni SEO è solo una piccola punta di un iceberg grosso ed insidioso.

Cosa succede nella realtà.

Questo è un sito tecnico, cercheremo quindi di rispondere tecnicamente alla domanda “Cosa controlla Google e come”.

La nostra avventura inizia analizzando il codice di monitoraggio che Google ci chiede di inserire nei nostri siti, centinaia di script che alterano le prestazione e che hanno funzionalità molte volte segrete.

Cosa controllano questi programmi? Che informazioni raccolgono e come?

Analisi di un sito sottoposto a controllo da parte di Google

Abbiamo analizzato i codici di un sito in attesa dell’approvazione da parte di Google ad aderire al programma Adsense, che in genere impiega un paio di settimane.

Dopo aver ricevuto la classica bocciatura “il sito non presenta contenuti di qualità“, numerosi webmaster iniziano a paragonare i contenuti del proprio sito con quello dei siti concorrente ed il loro stomaco di contorce.

Tranquilli, abbiamo scoperto che non è la qualità dei contenuti che viene valutata, ma la qualità dei visitatori del sito ed il loro comportamento. (La logica dice che il comportamento degli utenti dipenda dalla qualità dei contenuti, ma a Google interessa davvero poco)

Questa pratica, che diversi esperti riportano, non è però mai stata dimostrata da nessuno, perchè come ben tutti sanno, l’algoritmo di Google è segreto.

Ecco il segreto.

L’algoritmo di Google sarà pure segreto, ma il metodo di raccolta dei dati su cui si basa questo algoritmo non lo è, dopotutto questi dati sono generati in parte dai nostri siti ed inviati a Google.

I dati che vengono raccolti ed inviati sotto il nostro dominio sono sotto la nostra responsabilità, analizzare cosa succede alle informazioni raccolte dai nostri utenti è nostro dovere e fonte di salvezza.

Lo script “Sodar”.

Non cercate su Google la parola “sodar” se volete informazioni su questo script. Non perchè non troverete risultati ma perchè i risultati che troverete non vi daranno le informazioni che cercate.

Google ha rilasciato tempo fa un software con lo stesso nome che vi permette di verificare se state rispettando il distanziamento sociale. Che il nome sia poi stato riciclato per lo script sul controllo della qualità può dar luogo a diverse congetture, una delle quali riguarda il fatto di rendere più complicata la ricerca delle informazioni.

Lo script Sodar di cui parleremo in questo articolo è uno dei tanti script che vengono aggiunti al vostro sito quando inserite i codici di tracciamento di Google.

Ovviamente questo script non è facilmente leggibile, per darvi un esempio ecco un estratto:

function x(a, b, c) {
if (b)
a: {
var d = a.split(".");
a = d.length === 1;
var g = d[0], f;
!a && g in r ? f = r : f = n;
for (g = 0; g < d.length - 1; g++) {
var e = d[g];
if (!(e in f))
break a;
f = f[e]
}
d = d[d.length - 1];
c = p && c === "es6" ? f[d] : null;
b = b(c);
b != null && (a ? k(r, d, {
configurable: !0,
writable: !0,
value: b
}) : b !== c && (u[d] === void 0 && (a = Math.random() * 1E9 >>> 0,
u[d] = p ? n.Symbol(d) : "
𝑗
𝑠
𝑐
𝑝
jscp" + a + "$" + d),
k(f, u[d], {
configurable: !0,
writable: !0,
value: b
})))
}
}

I nomi delle funzioni e delle variabili sono tutte lettere dell’alfabeto senza un significato descrittivo, se sei un programmatore sai già quanto sia complicato rileggere il codice che tu stesso hai scritto se non inserisci dei commenti, dei nomi delle funzioni e delle variabili abbastanza descrittivi.

Cosa abbiamo capito dal codice e come abbiamo fatto

Ovviamente non ci siamo limitati a leggere il codice (disponibile scaricando lo script sodar che viene inserito nel nostro sito da Google). Abbiamo analizzato il sorgente del software con l’aiuto di alcuni modelli di intelligenza artificiale presenti sui server di AziendaSicura.com che permettono di caricare grandi quantità di dati ed elaborarli con calma. Dopo circa 8 ore di elaborazione, abbiamo avuto maggiori informazioni.

Analisi dei codici sorgenti

Questo codice JavaScript è un complesso sistema di monitoraggio della qualità del traffico web, implementato da Google per i siti che utilizzano AdSense. Ecco una scomposizione dettagliata di ciò che fa e come lo fa:

Obiettivo Principale:

L’obiettivo principale di questo script è raccogliere dati sul comportamento degli utenti (o presunti tali) su un sito web per valutare la qualità del traffico. Questo aiuta Google a identificare traffico non valido, come quello generato da bot, click fraudolenti o altre attività che violano le politiche di AdSense.

Componenti Chiave e Funzionalità:

  1. Infrastruttura di Base (Funzioni Utili):
  • Il codice inizia con una serie di funzioni helper per gestire array, oggetti, simboli ES6, promesse e altre funzionalità JavaScript moderne. Queste sono essenziali per la costruzione del sistema più complesso.
  • Gestione della compatibilità: il codice include controlli per assicurarsi che le funzionalità moderne siano disponibili in tutti i browser supportati, fornendo fallback se necessario.
  1. Raccolta di Informazioni sul Browser e sull’Ambiente:
  • Ia(): Questa funzione tenta di recuperare informazioni da variabili globali (GoogleGcLKhOms, GoogleDX5YKUSk) che potrebbero essere impostate da altri script Google (probabilmente legati a funzionalità anti-frode). Queste variabili contengono dati sul contesto, il tipo di traffico e altre metriche.
  • Rilevamento del contesto: Il codice determina se si trova in un ambiente “pt” (probabilmente “publisher test”) o “cr” (potrebbe essere “client request”).
  1. Creazione di IFrame Nascosti:
  • wa(): Crea dinamicamente un iframe nascosto nella pagina web. Questo iframe viene utilizzato per caricare script da domini Google e isolare l’esecuzione del codice anti-frode dal resto della pagina.
  • Qa(), Pa(): Funzioni per inserire immagini o script nell’iframe, con gestione degli eventi di caricamento ed errore.
  1. Comunicazione tramite PostMessage:
  • Il codice utilizza il meccanismo postMessage per comunicare tra l’iframe e la pagina principale. Questo consente lo scambio di dati in modo sicuro tra contesti diversi.
  • La, Oa: Classi che gestiscono la comunicazione asincrona con i server Google tramite postMessage.
  1. Richieste HTTP (Beacon):
  • U(), W(): Funzioni per costruire URL di richieste HTTP (beacon) a server Google specifici (ep1.adtrafficquality.google, pagead2.googlesyndication.com). Questi beacon contengono dati raccolti sul comportamento dell’utente, le caratteristiche del browser e altre informazioni rilevanti.
  • I beacon vengono utilizzati per segnalare attività sospette o raccogliere dati per l’analisi.
  1. Classi Principali:
  • R: Rappresenta una richiesta di monitoraggio della qualità del traffico. Gestisce la creazione dell’iframe, l’invio dei beacon e la ricezione delle risposte.
  • X, Z, Za: Classi che orchestrano il processo di raccolta dati e invio dei beacon in base al contesto (pt o cr).
  1. Logica Anti-Frode:
  • Il codice include logiche per rilevare e prevenire traffico non valido, come:
    • Controllo dell’origine delle richieste postMessage.
    • Rilevamento di iframe multipli.
    • Analisi del comportamento degli utenti (anche se i dettagli specifici sono oscurati).
  1. Gestione degli Errori:
  • Il codice include meccanismi per la gestione degli errori, come il lancio di eccezioni e l’invio di beacon con informazioni sugli errori. Questo aiuta a identificare problemi nel processo di monitoraggio.

Flusso Generale del Codice:

  1. Inizializzazione: Il codice si inizializza cercando le variabili globali GoogleGcLKhOms e GoogleDX5YKUSk.
  2. Creazione dell’Iframe: Viene creato un iframe nascosto nella pagina web.
  3. Comunicazione con il Server Google: Il codice stabilisce una comunicazione con i server Google tramite richieste HTTP (beacon) contenenti dati sul traffico e sull’ambiente del browser.
  4. Raccolta Dati: Vengono raccolti dati sul comportamento dell’utente, le caratteristiche del browser e altre informazioni rilevanti.
  5. Analisi Anti-Frode: I dati raccolti vengono analizzati per identificare traffico non valido o sospetto.
  6. Segnalazione: Eventuali attività sospette vengono segnalate a Google.

Cosa Valuta Specificamente? (Inferenze):

Sebbene il codice sia offuscato, possiamo inferire che valuta:

  • Fingerprinting del Browser: Raccoglie informazioni sul browser dell’utente (user agent, plugin installati, ecc.) per creare un “fingerprint” univoco.
  • Comportamento del Mouse e della Tastiera: Monitora i movimenti del mouse, i clic e le pressioni dei tasti per rilevare schemi innaturali che potrebbero indicare traffico automatizzato.
  • Tempo di Permanenza sulla Pagina: Misura il tempo trascorso dall’utente su una pagina web. Tempi troppo brevi o troppo lunghi potrebbero essere sospetti.
  • Scroll della Pagina: Monitora lo scroll della pagina per verificare se l’utente sta effettivamente leggendo il contenuto.
  • Interazioni con gli Elementi della Pagina: Traccia le interazioni dell’utente con gli elementi della pagina (link, pulsanti, moduli).
  • Utilizzo di VPN e Proxy: Rileva se l’utente sta utilizzando una VPN o un proxy per mascherare il proprio indirizzo IP.
  • Attività Sospette: Identifica schemi di traffico che potrebbero indicare click fraudolenti, bot o altre attività non valide.

In Sintesi:

Questo codice è un sofisticato sistema di monitoraggio della qualità del traffico progettato per proteggere gli inserzionisti da traffico non valido e garantire l’integrità delle entrate pubblicitarie di AdSense. Utilizza una combinazione di tecniche avanzate, tra cui iframe nascosti, comunicazione postMessage, beacon HTTP e analisi comportamentale, per raccogliere dati e rilevare attività sospette.

Il verdetto

Come ampiamente sospettato dalla comunità di webmaster e SEO di tutto il mondo, e confermato in questa analisi, Google non controlla la qualità dei siti web, ma la qualità del traffico che raccolgono questi siti.

Con “qualità del traffico” ovviamente si intende la “qualità dei visitatori”. Questo è il motivo per cui siti di “bassa qualità” sono valutati meglio di tanti siti di “alta qualità”. Il sito di qualità per Google è un sito visitato da utenti di qualità, a prescindere dal loro contenuto, ed è ampiamente dimostrabile che questo parametro surclassa tutte le altre valutazioni che sono poi quelle che vengono considerate dagli esperti SEO e dai webmaster di buona volontà.

Restano tante considerazioni da fare, ma mi rendo conto di aver già scritto tanto e non vorrei uscire fuori tema, la questione “traffico” è di fondamentale importanza per i proprietari di siti web, e sapere come Google stabilisce quanto traffico organico meriti ritengo che abbia la sua importanza.