2016-02-12 27 views
7

Czy istnieje mimo to używanie JSON-LD bez wstawiania script wstawianej w kodzie HTML, ale nadal otrzymujemy pająki Google (& inne), aby je znaleźć? Rozglądając się widziałem sprzeczne informacje.Czy istnieje sposób użycia schematu JSON-LD niewypowiedziany

Jeśli to plik JSON-LD:

<script type="application/ld+json"> 
    { 
     "@context" : "http://schema.org", 
     "@type" : "WebSite", 
     "name" : "Example Site", 
     "alternateName" : "example", 
     "description" : "Welcome to this WebSite", 
     "headline" : "Welcome to Website", 
     "logo" : "https://example.com/public/images/logo.png", 
     "url" : "https://example.com/" 
    } 
    </script> 

I mam to w head w HTML:

<script src="/public/json-ld.json" type="application/ld+json"></script> 

EDIT: Próbowałem zostały również:

<link href="/public/json-ld.json" rel="alternate" type="application/ld+" /> 

Google Pająki wydają się tęsknić, podobnie jak narzędzie do testowania, chyba że wskażę je bezpośrednio w pliku. Próbuję pracować w niebezpieczny sposób w CSP. I only thing I can find is this, który działałby w Chrome, ale nie chce uruchamiać błędów konsoli w każdej innej przeglądarce. Poza tym podoba mi się pomysł, aby dane Schema.org zostały usunięte ze struktury strony. Czy dodanie JSON-LD do mapy witryny dla Narzędzi Google dla webmasterów pomoże?

Przepraszam, total noob do JSON-lD i kończę na dokumentacji e-mailowej (dotyczy to strony) lub starej dokumentacji.

+0

Możliwy duplikat [Does JSON-LD muszą być osadzone?] (Http://stackoverflow.com/questions/30864619/does-json-ld-have-to-be-embedded) – unor

+0

Próbowałem to i nadal nie jest odbierane. Domyślam się, że JSON-LD nie obsługuje stron internetowych w plikach zewnętrznych. – Cynic

Odpowiedz

0

Prawdą jest, że nie można tego zrobić zewnętrznie i nie jest on obsługiwany w trybie liniowym, ale nadal można osiągnąć to, co chcemy, wprowadzając go do DOM za pomocą pliku JavaScript.

Uwaga: Używam macierzy do schludności, więc mogę posegmentować wszystkie elementy danych strukturalnych i dodać ich nieskończoną ilość. Mam bardziej skomplikowaną wersję tego kodu na moich stronach internetowych i faktycznie mam zewnętrzny plik renderowany po stronie serwera podszywający się pod plik JavaScript.

Tak, bot wyszukiwarki Google to rozumie. Rejestracja może zająć kilka dni, a używanie narzędzi dla webmasterów w celu wymuszenia ponownego indeksowania nie wymusza odświeżenia danych JSON-LD - wydaje się, że musisz tylko poczekać.

var structuredData = { 
    schema: { 
     corporation: { 
      '@context':   'http://schema.org', 
      '@type':   'Corporation', 
      'name':    'Acme', 
      'url':    'https://acme.com', 
      'contactPoint': 
      { 
       '@type':  'ContactPoint', 
       'telephone': '+1-1234-567-890', 
       'contactType': 'customer service', 
       'areaServed': 'US' 
      } 
     }, 
     service: { 
      '@context':   'http://schema.org/', 
      '@type':   'Service', 
      'name':    'Code optimization', 
      'serviceOutput' : 'Externalized json', 
      'description':  'Inline json to externalized json' 
     }, 
    }, 
    init: function() { 
     var g = []; 
     var sd = structuredData; 
     g.push(sd.schema.corporation); 
     g.push(sd.schema.service); 
     //etc. 

     var o = document.createElement('script'); 
     o.type = 'application/ld+json'; 
     o.innerHTML = JSON.stringify(g); 
     var d = document; (d.head || d.body).appendChild(o); 
    } 
} 
structuredData.init(); 
Powiązane problemy