1
SIMONE RINZIVILLO
CTO & Co-Founder, Mamadigital
THE LATEST IN ADVANCED TECHNICAL SEO
#smxmilan
SMX Milan 2015 – 12 novembre
ABOUT
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 2
Simone Rinzivillo CTO & Co-Founder, Mamadigital
@srinzivillo
simone.rinzivillo@mamadigital.com
Con 11 anni esperienza nel Search Engine Marketing, è il responsabile
del reparto digital marketing di Mamadigital di cui coordina le strategie
di Search Marketing per importanti clienti italiani ed internazionali.
Mamadigital è una agenzia indipendente, focalizzata nel Marketing
digitale, con una fortissima specializzazione nel Search Engine Marketing
e nella Comunicazione online innovativa. (www.mamadigital.com)
LESSON 1
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 3
COMUNICARE CON I MOTORI DI RICERCA
COMUNICARE CON TUTTI I SEARCH ENGINES
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 4
Il Digital Marketing è la prima opportunità di internazionalizzazione
Dobbiamo confrontarci con tutti i Motori di ricerca
COMUNICARE CON TUTTI I SEARCH ENGINES
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 5
La Google Search Console consente di interfacciarci con uno solo di
questi.
COMUNICARE CON TUTTI I SEARCH ENGINES
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 6
Perché sottomettere la sitemap XML
ad ogni singolo Motore di Ricerca quando
posso gerstirli tutti con un’unica soluzione?
…
Sitemap: http://www.mamadigital.com/sitemap.xml
…
All’interno del file robots.txt
COMUNICARE CON TUTTI I SEARCH ENGINES
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 7
Bloccare l’indicizzazione di URL contententi uno specifico parametro in
Querystring?
Oppure, all’interno del file robots.txt
http://www.xyz.com/it/uomo/abbigliamento-uomo.html?&price=-1000
user-agent: *
disallow: *?*price=
…
COMUNICARE CON TUTTI I SEARCH ENGINES
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 8
Le console dei Motori di Ricerca sono strumenti di grande opportunità
monitorare del ciclo di vita dei siti all’interno dei Search Engines
ü Verificare come il nostro sito viene indicizzato
ü Monitorare i processi di crawling
ü Monitorare i nostri sviluppi nei risultati di ricerca
COMUNICARE CON I MOTORI DI RICERCA
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 9
Ottimizzare un sito per i Motori di Ricerca significa renderlo
comprensibile e compatibile ai software di analisi dei Motori:
Compatibile: agevolare l’attività di crawling dei Motori di Ricerca
Comprensibile: facilitare l’individuazione delle informazioni pubblicate
all’interno del sito.
Sono entrambi aspetti fondamentali.
Per lavorare sulla compatibilità è necessario
comprendere i concetti che stanno alla base del
funzionamento di un sito web.
E’ realmente necessario?
COMUNICARE CON I MOTORI DI RICERCA
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 10
SI. Ci sono casi in cui devi necessariamente saper parlare la loro lingua…
E’ prioritario?
Googlebot esci da questo sito!!!!!
DUE LIVELLI DI COMUNICAZIONE
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 11
Il protocollo HTTP I tag relazionali
IL SISTEMA CLIENT/SERVER
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 12
Client
1.  Abilita l’utente a spedire la richiesta di informazione.
2.  Codifica la richiesta utilizzando un protocollo comprensibile al server.
3.  Decodifica la risposta del server in modo che l’utente possa leggerla.
Server
1.  Riceve la richiesta del client.
2.  Codifica la richiesta utilizzando un protocollo comprensibile al client.
3.  Risponde al client spedendo l’informazione richiesta.
ClientUtente
Invio richiesta
Server
Elaborazione richiesta
Server
ClientUtente Ricezione risposta
MESSAGGIO DI RICHIESTA HTTP
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 13
Riga di richiesta
Header
MESSAGGIO DI RISPOSTA HTTP
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 14
Riga di risposta
Header
STATUS CODE HTTP
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 15
I Codici stato HTTP definiscono l’esito della risposta.
200 ok
----------------
301 moved permanently
302 found
303 See other
307 temporary redirect
----------------
404 not found
403 forbidden
410 gone
----------------
500 internal server error
3xx redirection
2xx success
4xx client error
5xx server error
QUANDO È NECESSARIO?
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 16
ü  Gestire il crawling
ü  Gestire gli aspetti SEO di una migrazione del sito
ü  Eliminare gruppi massivi di documenti dagli
indici dei Motori di Ricerca
ü  Gestire duplicazioni dei contenuti causate da
una multipla indicizzazione del sito su più
strutture di URL
ü  Gestire le versioni internazionali dei documenti
GESTIONE DEL TARGETING INTERNAZIONALE
NELL’INTESTAZIONE HTTP
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 17
HTTP Status Code: HTTP 1.1 200 OK
Date: Sat, 13 Dec 2014 17:29:19 GMT
Server: Apache/2.2.16 (Debian)
X-powered-by: PHP/5.3.3-7+squeeze19
Set-cookie: Array
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Link: <http://www.fabiboutique.com/en/home-fabi/>; rel="alternate"; hreflang="en-gb"
Link: <http://www.fabiboutique.com/en-ca/home-fabi/>; rel="alternate"; hreflang="en-ca"
Link: <http://www.fabiboutique.com/en-us/home-fabi/>; rel="alternate"; hreflang="en-us”
Content-encoding: gzip
Content-length: 9591
Connection: close
Content-type: text/html; charset=UTF-8
Risposta HTTP
COME INTERVENIRE
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 18
A livello di web server
A livello di linguaggio di programmazione
(server side)
A livello di CMS (es. plugin, moduli ecc..)
IL PROTOCOLLO HTTPS
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 19
Ad agosto 2014 Google dichiara che l’HTTPS è un fattore di ranking senza evidenti
riscontri nelle SERP.
SETTEMBRE 2015 iniziano a verificarsi frequenti (e apparenti) episodi di cali
delle visite da Google in presenza della duplicazione del sito non gestita tra
HTTP e HTTPS
GESTIRE IL PROTOCOLLO HTTPS
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 20
Configurare il certificato TLS sul server
Attivare la pubblicazione del sito attraverso il protocollo HTTPS
Verificare che tutte le risorse (css, immagini, Javascript) siano
disponibili nella versione HTTPS del sito
Verificare che i riferimenti nell’HTML siano correttamente in
HTTPS (canonical, link, immagini)
Attivare le redirezioni permanenti dal sito HTTP al sito HTTPS per
evitare la duplicazione
Verificare il corretto tracciamento di Google Analytics
HTTP/2
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 21
HTTP/2 è la nuova versione del protocollo
HTTP concepito per migliorare le performance
di erogazione dei servizi web.
HTTP/2 diventerà standard nel 2016
HTTP/2
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 22
Le novità più rilevanti con impatti sulla velocità
di caricamento e sulla SEO.
• Caricamento degli elementi in parallelo di
una pagina su una singola connessione TCP.
• La maggior compressione dei dati degli
HTTP headers
Test: http://http2.loadimpact.com/entry/
GESTIRE LE AMBIGUITÀ
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 23
Canonical Prev/Next Alternate
REL=CANONICAL
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 24
<head>
…
<link rel="canonical" href="https://www.ecommerce.com/elenco/" />
…
<head>
URL-A
/elenco
Canonical
=
URL-B
/elenco/nome
URL-C
/elenco/prezzo
=
REL=PREV/NEXT
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 25
<head>
…
<link rel=”next" href="https://www.ecommerce.com/elenco?pag=2" />
…
<head>
next
Page 1
site.com/page1.html
next
previous previous
Page 2
site.com/page2.html
Page 3
site.com/page3.html
TARGETING INTERNAZIONALE
Simone Rinzivillo –simone.rinzivillo@mamadigital.com - @srinzivillo 26
<link rel="alternate" hreflang=”es-es" href="http://www.miosito.com/es/home-miosito/" />
<link rel="alternate" hreflang=”es" href="http://www.miosito.com/es_2/home-miosito/" />
Spain Version South American Version
Simone Rinzivillo CTO & Co-Founder, Mamadigital
simone.rinzivillo@mamadigital.com
@srinzivillo
www.mamadigital.com
Grazie dell’attenzione

