#wmf15
Federico Sasso @vseostudio
CMS Proprietari creati da team
interni:
le best practices da seguire!
#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...
#wmf15
Federico Sasso @vseostudio
Alzate la mano
● Quanti sviluppatori web?
● Professionisti SEO?
● Web Marketers?
E quanti hanno avuto a che fare con CMS custom?
#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
#wmf15
Federico Sasso @vseostudio
Perché un CMS custom nel 2015?
#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
#wmf15
Federico Sasso @vseostudio
Perché un CMS custom nel 2015?
Obiettivo:
Rendere editabile, „SEOabile“...
...abbattendo i costi di integrazione
#wmf15
Federico Sasso @vseostudio
Perché un CMS custom nel 2015?
Vi sono casi in cui..
L'integrazione è economicamente
preferibile alla migrazione.
#wmf15
Federico Sasso @vseostudio
Editabile e „SEOabile“
Si dice:
„Content is King“
...e allora deve essere
editabile!
#wmf15
Federico Sasso @vseostudio
Mirate al minimo indispensabile
CMS con poche
funzioni,
ma che funzioni
#wmf15
Federico Sasso @vseostudio
Gli elementi minimi editabili
1)
Il titolo, prima di tutto!
Suggerimento:
sia title che H1
#wmf15
Federico Sasso @vseostudio
Gli elementi minimi editabili
2)
Il corpo principale
del testo di pagina
se poi si possono
aggiungere altri riquadri,
meglio
#wmf15
Federico Sasso @vseostudio
Gli elementi minimi editabili
3)
Possibilmente una
meta-descrizione
che sia visibile nella pagina
#wmf15
Federico Sasso @vseostudio
Gli elementi minimi editabili
4)
L'URL, se si riesce
#wmf15
Federico Sasso @vseostudio
Gli elementi minimi editabili
5)
Una voce di Menu
Ad affiancare il titolo
#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!
#wmf15
Federico Sasso @vseostudio
Mirate al minimo indispensabile
Per editare il Titolo basta un semplicissimo campo
di testo
#wmf15
Federico Sasso @vseostudio
Mirate al minimo indispensabile
Idem per la (meta) descrizione
#wmf15
Federico Sasso @vseostudio
CMS custom
Possiamo anche re-inventare la ruota,
...ma non i bulloni!
#wmf15
Federico Sasso @vseostudio
Mirate al minimo indispensabile
Scegliete un editor HTML il più facile e semplice
da integrare
Hint:
prevedete dei
„segnaposti“
#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
#wmf15
Federico Sasso @vseostudio
Importa da Word
Lo mettereste nel vostro CMS?
#wmf15
Federico Sasso @vseostudio
Importa da Word
Usare quel contenuto
HTML vuole dire fare sì
che le vostre pagine
passino da così:
#wmf15
Federico Sasso @vseostudio
Importa da Word
a così:
#wmf15
Federico Sasso @vseostudio
Importa da Word
…non è perfetta => “sanitize” prima di salvare
Esiste la funzione “Incolla da Word”
#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
#wmf15
Federico Sasso @vseostudio
Il DataBase
DB
#wmf15
Federico Sasso @vseostudio
Il DataBase
DB
Salvate sempre in Unicode!
#wmf15
Federico Sasso @vseostudio
Sistema di pre-produzione
DB DB
Organizzatevi con un sistema di pre-produzione (se non esiste già)
#wmf15
Federico Sasso @vseostudio
Importare contenuti in DB
● Lavorare su sistema pre-produzione
● automatizzato (scraper, parser html), o a
mano
DB
#wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
DB
Potremmo generare ogni volta le pagine estraendone i
testi dal database?
#wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
DB
Potremmo generare ogni volta le pagine estraendone i
testi dal database?
#wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
Non possiamo „colpire“ continuamente il database.
Il problema di performance ha tre soluzioni:
#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
#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
#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
#wmf15
Federico Sasso @vseostudio
Quando i contenuti saranno su DB
DB
Il database è un „collo di bottiglia“, occorre
minimizzarne gli accessi.
CACHE
#wmf15
Federico Sasso @vseostudio
Gli elementi base del CMS
Serve una mappa della struttura del sito!
#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
#wmf15
Federico Sasso @vseostudio
Gli elementi base del CMS
Dalla mappa il CMS può ricavare tutto il resto
Home
Prodotti Servizi Blog
#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
#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
#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
#wmf15
Federico Sasso @vseostudio
CMS custom e SEO
...e ora passiamo alla SEO
„L'è tutto sbagliato, l'è tutto da rifare!“
#wmf15
Federico Sasso @vseostudio
CMS custom e SEO
Si parte da un'analisi SEO on-site con il crawler
preferito
#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
#wmf15
Federico Sasso @vseostudio
CMS custom e SEO
#wmf15
Federico Sasso @vseostudio
CMS custom e SEO
Per titoli, meta descrizioni e testi, abbiamo già
lavorato a una soluzione:
#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
#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}
#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ù...
#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“
#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...
#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!
#wmf15
Federico Sasso @vseostudio
Riepilogo
● CMS “custom“: cosa e perché
● Quando il CMS ancora non c'è
(o c'è solo parzialmente)
● CMS custom e SEO
#wmf15
Federico Sasso @vseostudio
Domande e Risposte

[IT] CMS Proprietari creati da teaminterni: le best practices da seguire!