Come usare le espressioni regolari

In questo tutorial spiegheremo come utilizzare le espressioni regolari all'interno del Toolbox SISTRIX, in modo che tu possa sfruttare al meglio i filtri nelle tabelle di URL, Snippet e keyword.

Che cos’è un’espressione regolare?

Un’espressione regolare (o Regex) viene utilizzata per controllare o verificare stringhe di codici, in particolare per filtrare degli elementi e trovare delle corrispondenze. Le Regex possono essere utili, ad esempio, negli scenari seguenti:

  • In Analytics: per segmentare il traffico
  • In Htaccess:  per riscrivere gli URL in modo più efficiente
  • Su SISTRIX: per filtrare i Report contenenti URL, Snippet o keyword

Le espressioni regolari possono essere utilizzate in diversi linguaggi di programmazione, ma in questo tutorial ci baseremo su Perl, che è la sintassi su cui si basa la funzionalità Regex già disponibile nel Toolbox SISTRIX.

Come posso creare delle espressioni regolari?

Lo faremo attraverso l’uso di caratteri, raggruppamenti, quantificatori e classi, cioè attraverso la sintassi necessaria per poter creare delle espressioni:

Sintassi per la creazione di espressioni regolari
CarattereAzioneEsempio
?Cerca il carattere precedente 1 o 0 voltehttps?
*Cerca il carattere precedente 0 o più volte30*
+Cerca il carattere precedente 1 o più volte[0-9]+
|Cerca un elemento o un altro ("or")(jpg|jpeg)
^Indica l’inizio della stringa^https
$Indica la fine della stringahtml$
.Cerca qualsiasi carattere (carattere jolly)4..
\Non interpreta un carattere speciale (caratteri di escape)\/
Raggruppamenti per le espressioni regolari
RaggruppamentoAzioneEsempio
( )Prende un contenuto specifico(SISTRIX)
Coincide con SISTRIX
[ ]Prende i caratteri all'interno della parentesi[0-9]
Coincide con qualsiasi carattere che sia un numero
[a-z]
Coincide con qualsiasi lettera minuscola
{ }Indica il numero di ripetizioni minimo o massimo[0-9]{2}
Coincide con qualsiasi numero ripetuto due volte

.{1,3} Coincide con qualsiasi carattere ripetuto da 1 a 3 volte

Per questo tutorial non useremo i quantificatori, ma riteniamo interessante che tu sappia della loro esistenza per altri usi:

Quantificatori per le espressioni regolari
QuantificatoreAzione
\wCerca un carattere di tipo lettera, cifra o _
\dCerca un carattere di tipo cifra
\sCerca un carattere di tipo spazio
\bCorrisponde all'inizio o alla fine di una parola
\WCerca un carattere diverso da lettera, cifra o _
\DCerca un carattere diverso dal tipo cifra
\SCerca un carattere diverso dal tipo spazio

Esempi SEO con espressioni regolari

Per gli esempi che proponiamo dovrai accedere alla sezione “Keyword” o “URL” del Toolbox e utilizzare i filtri “Keyword”, “URL”, “Titolo” o “Description”.

Filtrare le keyword con le espressioni regolari

Per accedere a questa funzione basterà analizzare un dominio 1, accedere alla sezione Keyword 2 e selezionare il menù dei filtri 3.

Dopodiché, usa il filtro “Keyword > Espressione regolare” 4.

Di seguito proporremo diversi casi d’uso in cui potrai applicare queste espressioni per ottimizzare l’analisi delle keyword e dei concorrenti nei tuoi progetti.

Includere o escludere il nome di un brand

Immagina di possedere un brand conosciuto con più nomi diversi: potresti creare un’espressione regolare per raggruppare tutti i termini che vengono utilizzati per indicarlo. Ad esempio decathlon.it possiede numerose keyword di brand, come:

decatlon, decathlon, quechua, kalenji, triboard

Per cui potresti usare la seguente espressione:

.*(decatlon|decathlon|quechua|kalenji|triboard).*

I risultati che vedresti sarebbero i seguenti:

È anche possibile creare un filtro per escludere le keyword di brand: la seguente espressione ti permetterà ad esempio di vedere solo parole chiave generiche:

^(?!.*(decatlon|decathlon|quechua|kalenji|triboard).*?)

Includere o escludere errori del brand

Non è raro trovare dei brand che vengono spesso pronunciati o scritti in modo sbagliato, come Ryanair.

