Несколько сценариев JSON-LD для разных типов Schema.org: почему они объединяются в один тип при тестировании с Google SDTT? - PullRequest
2 голосов
/ 30 сентября 2019

У меня есть статья, содержащая обзор автомобиля и видео, и я хочу реализовать следующие типы Schema.org с JSON-LD: Article, VideoObject и Review.

Я создал следующие отдельные фрагменты для каждого типа Schema.org:

(1) Артикул:

<script type="application/ld+json">
{ "@context": "https://schema.org", 
 "@type": "Article",
 "name": "TitleOfArticle",
  "headline": "TitleOfArticle",
 "description": "DescriptionOfArticle",
 "image": {
    "@type": "ImageObject",
    "url": "https://www.example.com/imageofcarinarticle.png",
    "width": 1200,
    "height": 800
  },
  "author": {
    "@type": "Person",
    "name": "John Smith"
  },
"wordcount": "628",
"publisher": {
    "@type": "Organization",
    "name": "MyCompany",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.example.com/companylogo.png"
    }
  },
 "url": "https://www.example.com/articleurl",
   "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://www.example.com/articleurl"
  },
  "datePublished": "2019-09-16T11:30:19",  
  "dateCreated": "2019-09-16T11:30:19",
  "dateModified": "2019-09-16T11:30:19",
  "thumbnailUrl": "https://www.example.com/imageofcar.png"
 }
</script>

2) VideoObject

<script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "VideoObject",
      "name": "TitleOfArticle",
      "@id": "https://www.example.com/articleurl",
      "datePublished": "2019-09-16T11:30:19",
      "uploadDate": "2019-09-16T11:30:19",
      "duration": "PT5M33S",
      "description" : "DescriptionOfArticle",
      "thumbnailURL" : "https://www.example.com/thumbnailurl.png",
      "thumbnail" : "https://www.example.com/thumbnailurl.png",
      "contentUrl": "https://www.example.com/videourl.mp4",
      "author": {
        "@type": "Person",
        "name": "John Smith"
      }
    } 
</script>

3) Обзор

<script type='application/ld+json'>
{
  "@context": "https://schema.org/",
  "@type": "Review",
  "itemReviewed": {
    "@type": "Car",
    "name": "Mini Countryman",
    "model": "Countryman",
    "manufacturer": "Mini",
    "bodyType": "hatchback",
    "vehicleModelDate": "2019"
  },
  "author": {
    "@type": "Person",
    "name": "John Smith"
  },
  "image": {
    "@type": "ImageObject",
    "url": "https://www.example.com/imageofcarinarticle.png",
    "width": 1200,
    "height": 800
  },
  "publisher": {
   "@type": "Organization",
    "name": "MyCompany",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.example.com/companylogo.png"
    }
  },
  "@id": "https://www.example.com/articleurl",
  "headline": "TitleOfArticle",
 "description": "DescriptionOfArticle",
  "datePublished": "2019-09-16T11:30:19",
  "dateModified": "2019-09-16T11:30:19",
  "reviewBody": "ReviewOfCar",
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "6.0",
    "bestRating": "10"
  }
}
</script>

Когда я тестирую каждый скрипт отдельно с помощью инструмента тестирования структурированных данных Google, все в порядке, без ошибок.

Если я тестирую все скрипты на одной странице, я все равно не получаюошибка, но все типы «объединены» в один тип , Article, как на изображении ниже.

image

Это правильно?

Кажется, я помню, что у меня были отдельные типы Article, VideoObject и Review при использовании в прошлом микроданных вместо JSON-LD.

1 Ответ

1 голос
/ 01 октября 2019

@id однозначно идентифицирует вещь, поэтому, если две вещи имеют одинаковое значение @id, они равны .

Ваши WebPage, VideoObject и Review имеют одинаковое @id значение:

"@id": "https://www.example.com/articleurl"

Если вы хотите указать @id с (что является хорошей практикой), все они должны иметь разные значения, если толькоони действительно одинаковы.

...