Dati strutturati per forum di discussione (DiscussionForumPosting
)
Il markup per forum di discussione è progettato per qualsiasi sito in stile forum in cui le persone condividono collettivamente prospettive in prima persona. Quando si aggiunge questo markup ai siti di forum, la Ricerca Google può identificare meglio le discussioni sul web e utilizzare questo markup in funzionalità quali Discussioni e forum.
Come utilizzare DiscussionForumPosting
in un forum
In generale, consigliamo di nidificare i commenti sotto il post a cui fanno riferimento. Se il forum ha una propria struttura di thread, utilizza un albero di commenti per rappresentarne la 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 struttura più lineare (ad esempio, un post originale seguito da una serie di risposte), nidifica tutte le risposte sotto il post originale come commenti. Idealmente, le pagine successive di contenuti nei forum con più pagine includono 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), è normale che non includano tutte le informazioni presenti nella stessa pagina e richiedano all'utente di fare clic per ottenere informazioni aggiuntive (come le risposte). Spetta a te scegliere se includere solo le informazioni presenti nella pagina (nonché l'URL al post della discussione specifica).
Non contrassegnare un solo post nella pagina come entità principale se non è una pagina di discussione del post. Per mostrare che le pagine sono un insieme correlato di post, potrebbe essere utile collegarle tutte a
Collection
o ItemList
.
Come aggiungere dati strutturati
I dati strutturati sono un formato standardizzato per fornire informazioni su una pagina e classificarne i contenuti. Se non li hai mai utilizzati, scopri di più su come funzionano i dati strutturati.
Ecco una panoramica su come creare, testare e rilasciare i dati strutturati. Per una guida passo per passo su come aggiungere dati strutturati a una pagina web, consulta il codelab sui dati strutturati.
- Aggiungi le proprietà obbligatorie. In base al formato che utilizzi, scopri dove inserire i dati strutturati nella pagina.
- Segui le linee guida.
- Convalida il codice utilizzando lo strumento di Test dei risultati avanzati e correggi eventuali errori critici. Prendi in considerazione anche la possibilità di correggere eventuali problemi non critici che potrebbero essere segnalati nello strumento, in quanto possono contribuire a migliorare la qualità dei tuoi dati strutturati (tuttavia, questo non è necessario per l'idoneità per i risultati avanzati).
- Implementa alcune pagine che includono dati strutturati e utilizza lo strumento Controllo URL per verificare come Google vede la pagina. Assicurati che la pagina sia accessibile per Google e che non venga bloccata da file robots.txt, tag
noindex
o requisiti di accesso. Se la pagina non presenta problemi, puoi chiedere a Google di ripetere la scansione degli URL. - Per tenere Google informata delle future modifiche, ti consigliamo di inviare una Sitemap. Puoi automatizzare questa operazione con l'API Search Console Sitemap.
Esempi
Il seguente esempio di markup mostra una pagina di forum lineare non in thread:
<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>
Linee guida
Affinché i dati strutturati per forum di discussione siano idonei all'utilizzo nella Ricerca Google, devi seguire queste linee guida:
- Linee guida generali sui dati strutturati.
- Nozioni di base sulla Ricerca
- Linee guida relative ai contenuti
- Linee guida tecniche
Linee guida relative ai contenuti
- Utilizza il markup
DiscussionForumPosting
solo per descrivere un post generato dagli utenti su un sito web. Non utilizzare questo markup per contenuti creati principalmente dai publisher del sito web o dai loro agenti. - Se il tuo sito è più simile a una piattaforma di social media generica, puoi usare
SocialMediaPosting
, che è il tipo principale diDiscussionForumPosting
, con gli stessi requisiti. - Anche se incoraggiamo markup validi di altri tipi (
Article
,ImageObject
,VideoObject
) che possono utilizzare un markup molto simile con commenti, informazioni sugli autori e statistiche sulle interazioni, questi non devono utilizzare il markupDiscussionForumPosting
. Ecco alcuni esempi:Casi d'uso validi:
- Una pagina di un forum della community in cui gli utenti possono parlare di un determinato gioco
- Una piattaforma di forum generica che ospita una vasta gamma di contenuti di forum secondari
- Una piattaforma di social media in cui gli utenti possono pubblicare e rispondere a commenti o contenuti multimediali
Casi d'uso non validi:
- Un articolo o un blog scritto direttamente da un agente per il sito web (anche con commenti)
- Recensioni degli utenti su un prodotto
- Tieni presente che, per la maggior parte dei casi d'uso di Google, una pagina di domande e risposte è considerata un caso speciale di pagina di forum di discussione. Se la struttura del sito web del forum è costituita principalmente da domande con risposte, ti consigliamo di utilizzare invece il markup per domande e risposte. Se la struttura è più generica e di solito non comprende contenuti di domande e risposte,
DiscussionForumPosting
sarebbe una scelta migliore. - Assicurati che ogni elemento
DiscussionForumPosting
includa l'intero testo del post e che ogni elementoComment
includa l'intero testo della risposta, se presente nella pagina.
Linee guida tecniche
- A differenza della nostra preferenza generale per i dati strutturati, ti consigliamo di fornire il markup
DiscussionForumPosting
in formato Microdati (o RDFa), se possibile. In questo modo, non sarà necessario duplicare grandi blocchi di testo all'interno del markup. Tuttavia, si tratta solo di un suggerimento, e JSON-LD è ancora pienamente supportato.
Definizioni dei tipi di dati strutturati
Questa sezione descrive i tipi di dati strutturati relativi a DiscussionForumPosting
.
Affinché i tuoi contenuti siano idonei a essere utilizzati nella Ricerca Google, devi includere le proprietà obbligatorie. Puoi anche includere le proprietà consigliate per aggiungere ulteriori informazioni sulle tue pagine di forum di discussione, che potrebbero fornire un'esperienza utente migliore.
DiscussionForumPosting
(o SocialMediaPosting
)
Il tipo DiscussionForumPosting
definisce un post originale che è l'argomento di discussione. Anche se questo tipo è generalmente composto da un testo, è possibile avere un post su un forum costituito solo da contenuti multimediali.
Proprietà obbligatorie | |
---|---|
|
Person o
Organization
Informazioni sull'autore del post. Per consentire a Google di comprendere meglio gli autori in varie funzionalità, ti consigliamo di seguire le best practice per il markup degli autori. Includi tutte le proprietà significative per l'autore, utilizzando come guida le proprietà supportate dei dati strutturati per articoli e pagine del profilo. |
|
Text
Il nome dell'autore del post. |
|
La data e l'ora in cui il post è stato creato, nel formato ISO 8601. |
text , image o video |
Per rappresentare i contenuti del post, devi includere una delle seguenti proprietà: Non sono necessarie se stai rappresentando un post su un'altra pagina (con un |
Proprietà consigliate | |
---|---|
|
Un link a una pagina web che identifica in modo univoco l'autore del post, in genere una pagina del profilo del forum. Ti consigliamo di eseguire il markup di questa pagina utilizzando i dati strutturati per pagine del profilo. |
comment |
Un commento o una risposta al post, se applicabile. Esegui il markup dei commenti nell'ordine in cui appaiono sulla pagina. |
creativeWorkStatus |
Se il post è stato eliminato, ma è ancora disponibile per fornire contesto o per i thread, imposta questa proprietà su
|
dateModified |
La data e l'ora in cui il post è stato modificato, nel formato ISO 8601, se applicabili. Se non sono state apportate modifiche, non è necessario duplicare la data di pubblicazione. |
|
Text
Il titolo del post. Se non c'è un titolo separato, non duplicare o troncare il testo. Questa opzione non è consigliata per un |
image |
Eventuali immagini incorporate nel post, se applicabili. Se non sono presenti, non includere immagini predefinite, segnaposto o icone in questo campo. |
interactionStatistic |
Statistiche sugli utenti applicate al post principale, se applicabili. Google supporta i seguenti valori
|
isPartOf |
La fonte principale del post se si trova in una determinata parte del sito web generico, se applicabile.
Ad esempio, un forum o un gruppo secondario all'interno di un sito web più ampio. Se viene utilizzato |
|
CreativeWork
I contenuti principali condivisi nel post, se applicabili. Il modo più comune per usare questa proprietà è condividere Ecco un esempio di come aggiungere la presenza di un link condiviso nel post: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
text |
Qualsiasi testo nel post, se applicabile. Si tratta di un elemento molto comune, ma in alcuni casi può essere tralasciato se il post contiene altri contenuti multimediali. |
|
URL
L'URL canonico della discussione. Nei thread di più pagine, imposta questa proprietà sull'URL della prima pagina. Per una singola discussione, in genere si tratta dell'URL corrente. |
video |
Eventuali video incorporati nel post, se applicabili. |
Comment
Il tipo Comment
definisce un commento su un CreativeWork
originale. In questo caso è un DiscussionForumPosting
. Condivide molte delle stesse proprietà con le nostre linee guida per DiscussionForumPosting
.
Proprietà obbligatorie | |
---|---|
|
Person o
Organization
Informazioni sull'autore del commento. Per consentire a Google di comprendere meglio gli autori in varie funzionalità, ti consigliamo di seguire le best practice per il markup degli autori. Includi tutte le proprietà significative per l'autore, utilizzando come guida le proprietà supportate dei dati strutturati per articoli e pagine del profilo. |
|
La data e l'ora in cui il commento è stato creato, nel formato ISO 8601. Se non sono state apportate modifiche, non è necessario duplicare la data di pubblicazione. |
text , image o video |
Per rappresentare i contenuti del commento, devi includere una delle seguenti proprietà: |
Proprietà consigliate | |
---|---|
|
Un link a una pagina web che identifica in modo univoco l'autore del commento, in genere una pagina del profilo del forum. Ti consigliamo di eseguire il markup di questa pagina utilizzando i dati strutturati per pagine del profilo. |
comment |
Un altro commento a riguardo o in risposta al commento, se applicabile. Esegui il markup dei commenti nell'ordine in cui appaiono sulla pagina. |
creativeWorkStatus |
Se il commento è stato eliminato, ma rimane per fornire contesto o per i thread, imposta questa proprietà su |
dateModified |
La data e l'ora in cui il commento è stato modificato l'ultima volta, nel formato ISO 8601, se applicabile. |
image |
Eventuali immagini incorporate nel commento, se applicabili. Se non sono presenti immagini, non includere immagini predefinite, segnaposto o icone in questo campo. |
interactionStatistic |
Statistiche sugli utenti applicate al commento, se applicabili. Google supporta i seguenti valori
|
|
CreativeWork
I contenuti principali condivisi nel commento, se applicabili. Il modo più comune per usare questa proprietà è condividere
Ecco un esempio di come aggiungere la presenza di un link condiviso nel commento: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
|
URL
L'URL a questo specifico commento sulla pagina, se applicabile. Non includere questa proprietà se è solo l'URL del post originale. |
video |
Eventuali video incorporati nel commento, se applicabili. |
InteractionCounter
InteractionCounter
consente di associare un conteggio a un determinato tipo di interazione. Questa opzione può essere utilizzata sia nelle proprietà dei contenuti (DiscussionForumPosting
e Comment
) che nelle proprietà author
.
Proprietà obbligatorie | |
---|---|
|
Integer
Il numero di volte in cui è stata eseguita questa interazione. |
|
Sottotipo di Per un elenco di sottotipi |
Monitorare i risultati avanzati con Search Console
Search Console è uno strumento che consente di monitorare il rendimento delle tue pagine in Ricerca Google. Registrarsi in Search Console non è obbligatorio per essere inclusi nei risultati di Ricerca Google, ma può aiutarti a capire e migliorare il modo in cui Google vede il tuo sito. Ti consigliamo di controllare Search Console nei seguenti casi:
- Dopo aver effettuato il deployment dei dati strutturati per la prima volta
- Dopo aver rilasciato nuovi modelli o aggiornato il codice
- Analisi periodica del traffico
Dopo aver effettuato il deployment dei dati strutturati per la prima volta
Dopo che Google ha indicizzato le tue pagine, cerca i problemi utilizzando il report sullo stato dei risultati avanzati pertinente. L'ideale sarebbe un aumento degli elementi validi e nessun aumento di quelli non validi. Se riscontri problemi nei dati strutturati:
- Correggi gli elementi non validi.
- Controlla un URL pubblicato per verificare se il problema persiste.
- Richiedi la convalida utilizzando il report sullo stato.
Dopo aver rilasciato nuovi modelli o aggiornato il codice
Quando apporti modifiche significative al tuo sito web, monitora l'aumento degli elementi non validi dei dati strutturati.- Se vedi un aumento di errori, forse hai reso disponibile un nuovo modello non funzionante oppure il tuo sito interagisce con il modello esistente in modo nuovo, ma non corretto.
- Se noti una diminuzione degli elementi validi (non associata a un aumento di quelli non validi), forse non stai più incorporando dati strutturati nelle tue pagine. Utilizza lo strumento Controllo URL per scoprire la causa del problema.
Analisi periodica del traffico
Analizza il traffico di Ricerca Google utilizzando il rapporto sul rendimento. I dati mostrano la frequenza con cui la pagina viene visualizzata nei risultati multimediali nella Ricerca, la frequenza con cui gli utenti fanno clic e qual è la posizione media che visualizzi nei risultati di ricerca. Puoi anche estrarre automaticamente questi risultati con l'API Search Console.Risoluzione dei problemi
Se hai difficoltà con l'implementazione o il debug dei dati strutturati, ecco alcune risorse che potrebbero esserti utili.
- Se utilizzi un sistema di gestione dei contenuti (CMS) o un'altra persona si sta occupando del tuo sito, chiedile di aiutarti. Assicurati di inoltrarle gli eventuali messaggi di Search Console che illustrano il problema.
- Google non garantisce che le funzionalità che utilizzano dati strutturati vengano visualizzate nei risultati di ricerca. Per un elenco delle cause comuni per cui i tuoi contenuti potrebbero non essere mostrati da Google in un risultato avanzato consulta le linee guida generali sui dati strutturati.
- I tuoi dati strutturati potrebbero contenere un errore. Consulta l'elenco degli errori nei dati strutturati e il report sui dati strutturati non analizzabili.
- Se i dati strutturati della tua pagina sono interessati da un'azione manuale, i dati strutturati sulla pagina verranno ignorati (sebbene la pagina possa ancora essere visualizzata nei risultati della Ricerca Google). Per risolvere i problemi relativi ai dati strutturati, utilizza il report Azioni manuali.
- Consulta nuovamente le linee guida per verificare se i tuoi contenuti non sono conformi. Il problema può essere causato dall'utilizzo di contenuti di spam o di markup di spam. Tuttavia, il problema potrebbe non riguardare la sintassi e perciò non essere identificato dal Test dei risultati avanzati.
- Risolvi i problemi relativi a risultati avanzati mancanti o a un calo del numero totale di risultati avanzati.
- Lascia del tempo per le nuove operazioni di scansione e indicizzazione. Ricorda che possono passare diversi giorni dopo la pubblicazione di una pagina prima che Google la rilevi e la sottoponga a scansione. Per domande generali sulla scansione e sull'indicizzazione, consulta le Domande frequenti (FAQ) relative alla scansione e all'indicizzazione della Ricerca Google.
- Pubblica una domanda nel forum di Google Search Central.