logo-small
Funzionalità Prezzi
Notizie 0
Ultime notizie Visualizza tutti

Momentaneamente non disponibili. Torna in un secondo momento.

Visualizza tutti
Webinar 0
Prossimi webinar Visualizza tutti
Prossimi webinar

Spiacenti, non abbiamo trovato prossimi webinar previsti.

Vedi webinar registrati
Blog 0
Post recenti Visualizza tutti

Momentaneamente non disponibili. Torna in un secondo momento.

Visualizza tutti
Paolo Dello Vicario e Alessandro Camilletti

Progettare testi web in ottica SEO utilizzando SEMrush e PHP

Paolo Dello Vicario e Alessandro Camilletti
Progettare testi web in ottica SEO utilizzando SEMrush e PHP

Come scrivere testi web in prospettiva SEO sfruttando SEMrush e processi semi-automatizzabili in PHP

Vi proponiamo un metodo per progettare un testo in ottica SEO in modo semi-automatizzabile, partendo dall’analisi dei competitor e da qualche utile strumento che ci mette a disposizione SEMrush.

Il nostro primo obbiettivo è quello di studiare un processo, in larga parte implementabile sotto forma di codice (noi abbiamo usato PHP e una serie di API scelte, ma ovviamente il tutto può essere adattato e migliorato notevolmente), che ci permetta di ottenere un documento con una serie di indicazioni per scrivere testi web ben strutturati dal punto di vista SEO.

Ma il nostro secondo, vero obbiettivo è quello di stimolare una discussione su come si potrebbe implementare veramente un processo di questo tipo, fornendo sostanzialmente qui solo qualche spunto.

Quello che proponiamo è uno scheletro di base dal quale si potrebbe partire per sviluppare un processo più interessante e strutturato e aspettiamo i contributi di tutti voi per fare insieme qualcosa di più grande e interessante.

Il Processo: come creare testi SEO

Il processo che vogliamo proporre prevede di partire da una singola parola chiave, espanderla tramite SEMrush, studiare le SERP delle keyword trovate, analizzare i competitor e ordinarli secondo un parametro scelto, tirando poi fuori una serie di parametri quantitativi che ci permetteranno di comporre il nostro report di analisi.

Più nel dettaglio il processo prevede:

  1. Scelta della keyword;
  2. Estrazione delle related keyword tramite le API SEMrush;
  3. Estrazione dei primi 5 siti posizionati in tutte queste keyword;
  4. Creazione di una lista di competitor;
  5. Ordinamento della lista in base al posizionamento riscontrato e in base al numero di link ottenuti;
  6. Calcolo dei “pesi” da assegnare ai parametri che usciranno da ogni competitor (i competitor “migliori” avranno peso maggiore)
  7. Estrazione delle entities dai testi con le Dandelion API;
  8. Classificazione dei testi e calcolo della classificazione ottimale secondo i pesi calcolati al punto 6;
  9. Estrazione di altre informazioni (news per le keyword scelte, H1 dei top competitor, title dei top competitor, Schema.org, etc.)
  10. Generazione del report

Criticità

Il processo proposto ha una serie enorme di criticità, di cui siamo in parte consapevoli. Ci piacerebbe approfondire questo aspetto con voi, andando a progettare insieme un metodo più efficiente.

Alcune criticità identificate da noi, con le soluzioni possibili:

  1. Nel calcolo dei pesi, si assegna il peso del posizionamento in termini assoluti, senza badare alla competitività della keyword. Quindi, se un sito è posizionato 3° per una keyword competitiva, ottiene un punteggio minore di un sito posizionato 1° per una keyword meno competitiva. Inoltre si prendono sempre 5 competitor, qualsiasi sia la keyword. Si potrebbe migliorare introducendo un parametro di “profittabilità” come il banalissimo KEI, che serva sia a decidere quanti risultati prendere, sia che punteggio dar loro;
  2. Se lo stesso competitor è su più SERP, questo accumula più punteggi e la cosa non è controllabile. Può essere un bene (scrive un testo che si posiziona ovunque.. quindi ottimo così) o un male (non possiamo controllare questo fatto);
  3. Si usa come unico parametro negativo il numero di link. Si potrebbe migliorare usando la Domain Authority, per esempio;
  4. Le related keyword sono un po’ limitanti. In futuro, con l’uscita di API delle SEO Ideas, il processo potrebbe essere migliorato;
  5. Ci si basa unicamente sui competitor. Se i competitor fanno male, noi faremo male. Se i competitor si “perdono” qualcosa, noi ci perdiamo quel qualcosa.

