FAQ del rilevatore di Spam




Domande frequenti circa lo strumento per la rilevazione di spam dei motori di ricerca.

FAQ di base

Che significa "spam dei motori di ricerca"?

I motori di ricerca vogliono valutare le pagine web analizzando (anche) il testo che le pagine mostrano agli utenti. Alcuni webmaster ingannano i motori di ricerca per fargli credere che una pagina mostri agli utenti maggiori (o differenti) testi di quelli realmente mostrati.

Questo è uno dei tanti metodi considerati "spamming" dai motori di ricerca. Per un'informazione approfondita sullo spam dei motori, puoi leggere questa definizione di spam dei motori di ricerca (in inglese) e questo ottimo documento sullo spam dei motori (in inglese).

Che cosa fa questo "rilevatore dello spam dei motori di ricerca"?

Questo strumento analizza una pagina web cercando caratteristiche che indichino la presenza di alcuni trucchi considerati "spam" dai motori di ricerca.

Quali metodi di spam questo strumento è in grado di rilevare?

Individua principalmente molti trucchi appartenenti a tre classi di metodi: keyword stuffing, pagine doorway and testo nascosto (basato su stesso colore di testo e sfondo).

Quali trucchi non può rilevare?

Questo strumento è ancora nella sua fase iniziale. Tutte le analisi sono basate su testo, immagini di sfondo, codice HTML e CSS. Visto che non supporta il linguaggio Javascript o qualunque altro linguaggio o tecnologia diversa da HTML o CSS, qualunque trucco di spam che usa Javascript non sarà individuato. Inoltre, metodi per nascondere il testo basati su posizionamento di elementi attraverso CSS sono attualmenti non supportati.

Questo strumento obbedisce al file robots.txt?

No, perché non è uno spider e si comporta esattamente come un normale browser per gli utenti. Quindi scarica semplicemente tutti i file necessari al "disegno" della pagina web.

Cos'è quel testo <whitespace> che viene a volte mostrato nei risultati dell'analisi di invisibilità del testo?

Un <whitespace> è una semplice entità HTML &nbsp;. Lo strumento li riporta se sono inseriti in una "zona invisibile" del codice HTML, ovvero una zona dove un testo apparirebbe invisibile.

Perché hai creato uno strumento simile?

Primo, perché mi piace allenare il cervello, cercando soluzioni ingegnose a problemi complessi. Secondo, per mostrare ai webmaster e ai SEO neofiti come è relativamente semplice sviluppare uno strumento come questo.

Se lo strumento non è capace di individuare il metodo che uso per nascondere il testo, significa che il mio metodo può ingannare anche i motori di ricerca?

No. Significa solo che questo strumento non è stato in grado di trovare il testo nascosto. I motori di ricerca potrebbero essere più furbi.

Non pensi che il tuo lavoro potrebbe danneggiare i SEO o aiutare i motori di ricerca?

No. I buoni SEO non hanno bisogno di trucchi per spammare. Inoltre, credetemi, i più importanti motori di ricerca individuano già lo spam con algoritmi migliori dei miei.

Chi sei?

Sono uno sviluppatore di software. Non sono collegato con alcun motore di ricerca. Per domande inerenti questo strumento, puoi contattarmi all'indirizzo e-mail: spamdetector chiocciola motoricerca.info

FAQ tecniche

Come fai a rilevare il keyword stuffing?

Nella maggior parte dei casi, l'individuazione del keyword stuffing è molto facile da ottenere.

Una frase reale, con una grammatica e una sintassi, è visualmente molto diversa da un'asettica lista di keyword. Ho semplicemente osservato le differenze visuali tra frasi reali e testo rimpinzato di keyword e ho sviluppato un algoritmo che calcola quanto un paragrafo di testo sembra "naturale".

Inoltre, molti webmaster spesso scrivono paragrafi di keyword con segnali evidenti di keyword stuffing. È quasi come se mettessero un'insegna gigante "Hei, Google! Qui si fa keyword stuffing!" nelle loro pagine web. Questo rende il rilevamento delle keyword perfino più facile.

L'algoritmo non usa un dizionario di termini né ha alcuna conoscenza di regole grammaticali. Non è dipendente dal linguaggio e funziona molto bene con molti linguaggi differenti.

Visto che l'individuazione del keyword stuffing non può essere perfetta al 100% e siccome potrebbe generare alcuni "falsi positivi", un buon motore di ricerca non dovrebbe penalizzare una pagina web per aver usato il keyword stuffing ma potrebbe solo calcolare l'importanza/peso di una parola prendendo in considerazione quanto testo naturale sta intorno alla parola. Questo minimizzerebbe gli effetti negativi di un'errata interpretazione del testo.