Di seguito abbiamo riportato degli esempi di keyword che sono state digitate dagli utenti per cercare questa compagnia aerea:

  • ryanair
  • rayaner
  • ryan ir
  • rayan ir
  • rayana eir
  • raya nair
  • rayan ari
  • rayar air

Abbiamo identificato più di 35 nomi di brand che è possibile rilevare usando un’espressione regolare.

Per includere tutte le varianti del brand potrai usare la Regex seguente:

(r|t)[hzeuayi]?[naiy].? [an]?[airn].?(r|t|air)?(e|lines|)?(line|ir)?

Invece, per escludere tutte le varianti del brand:

^((?!(r|t)[hzeuayi]?[naiy].?[an]?[airn].?(r|t|air)?(e|lines| )?(line|ir)?).)*$

Naturalmente potrai utilizzare anche altri filtri, come “contiene”, “non contiene”, “finisce con” o “inizia con” per perfezionare la ricerca.

Includere o escludere keyword che terminano con parole specifiche

Per cercare una singola keyword è sufficiente utilizzare un semplice filtro, ma se desideri ottenere determinate condizioni, ad esempio vedere tutte le keyword che iniziano con “compra” e terminano con “online”, potrai usare:

^compra.*online$

Questo, applicato ad uno store online come zalando.it, restituirà i seguenti risultati:

Includere o escludere keyword che iniziano con parole specifiche

Può anche essere particolarmente interessante, dal punto di vista di un comparatore, filtrare le keyword che contengono diversi nomi di brand.

Ad esempio, potresti creare un’espressione regolare che raggruppa, in base ai criteri che preferisci, qualsiasi keyword che inizia con uno dei brand che appaiono tra parentesi:

^(iphone|apple|samsung|huawei).*

Allo stesso modo, puoi usarne una per escluderli:

^(?!(iphone|apple|samsung|huawei).*)

Includere o escludere keyword relative ad attributi specifici

Faremo un esempio prendendo un attributo presente in qualsiasi progetto: il prezzo.

Esistono numerose query di ricerca che fanno riferimento al prezzo, come: “conveniente”, “economico”, “offerta”, “outlet”, “coupon”, “sconto”, “low cost”, ecc.

Se desideri escludere questi termini, potrai usare la seguente espressione:

.*(conveniente|economico|offerta|prezzo).*

Sfruttando le colonne dinamiche della tabella, potrai ordinare i dati per volume di ricerca, in ordine decrescente, semplicemente facendo click sull’intestazione della colonna.

In altri casi potrai usare anche altri attributi, come colori, forme, dimensioni, destinatari, ecc.

Includere o escludere le keyword che contengono nomi di città

In molti progetti è necessario tracciare la presenza locale: un modo utile per farlo è usare una regex per raggruppare province, città o località.

In questo esempio utilizzeremo la lista delle 8 città più grandi d’Italia per creare un’espressione regolare che filtrerà le keyword che contengono uno di questi capoluoghi.

.*(roma|milano|napoli|torino|palermo|genova|bologna|firenze).*

Lo stesso filtro può essere utilizzato per trovare solo quelle keyword che non possiedono al loro interno una di queste città:

^(?!(.(roma|milano|napoli|torino|palermo|genova|bologna|firenze).))

Concatenare logicamente più espressioni regolari

I filtri nel Toolbox possono essere concatenati insieme attraverso l’uso degli operatori “E” o “O”, in modo da creare delle combinazioni di filtri ancora più precise.

Per selezionare questo filtro esperto dovrai cliccare sul riquadro “Opzioni”, che si trova sopra ai normali filtri automatici.

Potresti per esempio cercare tutte quelle keyword dove compare almeno un termine tra “scarpe”, “borse” o “camicie” e che, allo stesso tempo, comprendono anche un nome di città tra quelle elencate in precedenza.

Filtrare gli URL con le espressioni regolari

I passaggi da seguire per utilizzare i filtri negli URL sono gli stessi di quelli delle keyword, l’unica differenza è che dovrai selezionare “URL > Espressioni regolari”.

Ora che sappiamo come utilizzare le espressioni regolari per filtrare le keyword, ci focalizzeremo su altri casi d’uso SEO relativi ai filtri degli URL.

Includere o escludere sottodomini

Di seguito abbiamo inserito alcuni casi d’uso basilari per analizzare un dominio completo e raggruppare gli URL in base a dei sottodomini strategici.