Passiamo ora all’implementazione!

L’Implementazione: come utilizzare le API di SEMrush

Non possiamo riportare tutto il codice per motivi di praticità. Riporteremo alcune stringhe scelte, che illustrano le API di SEMrush e i passaggi chiave.

Per utilizzare le API utilizzeremo le cURL. Siccome dovremo usarle spesso conviene scrivere una funzione che ne semplifichi l’applicazione:

L'implementazione delle API di SEMrush per creare un testo web

Espansione della keyword: ottenere parole chiave affini

Abbiamo la nostra keyword di partenza (potremmo parlare di entità, ma per ovvi motivi in questo caso si parla di keyword, concetto ben più comprensibile a un software e quindi più facilmente automatizzabile/standardizzabile).

Una volta in possesso di un API Key, utilizzeremo le Analytics API di SEMrush per estrarre keyword affini da utilizzare nel nostro testo web.

Creare testi web: l'espansione della keyword

Documentazione (Related Keywords)

Come vediamo dalla documentazione, le API in genere restituiscono varie colonne di valori. Noi siamo interessati solo alle keyword correlate, non al traffico che esse portano, ad esempio. Chiediamo allora solo la prima colonna (export_columns=Ph).

Usiamo inoltre il database it (database=it), perché siamo interessati alle sole keyword usate in Italia. 

Le API ci restituiscono una lista incolonnata di keywords. Ogni riga di questa colonna è terminata da un “a capo”, ovvero un particolare carattere che in php viene chiamato PHP_EOL.

Per trasformare il responde delle API in un array php, utilizziamo explode, passandogli il response dell’API e il carattere tramite il quale intendiamo spezzare la lista di keyword, ovvero il PHP_EOL. 

Dal response dell’API togliamo il nome della colonna e gli spazi, sostituendoli con il carattere ‘+’ in modo da ottenere solo keyword del tipo parola1+parola2

Identificazione del contenuto più funzionale al posizionamento

Abbiamo una buona espansione del nostro concetto iniziale.

Quali, tra queste parole, dobbiamo usare e in che misura, affinché Google identifichi il nostro testo come si deve?

Utilizzeremo i testi di siti ben posizionati per le keyword trovate e identificheremo un metodo di valutazione.

Faremo ancora uso delle API di SEMrush per ottenere una lista di siti di cui analizzeremo il contenuto. Ci fermeremo alle prime 5 posizioni organiche per ogni keyword. 

Testi SEO: analizzare le prime 5 posizioni organiche per ogni keyword.

Documentazione (Phrase Organic)

Per ogni keyword andiamo ad estrarre tramite API Phrase Organic i primi 5 risultati organici e li mettiamo nell’array $page_list. Quindi chiediamo di mostrare solo 5 risultati (display_limit=5) e solo la colonna con la lista delle Url (export_columns=Ur).

Il resto è solo manipolazione dell’array: togliamo il nome della colonna, così come ci viene dato dalle API e l’ultimo carattere, sempre presente quando estraiamo una sola colonna dalle API.

Per ognuna delle pagine estratte dovremo trovare dei parametri di valutazione. I parametri che utilizziamo sono:

  • Posizionamento
  • Referring Domains (come parametro negativo.  Un sito che presenta testi web con meno Backlink, che si posiziona bene si suppone abbia una Seo OnPage migliore)

