• User

    Dati Strutturati: json-ld per menù bar e multi-item

    Ciao a tutti;
    ho sempre utilizzato i microdati ma vista la prestanza di json-ld, sto convertendo il sito di un cliente.
    La situazione è questa:
    1 - ho un menù bar : HOME - CHI SIAMO - CONTATTACI - MEPA - PROGETTAZIONE
    Allora implemento i dati strutturati di schema con "SiteNavigationElement".
    Ecco il problema sono più elementi (5) come lo implemento? Ho provato questo codice, utilizzando ItemList ma il tool di google continua a trovarmi solo l'ultimo item(progettazione).:?

    <script type="application/ld+json">{
    "@context": "schema.org",
    "@type": "Itemlist",
    "itemListElement": {
    "@type": "SiteNavigationElement",
    "url": "nonsoloarredo.com/",
    "name": "HOME",
    "position": "1"
    },
    "itemListElement": {
    "@type": "SiteNavigationElement",
    "url": "nonsoloarredo.com/chi-siamo.html",
    "name": "CHI SIAMO",
    "position": "2"
    },
    "itemListElement": {
    "@type": "SiteNavigationElement",
    "url": "nonsoloarredo.com/contatti.html",
    "name": "CONTATTACI",
    "position": "3"
    },
    "itemListElement": {
    "@type": "SiteNavigationElement",
    "url": "nonsoloarredo.com/mepa.html",
    "name": "MEPA",
    "position": "4"
    },
    "itemListElement": {
    "@type": "SiteNavigationElement",
    "url": "nonsoloarredo.com/progettazione.html",
    "name": "PROGETTAZIONE",
    "position": "5"
    }
    },
    </script>

    Avete qualche idea/consiglio per aggiustare il codice?:o
    Vedete qualche fatal-error? :arrabbiato:
    Grazie per l'aiuto;
    Federico


  • User

    AGGIORNAMENTO!
    La soluzione è stata trovata, se così si può dire!
    Ecco il codice json-ld che dovrebbe rendere nota a google la struttura del mio menù.

    <script type="application/ld+json">
    {
    "@context": "schema.org",
    "@type": "ItemList",
    "mainEntityOfPage": {
    "@type": "SiteNavigationElement",
    "@id": "nonsoloarredo.com/"
    },
    "itemListElement": [
    {
    "@type": "SiteNavigationElement",
    "url": "nonsoloarredo.com/",
    "name": "HOME",
    "position": "1"
    },
    {
    "@type": "SiteNavigationElement",
    "url": "nonsoloarredo.com/chi-siamo.html",
    "name": "CHI SIAMO",
    "position": "2"
    }
    ecc... (con gli altri 3 elementi
    ]
    },
    </script>

    Ora però i problemi non finiscono quì. Anzi sono appena cominciati!
    Vedete l'attributo "mainEntityOfPage"? Lo ho inserito perchè il tool di google mi dice che è strettamente obbligatorio (gli esempi di schema.org dicono di no). 😮
    Allora obbligato dalla situazione lo ho inserito. Schema.org dice: il type di quell'atributo è: CreativeWork oppure URL (o estensioni).
    Beh quell'attributo crea questo problema (sempre indicato dal tool di google): L'attributo *itemtype ha un valore non valido.
    *Cosa vuol dire???? Mi sono posto un paio di domande:
    1 - esiste un attributo "itemtype" ? -> schema.org non ne parla :mmm:
    2 - si sta riferendo al "@type" ? -> di solito utilizza un altra frase diversa per indicare l'inesattezza del "@type" e dopo vari test ho concluso di no. :arrabbiato:
    3 - schema.org ne parla ? SI, ma. Negli esempi dell'implementazione di questo attributo (mainEntityOfpage), tutto risulta essere uguale al mio codice.

    Non riesco dunque a darmene una spiegazione.
    Ora mi sorge un DUBBIO fatale, che forse avrei dovuto pormi all'inizio di questo iter di test:
    E' davvero la soluzione migliore descrivere un menù con una lista (ItemList) di SiteNavigationElement ???????? ❌fumato:
    Oppure descrivere un menù con i dati strutturati è utile???

    Beh, vi lascio (per ora) con questi miei interrogativi e spero di ricevere qualche vostra risposta.

    Buona Giornata;
    Federico


  • Admin

    Sai che non mi è chiaro perché vuoi markuppare il menu come una lista di elementi?

    Secondo me non ha molto senso. Secondo me elencare gli elementi ha senso nella pagina di categoria come da quesito iniziale, ma in questo caso credo non sia qualcosa di strettamente necessario.


  • User

    Ti dirò....
    Nemmeno secondo me avrebbe molto senso markuppare il menù, ma visto che schema.org offre la possibilità perchè non farlo?

    Ti dirò di più....
    Il mio vero intento sarebbe quello di markuppare i prodotti del mio sito che funge da "vetrina". [ Dato che nella pagina il menù è più alto ho iniziato da quello! 😄 ]

    Dunque proviamo a fare la stessa cosa con dei prodotti. Sostituiamo a "SiteNavigationElement" -> "Product" e completiamo con gli attributi.
    Mi si crea un ulteriore problema: l'attributo "position" è obbligatorio (per utilizzare ItemList), ma non è riconosciuto per il type Product ❌o:?
    Oltre, ovviamente, a quello già esistente del "mainEntityOfPage".

    La sfida con json-ld si fa sempre più ardua. :eheh:
    Sarà perchè è nuovo....