l primo vero fattore di ranking è rappresentato dalla capacità di comunicare correttamente con i Search Engines.
Il protocollo HTTP è l'opportunità per gestire efficacemente i processi di crawling nei nostri siti fornendo indicazioni in modo chiaro ai Search Engine. Nell'intervento verranno condivisi approcci ed esempi reali in cui la gestione attraverso il protocollo HTTP è stata risulitiva ed efficace anche in termini di effort, oltre che la recentissima case history in cui l'attivazione del protocollo HTTPS ha generato in Google inaspettati (e non reali) cali di visibilità.
2. ABOUT
2
Simone Rinzivillo CTO & Co-Founder, Mamadigital
@srinzivillo
simone.rinzivillo@mamadigital.com
Con 12 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)
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
4. LESSON 1
4
COMUNICARE CON I MOTORI DI RICERCA
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
5. COMUNICARE CON I MOTORI DI RICERCA
5
OBIETTIVO 1
GARANTIRE LA COMPATIBILITÀ CON LE LOGICHE DI
CRAWLING DEI MOTORI DI RICERCA
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
6. COMUNICARE CON I MOTORI DI RICERCA
6
404?
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
7. COMUNICARE CON I MOTORI DI RICERCA
7
CI SONO CASI IN CUI DEVI NECESSARIAMENTE
SAPER PARLARE LA LORO LINGUA… altrimenti
“Googlebot esci da questo sito!!!”
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
8. PREMESSA: IL SISTEMA CLIENT/SERVER
8
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
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
9. PREMESSA: IL SISTEMA CLIENT/SERVER
9
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
ZOOM
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
10. PREMESSA: IL SISTEMA CLIENT/SERVER
10
Invio richiesta
Server
Elaborazione richiesta
Server
Ricezione risposta
Formulazione del
messaggio di risposta
Definizione degli status
code HTTP
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
11. IL PROTOCOLLO HTTP
11
Il protocollo HTTP
Funziona su un meccanismo richiesta/risposta (client/server): il client
esegue una richiesta e il server restituisce la risposta.
Vi sono quindi due tipi di messaggi HTTP: messaggi RICHIESTA e
messaggi RISPOSTA.
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
12. MESSAGGIO DI RICHIESTA HTTP
12
RIGA DI RICHIESTA
Header
INVIATA DAL BROWSER O SPIDER
DEL MOTORE DI RICERCA
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
13. MESSAGGIO DI RISPOSTA HTTP
13
Riga di risposta
Header
RISPOSTA RESTITUITA DAL WEB SERVER
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
14. STATUS CODE HTTP
14
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
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
15. STRUMENTI
15
• LIVE HTTP HEADER per Chrome e Firefox
• XENU
• SCREAMING FROG
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
16. COME INTERVENIRE
16
A livello di WEB SERVER
A livello di LINGUAGGIO
DI PROGRAMMAZIONE
(server side)
A livello di CMS
(es. plugin, moduli ecc..)
WEB SERVER
LINGUAGGIO DI
PROGRAMMAZIONE
CMS
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
19. CASE HISTORY 1 - SCENARIO
19
GESTIONE DI UN CASO DI INDICIZZAZIONE
FUORI CONTROLLO
SITO: community di sviluppatori app per IOS
NUMERO CONTENUTI: circa 6.000
NUMERO documenti indicizzati: oltre 200.000
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
20. CASE HISTORY 1 - CAUSA
20
La gestione del tagging dei contenuti consente di selezionare diversi
filtri, con sequenze differenti gestite con l’aggiunta di parametri in
querystring.
http://www.sito.it/categoria-A?tag1=A&tag2=B&tag3=C
http://www.sito.it/categoria-A?tag1=B&tag2=A&tag3=C
http://www.sito.it/categoria-A?tag1=C&tag2=A&tag3=B
http://www.sito.it/categoria-A?tag1=B&tag2=C&tag3=C
…
Stesso contenuto raggiungibile su un
elevato e non controllabile insieme di URL
oltre 200.000 documenti INDICIZZATI E
DUPLICATI, AUMENTO SCONSIDERATO DEL
CRAWLING BUDGET.
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
21. CASE HISTORY 1 - SOLUZIONE
21
DISCRIMINARE LE URL DA NON FAR INDICIZZARE: QUELLE
CON L’ECCEDENZA DI TAG IN QUERYSTRING.
Soluzioni ipotizzate:
1° ipotesi di SOLUZIONE
Blocco delle URL dalla
Console di Google
PRO CONTRO
Facilità di
implementazione
Non compatibile
con la struttura
delle URL del sito,
risolutiva solo per
Google
2° ipotesi di SOLUZIONE
Noindex all’interno del meta robots
delle pagine in eccesso
PRO CONTRO
Facilità di
implementazione
Lunghi tempi di
reazione, impatto
negativo sul
crawling budget
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
22. CASE HISTORY 1 - SOLUZIONE
22
SOLUZIONE
Manifestare l’esigenza al motori in modo chiaro e diretto
“io ho rimosso le pagine, fallo anche te”
Tradotto in spiderese J
“410 gone”
PRO CONTRO
Messaggio chiaro e reazione immediata da
parte dei Search Engines
Nessuno!
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
23. CASE HISTORY 1 – RISPOSTA HTTP
23
HTTP Status Code: HTTP 1.1 410 gone
Date: Sat, 13 Nov 2015 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
Content-encoding: gzip
Content-length: 9591
Connection: close
Content-type: text/html; charset=UTF-8
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
24. CASE HISTORY 1 - RISULTATO
24
RISULTATO OTTENUTO
NUMERO CONTENUTI:
circa 6.000
NUMERO DOCUMENTI
INDICIZZATI:
circa 6.000
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
25. IL PROTOCOLLO HTTPS
25
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
HTTPS
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
26. CASE HISTORY 2 - SCENARIO
26
HTTP VS HTTPS
SITO: servizi di MKT online multilingua (3 domini)
PROBLEMA: Perdita di visite su tutti e 3 i domini a partire dal 21
settembre 2015
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
27. CASE HISTORY 2 - RIFLESSIONI
27
1. La recente gestione della migrazione dei siti e le redirezioni
permanenti erano gestite correttamente
2. Ad un controllo manuale il sito era stabilmente nei risultati
3. Analytics e la Search Console mostravano entrambi numeri in
calo
Search Console click dominio .it
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
28. CASE HISTORY 2 - RIFLESSIONI
28
Search Console click versione HTTPS del dominio .it*
* La Search Console del sito HTTP non contiene i dati della versione HTTPS, va
fatta una attivazione specifica
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
29. CASE HISTORY 2 - RIFLESSIONI
29
* La Search Console del sito HTTP non contiene i dati della versione HTTPS, va
fatta una attivazione specifica
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
SITO
HTTP
SITO
HTTPS
30. CASE HISTORY 2 - RIFLESSIONI
30
* La Search Console del sito HTTP non contiene i dati della versione HTTPS, va
fatta una attivazione specifica
SITO
HTTP
SITO
HTTPS
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
31. CASE HISTORY 2 - RIFLESSIONI
31
SITO
HTTP
SITO
HTTPS
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
32. CASE HISTORY 2 - ESIGENZA
32
HTTP
HTTPS
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
33. SOLUZIONE
Gestire la duplicazione del sito a favore della versione HTTP*
Tradotto in spiderese J
“301 moved permanently”
CASE HISTORY 2 - SOLUZIONE
33
* Dopo un confronto con il cliente si è deciso di mantenere la versione HTTP
RewriteCond %{ENV:HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
34. CASE HISTORY 2 - RISULTATO
34
4 NOVEMBRE
ATTIVAZIONE REDIRECT
SITO
HTTP
SITO
HTTPS
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
35. GESTIRE IL PROTOCOLLO HTTPS
35
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
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
36. HTTPS - APPROFONDIMENTI
36
HTTPS as a ranking signal
http://googlewebmastercentral.blogspot.it/2014/08/https-as-ranking-
signal.html
New Google Search Console Notifications For SSL/TLS Mismatch Errors
https://www.seroundtable.com/google-ssl-tls-warnings-search-
console-21172.html
Sito Sparito dopo certificato SSL
http://www.giorgiotave.it/forum/google/237453-sito-sparito-dopo-certificato-
ssl.html
Redirect da https a http su server linux
http://www.giorgiotave.it/forum/mod-rewrite-e-tecniche-di-url-redirect/
238154-redirect-da-https-http-su-server-linux.html
Google: HTTPS Content Mismatch Errors May Not Get Ranking Boost In Future
https://www.seroundtable.com/google-https-mismatch-ranking-20823.html
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
37. HTTP/2 – COS’È
37
HTTP/2 È LA NUOVA VERSIONE DEL PROTOCOLLO HTTP
concepito per migliorare le performance di erogazione
dei servizi web.
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
40. HTTP/2 – IMPATTI SULLE PERFORMANCE
40
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
(possibilità di gestire richieste e risposte nella
stessa connessione).
• La maggior compressione dei dati degli HTTP
headers
Test: http://http2.loadimpact.com/entry/
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO
42. HTTP/2 - APPROFONDIMENTI
42
What Ops Needs to Know about HTTP/2
https://devcentral.f5.com/articles/what-ops-needs-to-know-about-http2
HTTP/2: A Fast, Secure Bedrock for the Future of SEO
https://moz.com/blog/http2-a-fast-secure-bedrock-for-the-future-of-seo
7 Tips for Faster HTTP/2 Performance
https://www.nginx.com/blog/7-tips-for-faster-http2-performance/
SIMONE RINZIVILLO – SIMONE.RINZIVILLO@MAMADIGITAL.COM - @SRINZIVILLO