2015-03-15 10 views
5

Ho una pagina in cui alcuni eventi vengono caricati dinamicamente leggendo alcuni JSON con JavaScript. Costruisco un div per ogni evento con il markup Schema.org Event.Il markup Schema.org funziona se il markup è costruito dinamicamente con JavaScript?

Lo strumento di test di Google non legge questo codice. È a causa di un errore nel markup o è dovuto al caricamento dinamico?

Il codice HTML di una Event è:

<div class="evento well" itemscope itemtype="http://schema.org/Event"> 
    <meta itemprop="startDate" content="2015-03-20T20:00:00.000Z"> 
    <meta itemprop="endDate" content="2015-01-21T20:00:00.000Z"> 
    <div class="dataEvento"> 
     <div class="dayWeekEvento">venerdì</div> 
     <div class="dayNumEvento">20</div> 
     <div class="monthEvento">Marzo</div> 
    </div> 
    <div class="datiEvento"> 
     <div class="oraEvento">ore 21:00</div> 
     <div class="titoloEvento"><span itemprop="name">Titolo evento</span></div> 
     <div class="luogoEvento" itemprop="address" itemscope="" itemtype="http://schema.org/PostalAddress"><a href="https://www.google.it/maps/place/Milano" target="_blank"><span class=" glyphicon glyphicon-map-marker" aria-hidden="true"></span> <span itemprop="addressLocality">Milano</span></a></div> 
    </div> 
</div> 
+0

è necessario aggiungere il codice effettivo che è stato utilizzato, altrimenti non possiamo cercare di vedere se c'è un errore nel nostro codice – Jonathan

+2

La risposta breve è ** no **: Google esegue solo la scansione del codice statico della pagina. Quelli mens che dovrai fornire i microtag nel markup che è eother sul lato server statico o renderizzato. Se utilizzi un pesante framework javaScript come Backbone, Angular, Ember e così via, hai la possibilità di rendere tutte le tue pagine rese da un servizio e di essere salvate sotto lo stesso URL, ma con un #! (Hashbang). Google, Bing e Yahoo (e alcuni altri) proveranno ad indicizzare gli URL di hashbang invece di quelli originali. – Rias

risposta

13

Google’s documentation menziona solo che essi possono consumare dati strutturati aggiunti dinamicamente se si utilizza la sintassi JSON-LD:

Inoltre, Google può leggere Dati JSON-LD anche quando vengono iniettati dinamicamente nei contenuti della pagina, ad esempio tramite codice JavaScript o "widget" incorporati.

Ciò non significa necessariamente che non possono leggerlo in caso di altre sintassi (come Microdata o RDFa), ma almeno non lo documentano.

Che la loro testing tool non lo legge può o non può significare qualcosa (che potrebbe essere che lo strumento non gestisce questo, ma il loro sistema interno lo fa). Tuttavia, non dovrebbe esserci alcun problema con il tuo markup effettivo, dato che puoi facilmente testarlo da solo incollando il tuo markup invece di inserire il tuo URL.

+0

sei sicuro che ci sia il sistema interno ?, non riesco a trovarlo lì documentazione –

+0

@KarimSamir: cosa intendi esattamente? Sicuro che sistema fa cosa? – unor

0

Dipende dal tipo di markup che è. Da Google:

JSON-LD è supportata per tutte le funzioni di Knowledge Graph, caselle di ricerca sitelink, Evento Rich Snippets, e Ricetta Rich Snippets; Google consiglia l'uso di JSON-LD per queste funzionalità. Per i restanti tipi di rich snippet e breadcrumb, Google consiglia l'uso di microdati o RDFa.

Dovrebbe funzionare ma so che le persone hanno segnalato problemi con lo strumento di test.

Problemi correlati