Regex, una guida alle Regular Expression e agli utilizzi per la SEO

Provaci
Mettici alla prova
Analizza il tuo sito
Seleziona la lingua del database:

Sono un vero e proprio linguaggio, all’apparenza complicato ma non difficile da apprendere, e il loro utilizzo ci può dare un grosso supporto nel perfezionare l’analisi e il monitoraggio di dati, anche per la SEO: facciamo un focus sulle RegEx o Regular Expression, le funzioni che permettono di filtrare i risultati, per scoprire quali sono gli operatori regex comuni, quelli più utili per la SEO e quelli che possiamo usare in strumenti come Google Analytics e Google Search Console.

Che cosa sono le Regex

In italiano si chiama espressione regolare, ma è molto più diffuso il termine inglese RegEx, abbreviazione di REGular EXpression (così come a volte si trovano riferimenti quali regexp o RE): essenzialmente è una stringa di simboli che permette di filtrare e identificare un pattern di ricerca, o più precisamente una sequenza di caratteri che abilita una funzione per filtrare, confrontare o identificare stringhe di caratteri o codice.

Le espressioni regolari sono utilizzate nei motori di ricerca, nelle finestre di dialogo di ricerca e sostituzione di elaboratori di testi ed editor di testo, nelle utilità di elaborazione del testo e nell’analisi lessicale, ma anche molti linguaggi di programmazione forniscono funzionalità regex integrate o tramite librerie, poiché le situazioni di utilizzo sono molteplici.

L’esempio più immediato per capire cosa sono le Regex è pensare alla funzione “trova” o “trova e sostituisci” su Word – che ricerca l’esatta stringa di caratteri all’interno del documento ed eventualmente la sostituisce con l’altra stringa desiderata – oppure la funzione di ricerca nei browser web (quella che si attiva solitamente cliccando i tasti CTRL+F).

L’evoluzione delle espressioni regolari

Anche se la prima formulazione e formalizzazione risale agli anni Quaranta, è solo nel decennio successivo che le regex iniziarono a farsi strada, grazie ai lavori del matematico americano Stephen Cole Kleene, che descrisse appunto un linguaggio regolare, e successivamente di Ken Thompson, che le utilizzò nell’editor QED nel 1966, prima di diventare di uso comune con le utilità di elaborazione del testo Unix.

È però negli anni Ottanta che, grazie al linguaggio di programmazione Perl che ne permetteva nativamente l’uso, le espressioni regolari divennero comuni e da allora si sono imposte diverse sintassi per la scrittura di regex, come lo standard POSIX e la sintassi Perl.

Oggi le regex possono essere utilizzate su JavaScript, Python e altri linguaggi di programmazione, e possono diventare uno strumento SEO versatile e potente.

A cosa servono le Regex

Per le loro caratteristiche, le espressioni regolari servono a semplificare la ricerca di dati e informazioni comuni all’interno di un documento o di un insieme di risorse, specificando appunto le regole che servono a descrivere l’insieme di possibili stringhe che si desidera abbinare per scoprire dei risultati di ricerca che, a prima vista, potrebbero sembrare avere poco in comune.

Grazie a questo strumento è possibile, ad esempio, includere stringhe di ricerca complesse, corrispondenze parziali e caratteri jolly, compiere ricerche senza distinzione tra maiuscole e minuscole o impostare altre istruzioni avanzate, quasi come se fosse un linguaggio di programmazione in linea per fare ricerche di testo.

Altri aspetti vantaggiosi delle Regex sono la validità in ogni linguaggio e indipendentemente dalla piattaforma e la grande praticità di utilizzo, anche se bisogna tener presente che il loro linguaggio è relativamente piccolo e non tutte le attività di elaborazione delle stringhe possono essere eseguite in questo modo.

Come appare una Regex

A spaventare chi non conosce questo linguaggio è probabilmente la forma, che a primo sguardo appare complessa: in genere, infatti, un’espressione regolare include una combinazione di testo (di cui darà corrispondenza esatta nei risultati della ricerca), insieme a diversi operatori che agiscono più come caratteri jolly per ricercare una corrispondenza del pattern.

In termini pratici, come spiega Dan Taylor in un interessante articolo, una Regex può includere appunto un singolo carattere wildcard, una corrispondenza per uno o più caratteri o una corrispondenza per zero o più caratteri, nonché caratteri facoltativi, sottoespressioni nidificate tra parentesi e funzioni “o”. Combinando insieme queste diverse operazioni, è possibile costruire un’espressione complessa che permette di ottenere risultati di vasta portata, ma molto specifici.

Più precisamente, è possibile utilizzare le espressioni regolari per filtrare stringhe semplici (ma è “come andare a caccia di mosche con un lanciarazzi”, dice Giovanni Sacheli), usare caratteri singoli (il filtro più semplice, ricordando che carattere è qualsiasi lettera, numero, simbolo e spazio), sfruttare i caratteri speciali e i meta-caratteri (i caratteri che hanno un significato speciale), e poi ancora le àncore (che servono a indicare in quale posizione del testo eseguire l’analisi) e i modificatori (che espandono o restringono la porzione di testo che da analizzare).

