I meta tag, o tag meta, sono metadati utilizzabili nell'HTML per veicolare informazioni aggiuntive correlate alla pagina web che ne fa uso. Sono in genere analizzati e utilizzati per mezzo di sistemi automatici (come i browser o i motori di ricerca), che li possono elaborare per fornire servizi o funzionalità specifiche.

A differenza di molti altri tag, i tag meta non forniscono al browser informazioni strettamente legate alla formattazione della pagina, non influendo sulla impaginazione grafica. A meno che non elaborati appositamente, sono generalmente invisibili all'utente, se non attraverso la visualizzazione del codice sorgente della pagina oppure tramite le finestre di proprietà dei browser.

I tag meta, non essendo formalmente codificati, possono essere utilizzati a discrezione del webmaster secondo le proprie necessità. Gli unici elementi richiesti dalla grammatica formale sono l'utilizzo di un attributo "name" e di un attributo "content".

Origine La nascita dei tag meta è originariamente dovuta alla necessità di fornire un supporto ai motori di ricerca per una corretta indicizzazione dei siti e delle pagine, quando ancora non esistevano algoritmi avanzati in grado di analizzare il testo della pagina e basarsi su variabili più complesse.

Per motivi di potenza di calcolo e memoria, infatti, i crawler utilizzati dai motori di ricerca si limitavano a raccogliere e analizzare le prime stringhe di testo della pagina. Per questo motivo i webmaster inserivano nelle intestazioni della pagina dei tag appositamente destinati a contenere metadati che riassumessero l'intero contenuto della pagina. Tale aiuto fornito dai webmaster, però, lasciava ampio spazio a comportamenti opportunistici volti a sviare il corretto funzionamento del motore di ricerca, nel tentativo di apparire in un maggior numero di ricerche. Ciò era possibile inserendo fra i metadati informazioni non pertinenti ai contenuti della pagina, ma legati ad altri argomenti di interesse cercati dagli utenti.

Ben presto, però, il superamento delle limitazioni tecniche e la raffinazione degli algoritmi, sempre più sofisticati, permisero di aggirare l'uso improprio dei tag meta, orientando l'analisi delle pagine sui testi, sui contenuti, sul numero di link entranti nel sito, il numero di click ricevuti e numerose altre variabili.

Ciò ha portato al superamento dei tag meta tra gli elementi utili per il posizionamento, sebbene non sia ancora scomparsa la leggenda metropolitana secondo la quale essi possano fornire contributi significativi nei risultati dei motori di ricerca....... Il tag meta "keywords", per esempio, è tra quelli ufficialmente non riconosciuti da Google,... che ne analizza altri per scopi tecnici non correlati alla posizione nelle pagine dei risultati.

Struttura La struttura dei tag meta è relativamente semplice e duttile, prevedendo due soli attributi: <meta name="proprietà" content="valore" />

l'attributo name indica il tipo di informazione contenuta nel tag l'attributo content invece il contenuto della informazione

I primi quindi richiamati da una specifica parola, i secondi invece sono variabili e contestuali al sito o alla pagina cui fanno riferimento. Anche l'attributo name può essere scelto in modo variabile, ma solo quelli più diffusi sono riconosciuti dai sistemi di analisi standardizzati.

Esiste anche un attributo, chiamato http-equiv, che unito all'attributo content fornisce al browser degli header http. Alcuni esempi sono: <meta http-equiv="refresh" content="5" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> Che rispettivamente aggiornano la pagina ogni 5 secondi e forniscono informazioni al browser circa il contenuto e la codifica della pagina.

Non è specificato un tag meta per indicare la data di creazione e ultimo aggiornamento della pagina.

Metadati per i motori di ricerca Description Il metadato description è destinato a contenere una breve descrizione dei contenuti della pagina. Può essere utilizzato, a discrezione del motore di ricerca, come testo riassuntivo nella pagina dei risultati. Diversamente che agli albori di Internet, non ha effetti sul posizionamento....

