- 14 dicembre: Aggiornata la documentazione della pagina del Forum di Discussione e della pagina delle Domande e Risposte per chiarire esplicitamente che si raccomandano gli URL degli autori.
Dati strutturati del forum di discussione (DiscussionForumPosting)
Il markup del forum di discussione è progettato per qualsiasi sito in stile forum in cui le persone condividono collettivamente prospettive di prima mano. Quando i siti forum aggiungono questo markup, Google Search può identificare meglio le discussioni online su tutto il web e utilizzare questo markup in funzionalità come Discussioni, Forum e Prospettive.
Il tuo forum segue un modello di domande e risposte? Usa invece il markup Q&A.
Come utilizzare DiscussionForumPosting all’interno di un forum
In generale, raccomandiamo di annidare i commenti sotto il post a cui si riferiscono. Se il forum ha una propria struttura di thread, utilizza un albero di commenti per rappresentare la sua struttura:
{ "@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", ... }] }] }
Se ha una natura più lineare (ad esempio, un post originale seguito da una serie di risposte), annida tutti i commenti sotto il post originale. Idealmente, le pagine successive di contenuto in forum multi-pagina dovrebbero includere il post originale con l’URL della pagina principale:
{ // 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", ... }] }
Se l’URL riguarda principalmente un singolo post, utilizza mainEntity (o mainEntityOfPage) per identificare il DiscussionForumPosting principale.
{ "@context": "https://schema.org", "@type": "WebPage", "url": "https://example.com/post/very-popular-thread", "mainEntity": { "@type": "DiscussionForumPosting" ... } }
Per le pagine web che contengono un elenco di post (ad esempio, su una pagina di profilo, argomento o categoria), è comune che non tutte le informazioni siano presenti sulla stessa pagina e che l’utente debba fare clic per ottenere ulteriori informazioni (come risposte). Sta a te decidere se includere solo le informazioni presenti sulla pagina (e includere l’URL del post specifico alla discussione).
Non contrassegnare un post sulla pagina come entità principale se non è una pagina di discussione per quel post. Per dimostrare che le pagine sono un insieme di post correlati, potrebbe essere utile collegarle tutte a una Collection o a un ItemList.
Come aggiungere dati strutturati
I dati strutturati sono un formato standardizzato per fornire informazioni su una pagina e classificare il contenuto della pagina. Se sei nuovo ai dati strutturati, puoi saperne di più su come funzionano i dati strutturati.
Ecco una panoramica su come costruire, testare e rilasciare dati strutturati. Per una guida passo-passo su come aggiungere dati strutturati a una pagina web, controlla il codelab sui dati strutturati.
- Aggiungi le proprietà richieste. In base al formato che stai utilizzando, scopri dove inserire i dati strutturati sulla pagina.
- Utilizzi un CMS? Potrebbe essere più facile utilizzare un plugin integrato nel tuo CMS.
- Utilizzi JavaScript? Scopri come generare dati strutturati con JavaScript.
- Segui le linee guida.
- Convalida il tuo codice utilizzando il Rich Results Test e correggi eventuali errori critici. Considera anche di risolvere eventuali problemi non critici che potrebbero essere segnalati nello strumento, poiché possono aiutare a migliorare la qualità dei tuoi dati strutturati (tuttavia, ciò non è necessario per essere idonei ai risultati ricchi).
- Distribuisci alcune pagine che includono i tuoi dati strutturati e utilizza l’ URL Inspection tool per testare come Google vede la pagina. Assicurati che la tua pagina sia accessibile a Google e non sia bloccata da un file robots.txt, un tag noindex o requisiti di accesso. Se la pagina sembra a posto, puoi chiedere a Google di riesaminare i tuoi URL.
Nota: Consenti tempo per il re-crawling e la reindicizzazione. Ricorda che potrebbero volerci diversi giorni dopo la pubblicazione di una pagina affinché Google la trovi e la scansiona.
Per mantenere Google informato sui cambiamenti futuri, ti consigliamo di inviare una mappa del sito. Puoi automatizzare questo con l’ API Sitemap di Search Console.
Esempi
Il seguente esempio di markup mostra una pagina di forum lineare non threadata:
<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": "2023-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": "2023-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": "2023-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": "2023-03-01T09:50:25+02:00", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/LikeAction", "userInteractionCount": 7 } }] } </script> </head> <body> </body> </html>
Linee guida
Affinché i tuoi dati strutturati del forum di discussione siano idonei per l’uso in Google Search, devi seguire queste linee guida:
Linee guida generali sui dati strutturati
- Essenziali per la ricerca
- Linee guida sui contenuti
- Linee guida tecniche
Linee guida sui contenuti
Utilizza esclusivamente il markup DiscussionForumPosting per descrivere un post generato dagli utenti su un forum del sito web. Non utilizzare questo markup per contenuti principalmente redatti dagli editori del sito o dai loro agenti.
Anche se incoraggiamo l’uso di markup validi di altri tipi (Article, SocialMediaPosting, VideoObject) che possono utilizzare un markup molto simile con commenti, informazioni sugli autori e statistiche di interazione, questi non dovrebbero utilizzare il markup DiscussionForumPosting. Ecco alcuni esempi:
Casi d’uso validi:
- Una pagina di forum comunitario dove gli utenti possono parlare di un certo gioco
- Una piattaforma di forum generica che ospita una vasta gamma di contenuti di sottogruppi
Casi d’uso non validi:
- Un articolo o un blog scritto direttamente da un agente per il sito web (anche con commenti)
- Recensioni di utenti su un prodotto
Nota che per la maggior parte dei casi d’uso di Google, una pagina di domande e risposte è considerata un caso speciale di una pagina del forum di discussione. Se la struttura del sito del forum è principalmente composta da domande e risposte, ti consigliamo di utilizzare invece il markup Q&A. Se la struttura è più generale e di solito non include contenuti di domande e risposte, DiscussionForumPosting sarebbe una scelta migliore.
Assicurati che ogni DiscussionForumPosting includa il testo completo del post e assicurati che ogni Comment includa il testo completo della risposta se si trova su quella pagina.
Linee guida tecniche
A differenza della nostra preferenza generale per i dati strutturati, ti consigliamo di fornire il markup DiscussionForumPosting in Microdata (o RDFa) se possibile. Questo ti evita di dover duplicare grandi blocchi di testo all’interno del markup. Tuttavia, questa è solo una raccomandazione, e JSON-LD è comunque completamente supportato.
Definizioni dei tipi di dati strutturati
Questa sezione descrive i tipi di dati strutturati correlati a DiscussionForumPosting.
Devi includere le proprietà richieste affinché il tuo contenuto sia idoneo per l’uso in Google Search. Puoi anche includere le proprietà consigliate per aggiungere ulteriori informazioni sulle tue pagine del forum di discussione, il che potrebbe fornire un’esperienza utente migliore.
DiscussionForumPosting
Il tipo DiscussionForumPosting definisce un post originale che è l’argomento di discussione. Sebbene questo tipo sia generalmente composto da testo, è possibile avere un post di forum che consiste solo di contenuto multimediale.
Required properties | |
---|---|
|
Person or Organization Information about the author of the post. To help Google best understand authors across various features, we recommend following the author markup best practices.Include as many properties that make sense for the author, using the supported properties from article and profile page structured data as a guide. |
|
Text The name of the author of the post. |
|
DateTime The date and time the post was made in ISO 8601 format. |
Either text or image or video |
To represent the content of the post, you must include one of the following properties:
This is not required if you are representing a post on another page (with an external |
Recommended properties | |
---|---|
|
URL A link to a web page that uniquely identifies the author of the post, most likely a profile page of the forum. We recommend marking up that page using profile page structured data. |
comment |
Comment A comment about or response to the post, if applicable. Mark up comments in the order in which they appear on the page. |
creativeWorkStatus |
Text If the post has been deleted but remains for context or threading, set this property to Deleted . |
dateModified |
DateTime The date and time the post was edited in ISO 8601 format, if applicable. If no changes have happened, it’s not necessary to duplicate the publish date. |
|
Text The title of the post. If there isn’t a separate title, don’t duplicate or truncate the text into a headline. |
image |
ImageObject or URL Any inline images within the post, if applicable. If there are no images, don’t include default, icon, or placeholder images in this field. |
interactionStatistic |
InteractionCounter User statistics applied to the main post, if applicable.
Google supports the following
|
isPartOf |
CreativeWork or URL The primary source of the post if the post occurs on a particular part of the overall website. For example, a subforum or group within the broader website. If a CreativeWork (like WebPage ) is used, use the url property to specify its URL. |
|
CreativeWork The primary shared content in the post. The most common way this can be used is to share WebPages (with URLs) as a topical discussion, but images or videos can also be used with this property, particularly if they are the primary content of the comment.Here’s an example of how to add that there’s a link shared in the post:
... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
text |
Text Any text in the post, if applicable. This is very common, but in some cases can be left out if there is other media in the post. |
|
URL The canonical URL of the discussion. In multi-page threads, set this property to th first page URL. For a single discussion, this is usually the current URL. |
video |
VideoObject Any inline videos within the post, if applicable. |
Commento
Il tipo Commento definisce un commento su un’opera creativa originale. In questo caso, si tratta di un DiscussionForumPosting. Condivide molte delle stesse proprietà delle nostre linee guida per DiscussionForumPosting.
Required properties | |
---|---|
|
Person or Organization Information about the author of the comment. To help Google best understand authors across various features, we recommend following the author markup best practices.Include as many properties that make sense for the author, using the supported properties from article and profile page structured data as a guide. |
|
DateTime The date and time the comment was made in ISO 8601 format. If no changes have happened, it’s not necessary to duplicate the publish date. |
|
Text The main text of the comment. Ideally, this field matches the text that’s present on the page in the comment. |
Recommended properties | |
---|---|
|
URL A link to a web page that uniquely identifies the author of the comment, most likely a profile page of the forum. We recommend marking up that page using profile page structured data. |
comment |
Comment Another comment about or in response to the comment, if applicable. Mark up the comments in the order in which they appear on the page. |
creativeWorkStatus |
Text If the comment has been deleted but remains for context or threading, set this property to Deleted . |
dateModified |
DateTime The date and time the comment was last edited in ISO 8601 format, if applicable. |
image |
ImageObject or URL Any inline images within the comment, if applicable. If there aren’t any images, don’t include default, icon, or placeholder images in this field. |
interactionStatistic |
InteractionCounter User statistics applied to the comment, if applicable.
Google supports the following
|
|
CreativeWork The primary shared content in the comment. The most common way this can be used is to share WebPages (with URLs) as a topical discussion, but images or videos can also be used with this property particularly if they are the primary content of the comment.Here’s an example of how to add that there’s a link shared in the comment:
... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
|
URL The URL to this specific comment on the page. Don’t include this property if it’s just the URL of the original post. |
video |
VideoObject Any inline videos within the comment, if applicable. |
Contatore di Interazioni
Il tipo InteractionCounter permette di associare un conteggio a un certo tipo di interazione. Questo può essere utilizzato sia sulle proprietà di contenuto (DiscussionForumPosting e Commento) che sulle proprietà dell’autore.
Required properties | |
---|---|
|
Integer The number of times this interaction was performed. |
|
Subtype of Action For a list of valid Action subtypes for this property, check the property that’s using InteractionCounter (for example, interactionStatistic ). |
Monitora i risultati ricchi con Search Console
Search Console è uno strumento che ti aiuta a monitorare come le tue pagine si comportano in Google Search. Non è necessario iscriversi a Search Console per essere inclusi nei risultati di ricerca di Google, ma può aiutarti a capire e migliorare come Google vede il tuo sito. Ti consigliamo di controllare Search Console nei seguenti casi:
- Dopo aver implementato i dati strutturati per la prima volta
- Dopo aver rilasciato nuovi modelli o aggiornato il tuo codice
- Analizzando periodicamente il traffico
Recent Comments