Gli operatori comuni delle espressioni regolari

Alcuni esempi di operatori regex comuni includono:

. (punto) è un carattere jolly, può quindi rappresentare ogni singolo carattere

* (asterisco) seleziona una corrispondenza per zero o più elementi.

+ (segno più) seleziona una corrispondenza per uno o più elementi.

? (segno interrogativo) rende il carattere precedente una parte facoltativa dell’espressione

digit o d imposta una corrispondenza per ogni singola cifra numerica 0-9

| (pipe, linea verticale) indica una funzione di opposizione (OR).

^ (accento circonflesso) si usa per denotare l’inizio di una stringa.

$ (simbolo del dollaro) serve a denotare la fine di una stringa.

( ) (parentesi tonde) servono per annidare una sottoespressione.

(backslash) se inserito prima di un operatore o di un carattere speciale vale come “escape”, ovvero consente di escludere un carattere speciale.

Alcuni linguaggi di programmazione, come JavaScript, consentono anche l’inclusione di flags dopo il pattern regex stesso, che possono influenzare ulteriormente il risultato, come ad esempio:

g restituisce tutte le corrispondenze anziché solo la prima.

i restituisce risultati senza distinzione tra maiuscole e minuscole.

m attiva la modalità multilinea.

s attiva la modalità “tutti”.

u attiva il pieno supporto Unicode.

y cerca la posizione del testo specifica (modalità “sticky”‘).

L’uso combinato di questi operatori e flag permette di creare un linguaggio logico complesso e offre la possibilità di ottenere risultati molto specifici su set di dati di grandi dimensioni e non ordinati. Va inoltre ricordato che, a seconda del linguaggio di programmazione che stiamo utilizzando, il motore che fa funzionare le espressioni regolari può cambiare, e questo influisce sul modo in cui i comandi principali (che restano identici) vengono applicati.

Regex e SEO, come sfruttare le espressioni regolari

Di norma, le regex sono utili per evitare ogni tipo di lavoro ripetitivo, automatizzando alcune funzioni per risparmiare tempo e fatica.

Tra le possibili applicazioni delle Regex c’è la ridirezione di un set di pagine, l’URL rewriting su web server Apache oppure la convalida del formato di una e-mail inserita in un form. Per definizione, infatti, gli indirizzi e-mail infatti devono essere composti in questo modo: cominciare con una sequenza di caratteri alfanumerici e caratteri speciali, seguiti dal simbolo chiocciola, seguiti da altri caratteri alfanumerici, seguiti dal punto, seguiti da due o tre lettere: codificando questa regola informale in una regex otteniamo questo risultato,

^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$

oppure

^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$

https://www.evemilano.com/wp-content/uploads/2014/07/regex-esempi-700×260.png

Le espressioni regolari ci possono quindi aiutare anche in ambiti lontani da quelli dell’analisi testuale e negli ultimi anni stanno trovando spazio anche nella SEO, in particolare per eseguire dei redirect 301 all’interno del file .htaccess o per prendere il controllo dei tuoi dati e filtrarne le parti meno utili per l’analisi dei rendimenti, come ad esempio limitare le sorgenti di traffico a una sola fonte, un mezzo specifico o un’area geografica di riferimento, o ancora per esplorare le query utilizzate da diversi segmenti di utenti, individuare le query comuni a specifiche aree di contenuto, le ricerche che indirizzano il traffico verso parti specifiche del sito e altro ancora.

In tutti questi casi possiamo creare espressioni regex abbastanza semplici per ottenere un filtro “include” o “esclude” di base, oppure scrivere espressioni più lunghe che funzionano in modo simile al codice di programmazione per ottenere risultati complessi e molto specifici: familiarizzare con questo strumento ci aiuta a verificare che gli sforzi SEO stiano raggiungendo gli obiettivi, ambizioni e risultati che avevamo in mente.

Come usare le Regex in Google Analytics

Uno degli usi più comuni di regex per SEO è in Google Analytics, dove le espressioni regolari possono essere utilizzate per impostare filtri che permettono di visualizzare solo i dati a cui siamo interessati. In questo senso, l’espressione viene utilizzata per escludere i risultati, piuttosto che per generare un insieme di risultati di ricerca inclusivi.

In particolare, è possibile escludere dai report il traffico interno all’azienda o al network locale, impostando il filtro 192.168.*.* per rimuovere l’intero intervallo da 192.168.0.0 a 192.168.255.255, e in combinazione con le espressioni RegEx possiamo filtrare qualsiasi range di IP con una sola stringa.

Ancora, un’altra funzione utile è quella dei segmenti avanzati, che possono servire per frazionare le parole chiave non-branded così da poter analizzare nello specifico i risultati di attività SEO specifiche – la Regex in questo caso deve escludere tutte le keyword branded, nelle possibili varianti – o per filtrare il traffico proveniente dai social network.

Nel suo articolo, Taylor suggerisce esempio specifico di utilizzo più complesso delle espressioni regolari in Google Analytics, basato sui due marchi regex247 e regex365: se vogliamo filtrare i risultati che corrispondono a qualsiasi combinazione di URL che contengono questi nomi di brand, come regex247.biz o www.regex365.org, possiamo impostare un’espressione alternativa basilare, ovvero

