Будь ласка, врахуйте наступний код, позначений атрибутами для надання мікроданих:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Normal version</title>
</head>
<body>
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Product name</h1>
<img alt="" itemprop="image" src="http://placehold.it/200x200" />
<div itemprop="description">This is the product description.</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta content="in_stock" itemprop="availability" />
<span content="GBP" itemprop="priceCurrency">£</span><span itemprop="price">100.00</span>
</div>
</div>
</body>
</html>
Використання інструменту тестування структурованих даних Google дає позитивні результати.
Це добре в прикладі тесту, проте ми хочемо впровадити мікродані на різних сайтах, структура HTML яких сильно відрізняється. Щоб реалізувати атрибути таким чином, потрібно, щоб хтось вручну редагував розмітку HTML на кожному з сайтів окремо.
Переважно, ми хотіли б мати можливість викликати одну функцію, яка пакує всі мікродані в одному місці; технічно це можливо, використовуючи метатеги наступним чином:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Meta tag version</title>
</head>
<body>
<meta itemscope itemtype="http://schema.org/Product" itemref="microName microImage microDescription microOffer" />
<meta id="microName" itemprop="name" content="Product name" />
<link id="microImage" itemprop="image" href="http://placehold.it/200x200" />
<meta id="microDescription" itemprop="description" content="This is the product description." />
<meta id="microOffer" itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemref="microCurrency microPrice microAvail" />
<meta id="microAvail" itemprop="availability" content="in_stock" />
<meta id="microCurrency" itemprop="priceCurrency" content="GBP" />
<meta id="microPrice" itemprop="price" content="100.00" />
<div>
<h1>Product name</h1>
<img alt="" src="http://placehold.it/200x200" />
<div>This is the product description.</div>
<div>£100.00</div>
</div>
</body>
</html>
Використання інструменту тестування структурованих даних Google дає ті ж позитивні результати, що і перший тест.
Для довідки (ми ніколи цього не робимо на фактичному сайті) Інструмент тестування структурованих даних Google повертає помилку, якщо ви спробуєте передати мікродані, приховані CSS.
Отже, і нормальна, і мета-розмітка дають однакові результати, однак у мене є певні занепокоєння через такі заяви Google і Schema.org:
https://support.google.com/webmasters/answer/146750 зазначено:
Загалом Google використовуватиме лише розмічені дані, видимі користувачеві. Приховані дані будуть ігноровані. Однак, за кількох обставин, може бути корисним забезпечити як машиночитану, так і читану людиною версію вашого вмісту. Наприклад, хоча текстовий рядок "День народження Елвіса" є важливим для багатьох читачів людини, для пошукових систем це не так важливо, як 1935-01-08. Точно так само людські читачі можуть зрозуміти значення символу $, але може бути корисно спеціально сказати пошуковим системам, чи ваші ціни в песо або доларах.
http://schema.org/docs/gs.html повідомляє (стосовно використання метатегів):
Цю техніку слід використовувати економно. Використовуйте мета з вмістом лише для інформації, яка інакше не може бути позначена.
http://schema.org/docs/faq.html#13 зазначено:
Як правило, слід позначати лише той вміст, який видно людям, які відвідують веб-сторінку, а не вміст у прихованих диві або інших прихованих елементах сторінки.
Мої запитання:
- Хоча помилки не повертаються, чи не буде нас санкціоновано пошуковими системами за використання метатегів таким чином (тобто дубльований вміст, приховування інформації тощо)?
- Якщо це не підходить, чи можете ви запропонувати будь-який спосіб розділити мікродані від фактичних даних або нам доведеться кусати кулю та реалізовувати це в HTML у кожному випадку?