Keywords Il metadato keywords aveva lo scopo di contenere una serie di parole chiave rappresentative del contenuto della pagina indirizzate prevalentemente ai motori di ricerca per l'individuazione dell'argomento trattato. L'abuso di tali tag decretò la fine del loro utilizzo. Il maggiore motore di ricerca, Google, non lo elenca tra i tag riconosciuti. È tuttavia opinione comune che i motori di ricerca analizzino ancora in modo subordinato tale tag per verificare la presenza di parole fuorvianti non presenti all'interno del testo della pagina, penalizzando tali comportamenti scorretti.

Il contenuto dell'attributo content è quindi una lista di parole. Su come tali termini vadano separati, per esempio con virgole o con spazi, non esistono pareri unanimi. Non tutti i motori considerano le virgole come dei separatori, per questo motivo si adotta spesso la soluzione di usare una virgola seguita da uno spazio.

Robots Il tag meta robots è indirizzato esclusivamente agli spider, fornendo due tipologie distinte di direttive: se indicizzare o meno la pagina, o se seguire o meno i collegamenti dalla pagina in questione verso altre; l'attributo content, quindi, contiene determinate variabili: index per indicare che la pagina può essere indicizzata. noindex per indicare invece di non indicizzare la pagina.

I due tipi di direttive possono essere liberamente abbinati secondo le esigenze del webmaster: ... content="index,follow" la disposizione è ininfluente, ma non possono contenere indicazioni contrastanti. Se il tag meta "robots" non è inserito, gli spider agiscono di default come se fossero indicati index e follow, la cui combinazione può essere indicata anche con il valore all, così come none deseleziona entrambe le possibilità."....

È facoltà del motore di ricerca seguire queste indicazioni, sebbene la netiquette lo preveda.

A questi tag iniziali si aggiungono: follow per indicare di seguire i link a altre pagine collegate; nofollow per indicare di non seguire le pagine linkate; nosnippet per indicare di non mostrare snippet nei risultati di ricerca; noarchive per indicare di non salvare una copia della pagina nella memoria cache del motore. date per indicare di non indicizzare una pagina a partire da una certa data. Le precedenti indicizzazioni non sono cancellate, e non è disponibile un metatag per impostare una data a partire dalla quale la pagina non è più visibile fra i risultati del motore, e/o nella sua memoria cache.

Attributi aggiuntivi per i motori di ricerca

NOODP I motori di ricerca Google, Yahoo! e MSN usano in alcuni casi il titolo e l'abstract dell'elenco DMOZ (aka Open Directory Project) di un sito web per il titolo e/o la descrizione (chiamato anche snippet o abstract) nelle pagine dei risultati dei motori di ricerca (SERP). Per offrire ai webmaster la possibilità di specificare che il contenuto di Open Directory Project non deve essere utilizzato per gli elenchi del loro sito Web, Microsoft ha introdotto nel maggio 2006 il nuovo NOODPvalore " " per l' robotselemento " " dei metatag. Google seguì nel luglio 2006Vanessa Fox (13 luglio 2006), More control over page snippets, Inside Google Sitemaps, accesso 3 giugno 2007 e Yahoo! nell'ottobre 2006Yahoo! Search (24 ottobre 2006), Yahoo! Search Weather Update and Support for 'NOODP' , Yahoo! Search Blog, accesso 3 giugno 2007.

La sintassi è la stessa per tutti i motori di ricerca che supportano il tag. < meta name = "robots" content = "noodp" > I webmaster possono decidere se desiderano non consentire l'uso del loro elenco ODP in base al motore di ricerca

Google: < meta name = "googlebot" content = "noodp" > Yahoo! < meta name = "Slurp" content = "noodp" > MSN e Live Search (tramite bingbot , in precedenza msnbot):

< meta name = "bingbot" content = "noodp" >

NOYDIR Yahoo! inserisce contenuti dal proprio Yahoo! directory accanto all'elenco ODP. Nel 2007 hanno introdotto un meta tag che consente ai web designer di rinunciarvi.

