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

56
#wmf15 Federico Sasso @vseostudio CMS Proprietari creati da team interni: le best practices da seguire!

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

#wmf15Federico Sasso @vseostudio

CMS Proprietari creati da team interni:

le best practices da seguire!

#wmf15Federico 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...

#wmf15Federico Sasso @vseostudio

Alzate la mano

● Quanti sviluppatori web?● Professionisti SEO?● Web Marketers?

E quanti hanno avuto a che fare con CMS custom?

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

Perché un CMS custom nel 2015?

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

Perché un CMS custom nel 2015?

Obiettivo:

Rendere editabile, „SEOabile“...

...abbattendo i costi di integrazione

#wmf15Federico Sasso @vseostudio

Perché un CMS custom nel 2015?

Vi sono casi in cui..

L'integrazione è economicamente preferibile alla migrazione.

#wmf15Federico Sasso @vseostudio

Editabile e „SEOabile“

Si dice:

„Content is King“

...e allora deve essere editabile!

#wmf15Federico Sasso @vseostudio

Mirate al minimo indispensabile

CMS con poche funzioni,

ma che funzioni

#wmf15Federico Sasso @vseostudio

Gli elementi minimi editabili

1)

Il titolo, prima di tutto!

Suggerimento:sia title che H1

#wmf15Federico Sasso @vseostudio

Gli elementi minimi editabili

2)

Il corpo principale del testo di pagina

se poi si possonoaggiungere altri riquadri,

meglio

#wmf15Federico Sasso @vseostudio

Gli elementi minimi editabili

3)

Possibilmente unameta-descrizione

che sia visibile nella pagina

#wmf15Federico Sasso @vseostudio

Gli elementi minimi editabili

4)

L'URL, se si riesce

#wmf15Federico Sasso @vseostudio

Gli elementi minimi editabili

5)

Una voce di Menu

Ad affiancare il titolo

#wmf15Federico 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!

#wmf15Federico Sasso @vseostudio

Mirate al minimo indispensabile

Per editare il Titolo basta un semplicissimo campo di testo

#wmf15Federico Sasso @vseostudio

Mirate al minimo indispensabile

Idem per la (meta) descrizione

#wmf15Federico Sasso @vseostudio

CMS custom

Possiamo anche re-inventare la ruota,

...ma non i bulloni!

#wmf15Federico Sasso @vseostudio

Mirate al minimo indispensabile

Scegliete un editor HTML il più facile e semplice da integrare

Hint:

prevedete dei „segnaposti“

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

Importa da Word

Lo mettereste nel vostro CMS?

#wmf15Federico Sasso @vseostudio

Importa da Word

Usare quel contenuto HTML vuole dire fare sì che le vostre pagine passino da così:

#wmf15Federico Sasso @vseostudio

Importa da Word

a così:

#wmf15Federico Sasso @vseostudio

Importa da Word

…non è perfetta => “sanitize” prima di salvare

Esiste la funzione “Incolla da Word”

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

Il DataBase

DB

#wmf15Federico Sasso @vseostudio

Il DataBase

DB

Salvate sempre in Unicode!

#wmf15Federico Sasso @vseostudio

Sistema di pre-produzione

DB DB

Organizzatevi con un sistema di pre-produzione (se non esiste già)

#wmf15Federico Sasso @vseostudio

Importare contenuti in DB

● Lavorare su sistema pre-produzione● automatizzato (scraper, parser html), o a

mano

DB

#wmf15Federico Sasso @vseostudio

Quando i contenuti saranno su DB

DB

Potremmo generare ogni volta le pagine estraendone i testi dal database?

#wmf15Federico Sasso @vseostudio

Quando i contenuti saranno su DB

DB

Potremmo generare ogni volta le pagine estraendone i testi dal database?

#wmf15Federico Sasso @vseostudio

Quando i contenuti saranno su DB

Non possiamo „colpire“ continuamente il database.

Il problema di performance ha tre soluzioni:

#wmf15Federico Sasso @vseostudio

Quando i contenuti saranno su DB

Non possiamo „colpire“ continuamente il database.

Il problema di performance ha tre soluzioni:

1) Caching

#wmf15Federico 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

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

Quando i contenuti saranno su DB

DB

Il database è un „collo di bottiglia“, occorre minimizzarne gli accessi.

CACHE

#wmf15Federico Sasso @vseostudio

Gli elementi base del CMS

Serve una mappa della struttura del sito!

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

Gli elementi base del CMS

Dalla mappa il CMS può ricavare tutto il resto

Home

Prodotti Servizi Blog

#wmf15Federico Sasso @vseostudio

Gli elementi base del CMS

● Mappa „statica“, tipicamente descritta in XMLStruttura definita rigidamente

● Mappa „dinamica“, tipicamente descritta su DBStruttura espandibile in orizzontale e/o verticale

● E vie di mezzo

#wmf15Federico 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

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

CMS custom e SEO

...e ora passiamo alla SEO

„L'è tutto sbagliato, l'è tutto da rifare!“

#wmf15Federico Sasso @vseostudio

CMS custom e SEO

Si parte da un'analisi SEO on-site con il crawler preferito

#wmf15Federico 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

#wmf15Federico Sasso @vseostudio

CMS custom e SEO

#wmf15Federico Sasso @vseostudio

CMS custom e SEO

Per titoli, meta descrizioni e testi, abbiamo già lavorato a una soluzione:

#wmf15Federico 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

#wmf15Federico 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}

#wmf15Federico 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ù...

#wmf15Federico 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“

#wmf15Federico 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...

#wmf15Federico 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!

#wmf15Federico Sasso @vseostudio

Riepilogo

● CMS “custom“: cosa e perché

● Quando il CMS ancora non c'è(o c'è solo parzialmente)

● CMS custom e SEO

#wmf15Federico Sasso @vseostudio

Domande e Risposte