Datos estructurados de foros de debate (DiscussionForumPosting
)
![Ilustración de la función de debates y foros](https://developers-dot-devsite-v2-prod.appspot.com/static/search/docs/images/discussions-and-forums-rich-result.png?authuser=4&hl=es)
Las etiquetas de foros de debate están diseñadas para los sitios de tipo foro en los que los usuarios comparten perspectivas de primera mano. Cuando los sitios de foros añaden estas etiquetas, la Búsqueda de Google puede identificar mejor los debates online en la Web y usarlas en funciones como los debates y foros y las perspectivas.
Cómo usar DiscussionForumPosting
en un foro
Por lo general, te recomendamos que anides los comentarios debajo de la publicación con la que estén relacionados. Si el foro tiene su propia estructura organizada en conversaciones, utiliza un árbol de comentarios para representarla:
{ "@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 la naturaleza es 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 de 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 única publicación, utiliza 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" ... } }
Las páginas web que tienen una lista de publicaciones (por ejemplo, en una página de perfil, tema o categoría) es habitual que no tengan toda la información presente en la misma página y requieran que el usuario haga clic para obtener información adicional (como respuestas). Puedes elegir incluir solo la información que está presente en la página (e 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 esa publicación. Para mostrar que las páginas son un conjunto de publicaciones relacionadas, puede ser útil adjuntarlas todas a una Collection
o ItemList
.
Cómo añadir datos estructurados
Los datos estructurados son un formato estandarizado con el que se puede proporcionar información sobre una página y clasificar su contenido. Consulta cómo funcionan los datos estructurados si aún no te has familiarizado con ellos.
A continuación se explica a grandes rasgos cómo crear, probar y publicar datos estructurados. Si necesitas una guía detallada para añadir datos estructurados a una página web, consulta el codelab de datos estructurados.
- Añade las propiedades obligatorias. Consulta más información sobre dónde insertar datos estructurados en una página en función del formato que estés utilizando.
- Sigue las directrices.
- Valida tu código con la prueba de resultados enriquecidos y corrige los errores críticos. Te recomendamos que también corrijas 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).
- Crea varias páginas que incluyan tus datos estructurados y comprueba cómo las ve Google con la herramienta de inspección de URLs. Asegúrate de que Google pueda acceder a tu página y de que no esté bloqueada por un archivo robots.txt, por la etiqueta
noindex
ni por requisitos de inicio de sesión. Si la página se ve bien, puedes solicitar que Google vuelva a rastrear tus URLs. - Para que Google siempre tenga la versión actualizada de tus páginas, te recomendamos que envíes un sitemap. Puedes automatizar este envío con la API Sitemap de Search Console.
Ejemplos
En el siguiente ejemplo de etiquetas se muestra una página de foro lineal y sin conversaciones:
<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>
Directrices
Para que los datos estructurados de tu foro de debate se puedan utilizar en la Búsqueda de Google, debes seguir estas directrices:
- Directrices generales sobre datos estructurados
- Directrices básicas de la Búsqueda
- Directrices de contenido
- Directrices técnicas
Directrices de contenido
- Usa la etiqueta
DiscussionForumPosting
solo para describir una publicación generada por un usuario en el foro de un sitio web. No utilices estas etiquetas en contenido creado principalmente por los editores del sitio web o sus agentes. - Aunque recomendamos las etiquetas válidas de otros tipos (
Article
,SocialMediaPosting
,VideoObject
) que puedan utilizar unas etiquetas muy similares con comentarios, información del autor y estadísticas de interacción, no se deberían usar las etiquetasDiscussionForumPosting
. Ejemplos:Casos prácticos que son válidos:
- Una página del foro de una comunidad en la que los usuarios pueden hablar sobre un juego determinado
- Una plataforma de foro genérica que aloja una gran variedad de contenido de subforo
Casos prácticos que no son válidos:
- Un artículo o blog escrito directamente por un agente para el sitio web (incluso con comentarios).
- Reseñas de usuarios sobre un producto
- Ten en cuenta que, en la mayoría de los casos prácticos de Google, una página de preguntas se considera un caso especial de una página de foro de debate. Si la estructura del sitio web del foro está compuesta principalmente por preguntas con respuestas, te recomendamos que uses etiquetas de preguntas. Si la estructura es más general y no suele ser contenido de preguntas y respuestas,
DiscussionForumPosting
es una mejor opción. - Comprueba que en cada elemento
DiscussionForumPosting
se incluye el texto completo de la publicación y que en cada elementoComment
se incluye el texto completo de la respuesta si se encuentra en esa página.
Directrices técnicas
- A diferencia de nuestra preferencia general de datos estructurados, te recomendamos que proporciones las etiquetas
DiscussionForumPosting
en microdatos (o RDFa) si es posible. De esta forma, no tendrás que duplicar bloques de texto grandes en las etiquetas. Sin embargo, se trata solo de 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 pueda usarse en la Búsqueda de Google. También puedes especificar las propiedades recomendadas para proporcionar más información sobre las páginas de tu foro de debate y, así, ofrecer una mejor experiencia de usuario.
DiscussionForumPosting
El tipo DiscussionForumPosting
define una publicación original que será tema de debate. Aunque este tipo de contenido generalmente se compone de texto, es posible tener una publicación en el foro que solo contenga contenido multimedia.
Propiedades obligatorias | |
---|---|
|
Person o
Organization
Información sobre el autor de la publicación. Para ayudar a Google a identificar mejor a los autores en distintas funciones, te recomendamos que sigas las prácticas recomendadas para etiquetar autores. Incluye todas las propiedades que sean relevantes para el autor con las propiedades admitidas de los datos estructurados de artículos y páginas de perfil. |
|
Text
Nombre del autor de la publicación. |
|
Indica la fecha y la hora de 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: No es necesario si representas una publicación en otra página (con un |
Propiedades recomendadas | |
---|---|
|
Indica el enlace a una página web que solo identifica al autor de la publicación, probablemente una página de perfil del foro. Te recomendamos que marques esa página con datos estructurados de página de perfil. |
comment |
Un comentario sobre la publicación o una respuesta a ella, si procede. Marca los comentarios en el orden en el que aparecen en la página. |
creativeWorkStatus |
Si la publicación se ha eliminado, pero sigue estando disponible para contextualizarla o organizarla en conversaciones, asigna el valor |
dateModified |
Indica la fecha y la hora en la que se editó la publicación en formato ISO 8601, si corresponde. Si no se han hecho cambios, no es necesario duplicar la fecha de publicación. |
|
Text
Título de la publicación. Si no hay un título independiente, no dupliques ni trunques el texto para convertirlo en un título. |
image |
Cualquier imagen insertada en la publicación, si procede. Si no hay imágenes, no incluyas imágenes predeterminadas, de icono ni de marcador de posición en este campo. |
interactionStatistic |
Estadísticas de usuario aplicadas a la publicación principal, si procede. Google admite las siguientes
|
isPartOf |
Fuente principal de la publicación en caso de que aparezca en una parte concreta de todo el sitio web, si procede.
Por ejemplo, un subforo o un grupo dentro del sitio web general. Si se utiliza |
|
CreativeWork
El contenido principal compartido en la publicación, si procede. La forma más habitual de utilizarlo es compartir Aquí tienes un ejemplo de cómo indicar que hay un enlace compartido en la publicación: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
text |
Texto de la publicación, si procede. Es muy habitual, pero en algunos casos se puede omitir si hay otro contenido multimedia en la publicación. |
|
URL
URL canónica del debate. En las conversaciones de varias páginas, asigna a esta propiedad la URL de la primera página. En el caso de ser un debate de una página, suele ser la URL actual. |
video |
Cualquier vídeo insertado en la publicación, si procede. |
Comment
El tipo Comment
define un comentario en un CreativeWork
original. En este caso, es un objeto DiscussionForumPosting
. Comparte muchas de las propiedades con nuestras directrices de DiscussionForumPosting
.
Propiedades obligatorias | |
---|---|
|
Person o
Organization
Información sobre el autor del comentario. Para ayudar a Google a identificar mejor a los autores en distintas funciones, te recomendamos que sigas las prácticas recomendadas para etiquetar autores. Incluye todas las propiedades que sean relevantes para el autor con las propiedades admitidas de los datos estructurados de artículos y páginas de perfil. |
|
Indica la fecha y la hora en las que se publicó el comentario en formato ISO 8601. Si no se han hecho cambios, no es necesario duplicar la fecha de publicación. |
|
Text
Texto principal del comentario. Lo ideal es que este campo coincida con el texto que se incluye en la página del comentario. |
Propiedades recomendadas | |
---|---|
|
Indica el enlace a una página web que solo identifica al autor del comentario, probablemente una página de perfil del foro. Te recomendamos que marques esa página con datos estructurados de página de perfil. |
comment |
Otro comentario sobre el comentario o en respuesta a este, si procede. Marca los comentarios en el orden en el que aparecen en la página. |
creativeWorkStatus |
Si el comentario se ha eliminado, pero sigue estando disponible para contextualizarlo o organizarlo en conversaciones, asigna el valor |
dateModified |
Indica la fecha y la hora en la que se editó por última vez el comentario en formato ISO 8601, si corresponde. |
image |
Cualquier imagen insertada en el comentario, si procede. Si no hay imágenes, no incluyas imágenes predeterminadas, de icono ni de marcador de posición en este campo. |
interactionStatistic |
Estadísticas de usuario aplicadas al comentario, si procede. Google admite las siguientes
|
|
CreativeWork
El contenido principal compartido en el comentario, si procede. La forma más habitual de utilizarlo es compartir Aquí tienes un ejemplo de cómo indicar que hay un enlace compartido en el comentario: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
|
URL
La URL de ese comentario concreto de la página, si procede. No incluyas esta propiedad si solo es la URL de la publicación original. |
video |
Cualquier vídeo insertado en el comentario, si procede. |
InteractionCounter
InteractionCounter
permite asociar un recuento a un determinado tipo de interacción. Se puede utilizar tanto en propiedades de contenido (DiscussionForumPosting
y Comment
) como en propiedades author
.
Propiedades obligatorias | |
---|---|
|
Integer
El número de veces que se ha realizado esta interacción. |
|
Subtipo de Para ver una lista con los subtipos de |
Monitorizar resultados enriquecidos con Search Console
Search Console es una herramienta que te ayuda a monitorizar el rendimiento de tus páginas en la Búsqueda de Google. No hace falta que te registres en Search Console para que tu sitio web aparezca en los resultados de la Búsqueda de Google, pero, si lo haces, sabrás cómo lo ve Google y qué puedes hacer para mejorarlo. Te recomendamos que consultes Search Console en los siguientes casos:
- Después de implementar datos estructurados por primera vez
- Después de publicar plantillas nuevas o modificar el código
- Al hacer el análisis periódico del tráfico
Después de implementar datos estructurados por primera vez
Una vez que Google haya indexado tus páginas, puedes comprobar si hay algún problema en el informe de estado de resultados enriquecidos correspondiente. Lo ideal es que haya un aumento en el número de elementos válidos y que no lo haya en el número de elementos no válidos. Si detectas problemas en tus datos estructurados, haz lo siguiente:
- Corrige los elementos no válidos.
- Inspecciona la URL en tiempo real para ver si el problema continúa.
- Solicita que se valide la corrección desde el informe de estado.
Después de publicar plantillas nuevas o modificar el código
Cuando hagas cambios significativos en tu sitio web, observa si se incrementa la cantidad de elementos no válidos de datos estructurados.- Si notas que hay más elementos no válidos, quizá sea porque has implementado una plantilla que no funciona, o puede que tu sitio esté interactuando con la plantilla que utilizas de un modo diferente que no es adecuado.
- Si notas que hay menos elementos válidos, pero no hay un incremento de elementos no válidos, es posible que hayas dejado de insertar datos estructurados en tus páginas. Para saber cuál es la causa del problema, utiliza la herramienta de inspección de URLs.
Al hacer el análisis periódico del tráfico
Consulta el informe de rendimiento para analizar el tráfico de tus páginas en la Búsqueda de Google. En él, verás con qué frecuencia aparece tu página como resultado enriquecido en la Búsqueda, cada cuánto hacen clic en ella los usuarios y cuál es la posición media que ocupa tu sitio web en los resultados de búsqueda. También puedes obtener automáticamente estos resultados con la API de Search Console.Solucionar problemas
Si tienes problemas para implementar o depurar datos estructurados, a continuación se incluyen algunos recursos que pueden serte útiles.
- Si usas un sistema de gestión de contenido (CMS) o alguien se encarga de gestionar tu sitio, pídele ayuda. No olvides reenviarle cualquier mensaje de Search Console que incluya información sobre el problema en cuestión.
- Google no garantiza que las funciones que utilizan datos estructurados aparezcan en los resultados de búsqueda. Para ver una lista con motivos habituales por los que Google no muestra tu contenido en resultados enriquecidos, consulta las directrices generales de datos estructurados.
- Es posible que haya un error en tus datos estructurados. Consulta la lista de errores de datos estructurados.
- Si se ha aplicado una acción manual de datos estructurados a tu página, se ignorarán sus datos estructurados, aunque la página puede seguir apareciendo en los resultados de la Búsqueda de Google. Para corregir problemas de datos estructurados, usa el informe "Acciones manuales".
- Revisa las directrices para comprobar si tu contenido no las cumple. El problema podría deberse a que la página incluye contenido engañoso o etiquetas con contenido fraudulento. No obstante, es posible que el problema no se deba a la sintaxis, por lo que la prueba de resultados enriquecidos no podrá ayudarte a identificarlo.
- Soluciona problemas si faltan resultados enriquecidos o si se ha reducido su número total.
- Dale tiempo a Google para que vuelva a rastrear e indexar tu página. Recuerda que Google puede tardar varios días en encontrar y rastrear una página después de publicarse. Consulta las preguntas frecuentes sobre el rastreo y la indexación de la Búsqueda de Google.
- Publica una pregunta en el foro del Centro de la Búsqueda de Google.