.*regex247.*|.*regex365.*

che permette di escludere dai dati di Analytics tutti gli URL corrispondenti, inclusi i percorsi delle sottocartelle e gli URL di pagina specifici che appaiono su quei nomi di dominio.

Dal punto di vista pratico, prima di creare un filtro regex su Google Analytics bisogna impostare il tipo di rapporto desiderato (ad es. Comportamento > Contenuti del sito > Tutte le pagine o Acquisizione > Tutto il traffico > Sorgente / Mezzo); per visualizzare le opzioni di filtro avanzate dobbiamo fare clic su Avanzate accanto alla casella di ricerca che compare sotto il grafico, nella parte superiore della tabella dei dati.

Qui possiamo includere o escludere dati in base a una determinata dimensione o metrica: nell’elenco a discesa, dopo aver selezionato la dimensione, scegliamo “con espr. reg” (Matching RegExp) e quindi inseriamo l’espressione nella casella di testo.

Per creare un’espressione alternativa “o” in Google Analytics è sufficiente includere il carattere pipe (il simbolo del tratto verticale |) tra i segmenti appropriati dell’espressione. Le espressioni regolari di Google Analytics non supportano le istruzioni “e” all’interno di una singola espressione regolare, ma possiamo comunque aggiungere un altro filtro per ottenere lo stesso effetto.

In particolare, basta inserire un’altra regex sotto la prima facendo clic su “Aggiungi una dimensione o metrica” e aggiungendo tutte le espressioni utili, che saranno elaborate come un’unica istruzione logica “e” durante il filtraggio dei dati.

Consigli pratici per le Regex in Google Analytics

È ancora Taylor a chiarire alcuni aspetti circa l’utilizzo delle espressioni regolari in Analytics, segnalando innanzitutto che una funzione “scritta male può facilmente filtrare la maggior parte o tutti i dati, includendo una corrispondenza con caratteri jolly illimitata”.

La buona notizia è che, in molti casi SEO, il filtro viene applicato ai dati solo in fase di reporting e quindi, modificando o eliminando l’espressione regolare, è facile ripristinare la piena visibilità dei dati stessi.

Per evitare problemi, ad ogni modo, è meglio testare le espressioni regolari su una serie di strumenti di test online, al fine di vedere se ottengono il risultato previsto, eseguendo la “sandbox” delle regex prima di lasciarle libere nell’intero set di dati.

Come usare le Regex in Google Search Console

Dallo scorso aprile 2021 Google ha introdotto l’utilizzo di Regex anche nella Search Console, avviando il supporto alla sintassi Re2 per consentire ai webmaster di includere ed escludere dati all’interno dell’interfaccia utente, ampliando inoltre a giugno 2021 l’estensione al negative regex, che dà tutte le informazioni filtrate in base a corrispondenza esclusa.

Tra le note di utilizzo delle Regex in Search Console c’è il limite di caratteri per la funzione – 4096 caratteri, lunghezza in genere sufficiente alle necessità di analisi – oltre che una sintassi specifica, chiarita da questo documento su GitHub.

Le Regex in Search Console possono servire per filtrare query contenenti un brand specifico e le variazioni che gli utenti potrebbero digitare: ad esempio, per Facebook si potrebbe utilizzare le varianti (inclusi gli errori di ortografia)

.*facebook.*|face*book.*|fb.*|fbook.*|f*book.*

che aiutano anche a segmentare gli utenti che conoscono già il brand. Un altro utilizzo utile è filtrare gli utenti che trovano il sito attraverso termini di intenti commercial, come ad esempio

.*(migliore|top|alternativa|alternativa|vs|contro|recensione*).*

Più analiticamente, le Regex possono aiutarci a verificare la quantità e la tipologia di traffico verso una sezione del sito web e a comprendere l’intento degli utenti, come suggerisce una guida di Google.

Nel primo caso, possiamo usare una regex che si concentri su directory specifiche del sito, così da comprendere quali sono le query comuni per ciascuna delle aree di contenuti. Ad esempio, dice il documento, “se la struttura dell’URL è example.com/[product]/[brand]/[size]/[color] e volete visualizzare il traffico verso delle scarpe di colore verde, ma non vi interessa il brand o il numero, potete utilizzare shoes/.*/green”. Un’espressione regolare può anche servire ad analizzare i tipi di query che portano gli utenti a sezioni diverse del sito web: ad esempio, “potrebbero interessarvi le query contenenti parole che introducono una domanda; un filtro di query what|how|when|why potrebbe mostrare risultati che indicano che i vostri contenuti dovrebbero rispondere facilmente alle domande, magari tramite una sezione di domande frequenti”, mentre con altri filtri possiamo “controllare quali sono i nomi dei prodotti utilizzati più spesso o più raramente”.

Iscriviti alla newsletter

Prova SEOZoom

7 giorni di Prova Gratuita

Inizia ad aumentare il tuo traffico con SEOZoom!
TOP