desarrollo-web-br-bd.com

¿Qué sucede si las etiquetas están presentes en el cuerpo del documento?

Estoy trabajando en una aplicación ASP y el código, la plantilla y los archivos están organizados de una manera que no me permite alterar nada fuera de la etiqueta del cuerpo. Así que estoy pensando en insertar las metaetiquetas dentro del cuerpo, como esto:

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

Me pregunto qué tan bueno es colocar etiquetas meta dentro del cuerpo de un documento HTML. ¿Cómo afecta esto?

  1. los motores de búsqueda
  2. navegadores
52
Salman A

Esto es, por supuesto, inválido según HTML4.01. Las etiquetas META son solo se permiten dentro de HEAD (como, por ejemplo, TITLE), por lo que al colocarlo en un CUERPO, esencialmente está creando un marcado no válido.

De las pruebas preliminares, parece que algunos navegadores (por ejemplo, Firefox 3.5 y Safari 4) en realidad colocan estos elementos en HEAD cuando crean un árbol de documentos. Esto no es muy sorprendente: se sabe que los navegadores toleran e intentan interpretar todo tipo de marcas rotas.

Tener marcado inválido rara vez es una buena idea . El manejo no estándar por parte de los navegadores puede llevar a varias inconsistencias en el procesamiento (y comportamiento) difíciles de fijar. En lugar de confiar en la adivinación del navegador, es mejor seguir un estándar.

No sé cómo reaccionan los motores de búsqueda a esa sopa de etiquetas, pero no me arriesgaría a experimentar para averiguarlo :) Tal vez solo analicen HEAD _ _ _ _ _ _ _ _ _ _ para obtener cierta información y omitirán las etiquetas que contiene el CUERPO . O tal vez consideren que se trata de algunos intentos de juego malintencionados y páginas de listas negras que contienen dicho marcado. Quién sabe.

El resultado final: evite esto siempre que sea posible.

40
kangax

La conclusión es evitar esto siempre que sea posible cuando el DOCTYPE lo prohíba . Creo que esto está definitivamente permitido en HTML5 y es muy útil en casos que usan microdatos. Ejemplo: http://schema.org/Event

28
Michael H

Yo no lo haria Ahí no es donde van esas etiquetas, y los motores de búsqueda pueden verlo como spam. Si puede reorganizar la página maestra, siempre puede agregar un marcador de lugar de contenido en la sección de encabezado. Lo he hecho de forma trivial con:

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

De esta manera, puede agregar el contenido que desee en la sección de encabezado de su página:

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

    <meta ... >

</asp:Content>
7
John Lockwood

Si su objetivo es la optimización de motores de búsqueda, entonces probablemente sea una buena idea seguir los estándares y colocar todas sus etiquetas meta en el <head>. Sin embargo, en cuanto al comportamiento del navegador, si coloca etiquetas <meta> en su <body>, seguirán funcionando. Decidí probar esto utilizando varias etiquetas <meta http-equiv="refresh"/> y etiquetas <title> en un documento que de otra manera cumple con los estándares.

Los resultados de mis pruebas:

Firefox 18, Firefox 3.6, Firefox Mobile, Chrome 24, Chrome para móviles, Opera 12, IE6, IE8, IE10:

  • Se procesaron todas las etiquetas <meta> en el cuerpo.
  • La primera etiqueta <title> en el documento fue procesada, incluso si estaba en el cuerpo. Las etiquetas <title> posteriores fueron ignoradas.
  • La primera directiva de actualización meta entró en vigor, lo que implica que ambos fueron procesados.

IE9:

  • Igual que el anterior, excepto que todas las etiquetas <title> en el cuerpo fueron ignoradas.
  • IE10 en el modo Estándar de IE9 también se comporta de esta manera.
  • IE9 en el modo Estándar de IE8 se comportó igual que IE8, permitiendo 1 etiqueta <title> en el cuerpo.

Entonces, ¿qué pasa cuando usas etiquetas meta en el cuerpo? En general, parecen funcionar bien. Las metaetiquetas probablemente se procesarán, así que si no puedes ponerlas en la cabeza, no me preocuparé demasiado.

5
nullability

Algunas etiquetas meta destinadas a los motores de búsqueda no serán aceptadas por los motores de búsqueda en la sección del cuerpo de la página.

Por ejemplo, Google dice que no aceptará un valor rel = canonical en el cuerpo de la página, sino solo en el encabezado de la página. Esto es lo que Matt Cutts de Google dice :

No permitimos rel = canonical en el CUERPO (porque, como mencioné, la gente haría spam)

3

Yo diría que lo uses. Encontré metaetiquetas dentro del cuerpo en varias páginas web, y están en una de las 10 mejores búsquedas (en google). Esto demuestra, al menos para mí, que a los motores de búsqueda no les importa si ha utilizado este enfoque.

Debes seguir adelante si no hay otra alternativa.

2
Parvinder Singh

etiquetas meta se pueden agregar en cualquier parte del HTML.

Los rastreadores web pueden leerlos pero el único problema es cuando tienes que compartir tus páginas sobre alguna aplicación como Facebook Messenger, WhatsApp, etc.

Estas aplicaciones solo leen meta tags presentes dentro de head tag . Entonces, og: image, og: description properties of meta tag si se coloca dentro de body tag no se lee y por lo tanto no se mostrará mientras se comparte en tales aplicaciones.

Si es solo para fines de SEO, puede agregar meta tag en cualquier lugar, pero se recomienda agregar dentro de head tag only

0
Sitaram

He puesto algunas etiquetas meta en el cuerpo, pero eso es debido a la tecnología Microdata. Cuando no tengo un elemento regular con la información, que necesito para describir el objeto de acuerdo con el vocabulario de schema.org, establezco una etiqueta meta con este contenido. Prefiero hacerlo de esa manera, para establecer un elemento con pantalla: ninguno. La forma con pantalla: ninguno puede causar más problemas de google en lugar de esto, por lo que sé. Estoy de acuerdo en que no es la mejor práctica, pero cuando valido mi documento (HTML5) paso la validación con cero errores. También he hecho este truco para varios proyectos y ninguno de ellos tiene problemas con Google u otro motor de búsqueda. Incluso los microdatos mejoran el ranking del motor de búsqueda. No sé qué es exactamente lo que quieres hacer con estas etiquetas meta en el cuerpo, porque no he visto ningún microdato en tu código. Si lo necesita para este enfoque, creo que está bien, pero en otros casos, los meta elementos deben estar en la sección principal.

0
Kaloyan Stamatov

Tener la etiqueta de Descripción META en los sitios web no es un marcado, sin embargo, no es un gran problema ya que los motores de búsqueda pueden encontrar la etiqueta en cualquier lugar. Mi sitio web hace esto, echa un vistazo a mi HTML

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

El META se encuentra en el BODY del sitio web, sin embargo, Google lo ha indexado y la meta descripción de la página se ha configurado como el texto de clic en los resultados de búsqueda de Google.

0
cousbrad