it-swarm.dev

Cosa succede se i meta tag sono presenti nel corpo del documento?

Sto lavorando su un'applicazione ASP e il codice, il modello e i file sono organizzati in un modo che non mi consente di modificare qualcosa al di fuori del tag body. Quindi sto pensando di inserire i meta tag all'interno del corpo - come questo:

<!-- FEW ASP INCLUDES -->
<html>
    <head>
    <!-- FALLBACK TITLE AND DESCRIPTION -->
    <title>Default Title</title>
    <meta name="description" content="Default Description">
</head>
<body>
    <!-- SOME HTML MARKUP -->
    <div class="dynamic-content">
        <!-- InstanceBeginEditable name="dynamic-content" -->
        <!-- THIS IS WHERE I CAN WRITE ASP CODE -->
        <title><%= Page.Meta.GetTitle( yada, yada ) %></title>
        <meta name="description" content="<%= Page.Meta.GetDescription( yada, yada ) %>">
        <!-- InstanceEndEditable -->
    </div>
    <!-- SOME MORE HTML MARKUP -->
</body>
</html>

Mi chiedo quanto è bello mettere i meta tag all'interno del corpo di un documento HTML. Come influisce:

  1. motori di ricerca
  2. i browser
52
Salman A

Questo è ovviamente invalid come in HTML4.01. I tag META sono sono consentiti solo all'interno di HEAD (proprio come, ad esempio, TITLE) quindi inserendolo in un BODY, si sta essenzialmente creando un markup non valido.

Dai test superficiali, sembra che alcuni browser (ad esempio Firefox 3.5 e Safari 4) abbiano effettivamente messo questi elementi in HEAD durante la creazione di un albero di documenti. Questo non è molto sorprendente: i browser sono noti per tollerare e cercare di interpretare tutti i tipi di markup rotto.

Raramente il markup invalid non è una buona idea. La gestione non standard da parte dei browser potrebbe portare a varie incoerenze di rendering (e comportamentali) difficili da localizzare. Invece di fare affidamento sulla supposizione del browser, è meglio seguire uno standard.

Non so come reagiscono i motori di ricerca a tale zuppa di tag, ma non rischierei di sperimentare per scoprirlo :) Forse analizzano solo il tag HEAD per determinate informazioni e salteranno del tutto i tag contenenti BODY. O forse considerano che si tratti di alcuni tentativi di gioco d'azzardo maliziosi e di pagine di lista nera contenenti tale markup. Chissà. 

La linea di fondo - evita questo quando è possibile.

40
kangax

La linea di fondo è di evitare questo quando possibile quando DOCTYPE lo proibisce. Penso che questo sia sicuramente consentito in HTML5 e molto utile nei casi che utilizzano microdati. Esempio: http://schema.org/Event

28
Michael H

Non lo farei Non è lì che vanno quei tag, e i motori di ricerca potrebbero vederlo come spamming. Se riesci a riorganizzare la pagina principale, puoi sempre aggiungere un contentplace nella sezione principale. L'ho fatto banalmente con:

<asp:ContentPlaceHolder ID="HeadTags" runat="server" />

In questo modo puoi aggiungere qualsiasi contenuto nella sezione principale della pagina:

<asp:Content ID="Whatever" ContentPlaceHolderID="HeadTags" runat="server" >

    <meta ... >

</asp:Content>
7
John Lockwood

Se il tuo obiettivo è l'ottimizzazione dei motori di ricerca, allora è probabilmente una buona idea seguire gli standard e inserire tutti i tuoi meta tag nello <head>. Tuttavia, per quanto riguarda il comportamento del browser, se inserisci <meta> tag nel tuo <body>, funzioneranno comunque. Ho deciso di testarlo utilizzando più tag <meta http-equiv="refresh"/> e tag <title> in un documento altrimenti conforme agli standard.

I risultati dei miei test:

Firefox 18, Firefox 3.6, Firefox Mobile, Chrome 24, Chrome per cellulari, Opera 12, IE6, IE8, IE10:

  • Tutti i tag <meta> nel corpo sono stati elaborati.
  • Il primo tag <title> nel documento è stato elaborato, anche se era nel corpo. I successivi tag <title> sono stati ignorati.
  • La prima direttiva sul meta aggiornamento ha avuto effetto, il che implica che entrambi sono stati elaborati.

IE9:

  • Come sopra, eccetto che tutti i tag <title> nel corpo sono stati ignorati.
  • Anche IE10 in IE9 Standards si comporta in questo modo.
  • IE9 in IE8 La modalità Standard si comportava come IE8, consentendo il tag 1 <title> nel corpo.

Quindi, cosa succede quando usi i meta tag nel corpo? In generale, sembrano funzionare bene. I metatag saranno probabilmente elaborati, quindi se non riesci a metterli in testa allora non mi preoccuperei troppo.

5
nullability

Alcuni meta tag che sono pensati per i motori di ricerca non saranno rispettati dai motori di ricerca nella sezione body della pagina. 

Per esempio Google dice che non onorerà un rel = canonico nel corpo della pagina, ma solo nella testa della pagina. Ecco cosa dice Matt Cutts di Google :

Non permettiamo rel = canonical nel BODY (perché come ho detto, la gente lo spamming),

3

Direi di usarlo. Ho trovato meta tag all'interno del corpo su varie pagine web e sono su una delle prime 10 ricerche (su google). Dimostra, almeno per me, che i motori searh non si preoccupano se hai usato questo approccio. 

Devi andare avanti se non c'è altro modo.

2
Parvinder Singh

meta tag può essere aggiunto ovunque nel codice HTML.

I web crawler possono leggerli ma l'unico problema è quando devi condividere le tue pagine su alcune applicazioni come facebook messenger, whatsapp ecc. 

Queste applicazioni leggono solo meta tag presentano all'interno del tag head . Quindi, og: image, og: description properties di meta tag se inserito all'interno di body tag non vengono letti e quindi non verranno visualizzati durante la condivisione in tali applicazioni.

Se è solo per scopi SEO, puoi aggiungere meta tag ovunque ma è consigliabile aggiungere all'interno head tag only

0
Sitaram

Ho inserito alcuni meta tag nel corpo, ma questo è dovuto alla tecnologia Microdata. Quando non ho un elemento regolare con le informazioni, che ho bisogno di descrivere l'oggetto secondo il vocabolario schema.org, ho impostato un meta tag con questo contenuto. Preferisco invece farlo in questo modo, per impostare un elemento con display: nessuno. Il modo con display: nessuno può causare più problemi con Google invece di questo, per quanto ne so. Sono d'accordo che non è la migliore pratica, ma quando convalido il mio documento (HTML5) passo la validazione con zero errori. Inoltre ho fatto questo trucco per diversi progetti e nessuno di loro ha problemi con google o altri motori di ricerca. Anche i microdati migliorano il ranking dei motori di ricerca. Non so esattamente cosa vuoi fare con questo meta tag nel corpo, perché non ho visto alcun microdata nel tuo codice. Se ti serve per questo approccio, penso che sia ok, ma in altri casi i meta elementi devono essere nella sezione principale! 

0
Kaloyan Stamatov

Avere il tag META Description nei siti Web non è un markup non valido, tuttavia non è un problema enorme dato che i motori di ricerca possono trovare regolarmente il tag ovunque esso sia. Il mio sito web fa questo, dai un'occhiata al mio HTML 

http://cameras.specced.co.uk/compare/268/Canon_EOS_200D

Il META si trova nel sito web BODY, tuttavia è stato indicizzato da Google e la meta descrizione della pagina è stata impostata come il testo del clic nei risultati di ricerca di Google. 

0
cousbrad