(www|supporto)

Ad esempio, possiamo utilizzare un filtro per separare i sottodomini puramente transazionali, escludendo tutte le keyword informative provenienti da blog o FAQ.

^(?!.*(www|supporto).*?)

Includere o escludere URL che terminano o non terminano con /

Se desideri visualizzare solo gli URL che compongono la homepage di un dominio.com, potrai utilizzare il filtro seguente:

^.*.com/$

Se invece preferisci escludere esattamente questi URL della homepage basterà inserire:

^(?!(.*.com/$))

Per creare un filtro generale che listi tutti gli URL che terminano con uno slash (/ ) utilizza la Regex seguente:

.*/$

Ad esempio, per valutare quanti URL di apple.it terminano con uno slash (/), basterà digitare il dominio nella barra di ricerca (1), cliccare sulla voce “URL” nel menù a sinistra (2), aggiungere un filtro (3) e selezionare l’opzione “URL > Espressione regolare” (4).

Questa procedura può essere attuata naturalmente anche per gli URL che non terminano con uno slash, usando l’espressione seguente:

^(?!(.*/$))

Includere o escludere URL che contengono numeri

Potrai anche giocare con la sintassi degli URL per identificare quali di essi contengono numeri, in modo da includerli o escluderli:

.*-[0-9].*
^(?!(.*-[0-9].*))

Se desideri qualcosa di più specifico e sai che alcuni URL terminano con un dato numero, potrai includerli o escluderli in questo modo:

.*-[0-9]+$
^(?!(.*-[0-9]+$))

Nel caso seguente la nostra richiesta è invece stata quella di filtrare tutte le stringhe contenenti una serie di 8 numeri consecutivi:

.*[0-9]{8}.html$
^(?!(.*[0-9]{8}.html$))

Includere o escludere URL con un formato specifico

Possiamo usare le Regex anche per filtrare i formati di URL, ad esempio htm, html o PDF.

Questo passaggio è reso ancora più semplice dai filtri “termina con” o “contiene”.

.*htm.?$
.*pdf$

Per escludere determinati formati di URL troverai utili le Regex seguenti:

^(?!(.*htm.?$).)
^(?!(.*pdf.?$).)

Potrai usare diversi formati nella stessa espressione, che avranno molto più valore e ti permetteranno di evitare concatenamenti di filtri. Per vedere tutti i documenti HTML potrai quindi usare il filtro seguente:

.*(htm|html)$

Un’altra modalità d’uso di questa espressione è legata alle immagini, che possono essere filtrate in questo modo:

.*(jpg|jpeg|gif|png)$

Infine, potrai anche combinare i formati da escludere:

^(?!(.*(htm|html)$).)
^(?!(.*(jpg|jpeg|gif|png)$).)

Includere o escludere URL da mercati non corretti

Se esistono degli URL che vengono utilizzati per mercati diversi, è importante fare in modo che essi non si posizionino per un indice di ricerca sbagliato. Ad esempio degli URL inglesi o spagnoli potrebbero erroneamente posizionarsi per il mercato di ricerca italiano.

Se prendiamo ad esempio i seguenti URL:

  • Spagnolo per la Spagna / es_es /
  • Inglese per il Regno Unito / en_gb /
  • Inglese per gli Stati Uniti / en_us /
  • Italiano per l’Italia / it_it /

Possiamo usare una Regex per filtrare gli URL che non appartengono al mercato italiano:

^(?!(.*[it]_[a-z].*)|(.*[a-z]_[it].*).)

Nell’esempio vediamo che appare anche la homepage 1.

Per rifinire ulteriormente l’espressione ed escludere la home, possiamo estenderla in questo modo:

^(?!(.*.com/$)|(.*[it]_[a-z].*)|(.*[a-z]_[it].*).)

Conclusioni

I parametri mostrati ti permetteranno di trovare usi specifici dove utilizzare le espressioni regolari e rendere più efficiente le tue analisi SEO.

Potrai continuare a testare ed esercitarti utilizzando strumenti come https://www.regextester.com/ oppure usando direttamente i filtri delle sezioni “URL”, “Keyword” e “Snippet” nel Toolbox SISTRIX.

Sebbene non offriamo alcun tipo di supporto per le Regex nel Toolbox, continueremo ad aggiornare questo tutorial in futuro con nuovi, utili casi d’uso e analisi SEO.