Datos estructurados del foro de debate (DiscussionForumPosting
)
![Ilustración de la función de debates y foros](https://developers.google.cn/static/search/docs/images/discussions-and-forums-rich-result.png?authuser=7&hl=es-419)
El lenguaje de marcado para foros de debate está diseñado para cualquier sitio similar al de un foro en el que los usuarios comparten perspectivas de primera mano. Cuando los sitios de foros agregan este lenguaje de marcado, la Búsqueda de Google puede identificar mejor los debates en línea en la Web y aprovecharlo en funciones, como Debates y Foros.
Cómo usar DiscussionForumPosting
en un foro
En general, recomendamos anidar los comentarios en la publicación con la que se relacionan. Si el foro tiene su propia estructura de conversación, utiliza un árbol de comentarios para representar su estructura:
{ "@context": "https://schema.org", "@type": "DiscussionForumPosting", "headline": "Very Popular Thread", ... "comment": [{ "@type": "Comment", "text": "This should not be this popular", ... "comment": [{ "@type": "Comment", "text": "Yes it should", ... }] }] }
Si es de naturaleza más lineal (por ejemplo, una publicación original seguida de una serie de respuestas), anídalas todas debajo de la publicación original como comentarios. Lo ideal es que las páginas posteriores de contenido en los foros de varias páginas incluyan la publicación original con la URL de la página principal:
{ // JSON-LD on non-threaded forum at https://example.com/post/very-popular-thread/14 "@context": "https://schema.org", "@type": "DiscussionForumPosting", "headline": "Very Popular Thread", // Only the headline/topic is explicitly present "url": "https://example.com/post/very-popular-thread", ... "comment": [{ "@type": "Comment", "text": "First Post on this Page", ... },{ "@type": "Comment", "text": "Second Post on this Page", ... }] }
Si la URL se refiere principalmente a una sola publicación, usa mainEntity
(o mainEntityOfPage
) para identificar el código DiscussionForumPosting
principal:
{ "@context": "https://schema.org", "@type": "WebPage", "url": "https://example.com/post/very-popular-thread", "mainEntity": { "@type": "DiscussionForumPosting" ... } }
En el caso de las páginas web que tienen una lista de publicaciones (por ejemplo, en una página de perfil, tema o categoría), es común que no incluyan toda la información en la misma página y requieran que el usuario haga clic para obtener información adicional, como las respuestas. Puedes elegir incluir solo la información que está en la página (también incluir la URL de la publicación específica del debate).
No marques una publicación de la página como entidad principal si no es una página de debate de la publicación. Para mostrar que las páginas son un conjunto de publicaciones que se relacionan, podría ser útil adjuntarlas todas a una
Collection
o ItemList
.
Cómo agregar datos estructurados
Los datos estructurados son un formato estandarizado para proporcionar información sobre una página y clasificar su contenido. Si aún no estás familiarizado con los datos estructurados, obtén más información sobre su funcionamiento.
A continuación, presentamos una descripción general para aprender a compilar, probar y actualizar datos estructurados.
- Agrega las propiedades obligatorias. Según el formato que uses, obtén información sobre las ubicaciones donde puedes insertar datos estructurados en la página.
- Sigue los lineamientos.
- Valida tu código con la Prueba de resultados enriquecidos y corrige cualquier error crítico. Procura también corregir los problemas no críticos que puedan marcarse en la herramienta, ya que pueden ayudar a mejorar la calidad de los datos estructurados (sin embargo, esto no es necesario para que se muestren los resultados enriquecidos).
- Implementa algunas páginas que incluyan tus datos estructurados y utiliza la Herramienta de inspección de URLs para probar el modo en el que Google ve la página. Asegúrate de que Google pueda acceder a la página y que no esté bloqueada por un archivo robots.txt, una etiqueta
noindex
ni requisitos de acceso. Si la página se ve bien, puedes pedirle a Google que vuelva a rastrear tus URLs. - Para mantener informado a Google sobre los cambios futuros, te recomendamos que envíes un mapa del sitio. Puedes automatizar este proceso con la API de Search Console Sitemap.
Ejemplos
El siguiente ejemplo de lenguaje de marcado muestra una página de foro lineal sin subconversaciones:
<html> <head> <title>I went to the concert!</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "DiscussionForumPosting", "mainEntityOfPage": "https://example.com/post/very-popular-thread", "headline": "I went to the concert!", "text": "Look at how cool this concert was!", "video": { "@type": "VideoObject", "contentUrl": "https://example.com/media/super-cool-concert.mp4", "name": "Video of concert", "uploadDate": "2024-03-01T06:34:34+02:00", "thumbnailUrl": "https://example.com/media/super-cool-concert-snap.jpg" }, "url": "https://example.com/post/very-popular-thread", "author": { "@type": "Person", "name": "Katie Pope", "url": "https://example.com/user/katie-pope", "agentInteractionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WriteAction", "userInteractionCount": 8 } }, "datePublished": "2024-03-01T08:34:34+02:00", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/LikeAction", "userInteractionCount": 27 }, "comment": [{ "@type": "Comment", "text": "Who's the person you're with?", "author": { "@type": "Person", "name": "Saul Douglas", "url": "https://example.com/user/saul-douglas", "agentInteractionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WriteAction", "userInteractionCount": 167 } }, "datePublished": "2024-03-01T09:46:02+02:00" },{ "@type": "Comment", "text": "That's my mom, isn't she cool?", "author": { "@type": "Person", "name": "Katie Pope", "url": "https://example.com/user/katie-pope", "agentInteractionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WriteAction", "userInteractionCount": 8 } }, "datePublished": "2024-03-01T09:50:25+02:00", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/LikeAction", "userInteractionCount": 7 } }] } </script> </head> <body> </body> </html>
<html> <body> <div id="main-post" itemtype="https://schema.org/DiscussionForumPosting" itemscope> <meta itemprop="mainEntityOfPage" content="https://example.com/post/very-popular-thread" /> <meta itemprop="url" content="https://example.com/post/very-popular-thread" /> <div class="author-block" itemprop="author" itemtype="https://schema.org/Person" itemscope> <div><a href="https://example.com/user/katie-pope" itemprop="url"><span itemprop="name">Katie Pope</span></a></div> <div itemprop="agentInteractionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">8</span> <span itemprop="interactionType" content="https://schema.org/WriteAction">posts</span> </div> </div> <div itemprop="datePublished" content="2024-03-01T08:34:34+02:00">March 1</div> <div itemprop="headline">I went to the concert!</div> <div> <div itemprop="video" itemtype="https://schema.org/VideoObject" itemscope> <meta itemprop="name" content="Video of concert" /> <meta itemprop="contentUrl" content="https://example.com/media/super-cool-concert.mp4" /> <meta itemprop="uploadDate" content="2024-03-01T06:34:34+02:00" /> <meta itemprop="thumbnailUrl" content="https://example.com/media/super-cool-concert-snap.jpg" /> </div> <span itemprop="text">Look at how cool this concert was!</span> </div> <div itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">27</span> <span itemprop="interactionType" content="https://schema.org/LikeAction">likes</span> </div> <div id="comment-1" itemprop="comment" itemtype="https://schema.org/Comment" itemscope> <div class="author-block" itemprop="author" itemtype="https://schema.org/Person" itemscope> <div><a href="https://example.com/user/saul-douglas" itemprop="url"><span itemprop="name">Saul Douglas</span></a></div> <div itemprop="agentInteractionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">167</span> <span itemprop="interactionType" content="https://schema.org/WriteAction">posts</span> </div> </div> <div itemprop="datePublished" content="2024-03-01T09:46:02+02:00">March 1</div> <div> <span itemprop="text">Who's the person you're with?</span> </div> </div> <div id="comment-2" itemprop="comment" itemtype="https://schema.org/Comment" itemscope> <div class="author-block" itemprop="author" itemtype="https://schema.org/Person" itemscope> <div><a href="https://example.com/user/katie-pope" itemprop="url"><span itemprop="name">Katie Pope</span></a></div> <div itemprop="agentInteractionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">8</span> <span itemprop="interactionType" content="https://schema.org/WriteAction">posts</span> </div> </div> <div itemprop="datePublished" content="2024-03-01T09:50:25+02:00">March 1</div> <div> <span itemprop="text">That's my mom, isn't she cool?</span> </div> <div itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">7</span> <span itemprop="interactionType" content="https://schema.org/LikeAction">likes</span> </div> </div> </div> </body> </html>
Lineamientos
Para que los datos estructurados de tu foro de debate sean aptos para usarse en la Búsqueda de Google, debes seguir estos lineamientos:
- Lineamientos generales de datos estructurados
- Conceptos básicos sobre la Búsqueda
- Lineamientos de contenido
- Lineamientos técnicos
Lineamientos de contenido
- Usa el lenguaje de marcado
DiscussionForumPosting
solo para describir una publicación generada por usuarios en el foro de un sitio web. No uses este lenguaje de marcado para contenido creado principalmente por los publicadores del sitio web o sus agentes. - Si tu sitio se parece más a una plataforma genérica de redes sociales, puedes usar
SocialMediaPosting
, que es el tipo superior deDiscussionForumPosting
, con los mismos requisitos. - Si bien fomentamos el lenguaje de marcado válido de otros tipos (
Article
,ImageObject
,VideoObject
) que pueden usar un lenguaje de marcado muy similar con comentarios, información sobre el autor y estadísticas de interacción, no se debe usarDiscussionForumPosting
. Estos son algunos ejemplos:Casos de uso válidos:
- Una página de foro de la comunidad donde los usuarios pueden hablar sobre un determinado juego
- Una plataforma de foro genérica que aloja una amplia variedad de contenido de subforos
- Una plataforma de redes sociales donde los usuarios pueden publicar y responder comentarios o contenido multimedia
Casos de uso no válidos:
- Un artículo o blog escrito directamente por un agente para el sitio web (incluso con comentarios)
- Opiniones de usuarios sobre un producto
- Ten en cuenta que, en la mayoría de los casos de uso de Google, una página de preguntas y respuestas se considera un caso especial de la página de un foro de discusión. Si la estructura del sitio web del foro contiene principalmente preguntas con respuestas,
recomendamos que uses el lenguaje de marcado de preguntas y respuestas
en su lugar. Si la estructura es más general y no suele incluir contenido de preguntas y respuestas,
DiscussionForumPosting
sería una mejor opción. - Asegúrate de que cada
DiscussionForumPosting
incluya el texto completo de la publicación y de que cadaComment
incluya el texto completo de la respuesta si se encuentra en esa página.
Lineamientos técnicos
- A diferencia de nuestra preferencia general de datos estructurados, recomendamos proporcionar el lenguaje de marcado
DiscussionForumPosting
en microdatos (o RDFa) si es posible. Así se evita que tengas que duplicar bloques de texto grandes dentro del lenguaje de marcado. Sin embargo, esto es solo una recomendación, y JSON-LD sigue siendo totalmente compatible.
Definiciones de tipos de datos estructurados
En esta sección se describen los tipos de datos estructurados relacionados con DiscussionForumPosting
.
Debes incluir las propiedades obligatorias para que tu contenido sea apto para usarse en la Búsqueda de Google. También puedes incluir las propiedades recomendadas para agregar más información sobre las páginas de los foros de debate, lo que podría brindar una mejor experiencia del usuario.
DiscussionForumPosting
(o SocialMediaPosting
)
El tipo DiscussionForumPosting
define una publicación original que es el tema de debate. Si bien este tipo en general se compone de texto, es posible tener una publicación en el foro que solo consista en contenido multimedia.
Propiedades obligatorias | |
---|---|
|
Person o
Organization
Incluye información sobre el autor de la publicación. Para ayudar a Google a comprender mejor a los autores en varias funciones, sugerimos seguir las prácticas recomendadas de lenguaje de marcado de autor. Incluye todas las propiedades que sean relevantes para el autor con las propiedades compatibles de los datos estructurados de artículo y página de perfil como guía. |
|
Text
El nombre del autor de la publicación. |
|
Corresponde a la fecha y hora en que se realizó la publicación en formato ISO 8601. |
text , image o video |
Para representar el contenido de la publicación, debes incluir una de las siguientes propiedades: Esto no es obligatorio si representas una publicación en otra página (con una |
Propiedades recomendadas | |
---|---|
|
Un vínculo a una página web que identifica de forma exclusiva al autor de la publicación, que probablemente sea una página de perfil del foro. Te recomendamos que agregues lenguaje de marcado a esa página con datos estructurados de páginas de perfil. |
comment |
Un comentario sobre la publicación o su respuesta, si corresponde. Marca comentarios en el orden en el que aparecen en la página. |
creativeWorkStatus |
Cuando se borre la publicación, pero siga disponible para el contexto o la conversación, establece esta propiedad en
|
dateModified |
Corresponde a la fecha y hora en que se editó la publicación en formato ISO 8601, si corresponde. Si no se realizaron cambios, no es necesario duplicar la fecha de publicación. |
|
Text
El título de la publicación. Si no hay un título separado, no dupliques ni trunques el texto en un título. Esto no se recomienda para un |
image |
Cualquier imagen intercalada en la publicación, si corresponde. Si no hay imágenes, no incluyas imágenes predeterminadas, de íconos ni de marcadores de posición en este campo. |
interactionStatistic |
Estadísticas del usuario que se aplican a la publicación principal, si corresponde. Google admite estos
|
isPartOf |
La fuente principal de la publicación, si esta se produce en un lugar particular del sitio web general, si corresponde.
Por ejemplo, un subforo o grupo dentro del sitio web más amplio. Si se usa un |
|
CreativeWork
El contenido compartido principal en la publicación, si corresponde. La forma más común en que se puede utilizar es compartir Este es un ejemplo de cómo agregar que hay un vínculo compartido en la publicación: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
text |
Cualquier texto de la publicación, si corresponde. Esto es muy común, pero en algunos casos puede omitirse si la publicación incluye otro contenido multimedia. |
|
URL
Corresponde a la URL canónica del debate. En conversaciones de varias páginas, establece esta propiedad como la URL de la primera página. En el caso de un solo debate, suele ser la URL actual. |
video |
Todos los videos intercalados en la publicación, si corresponde. |
Comment
El tipo Comment
define un comentario en un CreativeWork
original. En este caso, es un DiscussionForumPosting
. Comparte muchas de las mismas propiedades con nuestros lineamientos para DiscussionForumPosting
.
Propiedades obligatorias | |
---|---|
|
Person o
Organization
Información sobre el autor del comentario. Para ayudar a Google a comprender mejor a los autores en varias funciones, sugerimos seguir las prácticas recomendadas de lenguaje de marcado de autor. Incluye todas las propiedades que sean relevantes para el autor con las propiedades compatibles de los datos estructurados de artículo y página de perfil como guía. |
|
Corresponde a la fecha y hora en que se realizó el comentario en formato ISO 8601. Si no se realizaron cambios, no es necesario duplicar la fecha de publicación. |
text , image o video |
Para representar el contenido del comentario, debes incluir una de las siguientes propiedades: |
Propiedades recomendadas | |
---|---|
|
Un vínculo a una página web que identifica de forma exclusiva al autor del comentario, que probablemente sea una página de perfil del foro. Te recomendamos que agregues lenguaje de marcado a esa página con datos estructurados de páginas de perfil. |
comment |
Otro comentario sobre el comentario o en respuesta a este, si corresponde. Marca los comentarios en el orden en el que aparecen en la página. |
creativeWorkStatus |
Si se borró el comentario, pero permanece en el contexto o en las conversaciones, establece esta propiedad en |
dateModified |
Corresponde a la fecha y hora en que se editó el comentario por última vez en formato ISO 8601, si corresponde. |
image |
Cualquier imagen intercalada en el comentario, si corresponde. Si no hay imágenes, no incluyas imágenes predeterminadas, de íconos ni de marcadores de posición en este campo. |
interactionStatistic |
Estadísticas del usuario que se aplican al comentario, si corresponde. Google admite estos
|
|
CreativeWork
El contenido compartido principal en el comentario, si corresponde. La forma más común en que se puede utilizar es compartir Este es un ejemplo de cómo agregar que hay un vínculo compartido en el comentario: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
|
URL
La URL de este comentario específico en la página, si corresponde. No incluyas esta propiedad si se trata solo de la URL de la publicación original. |
video |
Todos los videos intercalados en el comentario, si corresponde. |
InteractionCounter
El InteractionCounter
permite que se asocie un recuento con un tipo de interacción determinado. Se puede usar en contenido (DiscussionForumPosting
y Comment
) y author
propiedades.
Propiedades obligatorias | |
---|---|
|
Integer
La cantidad de veces que se realizó esta interacción. |
|
Subtipo de Para obtener una lista de los subtipos |
Cómo supervisar resultados enriquecidos con Search Console
Search Console es una herramienta que te ayuda a supervisar el rendimiento de tus páginas en la Búsqueda de Google. Si bien no es necesario que te registres en Search Console para que se incluya tu contenido en los resultados de la Búsqueda de Google, puede ayudarte a comprender y mejorar la forma en que Google ve tu sitio. Te recomendamos que revises Search Console en los siguientes casos:
- Después de implementar datos estructurados por primera vez
- Después de lanzar plantillas nuevas o actualizar código
- Para analizar tráfico periódicamente
Después de implementar datos estructurados por primera vez
Después de que Google haya indexado tus páginas, busca problemas con el informe de estado de resultados enriquecidos relevante. Lo ideal es que haya un aumento de los elementos válidos y no de los elementos no válidos. Si encuentras problemas en los datos estructurados, haz lo siguiente:
- Corrige los elementos no válidos.
- Inspecciona una URL publicada para verificar si persiste el problema.
- Solicita una validación desde el informe de estado.
Después de lanzar plantillas nuevas o actualizar código
Cuando realices cambios significativos en tu sitio web, supervisa los aumentos en los elementos no válidos de datos estructurados.- Si notas un aumento en la cantidad de elementos no válidos, tal vez se deba a que implementaste una plantilla que no funciona o a que tu sitio interactúa con la plantilla actual de una forma diferente e incorrecta.
- Si notas una disminución de los elementos válidos (que no coincide con un aumento en la cantidad de elementos no válidos), es posible que ya no estés incorporando datos estructurados en tus páginas. Usa la Herramienta de inspección de URLs para saber cuál es la causa del problema.
Cómo analizar el tráfico periódicamente
Analiza el tráfico de la Búsqueda de Google con el Informe de rendimiento. Los datos te mostrarán con qué frecuencia tu página aparece como resultado enriquecido en la Búsqueda, con qué frecuencia los usuarios hacen clic en ella y cuál es la posición promedio en la que apareces en los resultados de la búsqueda. También puedes extraer esos resultados automáticamente con la API de Search Console.Solución de problemas
Si tienes problemas para implementar o depurar datos estructurados, te brindamos algunos recursos que podrían resultarte útiles.
- Si usas un sistema de administración de contenido (CMS), o si alguien más se encarga de tu sitio, pídele que te ayude. Asegúrate de reenviarle cualquier mensaje de Search Console que detalle el problema.
- Google no garantiza que se muestren en los resultados de la búsqueda las funciones que consumen datos estructurados. Para obtener una lista de los motivos comunes por los que Google podría no mostrar tu contenido en un resultado enriquecido, consulta los Lineamientos generales de datos estructurados.
- Es posible que haya un error en los datos estructurados. Consulta la lista de errores de datos estructurados.
- Si recibiste una acción manual de datos estructurados en tu página, estos datos se ignorarán (aunque la página puede seguir apareciendo en los resultados de la Búsqueda de Google). Para solucionar los problemas con datos estructurados, usa el Informe de acciones manuales.
- Vuelve a consultar los lineamientos para determinar si tu contenido no cumple con ellos. El problema puede deberse a contenido generador de spam o a un uso fraudulento del lenguaje de marcado. Sin embargo, es posible que no sea un problema de sintaxis, por lo que la prueba de resultados enriquecidos no podrá identificar estos problemas.
- Soluciona problemas de resultados enriquecidos faltantes o disminución del total de resultados enriquecidos.
- Espera un tiempo suficiente para que se vuelvan a realizar el rastreo y la indexación. No olvides que pueden transcurrir varios días después de publicar una página para que Google la encuentre y la rastree. Si tienes preguntas generales sobre el rastreo y la indexación, consulta las Preguntas frecuentes sobre el rastreo y la indexación de la Búsqueda de Google.
- Publica una pregunta en el foro de la Central de la Búsqueda de Google.