Abbiamo scelto questi due parametri per dare un’idea del procedimento. Siete ovviamente liberi di modificare l’algoritmo. Sarebbe ad esempio sicuramente utile aggiungere la PA, la Keyword Difficulty e il Search Volume.

Come detto, per ogni pagina ricaviamo i dati che ci interessano:

Posizionamento

Gli url estratti sono già ordinati secondo il posizionamento organico per quella specifica keyword.

Referring Domains

All’interno del foreach precedente, dove abbiamo lasciato il blocco [...Altro codice ...] andiamo ad iserire il seguente listato:

Creare testi web in ottica SEO: la lista di domini estratti

Documentazione (Referring Domains)

Vediamo che stavolta abbiamo chiesto, tramite le Referring Domains API, i backlinks_refdomains, filtrando tutte le colonne tranne la domain, che contiene il nome dei domini che puntano alla $page_url.

A noi interessa non il nome, bensì il numero, dunque contiamo gli elementi dell’array estratto con le API.

Infine riorganizziamo il nostro array in una tabella ($table1). Otterremo qualcosa del tipo:

Scrivere testi web in ottica SEO: organizzare gli array in una tabella

Ma con ovviamente molte più righe.

Trovare il migliore: individuare un riferimento per il nostro testo SEO

Questa è la fase centrale del processo. Il trucco è dare il giusto peso ai dati estratti in modo da individuare il sito con il miglior contenuto per l’argomento d’interesse.

Faccio le seguenti considerazioni:

1. Si suppone che un sito ben posizionato abbia fatto un buon lavoro (è un’ipotesi abbastanza spinta). Diamo una valutazione numerica a questo dato:

Punteggio dei risultati: individuare un riferimento per il nostro testo web

Il 5 nasce dal fatto che utilizziamo i primi 5 competitor. Utilizzando N competitor avremo un punteggio determinato da N – posizione. Notate che per le prime posizioni il punteggio è più alto. Chiamo questo punteggio 

Soci fondatori di ByTek Marketing Srls , si occupano da anni di SEO e Digital Marketing, con approccio sostanzialmente tecnico. Studenti rispettivamente di Fisica e Ingegneria Meccanica, con la passione comune per l’outdoor e la montagna, sono l’anima tecnica e organizzativa di ByTek Marketing.

2000 simboli rimanenti
Andrea Pelli
Innanzi tutto grazie per l'articolo: fino al punto 4 più o meno era quello che già facevo, ma il resto è veramente nuovo e stimolante, almeno per me, che non sono molto esperto. Un voto in più per avermi fatto scoprire Dandelion API ;)

Ho fatto subito un test su un set di 6 keywords abbastanza di nicchia, ma su scala internazionale, per una pagina con DA 22 e PA 15, il cui corrispondente italiano è già ben posizionato.

Premetto che non ho un account semrush pro, per cui non ho utlizzato le API, ma ho dovuto arrangiarmi con altri tool gratuiti o semi-gratuiti (tra cui alcune funzioni di semrush stesso).
Mi sono trovato subito a dover apportare alcuni accorgimenti, su cui mi piacerebbe avere la vostra opinione:
- nell'estrazione delle pagine, mi sono uscite alcune homepage, con un numero di RD estremamente alto rispetto alle pagine "interne", per cui le ho escluse dalla somma usata per il calcolo del P(2);
- ho ignorato le pagine di wikipedia, youtube, ebay che uscivano tra i primi 5 risultati organici nel calcolare il posizionamento delle pagine dei concorrenti.
Per quanto riguarda la formula per il calcolo di ρn, la mia matematica è un po' troppo arrugginita per darvi un parere e nel test che ho fatto il set di pagine non era tale da apprezzare la differenza, a mio parere. Però aggiungo che, avendo trovato url ricorrenti per le diverse kw, nel calcolare il ρn di ogni pagina ho fatto una media dei ρn che la pagina otteneva per le varie parole chiave.

