Могут ли микроданные быть реализованы в мета-тегах?


Пожалуйста, рассмотрите следующий код, помеченный атрибутами для предоставления микроданных:

<!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 состояния:

Как правило, вы должны отмечать только то содержимое, которое видно людям, посещающим веб-страницу, а не содержимое в скрытых div или других скрытых элементах страницы.

Мои вопросы таковы:

  1. Пока ошибок нет возвращенный, будем ли мы наказаны поисковыми системами за использование мета-тегов таким образом (т.Е. дублирование контента, сокрытие информации и т.д.)?
  2. Если это не подходит, можете ли вы предложить какой-либо способ разделения микроданных от фактических данных или нам придется стиснуть зубы и реализовать это в HTML в каждом конкретном случае?
Author: Stephen Ostermiller, 2014-10-24

3 answers

Ваш план использования метаданных для микроданных нежизнеспособен. Вот Часто задаваемые вопросы Google о том, почему ваши данные не отображаются в результатах поиска:

Ваш помеченный контент скрыт от пользователей?

Как правило, Google не будет отображать контент в расширенных фрагментах, который не виден пользователю. Не скрывайте контент, который вы пометили для расширенных фрагментов, используя такие методы, как display:none, value-title, или css. Google будет игнорировать контент, который не является видимый для пользователей-людей, поэтому вы должны отметить текст, который посетители увидят на ваших веб-страницах.

Единственный способ заставить Google использовать предоставленные вами микроданные - это пометить их там, где они лежат на странице, видимой пользователю.

На данный момент Google не наказывает за попытку злоупотребления расширенными фрагментами, кроме как просто отключить расширенные фрагменты для этого сайта. Меня бы не удивило, если бы Google начал полностью исключать сайты из результатов поиска когда Google обнаруживает, что сайт пытается использовать микроданные таким образом, который не соответствует рекомендациям.

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

 6
Author: Stephen Ostermiller, 2014-11-03 21:26:58

Использование элементов metalink) для микроданных - это нормально. Иногда даже нет разумной альтернативы этому, например, если необходимо предоставить конкретные коды, когда нет смысла показывать их вашим пользователям.

Google даже использует meta в некоторых из своих примеров богатых фрагментов:

Итак, вопрос в том, сколько это слишком много (если вообще есть предел)? И я думаю, что можно с уверенностью предположить, что нет жесткого предела, скорее всего, это зависит от различных дополнительных факторов.

Однако для Google имело бы смысл не отклонять микроданные разметка, если только meta/link используется. Почему? Потому что они также поддерживают (и иногда даже рекомендуют ) JSON-LD для предоставления Schema.org данные, и это состоит только из "скрытого" содержимого (а именно, скрытого элемента script, используемого в качестве блока данных).

И это было бы то, что я бы предложил в вашем случае: если вы не хотите добавлять структурированные данные, помечая существующие элементы, используйте JSON-LD.

 4
Author: unor, 2017-05-23 12:37:07

Я не могу прокомментировать, будет ли это работать во всех ситуациях, но мы используем Schema.org в том виде, как вы описываете - как мета-"контент" на страницах продукта. Почему? Это просто намного более портативно и не портит темы. Это также позволяет более детально контролировать форматирование данных, и он получает соответствующие данные сразу после <body> (намного выше сгиба). Платформы, основанные на крючках (или даже основанные на F&R, такие как vQmod), приходят на ум: нет способа плавно вписать все директивы в структуру без жесткого кодирования всего этого в поле зрения.

Мы не заметили никаких штрафов, Google по-прежнему использует данные, по-прежнему помещает их в виджеты SERP. У нас все еще есть большая часть данных где-то на странице, но что касается большей части разметки, она находится в 1 едином иерархическом мета-контейнере, использующем content="", как в вашем нижнем примере, только его завернутый в организацию как "предложение". Теперь не заходите слишком далеко - структурные вещи, такие как цикл обзоров, панировочные сухари, основное описание или спецификации лучше не входить в этот мета-контейнер. Попробуйте жестко закодировать их в поле зрения.

Большинство людей скажут: "не используйте content="" меты", но опять же, большинство из этих людей никогда не пробовали этого. То же самое касается таких вещей, как расширенная разметка в списках товаров в категориях...да, мы тоже нарушаем это правило:) Просто помните, что Google - не единственная рыба в пруду RDF. То, что говорит G, не "делает или ломает" в этом случае использования стандартных форматов данных таким образом, чтобы это было вполне приемлемо для остальной части пруд. Возможно, даже потому, что сам G в будущем изменит свое мнение. Он хочет, чтобы данные были выше/выше всего, но при этом он заставляет вас кодировать данные ниже/ниже, в то время как мета-атрибуты помещают их в центр и в центр, на машинно-доступном языке.

 1
Author: dhaupin, 2014-11-03 23:28:43