Sono un vero e proprio linguaggio potente e versatile, utilizzato in vari campi dell’informatica e della programmazione. Le espressioni regolari, comunemente note come regex, sono una soluzione elegante per la manipolazione e la ricerca di stringhe di testo: nonostante l’apparente complessità, infatti, 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 o Regular Expression
Le Regex o espressioni regolari sono strumenti di pattern matching utilizzati per identificare e manipolare stringhe di testo.
Detta in altri termini, è 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 regex sono supportate da quasi tutti i linguaggi di programmazione moderni, inclusi Python, JavaScript e PHP, e sono integrate in molti strumenti di sviluppo e analisi dei dati, nonché in applicazioni di elaborazione testi. La loro sintassi può sembrare criptica all’inizio ma, una volta compresa, offre un livello di controllo e precisione che poche altre tecnologie possono eguagliare. Le regex sono infatti fondamentali anche per la validazione dei dati, la sostituzione di stringhe e la manipolazione di file di log, il che le rende un elemento essenziale per chiunque lavori con grandi quantità di dati o testi.
Non dobbiamo quindi pensare che siano qualcosa di utile solo per i programmatori: anche i professionisti del marketing digitale, gli analisti di dati e gli specialisti SEO possono trarre enormi benefici dal loro utilizzo, così come anche noi utenti “comuni”, come vedremo.
Regex significato e spiegazione semplice
Ripartiamo dalle definizioni di base.
Regex deriva dalla contrazione di “REGular EXpression” (a volte si trovano anche riferimenti quali regexp o RE), che in italiano possiamo tradurre come espressione regolare.
Sono composte da una combinazione di caratteri normali e metacaratteri, che insieme formano un linguaggio potente per descrivere schemi complessi di testo.
I caratteri normali rappresentano se stessi e sono utilizzati per cercare corrispondenze letterali nel testo: ad esempio, la regex “cane” troverà tutte le occorrenze della parola “cane” in un testo.
I metacaratteri, invece, hanno significati speciali e sono utilizzati per costruire modelli di ricerca più complessi. Alcuni dei metacaratteri più comuni includono
- il punto (.), che rappresenta qualsiasi carattere singolo;
- l’asterisco (*), che rappresenta zero o più occorrenze del carattere precedente;
- il punto interrogativo (?), che rappresenta zero o una occorrenza del carattere precedente.
Questi metacaratteri possono essere combinati per creare modelli di ricerca potenti e flessibili: ad esempio, la regex “c.ne” troverà tutte le parole di quattro lettere che iniziano con “c” e terminano con “ne”, come “cane” e “cine”. La comprensione dei metacaratteri e delle loro combinazioni è fondamentale per utilizzare efficacemente le espressioni regolari.
Dove si trovano le espressioni regolari
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).
A proposito di Microsoft Word, le regex (chiamate “wildcards” nella terminologia dell’applicazione) servono per la ricerca e la sostituzione avanzata: questo può essere particolarmente utile per chi lavora con documenti di grandi dimensioni e ha bisogno di trovare e sostituire pattern complessi di testo. Ad esempio, è possibile utilizzare le regex per trovare tutte le occorrenze di un certo formato di data o per sostituire tutte le parole che iniziano con una determinata lettera.
Più in generale, le regex sono supportate da quasi tutti i linguaggi di programmazione moderni, inclusi Python, JavaScript, PHP, Java e molti altri. Questo le rende uno strumento indispensabile per i programmatori che devono manipolare stringhe di testo o analizzare grandi quantità di dati. Ad esempio, in Python il modulo re fornisce funzioni per la ricerca, la sostituzione e la manipolazione delle stringhe utilizzando regex. In JavaScript le regex sono integrate direttamente nel linguaggio e possono essere utilizzate con metodi come match, replace, search, e split.
Oltre alla programmazione, le regex sono ampiamente utilizzate in strumenti di sviluppo e analisi dei dati: ad esempio, editor di testo avanzati supportano le regex per la ricerca e la sostituzione all’interno dei file. Questo è particolarmente utile per i programmatori e gli sviluppatori web che devono modificare grandi quantità di codice o contenuti. Anche strumenti di analisi dei dati come Google Analytics e Google Search Console supportano le regex per filtrare e segmentare i dati, permettendo di eseguire analisi più dettagliate e specifiche.
Gli esempi di espressioni regolari e della loro applicazione
La comprensione delle regex richiede un po’ di pratica: una volta padroneggiate, però, diventano uno strumento indispensabile per chiunque lavori con grandi quantità di testo o dati.
Questi pattern possono anche essere combinati e modificati per creare espressioni estremamente specifiche e potenti.
Per comprendere meglio come funzionano le regex, consideriamo un esempio pratico.
Supponiamo di avere un elenco di indirizzi email e di voler trovare tutti gli indirizzi che appartengono a un dominio specifico, come “example.com”. Una regex per questo compito potrebbe essere “\b[A-Za-z0-9.%+-]+@example.com\b”.
Analizziamo questa regex in dettaglio: il carattere “\b” rappresenta un confine di parola, assicurando che la ricerca inizi e termini su una parola completa. La sequenza “[A-Za-z0-9.%+-]+” rappresenta il nome utente dell’email, che può contenere lettere, numeri e alcuni caratteri speciali. Il simbolo “@” è un carattere letterale che separa il nome utente dal dominio. Infine, “example.com” rappresenta il dominio specifico, con il punto (.) preceduto da una barra inversa () per indicare che deve essere interpretato come un carattere letterale e non come un metacarattere.
Se eseguita manualmente, la ricerca di tutte le occorrenze di un indirizzo email in un documento di testo lungo centinaia di pagine sarebbe un compito arduo, lunghissimo e soggetto a errori. Le espressioni regolari, invece, permettono di definire un modello di ricerca che può identificare rapidamente e con precisione tutte le corrispondenze desiderate.
Ancora.
Una regex può essere utilizzata per trovare tutte le parole che iniziano con una lettera maiuscola, per validare un indirizzo email o per estrarre numeri da un testo. Ancora più semplicemente, la regex \d{4} corrisponde a qualsiasi sequenza di quattro cifre, mentre \b[A-Za-z]+\b corrisponde a qualsiasi parola composta solo da lettere.
Abbiamo un file di log di un server web e vogliamo estrarre tutti gli indirizzi IP che hanno effettuato accessi al server. Un indirizzo IP è generalmente composto da quattro gruppi di numeri separati da punti, come 192.168.1.1. La regex per identificare un indirizzo IP potrebbe essere qualcosa come \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b. Questa espressione regolare cerca quattro gruppi di uno a tre cifre, separati da punti. Il metacarattere \d rappresenta una cifra, {1,3} specifica che stiamo cercando da una a tre occorrenze del carattere precedente, e \b indica un confine di parola, assicurando che non ci siano caratteri alfanumerici adiacenti che potrebbero invalidare il match. Utilizzando questa regex, possiamo rapidamente estrarre tutti gli indirizzi IP dal file di log, risparmiando tempo e riducendo la possibilità di errori rispetto a una ricerca manuale.
Insomma, come dicevamo la capacità di padroneggiare le espressioni regolari può trasformare il modo in cui affrontiamo compiti complessi di manipolazione del testo, rendendoli più gestibili e meno dispendiosi in termini di tempo.
La storia delle Regex
Le espressioni regolari hanno una storia affascinante che risale a diversi decenni fa, ben prima che diventassero uno strumento comune nel mondo della programmazione e dell’informatica. Le regex sono nate nel contesto della teoria matematica e della linguistica formale, e la loro evoluzione è strettamente legata agli sviluppi nel campo dell’informatica teorica.
Secondo le ricostruzioni, la prima formulazione e formalizzazione risale agli anni Quaranta, ma è 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. Kleene stava lavorando sulla teoria degli automi e delle grammatiche formali, e sviluppò le espressioni regolari come un modo per descrivere i linguaggi formali. Il suo lavoro fu pubblicato nel 1951 in un articolo intitolato “Representation of Events in Nerve Nets and Finite Automata”, dove le espressioni regolari erano utilizzate per rappresentare insiemi di stringhe che potevano essere riconosciute da automi finiti, un concetto fondamentale nella teoria dei linguaggi formali e degli automi.
Negli anni ’60 e ’70, le regex iniziarono a trovare applicazioni pratiche nel campo dell’informatica. Uno dei primi utilizzi significativi delle espressioni regolari in un contesto informatico fu nel linguaggio di programmazione SNOBOL, sviluppato da David J. Farber, Ralph E. Griswold, e Ivan P. Polonsky presso la Bell Labs. SNOBOL includeva potenti capacità di manipolazione delle stringhe, e le espressioni regolari erano una parte fondamentale di queste capacità.
Il vero punto di svolta per le regex arrivò con l’introduzione del linguaggio di programmazione Unix negli anni ’70. Ken Thompson, uno dei creatori di Unix, inizialmente le utilizzò nell’editor QED nel 1966 e poi implementò le espressioni regolari nel comando ed, l’editor di testo di Unix. Successivamente, le regex furono integrate in molti altri strumenti Unix, come grep, sed, e awk, rendendole uno strumento standard per la manipolazione del testo e la ricerca di pattern. Questo consolidò ulteriormente l’importanza delle espressioni regolari nel mondo dell’informatica.
È poi 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.
Perché usare le regex
Le espressioni regolari sono strumenti incredibilmente potenti che offrono una vasta gamma di applicazioni pratiche. Di base, uno dei maggiori benefici sta nella loro capacità di semplificare e automatizzare compiti complessi di manipolazione del testo: le regex permettono di eseguire ricerche e sostituzioni avanzate con una precisione e una velocità che sarebbero impossibili da ottenere manualmente. Inoltre, la loro flessibilità e potenza consentono di affrontare problemi complessi con soluzioni eleganti e concise, riducendo il tempo e lo sforzo necessari per completare compiti ripetitivi e laboriosi.
In concreto, uno dei principali vantaggi delle espressioni regolari è che offrono la possibilità di eseguire ricerche complesse in modo estremamente efficiente. Con poche righe di codice, è possibile trovare e manipolare grandi quantità di testo, risparmiando tempo e riducendo la possibilità di errori.
Le regex sono anche altamente flessibili: possono essere utilizzate per cercare pattern specifici, sostituire testo, validare input e molto altro. Ad esempio, possono essere utilizzate per verificare che un indirizzo email sia nel formato corretto, per estrarre numeri di telefono da un documento, o per trovare tutte le occorrenze di una parola in un testo. Inoltre, le regex sono supportate da quasi tutti i linguaggi di programmazione moderni e sono integrate in molti strumenti di sviluppo e analisi dei dati, rendendole facilmente accessibili e utilizzabili in una vasta gamma di contesti.
Quali sono le principali applicazioni pratiche delle espressioni regolari
Le applicazioni pratiche delle espressioni regolari sono praticamente infinite.
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-.]+$
Nel campo della programmazione, le regex sono utilizzate per analizzare e manipolare stringhe di testo, rendendo più semplice la gestione di dati complessi. Ad esempio, possono essere utilizzate per estrarre informazioni specifiche da file di log, per validare input degli utenti in applicazioni web, o per parsare file di configurazione.
Nel mondo SEO, come vedremo, le regex sono utilizzate per analizzare i dati dei log dei server, filtrare URL specifici, e migliorare le strategie di crawling e indicizzazione. Ad esempio, una regex può essere utilizzata per identificare tutte le pagine di un sito web che contengono un determinato parametro URL, permettendo di ottimizzare la struttura del sito e migliorare il posizionamento nei motori di ricerca.
Anche nel campo della sicurezza informatica le regex sono utilizzate per rilevare pattern sospetti nei log di sistema, identificare vulnerabilità nei codici sorgente, e molto altro. La loro versatilità e potenza le rendono uno strumento indispensabile per chiunque lavori con grandi quantità di testo o dati, offrendo soluzioni eleganti ed efficienti a problemi complessi.
Come appare una regex: formato e sintassi
A spaventare chi non conosce questo linguaggio è probabilmente la forma, che a primo sguardo appare complessa e criptica; eppure, una volta acquisita familiarità con i loro componenti di base, le regex diventano strumenti estremamente potenti e versatili.
In genere, 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
Ogni elemento delle regex ha una funzione specifica.
I metacaratteri sono i componenti fondamentali delle regex e includono simboli come . (punto), * (asterisco), + (più), ? (punto interrogativo), e \ (backslash).
Il punto (.) corrisponde a qualsiasi carattere singolo, mentre l’asterisco (*) indica zero o più occorrenze del carattere precedente. Il più (+) rappresenta una o più occorrenze del carattere precedente, e il punto interrogativo (?) indica zero o una occorrenza del carattere precedente. “Il backslash (\) è utilizzato come carattere di escape per i metacaratteri, permettendo di trattarli come caratteri letterali.
Le classi di caratteri sono un altro elemento fondamentale delle regex. Una classe di caratteri è un insieme di caratteri racchiusi tra parentesi quadre, come [abc], che corrisponde a qualsiasi carattere a, b, o c. Le classi di caratteri possono anche includere intervalli, come [a-z], che corrisponde a qualsiasi lettera minuscola. I quantificatori sono utilizzati per specificare il numero di occorrenze di un carattere o di un gruppo di caratteri. Ad esempio, \d{3} corrisponde a esattamente tre cifre, mentre \d{1,3} corrisponde a una, due, o tre cifre.
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.
Come si scrive una regex
Costruire una regex efficace richiede una comprensione dei pattern che si desidera identificare e una conoscenza dei metacaratteri e dei quantificatori. Iniziamo con un esempio semplice, che ci permette di capire come combinare vari elementi delle regex per creare pattern complessi e specifici.
Supponiamo di voler trovare tutte le occorrenze di indirizzi email in un testo. Un indirizzo email tipico ha la forma username@domain.com. La regex per identificare un indirizzo email potrebbe essere qualcosa come \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b.
Analizziamo questa regex passo-passo:
- \b indica un confine di parola, assicurando che l’indirizzo email sia una parola completa.
- [A-Za-z0-9._%+-]+ corrisponde alla parte username dell’indirizzo email. [A-Za-z0-9._%+-] è una classe di caratteri che include lettere maiuscole e minuscole, numeri, e alcuni caratteri speciali. Il + indica che ci deve essere almeno un carattere.
- @è il simbolo della chiocciola, che deve essere presente in ogni indirizzo email.
- [A-Za-z0-9.-]+ corrisponde alla parte domain dell’indirizzo email. Simile alla parte username, questa classe di caratteri include lettere, numeri, punti e trattini.
- \.corrisponde a un punto letterale, necessario per separare il dominio dall’estensione.
- [A-Z|a-z]{2,} corrisponde all’estensione del dominio, che deve essere composta da almeno due lettere.
- \bindica un altro confine di parola, assicurando che l’indirizzo email sia una parola completa.
Gli strumenti per testare le regex
Non basta sapere scrivere le espressioni regolari, ma serve anche verificarne il corretto funzionamento. In realtà, esistono numerosi strumenti online che facilitano la creazione e il test delle espressioni regolari, rendendo più semplice e intuitivo il processo di apprendimento e utilizzo delle regex.
Questi strumenti offrono interfacce user-friendly che permettono di inserire una regex e un testo di esempio, visualizzando immediatamente i risultati del match.
Uno dei più popolari è Regex101, che supporta diverse sintassi di regex (inclusi PCRE, Python, e JavaScript) e offre una spiegazione dettagliata di ogni parte della regex. Questo è particolarmente utile per chi è alle prime armi e vuole comprendere meglio come funzionano le espressioni regolari. Regex101 include anche funzionalità avanzate come la possibilità di salvare e condividere le regex, rendendolo uno strumento prezioso per la collaborazione e l’apprendimento.
Un altro strumento molto utile è RegExr, che offre un’interfaccia intuitiva e una vasta libreria di esempi e risorse didattiche. RegExr permette di testare le regex in tempo reale, evidenziando i match nel testo di esempio e fornendo suggerimenti e spiegazioni per migliorare la comprensione delle espressioni regolari. Anche RegExr supporta diverse sintassi di regex e offre funzionalità avanzate come la possibilità di salvare e condividere le regex.
Altri strumenti online degni di nota includono RegexPal, RegexPlanet e Debuggex, ciascuno con le proprie caratteristiche uniche e funzionalità avanzate. Questi strumenti rendono più semplice e accessibile l’utilizzo delle regex, permettendo di testare e perfezionare le espressioni regolari in modo rapido ed efficiente.
Regex e SEO, come sfruttare le espressioni regolari
La capacità di identificare pattern specifici all’interno di grandi quantità di dati rende le regex particolarmente utili per l’analisi e l’ottimizzazione dei siti web. Quando utilizzate correttamente, le regex possono aiutare a migliorare l’efficienza del crawling, a identificare problemi di indicizzazione e a ottimizzare la struttura del sito, contribuendo così a migliorare il posizionamento nei motori di ricerca.
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 dati e filtrarne le parti meno utili per l’analisi dei rendimenti.
Ad esempio, possono servire a 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 modo da isolare e analizzare solo segmenti di traffico particolari. In questo senso, l’espressione viene utilizzata per escludere i risultati, piuttosto che per generare un insieme di risultati di ricerca inclusivi.
Questo è particolarmente utile per identificare pagine con alte percentuali di rimbalzo o per monitorare il rendimento di specifiche campagne di marketing.
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.
Facciamo ancora degli esempi pratici.
Supponiamo di voler filtrare tutte le URL che contengono un parametro specifico, come utm_source, per analizzare il traffico proveniente da diverse campagne di marketing. Una regex come .*utm_source=.* può essere utilizzata per identificare tutte le URL che contengono questo parametro, permettendo di isolare e analizzare il traffico generato dalle campagne. Un altro esempio potrebbe essere l’uso di regex per identificare pagine con determinati pattern di URL, come tutte le pagine di prodotto in un e-commerce. Una regex come /product/.* può essere utilizzata per filtrare tutte le URL che contengono /product/, permettendo di analizzare il rendimento delle pagine di prodotto. Questi sono solo alcuni esempi di come le regex possono essere utilizzate per migliorare l’analisi e l’ottimizzazione dei siti web, dimostrando la loro utilità e versatilità nel contesto del SEO.
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”.