2016-02-12 2 views
7

Есть ли все-таки использовать JSON-LD, не включая script встроенный в HTML, но все равно получить Google (& других) пауков, чтобы найти его? Оглядываясь, я видел какую-то противоречивую информацию.Есть ли способ использовать JSON-LD Schema not inlined

Если это файл в формате 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> 

И у меня есть это в head в HTML:

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

EDIT: Я также попытался:

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

Google Spiders, похоже, пропустили его, а также инструмент тестирования, если я не укажу его непосредственно на файл. Я пытаюсь работать с небезопасным встроенным в CSP. И only thing I can find is this, который будет работать в Chrome, но не хочет запускать консольные ошибки в каждом другом браузере. Кроме того, мне просто нравится, что данные Schema.org абстрагируются от структуры страницы. Добавил бы JSON-LD в карту сайта для помощи в Инструментах Google для веб-мастеров?

Извините, общий noob для JSON-lD и продолжайте заканчивать в электронной документации (это будет для сайта) или старой документации.

+0

Возможный дубликат [ли JSON-LD должны быть внедрены?] (Http://stackoverflow.com/questions/30864619/does-json-ld-have-to-be-embedded) – unor

+0

Пытались это, и это все еще не подбирается. Лучше всего предположить, что JSON-LD для веб-сайтов еще не поддерживается во внешних файлах. – Cynic

ответ

0

Правда, он не может быть сделан внешним и не поддерживается встроенным, но вы все равно можете достичь того, чего хотите, введя его в DOM через файл JavaScript.

Примечание: Я использую массив для аккуратности, поэтому я могу сегментировать все структурированные элементы данных и добавлять их бесконечное количество. У меня есть более сложная версия этого кода на моих сайтах и ​​на самом деле есть внешний файл, созданный на стороне сервера, который маскируется как файл JavaScript.

Да, поисковый робот Google понимает это. Может потребоваться несколько дней для регистрации и использования инструментов веб-мастеров для принудительного повторного обхода, похоже, не заставляет обновлять данные JSON-LD - похоже, вам просто нужно подождать.

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();