it-swarm.dev

O que acontece se as metatags estiverem presentes no corpo do documento?

Eu estou trabalhando em um aplicativo ASP e o código, modelo e arquivos são organizados de uma forma que não me permite alterar nada fora da tag body. Então, estou pensando em inserir as metatags dentro do corpo - assim:

<!-- 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>

Eu estou querendo saber como é bom colocar metatags dentro do corpo de um documento HTML. Como isso afeta:

  1. motores de busca
  2. navegadores
52
Salman A

Isto é claro inválido como por HTML4.01. As tags META são somente permitidas dentro de HEAD (assim como, por exemplo, TITLE), portanto, colocando-as em um BODY, você está essencialmente criando uma marcação inválida.

A partir dos testes superficiais, parece que alguns navegadores (por exemplo, Firefox 3.5 e Safari 4) realmente colocam esses elementos em HEAD ao criar uma árvore de documentos. Isso não é muito surpreendente: sabe-se que os navegadores toleram e tentam interpretar todos os tipos de marcação quebrada.

Ter marcação inválida raramente é uma boa ideia. O manuseio não-padrão dos navegadores pode levar a várias inconsistências de renderização difíceis de serem executadas (e comportamentais). Em vez de confiar na adivinhação do navegador, é melhor seguir um padrão.

Eu não sei como os motores de busca reagem a tal tag soup, mas eu não arriscaria experimentar para descobrir :) Talvez eles só analisem a tag HEAD para certas informações e pularão suas tags contidas no BODY por completo. Ou talvez eles considerem estas tentativas de jogo mal-intencionadas e páginas de lista negra contendo tal marcação. Quem sabe. 

A linha inferior - evite isso sempre que possível.

40
kangax

A linha de fundo é evitar isso sempre que possível quando o DOCTYPE o proíbe. Acho que isso é definitivamente permitido no HTML5 e muito útil em casos que usam microdados. Exemplo: http://schema.org/Event

28
Michael H

Eu não faria isso. Não é para onde essas tags vão, e os mecanismos de busca podem ver isso como spam. Se você puder reorganizar a página mestra, poderá sempre adicionar um compartimento de conteúdo na seção principal. Eu fiz isso trivialmente com:

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

Dessa forma, você pode adicionar o conteúdo que desejar na seção principal em sua página:

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

    <meta ... >

</asp:Content>
7
John Lockwood

Se o seu objetivo é a otimização de mecanismos de busca, provavelmente é uma boa idéia seguir os padrões e colocar todas as suas meta tags no <head>. No entanto, no que diz respeito ao comportamento do navegador, se você colocar tags <meta> em seu <body>, elas ainda funcionarão. Decidi testar isso usando várias tags <meta http-equiv="refresh"/> e <title> em um documento de outra maneira compatível com os padrões.

Os resultados dos meus testes:

Firefox 18, Firefox 3.6, Firefox Mobile, Chrome 24, Chrome para celular, Opera 12, IE6, IE8, IE10:

  • Todas as tags <meta> no corpo foram processadas.
  • A primeira tag <title> no documento foi processada, mesmo que estivesse no corpo. Tags <title> subseqüentes foram ignoradas.
  • A primeira diretiva de atualização de meta entrou em vigor, implicando que ambas foram processadas.

IE9:

  • O mesmo que acima, exceto que todas as tags <title> no corpo foram ignoradas.
  • O IE10 no modo Padrões do IE9 também se comporta assim.
  • O IE9 no modo Standards do IE8 se comportou da mesma forma que o IE8, permitindo 1 tag <title> no corpo.

Então, o que acontece quando você usa meta tags no corpo? Em geral, eles parecem funcionar bem. As meta tags provavelmente serão processadas, então se você não puder colocá-las na cabeça, eu não me preocuparia muito.

5
nullability

Algumas metatags que são destinadas a mecanismos de pesquisa não serão honradas pelos mecanismos de pesquisa na seção do corpo da página. 

Por exemplo, o Google diz que não honrará um rel = canonical no corpo da página, mas apenas no cabeçalho da página. Aqui está o que Matt Cutts do Google diz :

Não permitimos rel = canonical no BODY (porque, como mencionei, as pessoas enviam spam),

3
Stephen Ostermiller

Eu diria que você deveria usá-lo. Eu encontrei metatags dentro do corpo em várias páginas da web, e eles estão em uma das 10 principais pesquisas (no google). Isso mostra, pelo menos para mim, que os mecanismos de busca não se importam se você usou essa abordagem. 

Você deve ir em frente se não houver outro caminho.

2
Parvinder Singh

meta tags podem ser adicionados em qualquer lugar no HTML.

Os rastreadores da web podem lê-los mas o único problema é quando você tem que compartilhar suas páginas sobre algum aplicativo como facebook messenger, whatsapp etc. 

Esses aplicativos apenas lêem meta tags presentes dentro da tag head . Portanto, o og: image, og: description propriedades de meta tag se colocado dentro de body tag não são lidos e, portanto, não serão exibidos durante o compartilhamento em tais aplicativos.

Se for apenas para fins de SEO, você pode adicionar meta tag em qualquer lugar, mas é recomendável adicionar dentro head tag somente

0
Sitaram

Eu coloquei algumas metatags no corpo, mas isso é por causa da tecnologia Microdata. Quando eu não tenho um elemento regular com a informação, que eu preciso descrever o objeto de acordo com o vocabulário schema.org, eu defino uma meta tag com este conteúdo. Eu prefiro fazer dessa maneira, para definir um elemento com display: none. A maneira com display: none pode causar mais problemas no google em vez disso, tanto quanto eu sei. Eu concordo que não é a melhor prática, mas quando eu validar meu documento (HTML5) eu passo a validação com zero erros. Também fiz este truque para vários projetos e nenhum deles tem problemas com o Google ou outro motor de busca. Até microdados melhoram o ranking do mecanismo de busca. Não sei exatamente o que você quer fazer com essas metatags no corpo, porque não vi microdados no seu código. Se você precisar dele para essa abordagem, eu acho que está tudo bem, mas em outros casos os meta-elementos devem estar na seção head! 

0
Kaloyan Stamatov

Tendo a tag META Description nos sites é marcação inválida, no entanto, não é um grande problema, os motores de busca podem encontrar regularmente a tag onde quer que seja. Meu site faz isso, dê uma olhada no meu HTML 

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

O META está no site BODY, no entanto, ele foi indexado pelo Google e a meta descrição da página foi definida como o texto do clique nos resultados da pesquisa do Google. 

0
cousbrad