Резюме
У нас есть каноническая версия веб-сайта и AMP-версия веб-сайта. Структурированные данные в канонической версии соответствуют структурированным данным в версии AMP.
Консоль поиска Google сообщает, что все страницы действительны как в канонической, так и в AMP-версиях сайта, кроме двух страниц AMP.
На двух страницах AMP отображается предупреждение: «Ошибка в обязательном элементе структурированных данных».
Когда мы тестируем эти страницы в инструменте тестирования структурированных данных Google, они не показывают ошибку.
Две затронутые страницы AMP также являются единственными страницами AMP, которые имеют встроенное видео (через Vimeo) и содержат дополнительную разметку VideoObject, связанную с этим видео.
Точно такое же встроенное видео и разметка присутствуют в канонических (не AMP) версиях страниц, но не выдают эту ошибку.
Что мы пробовали
Подобная проблема помечена как решенная в официальном репозитории git Project AMP: https://github.com/ampproject/amphtml/issues/18227
Эта проблема связана с объектом Article, который отображал ту же ошибку в поисковой консоли и аналогично не отображал ошибку в инструменте тестирования структурированных данных.
В этом случае была проблема со структурированными данными, и хотя инструмент тестирования не выдавал ошибку, отсутствие зеленой кнопки «Предварительный просмотр» указывало, что что-то не так.
При реализации в качестве независимого свойства VideoObject не создает кнопку предварительного просмотра. В качестве возможного решения мы попытались вложить свойство VideoObject в наше общее свойство AutomotiveBusiness. При этом появляется зеленая кнопка «Предварительный просмотр», но она не устраняет ошибку консоли поиска.
Наш код
Наши структурированные данные выглядят следующим образом:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "AutomotiveBusiness",
"@id": "https://www.example.com",
"url": "https://www.example.com",
"name": "example.com",
"sameAs": [
"https://www.facebook.com/example/",
"https://twitter.com/example/"
],
"priceRange": "$-$$",
"logo": "https://amp.example.com/assets/media/logo.png",
"image": "https://amp.example.com/assets/media/feature.jpg",
"telephone": "+1 888-888-8888",
"email": "help@example.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "1234 ABC Ln Suite 1",
"addressLocality": "Beverly Hills",
"addressRegion": "CA",
"postalCode": "90210",
"addressCountry": "US"
},
"areaServed": {
"@type": "Country",
"name": "United States",
"sameAs": "https://en.wikipedia.org/wiki/United_States"
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
],
"opens": "00:00:00",
"closes": "23:59:59"
},
"paymentAccepted": [
"Credit Card",
"Debit Card"
],
"makesOffer": {
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Tire Change",
"mainEntityOfPage": {
"@type": "WebPage",
"url": "https://amp.example.com/services/tire-change/index.html",
"video": {
"@type": "VideoObject",
"name": "How to change a tire",
"description": "Learn how to change a flat tire",
"thumbnailUrl": "https://amp.example.com/assets/media/thumbnail.jpg",
"embedUrl": "https://vimeo.com/51768781",
"uploadDate": "Thu, 13 Jun 2019 10:31:57 -0400"
}
},
"description": "We offer a 24/7 flat tire change service"
},
"areaServed": {
"@type": "Country",
"name": "United States",
"sameAs": "https://en.wikipedia.org/wiki/United_States"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5",
"ratingCount": "3"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "John Smith"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5",
"worstRating": "1"
},
"name": "A really great review",
"reviewBody": "A really great review"
},
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Jane Doe"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5",
"worstRating": "1"
},
"name": "Another great review",
"reviewBody": "Another great review"
},
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "J. Citizen"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5",
"worstRating": "1"
},
"name": "The best review",
"reviewBody": "The best review"
}
]
}
</script>
Результаты
Мы ожидаем, что страницы AMP с указанным кодом будут отображаться как действительные в Google Search Console.
Консоль поиска Google вместо этого отображает страницы как недействительные с предупреждением «Ошибка в обязательном элементе структурированных данных».