"Non reinventare la ruota", ti dicono. Eppure a volte con i CMS è proprio quello che capita.
Guida alla sopravvivenza per il professionista SEO.
Web Marketing Festival 2015, Rimini 19-20 Giugno 2015
2. #wmf15
Federico Sasso @vseostudio
Mi presento
Federico Sasso
● Architetto software
● Ex in-house SEO
● Moderatore Forum GT
● Autore di software SEO
● ...“smanettatore” di motori CMS, forum, wiki, blog...
3. #wmf15
Federico Sasso @vseostudio
Alzate la mano
● Quanti sviluppatori web?
● Professionisti SEO?
● Web Marketers?
E quanti hanno avuto a che fare con CMS custom?
4. #wmf15
Federico Sasso @vseostudio
Oggi vi parlerò di CMS “custom”
● CMS “custom“: cosa e perché
● Quando il CMS ancora non c'è
(o c'è solo parzialmente)
● CMS custom e SEO
6. #wmf15
Federico Sasso @vseostudio
Perché un CMS custom nel 2015?
● sistemi legacy su cui si è investito
● integrazione con sistemi interni
(aree riservate, CRM non web, etc..)
● mancanza supporto feature particolari in
sistemi industriali/open
● licenze open non compatibili con uso
● licenze open non compatibili con policy
aziendali (licenze contaminanti, supporto
tecnico percepito mancante)
● skill team interno diverse, learning curve ripida
● barriere di mentalità aziendale
● versioni web server, OS, etc.. non compatibili,
● limitazioni eventuali hoster
12. #wmf15
Federico Sasso @vseostudio
Gli elementi minimi editabili
2)
Il corpo principale
del testo di pagina
se poi si possono
aggiungere altri riquadri,
meglio
16. #wmf15
Federico Sasso @vseostudio
Mirate al minimo indispensabile
Rendete la vita
semplice anche a chi
per mestiere non
guarda mai la SERP
...o questa
degraderà nel
tempo!
20. #wmf15
Federico Sasso @vseostudio
Mirate al minimo indispensabile
Scegliete un editor HTML il più facile e semplice
da integrare
Hint:
prevedete dei
„segnaposti“
21. #wmf15
Federico Sasso @vseostudio
Mirate al minimo indispensabile
Di editor HTML con licenza Open Source
agevole vi è pieno.
Es: CKEditor,
TinyMCE, etc...
Facili da
introdurre anche
con policy
aziendali ostili
all'OSS
26. #wmf15
Federico Sasso @vseostudio
Editing dei contenuti
Attenti ai Timeout!
La sessione di lavoro „scade“ e chi edita rischi di
perdere il lavoro fatto.
Hint: usare „refresher“ di
sessione
33. #wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
Non possiamo „colpire“ continuamente il database.
Il problema di performance ha tre soluzioni:
34. #wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
Non possiamo „colpire“ continuamente il database.
Il problema di performance ha tre soluzioni:
1) Caching
35. #wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
Non possiamo „colpire“ continuamente il database.
Il problema di performance ha tre soluzioni:
1) Caching
2) Caching
36. #wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
Non possiamo „colpire“ continuamente il database.
Il problema di performance ha tre soluzioni:
1) Caching
2) Caching
3) Caching
39. #wmf15
Federico Sasso @vseostudio
Gli elementi base del CMS
La mappa è una descrizione di una stuttura gerarchica
Home Page
Prodotti Servizi Blog
Prod. A Prod. A Serv. A Serv. B Post A Post 2
41. #wmf15
Federico Sasso @vseostudio
Gli elementi base del CMS
● Mappa „statica“, tipicamente descritta in XML
Struttura definita rigidamente
● Mappa „dinamica“, tipicamente descritta su DB
Struttura espandibile in orizzontale e/o verticale
● E vie di mezzo
42. #wmf15
Federico Sasso @vseostudio
Gli elementi base del CMS
I nodi della mappa possono essere generalizzati
Home Page
Prodotti Servizi Blog
Prod. 1...N Serv. 1...N Post 1...N
43. #wmf15
Federico Sasso @vseostudio
Gli elementi base del CMS
...e localizzati
Prodotti Servizi Blog
Prod. 1...N Prod. 1...N Post 1...N
Home EN
Products
Prodotti
Services
Servizi
Blog EN
Blog
Prod. 1...N Serv. 1...N Post 1...N
Home IT
46. #wmf15
Federico Sasso @vseostudio
CMS custom e SEO
● Titoli, tutti uguali (spesso il nome brand)
● No meta description
● Testi da rifare (annegati nel codice HTML)
● Url duplicati
● Grande profusione di parametri querystring
● Nomi parametri con case diverso (IIS)
● Nomi parametri confondibili con ID di sessione
● Localizzazione lingua con variabili di sessione
● Localizzazione lingua con parametri querystring
● Redirect da root a versioni localizzate errati
(301, refresh, js)
● Dipendenza da accept-language HTTP header
● Link in Javascript
49. #wmf15
Federico Sasso @vseostudio
CMS custom e SEO
Se non riusciamo a liberarci dei parametri QS, possiamo
controllarli definendoli nella mappa, in termini di nomi
Home Page
Prodotti Servizi Blog
Prod
?prod-id={0}
Serv
?serv-id={0}
Post
?post-id={0}
..e li useremo per generare gli URL canonical
50. #wmf15
Federico Sasso @vseostudio
CMS custom e SEO
Se l'elenco dei parametri di QueryString è definito dal
nodo, grazie a tecniche di Url Rewriting possiamo
passare da:
/Prodotti/Prod?prod-id=42
a un URL più „SEO/human friendly“:
/Prodotti/42
Prodotti
Prod
?prod-id={0}
51. #wmf15
Federico Sasso @vseostudio
CMS custom e SEO
Localizzare i test impostando in
base a variabili di sessione la
lingua ...
...è il male!
/Prodotti/42 (lingua Italiana)
/Prodotti/42 (lingua Inglese)
Le lingue si mischieranno e
nessuno comprenderà più...
52. #wmf15
Federico Sasso @vseostudio
CMS custom e SEO
Nelle pagine che possono mostrare
lingue diverse, l'indicazione della
lingua deve essere nell'URL:
/Prodotti/Prod?prod-id=42&lang=it
/it/Prodotti/Prod?prod-id=42
Hint: è di molto preferibile la
„cartella“
53. #wmf15
Federico Sasso @vseostudio
CMS custom e SEO
● I bot non esibiscono lingua
● La lingua del browser non è
affidabile
● E nemmeno l'IP
● Se lo fai, sia un 302
● E fallo solo la prima volta!
Il redirect in base alla lingua dell'utente, se proprio lo si vuole fare...
54. #wmf15
Federico Sasso @vseostudio
Conclusioni
Fare un CMS custom
● Può avere senso
economicamente
● (minimale) non è poi
così difficile
● Migrare per passi
● Occhio alle prestazioni
● E occhio alla SEO!