Comunicare con i Motori di Ricerca senza essere fraintesi: alla scoperta del protocollo HTTP

43
1 SIMONE RINZIVILLO CTO & Co-Founder, Mamadigital COMUNICARE CON I MOTORI DI RICERCA SENZA ESSERE FRAINTESI: ALLA SCOPERTA DEL PROTOCOLLO HTTP

Transcript of Comunicare con i Motori di Ricerca senza essere fraintesi: alla scoperta del protocollo HTTP

1

SIMONE RINZIVILLOCTO & Co-Founder, Mamadigital

COMUNICARE CON I MOTORI DI RICERCA SENZA ESSERE FRAINTESI:

ALLA SCOPERTA DEL PROTOCOLLO HTTP

ABOUT

2

Simone Rinzivillo CTO & Co-Founder, Mamadigital @[email protected]

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 – [email protected] - @SRINZIVILLO

FOLLOW US

3

@srinzivillo

#SMConnect

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

LESSON 1

4

COMUNICARE CON I MOTORI DI RICERCA

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

COMUNICARE CON I MOTORI DI RICERCA

5

OBIETTIVO 1GARANTIRE LA COMPATIBILITÀ CON LE LOGICHE DI

CRAWLING DEI MOTORI DI RICERCA

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

COMUNICARE CON I MOTORI DI RICERCA

6

404?

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

PREMESSA: IL SISTEMA CLIENT/SERVER

8

CLIENT1.  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.

SERVER1.  Riceve la richiesta del client.2.  Codifica la richiesta utilizzando un protocollo comprensibile al client.3.  Risponde al client spedendo l’informazione richiesta.

ClientUtenteInvio richiesta

Server

Elaborazione richiesta

ServerClientUtente Ricezione risposta

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

PREMESSA: IL SISTEMA CLIENT/SERVER

9

CLIENT1.  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.

SERVER1.  Riceve la richiesta del client.2.  Codifica la richiesta utilizzando un protocollo comprensibile al client.3.  Risponde al client spedendo l’informazione richiesta.

ClientUtenteInvio richiesta

Server

Elaborazione richiesta

ServerClientUtente Ricezione risposta

ZOOM

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

PREMESSA: IL SISTEMA CLIENT/SERVER

10

Invio richiestaServer

Elaborazione richiesta

ServerRicezione risposta

Formulazione del messaggio di risposta

Definizione degli status code HTTP

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

MESSAGGIO DI RICHIESTA HTTP

12

RIGA DI RICHIESTA

Header

INVIATA DAL BROWSER O SPIDER DEL MOTORE DI RICERCA

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

MESSAGGIO DI RISPOSTA HTTP

13

Riga di risposta

Header

RISPOSTA RESTITUITA DAL WEB SERVER

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

STATUS CODE HTTP

14

I Codici stato HTTP definiscono L’ESITO DELLA RISPOSTA.

200 ok----------------301 moved permanently302 found 303 See other307 temporary redirect----------------404 not found403 forbidden410 gone----------------500 internal server error

3xx redirection

2xx success

4xx client error

5xx server error

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

STRUMENTI

15

•  LIVE HTTP HEADER per Chrome e Firefox

•  XENU

•  SCREAMING FROG

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

COME INTERVENIRE

17

WEB SERVER

LINGUAGGIO DI PROGRAMMAZIONE

CMS

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

CASE HISTORY

18SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

CASE HISTORY 1 – RISPOSTA HTTP

23

HTTP Status Code: HTTP 1.1 410 goneDate: Sat, 13 Nov 2015 17:29:19 GMTServer: Apache/2.2.16 (Debian)X-powered-by: PHP/5.3.3-7+squeeze19Set-cookie: ArrayExpires: Thu, 19 Nov 1981 08:52:00 GMTCache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Content-encoding: gzipContent-length: 9591Connection: closeContent-type: text/html; charset=UTF-8

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

CASE HISTORY 1 - RISULTATO

24

RISULTATO OTTENUTO

NUMERO CONTENUTI: circa 6.000

NUMERO DOCUMENTI INDICIZZATI: circa 6.000

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

SITO HTTP

SITOHTTPS

CASE HISTORY 2 - RIFLESSIONI

30

* La Search Console del sito HTTP non contiene i dati della versione HTTPS, va fatta una attivazione specifica

SITOHTTP

SITOHTTPS

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

CASE HISTORY 2 - RIFLESSIONI

31

SITO HTTP

SITOHTTPS

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

CASE HISTORY 2 - ESIGENZA

32

HTTP

HTTPS

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

CASE HISTORY 2 - RISULTATO

34

4 NOVEMBRE ATTIVAZIONE REDIRECT

SITOHTTP

SITOHTTPS

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

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 linuxhttp://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 Futurehttps://www.seroundtable.com/google-https-mismatch-ranking-20823.html

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

HTTP/2 – COS’È

37

HTTP/2 È LA NUOVA VERSIONE DEL PROTOCOLLO HTTP concepito per migliorare le performance di erogazione

dei servizi web.

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

HTTP 1.0

38SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

HTTP/2

39SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

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 – [email protected] - @SRINZIVILLO

HTTP/2 - TEST

41

https://http2.akamai.com/demo

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

HTTP/2 - APPROFONDIMENTI

42

What Ops Needs to Know about HTTP/2https://devcentral.f5.com/articles/what-ops-needs-to-know-about-http2

HTTP/2: A Fast, Secure Bedrock for the Future of SEOhttps://moz.com/blog/http2-a-fast-secure-bedrock-for-the-future-of-seo

7 Tips for Faster HTTP/2 Performancehttps://www.nginx.com/blog/7-tips-for-faster-http2-performance/

SIMONE RINZIVILLO – [email protected] - @SRINZIVILLO

Simone Rinzivillo CTO & Co-Founder, Mamadigital

[email protected]

@srinzivillo

www.mamadigital.com

Grazie dell’attenzione