The latest in advanced technical Seo

  • 1.
    1 SIMONE RINZIVILLO CTO & Co-Founder,Mamadigital THE LATEST IN ADVANCED TECHNICAL SEO #smxmilan SMX Milan 2015 – 12 novembre
  • 2.
    ABOUT Simone Rinzivillo –[email protected]- @srinzivillo 2 Simone Rinzivillo CTO & Co-Founder, Mamadigital @srinzivillo [email protected] Con 11 anni esperienza nel Search Engine Marketing, è il responsabile del reparto digital marketing di Mamadigital di cui coordina le strategie di Search Marketing per importanti clienti italiani ed internazionali. Mamadigital è una agenzia indipendente, focalizzata nel Marketing digitale, con una fortissima specializzazione nel Search Engine Marketing e nella Comunicazione online innovativa. (www.mamadigital.com)
  • 3.
    LESSON 1 Simone Rinzivillo[email protected] - @srinzivillo 3 COMUNICARE CON I MOTORI DI RICERCA
  • 4.
    COMUNICARE CON TUTTII SEARCH ENGINES Simone Rinzivillo –[email protected] - @srinzivillo 4 Il Digital Marketing è la prima opportunità di internazionalizzazione Dobbiamo confrontarci con tutti i Motori di ricerca
  • 5.
    COMUNICARE CON TUTTII SEARCH ENGINES Simone Rinzivillo –[email protected] - @srinzivillo 5 La Google Search Console consente di interfacciarci con uno solo di questi.
  • 6.
    COMUNICARE CON TUTTII SEARCH ENGINES Simone Rinzivillo –[email protected] - @srinzivillo 6 Perché sottomettere la sitemap XML ad ogni singolo Motore di Ricerca quando posso gerstirli tutti con un’unica soluzione? … Sitemap: http://www.mamadigital.com/sitemap.xml … All’interno del file robots.txt
  • 7.
    COMUNICARE CON TUTTII SEARCH ENGINES Simone Rinzivillo –[email protected] - @srinzivillo 7 Bloccare l’indicizzazione di URL contententi uno specifico parametro in Querystring? Oppure, all’interno del file robots.txt http://www.xyz.com/it/uomo/abbigliamento-uomo.html?&price=-1000 user-agent: * disallow: *?*price= …
  • 8.
    COMUNICARE CON TUTTII SEARCH ENGINES Simone Rinzivillo –[email protected] - @srinzivillo 8 Le console dei Motori di Ricerca sono strumenti di grande opportunità monitorare del ciclo di vita dei siti all’interno dei Search Engines ü Verificare come il nostro sito viene indicizzato ü Monitorare i processi di crawling ü Monitorare i nostri sviluppi nei risultati di ricerca
  • 9.
    COMUNICARE CON IMOTORI DI RICERCA Simone Rinzivillo –[email protected] - @srinzivillo 9 Ottimizzare un sito per i Motori di Ricerca significa renderlo comprensibile e compatibile ai software di analisi dei Motori: Compatibile: agevolare l’attività di crawling dei Motori di Ricerca Comprensibile: facilitare l’individuazione delle informazioni pubblicate all’interno del sito. Sono entrambi aspetti fondamentali. Per lavorare sulla compatibilità è necessario comprendere i concetti che stanno alla base del funzionamento di un sito web. E’ realmente necessario?
  • 10.
    COMUNICARE CON IMOTORI DI RICERCA Simone Rinzivillo –[email protected] - @srinzivillo 10 SI. Ci sono casi in cui devi necessariamente saper parlare la loro lingua… E’ prioritario? Googlebot esci da questo sito!!!!!
  • 11.
    DUE LIVELLI DICOMUNICAZIONE Simone Rinzivillo –[email protected] - @srinzivillo 11 Il protocollo HTTP I tag relazionali
  • 12.
    IL SISTEMA CLIENT/SERVER SimoneRinzivillo –[email protected] - @srinzivillo 12 Client 1.  Abilita l’utente a spedire la richiesta di informazione. 2.  Codifica la richiesta utilizzando un protocollo comprensibile al server. 3.  Decodifica la risposta del server in modo che l’utente possa leggerla. Server 1.  Riceve la richiesta del client. 2.  Codifica la richiesta utilizzando un protocollo comprensibile al client. 3.  Risponde al client spedendo l’informazione richiesta. ClientUtente Invio richiesta Server Elaborazione richiesta Server ClientUtente Ricezione risposta
  • 13.
    MESSAGGIO DI RICHIESTAHTTP Simone Rinzivillo –[email protected] - @srinzivillo 13 Riga di richiesta Header
  • 14.
    MESSAGGIO DI RISPOSTAHTTP Simone Rinzivillo –[email protected] - @srinzivillo 14 Riga di risposta Header
  • 15.
    STATUS CODE HTTP SimoneRinzivillo –[email protected] - @srinzivillo 15 I Codici stato HTTP definiscono l’esito della risposta. 200 ok ---------------- 301 moved permanently 302 found 303 See other 307 temporary redirect ---------------- 404 not found 403 forbidden 410 gone ---------------- 500 internal server error 3xx redirection 2xx success 4xx client error 5xx server error
  • 16.
    QUANDO È NECESSARIO? SimoneRinzivillo –[email protected] - @srinzivillo 16 ü  Gestire il crawling ü  Gestire gli aspetti SEO di una migrazione del sito ü  Eliminare gruppi massivi di documenti dagli indici dei Motori di Ricerca ü  Gestire duplicazioni dei contenuti causate da una multipla indicizzazione del sito su più strutture di URL ü  Gestire le versioni internazionali dei documenti
  • 17.
    GESTIONE DEL TARGETINGINTERNAZIONALE NELL’INTESTAZIONE HTTP Simone Rinzivillo –[email protected] - @srinzivillo 17 HTTP Status Code: HTTP 1.1 200 OK Date: Sat, 13 Dec 2014 17:29:19 GMT Server: Apache/2.2.16 (Debian) X-powered-by: PHP/5.3.3-7+squeeze19 Set-cookie: Array Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Link: <http://www.fabiboutique.com/en/home-fabi/>; rel="alternate"; hreflang="en-gb" Link: <http://www.fabiboutique.com/en-ca/home-fabi/>; rel="alternate"; hreflang="en-ca" Link: <http://www.fabiboutique.com/en-us/home-fabi/>; rel="alternate"; hreflang="en-us” Content-encoding: gzip Content-length: 9591 Connection: close Content-type: text/html; charset=UTF-8 Risposta HTTP
  • 18.
    COME INTERVENIRE Simone Rinzivillo[email protected] - @srinzivillo 18 A livello di web server A livello di linguaggio di programmazione (server side) A livello di CMS (es. plugin, moduli ecc..)
  • 19.
    IL PROTOCOLLO HTTPS SimoneRinzivillo –[email protected] - @srinzivillo 19 Ad agosto 2014 Google dichiara che l’HTTPS è un fattore di ranking senza evidenti riscontri nelle SERP. SETTEMBRE 2015 iniziano a verificarsi frequenti (e apparenti) episodi di cali delle visite da Google in presenza della duplicazione del sito non gestita tra HTTP e HTTPS
  • 20.
    GESTIRE IL PROTOCOLLOHTTPS Simone Rinzivillo –[email protected] - @srinzivillo 20 Configurare il certificato TLS sul server Attivare la pubblicazione del sito attraverso il protocollo HTTPS Verificare che tutte le risorse (css, immagini, Javascript) siano disponibili nella versione HTTPS del sito Verificare che i riferimenti nell’HTML siano correttamente in HTTPS (canonical, link, immagini) Attivare le redirezioni permanenti dal sito HTTP al sito HTTPS per evitare la duplicazione Verificare il corretto tracciamento di Google Analytics
  • 21.
    HTTP/2 Simone Rinzivillo –[email protected]- @srinzivillo 21 HTTP/2 è la nuova versione del protocollo HTTP concepito per migliorare le performance di erogazione dei servizi web. HTTP/2 diventerà standard nel 2016
  • 22.
    HTTP/2 Simone Rinzivillo –[email protected]- @srinzivillo 22 Le novità più rilevanti con impatti sulla velocità di caricamento e sulla SEO. • Caricamento degli elementi in parallelo di una pagina su una singola connessione TCP. • La maggior compressione dei dati degli HTTP headers Test: http://http2.loadimpact.com/entry/
  • 23.
    GESTIRE LE AMBIGUITÀ SimoneRinzivillo –[email protected] - @srinzivillo 23 Canonical Prev/Next Alternate
  • 24.
    REL=CANONICAL Simone Rinzivillo –[email protected]- @srinzivillo 24 <head> … <link rel="canonical" href="https://www.ecommerce.com/elenco/" /> … <head> URL-A /elenco Canonical = URL-B /elenco/nome URL-C /elenco/prezzo =
  • 25.
    REL=PREV/NEXT Simone Rinzivillo –[email protected]- @srinzivillo 25 <head> … <link rel=”next" href="https://www.ecommerce.com/elenco?pag=2" /> … <head> next Page 1 site.com/page1.html next previous previous Page 2 site.com/page2.html Page 3 site.com/page3.html
  • 26.
    TARGETING INTERNAZIONALE Simone Rinzivillo[email protected] - @srinzivillo 26 <link rel="alternate" hreflang=”es-es" href="http://www.miosito.com/es/home-miosito/" /> <link rel="alternate" hreflang=”es" href="http://www.miosito.com/es_2/home-miosito/" /> Spain Version South American Version
  • 27.
    Simone Rinzivillo CTO& Co-Founder, Mamadigital [email protected] @srinzivillo www.mamadigital.com Grazie dell’attenzione