L'aggiunta del NOYDIRtag a una pagina impedirà a Yahoo! dalla visualizzazione di Yahoo! Titoli di directory e abstract. < meta name = "robots" content = "noydir" > < meta name = "Slurp" content = "noydir" >

Robots-NoContent Yahoo! anche introdotta nel maggio 2007, il valore di attributo: class="robots-nocontent".Yahoo! Search (2 maggio 2007), Introducing Robots-Nocontent for Page Sections , Yahoo! Search Blog, accesso 23 marzo 2013Questo non è un meta tag, ma un attributo e un valore, che può essere utilizzato nei tag delle pagine Web dove necessario. Il contenuto della pagina in cui viene utilizzato questo attributo verrà ignorato da Yahoo! crawler e non inclusi nell'indice del motore di ricerca.

Esempi per l'utilizzo del robots-nocontenttag: < div class = "robots-nocontent" > contenuti esclusi </ div > < span class = "robots-nocontent" > contenuti esclusi </ span > < p class = "robots-nocontent" > contenuti esclusi </ p > L'attributo language L'attributo languageindica ai motori di ricerca in quale lingua naturale è scritto il sito web (ad es. Inglese, spagnolo o francese), al contrario del linguaggio di codifica (ad es. HTML). Normalmente è un tag di lingua IETF per il nome della lingua. È particolarmente utile quando un sito web è scritto in più lingue e può essere incluso in ogni pagina per indicare ai motori di ricerca in quale lingua è scritta una determinata pagina. L'utente possono (e fanno) utilizzare le informazioni sulla lingua per selezionare i caratteri appropriati per la lingua, il che migliora l'esperienza utente complessiva della pagina.< link rel = "alternate" hreflang = "en-US" href = "http://example.com/page.html"

Esempio di lingua en

fr

be

Esempio di lingua e regione fr-CA

en-CA

en-US

Variazioni degli script di lingua Le variazioni dello script di lingua possono essere indirizzate direttamente utilizzando ISO 15924.

Esempi

zh-Hant: Chinese (Traditional)

zh-Hans: Chinese (Simplified)

Meta refresh Meta refresh è un metodo per istruire un browser web ad aggiornare automaticamente la pagina web o il frame corrente dopo un dato intervallo di tempo, utilizzando un elemento HTML con il parametro impostato su " " e un parametro che fornisce l'intervallo di tempo in secondi. È anche possibile istruire il browser a recuperare un URL diverso quando la pagina viene aggiornata, includendo l'URL alternativo nel parametro. Impostando l'intervallo di tempo di aggiornamento su zero (o un valore molto basso), il meta refresh può essere utilizzato come metodo di reindirizzamento URL . metahttp-equivrefreshcontentcontent.

Esempio:< meta http-equiv = "refresh" content = "0; url = https: //example.com/" >

Svantaggi I tag meta refresh presentano alcuni inconvenienti:

Se una pagina viene reindirizzata troppo rapidamente (meno di 2-3 secondi), l'utilizzo del pulsante "Indietro" nella pagina successiva può far tornare alcuni browser alla pagina di reindirizzamento, dopodiché il reindirizzamento si verificherà di nuovo. Ciò è negativo per l'usabilità, poiché potrebbe causare il blocco del lettore sull'ultimo sito web. Un lettore può o meno voler essere reindirizzato a una pagina diversa, il che può portare all'insoddisfazione dell'utente o sollevare preoccupazioni sulla sicurezza.

Alternative Reindirizzamento:< body onload = "window.location = 'http://example.com/'" >

<! - contenuti ->

</ body >Aggiornamenti:< a href = "javascript: location.reload (true)" > Aggiorna la pagina </ a >

Cache-Control Definisce un tempo di scadenza per le informazioni HTML caricate:<meta http-equiv="expires" content="tempo di scadenza in secondi"/><meta http-equiv="expires" content="0"/>

<meta http-equiv="expires" content="43200"/><meta http-equiv="expires" content="Sat, 07 Feb 2016 00:00:00 GMT"/>

Altri meta tag