Quindi, quando uno spammer ottiene una buona posizione con una pagina strapiena di keyword, lui/lei tende a pensare che il keyword stuffing abbia funzionato, quando in realtà potrebbe essere possibile per la pagina ottenere posizioni persino migliori con testo chiaro e genuino invece che paragrafi di keyword.

Come individui il testo nascosto?

Per ora, questo strumento individua solo due tipi di testo nascosto: testo dello stesso colore di sfondo (o di colore simile) e testo nascosto con le proprietà CSS "display" o "visibility".

Ho scritto un piccolo interprete HTML+CSS. In pratica fa la stessa cosa che un browser fa: effettua il parsing del codice CSS e HTML estrapolando i valori dei colori del testo e dello sfondo, salvandoli in alcune strutture dati. Successivamente, quando l'algoritmo effettua il parsing dell'HTML in cerca del testo, esso sa in quali colori il testo e lo sfondo verrebbero disegnati da un browser. Se i due colori sono identici, il testo è considerato invisibile.

L'algoritmo supporta anche i colori simili. Se il contrasto tra il colore di sfondo e del testo è troppo basso, il testo è considerato difficilmente percettibile dall'occhio umano e viene riportato un avviso.

Proprio dopo la fase di parsing del CSS e prima di quella dell'HTML, lo strumento scarica anche tutte le immagini usate nella pagina web per i fondali. Siccome i metodi per nascondere il testo possono usare sfondi monocromatici, è necessario pre-elaborare tutti i fondali per capire se sono immagini monocromatiche o multicolori e per ricordare i valori dei colori necessari alla fase di parsing del codice HTML.

La fase di elaborazione dell'immagine è piuttosto velioce perché non è strettamente necessario analizzare tutti i pixel di un'immagine per capire se è monocromatica.

Come individui le pagine doorway?

Innanzitutto devo chiarire quale definizione questo strumento dà all'espressione "doorway farm" (fattoria di doorway): una lista (solitamente grande) di link contenenti testi ricchi di keyword, ognuno dei quali puntante a pagine generate principalmente per incrementare la rilevanza del testo agli occhi dei motori di ricerca.

Il primo passo consiste nell'effettuare il parsing del codice, estrapolando tutti i link e poi raggruppandoli in blocchi. Il secondo passo consiste nel fare un'analisi statistica del testo dei link, per determinare se la distribuzione delle parole è innaturale. Questo passo mi permette di escludere tutti i link usati per ragioni legali, come i menu di navigazione.

Se il testo dei link mostra effettivamente una struttura di distribuzione innaturale, allora l'algoritmo preleva due delle pagine a cui i link puntano ed effettua due veloci analisi del loro codice HTML e del loro testo, cercando di capire se il testo contenuto nelle pagine linkate è anch'esso innaturale.

Esiste anche una sotto-analisi che mi indica se le pagine sono state probabilmente generate da un software. L'algoritmo usato è piuttosto complesso.

Se le due pagine (scelte a caso) sembrano "innaturali" allora l'algoritmo assume che anche tutte le altre pagine puntate con lo stesso blocco di link sono probabilmente innaturali anch'esse, e viene generato un avviso.

In che modo questo strumento migliorerà?

Beh, voglio aggiungere il supporto per il posizionamento via CSS, visto che molti trucchi per il testo invisibile usano le proprietà di posizionamento per nascondere i contenuti. Penso che sarebbe molto complesso scrivere un "box model" pienamente rispettoso dello standard CSS, quindi probabilmente svilupperò solo una sua versione molto semplice. Farà correttamente il suo lavoro nella maggior parte dei casi: il mio obiettivo è trovare il testo nascosto, non creare un completo motore di rendering di pagine web.

Circa il Javascript, non aggiungerò il suo supporto allo strumento. Sebbene ci siano alcuni interepreti Javascript gratuiti che potrei usare, il linguaggio PHP non mi dà abbastanza libertà per ottenere una buona (ed elegante) soluzione. Non so nemmeno se è possibile integrare PHP, interprete Javascript e un pieno DOM (Document Object Model). Quindi se deciderò di aggiungere il supporto al Javascript in futuro, sarà per una nuova versione del tool, completamente riscritta in un nuovo linguaggio (probabilmente C++). Richiederebbe un mucchio di lavoro e per ora non sono molto motivato! ;-)

Ci sono anche molti piccoli miglioramenti che potrei apportare allo strumento e li introdurrò lentamente:

Che documentazione/software hai usato per programmare questo strumento?

Documentazione ufficiale del linguaggio PHP e le specifiche W3C su HTML/CSS. Tutto il codice è stato scritto da zero.

Pensieri sparsi...

"Il colore di sfondo è FFFFFF, il colore del testo è F6F6F6. Sono DIFFERENTI. Quindi googlebot non può dire che sono VICINI l'uno all'altro." [letto in un forum SEO]

Ah ah ah! ROTFL! :-D
Che altro? "È impossibile costruire una macchina volante"? :-D