Passando a Dandelion, ho usato il modello dati generico, che ai miei test si applicava anche poco, perché non sono riuscito a creare un modello personalizzato, comunque il metodo è chiaro. Mi chiedo: una volta individuate le pagine "migliori" della concorrenza, gli altri tool di dandelion - in particolare l'entity extractor e il similarity test - sono utili per ottimizzare il proprio testo, secondo voi?

Grazie, buon anno e complimenti ancora per l'articolo
Alessandro Camilletti
Andrea Pelli
Ciao Andrea, grazie per aver commentato e scusa per il ritardo nel risponderti, ma sono stato particolarmente occupato... poi con le vacanze, si sa... è facile perde la misura del tempo.

Le scelte che hai preso nello scartare alcuni siti mi sembrano assolutamente sensate.

Mi sembra giusto fare la media dei ρn nel caso un sito si presenti più volte per diverse keyword. Questo è sicuramente un punto da aggiungere al processo.

Riguardo ai ρn, che equazione hai usato? Hai provato la seconda? Dovrebbe risolvere il tuo problema. In sostanza puoi scegliere la "caduta" della curva a campana variando B nell'equazione. In questo modo dovresti riuscire ad apprezzare meglio la differenza di cui parli. La prima equazione l'ho messa solo "a scopo illustrativo" :)
Un'equazione lineare di quel tipo non enfatizza opportunamente le differenze.

Fammi sapere come va il tuo test, e auguri di buon anno in (molto) ritardo!
Andrea Pelli
Alessandro Camilletti
Grazie a te... come vedi dal tempo che ci ho messo a rispondere, siamo nella stessa barca.
Ho usato la prima equazione giusto per andare in fondo al procedimento. Se/quando mi ricapita l'occasione (e il tempo) per fare dei test con contenuti più generali, provo la seconda equazione e ti faccio sapere.
Rufino Lasaosa
Rufino Lasaosa
Hola David, yo utilizo mucho PicMonkey para ajustes de las imágenes online. Tiene de todo.
paulo martins
Hola, David, que tal? Pues yo utilizo "jpegmini" por indicación de @BrunoVD en @aulaCM y me va muy bien. Gracias por el post con sus muchos aportes!
Ramgon
De todos, he probado unos cuantos, me sigo quedando con Compressor.io, es preferible la compresión antes de subir al blog o web.

Saludos.
David Arenzana
Hola RaMGoN,
Compressor.io es una de las que da mejorar resultados a la hora de comprimir.
Yo también trato las imágenes antes de subirlas al blog. Todo lo que se puede controlar personalmente siempre es mejor.

Aunque también hay usuarios que prefieren la automatización al comprimir imágenes que ofrecen algunos pluguin dentro de los CMS.
Un abrazo.
Eva Añón
Eva Añón
¡Me ha encantado el post! Buscaba información precisamente sobre este tema y...¡bingo! Muy completo y con varias herramientas para probar. ¡Felicidades!
David Arenzana
Eva Añón
Hola Eva,
Me alegro de que te haya gustado y lo mejor de todo, servido!
Un abrazo!
Fernando Angulo
Muy útil el articulo Alex! Muchas gracias por el aporte y me acaban de recomendar jpegmini.com para añadir a la lista, creo que vale la pena probarlo.
David Arenzana
Fernando Angulo
Hola Fernando,

No conocía esa herramienta, iré a echar un vistazo, gracias por el aporte.

Un abrazo!
Alex Sanchez
Gran post crack!

Me quedo con WPSmush.it o EWWW Image optimizer también va bien :P

Un abrazo!
David Arenzana
Alex Sanchez
Hola, yo también me quedo con smush.it es la opción más sencilla de todas sobre todo ya que automatiza mucho el trabajo.
Aunque también te digo, que antes de subirla preparo bien la imagen ajustando el tamaño y el peso todo lo posible.

Un abrazo Alex!
Have a Suggestion?