Всем привет! Сегодня на seo-mayak.com вновь актуальная тема новая микроразметка schema.org.
Говорить мы будем в основном о поисковой системе Гугл, но и Яндекс не обойдем стороной. Разберем все нововведения schema.org и выясним отношение к ним ведущих поисковиков.
Вы в курсе, что Гугл обновил свое понимание schema.org? Я долго подбирал заголовок для данного материала и вот что подумал.
Что, если бы у меня была возможность задавать несколько заголовков для статьи. Так вот, если бы у меня была такая возможность, то я бы составил следующие заголовки:
Начнем с этого: «Schema.org не дает веб-мастерам спокойно спать».
Можно так: «Новая микроразметка — кто компенсирует затраты на фрилансеров».
Или так: «Обновление микроразметки — Яндекс и Гугл снова не договорились».
Конечно можно было продолжить изливать в сеть то, что накипело внутри и выражения стоило бы наверное употребить по крепче. Ведь действительно друзья, сколько можно издеваться над законопослушным тружениками сети?
Неужели нельзя сначала хорошо подумать над тем: какая должна быть структура микроразметки, какие элементы должны размечать те или иные данные, разработать все алгоритмы и только потом усиленно рекомендовать веб-мастерам внедрять микроразметку на свои сайты.
А то что получается. Многие рядовые веб-мастера, которые не сильно разбираются в кодах, потратили свои кровные на оплату фрилансерам, чтобы те помогли им внедрить злополучную микроразметку. А что вышло в итоге? Все, что раньше пропагандировалось теперь не работает!
Лирика
Мне вообще удивляет заявленная позиция поисковиков в вопросе микроразметки.
Яндекс помощь: Цель семантической разметки – сделать интернет более понятным, структурированным и облегчить поисковым системам и специальным программам извлечение и обработку информации для удобного её представления в результатах поиска.
Т.е, МЫ, за свои деньги, должны облегчить поисковым системам жизнь. Умно! Ничего не скажешь.
Еще мне понравилось определение Википедии, хотя, конечно, она здесь не причем, но все же:
Основной целью schema.org является помощь веб-разработчикам в создании качественных метаданных, что, в свою очередь, позволяет улучшать качество поиска.
О как! Оказывается мироразметка — это помощь веб-разработчикам, к коим я и себя отношу. Ну что же, спасибо за помощь, теперь не зарастет народная тропа. Но мне искренне жаль тех людей, которые во второй раз будут обращаться ко мне по вопросам внедрения микроразметки.
А что же Гугл? Гугл в своем репертуаре! Он заявляет, мол мы же для Вас лучше делаем, внедряйте микроразметку и наш робот будет лучше понимать Ваши сайты. Заметьте, что пока все нежно и ласково.
Один старый политик как-то сказал, как мне показалась, очень мудрую вещь.
Понимание и доверие — это язык любви, который к политике не имеет никакого отношения.
Так о каком понимании может идти речь. Нас просто в очередной раз нагибают прагматичные западные товарищи, так как именно от туда ветер дует, и делают это в своем привычном стиле, не думая о людях.
Напрашивается такой вопрос. Что же будет в недалеком будущем с теми сайтам, которые проигнорируют размещение микроразметки?
Я нашел в сети интересное высказывание ведущего специалиста отдела качества поиска Google Джона Мюллера (John Mueller)
Процитирую отдельные отрывки:
Я думаю, что со временем микроразметка может также использоваться в ранжировании.
Как Вам? Вот еще:
Если мы увидим, что пользователь ищет машину, мы сможем предложить ему страницы, разметка на которых указывает, что сайт посвящён именно этой тематике. Таким образом, структурированные данные могут быть весьма полезны в этом отношении. Нам не нужно будет угадывать, действительно ли эта страница содержит информацию о машинах.
Вот собственно само интервью, правда на английском.
Запись интервью Джона Мюллера
Кто хорошо знает английский, можете перевести в комментариях некоторые, на Ваш взгляд важные моменты.
Переходим к технической части нововведений Schema.org. Поехали!
Обновленная библиотека "schema.org/Article" для Google
Библиотека элементов schema.org/Article применяться для разметки статей, идеально подходит, как для моего блога, так и для многих других, поэтому я и взял ее на вооружение.
Итак, если проверить страницы блога на валидаторе микроразметки от Гугл, то наверное у многих вылезут глаза.
В блоке «Article», для проверяемой страницы, я обнаружил аж 203 ошибки:
Теперь давайте разберемся, что это за ошибки.
Во-первых, появится ошибки в разметке изображений:
В моем случаи именно изображения стали виной такого количества ошибок. Почему? Объясню немного позже.
Во-вторых, валидатор укажет на недостающие поля:
У кого-то, конечно, может быть больше ошибок, все зависит от правильности внедрение элементов из прежней версии.
Вся суть нововведений заключается в том, что теперь для определенных элементов микроразметки надо указывать свои библиотеки. Данные библиотеки, для удобства, я буду назвать «мини библиотеки», хотя, конечно, никакие они не «мини».
Так вот, в свою очередь, все мини библиотеки должны быть размешены в теле главной библиотеки — schema.org/Article.
<div itemscope itemtype="http://schema.org/Article"> "Тут должны располагаться все мини библиотеки, относящиеся к schema.org/Article" </div>
Открываем файл single.php или прикрепленный файл, отвечающий за вывод цикла WordPress и выше заголовка записи вставляем главную библиотеку.
<div itemscope itemtype="http://schema.org/Article"> <h2><?php the_title(); ?></h2>
Такое размещение конечно не аксиома. Место, куда лучше вставить библиотеку и ответный тег </div>, зависит от структуры шаблона.
Теперь начинается самое интересное, так как далее речь пойдет непосредственно о нововведениях.
Поле "mainEntityOfPage" и библиотека "schema.org/WebPage"
Поле "mainEntityOfPage" относится к библиотеке schema.org/WebPage и переводится, как «Основная страница».
Данная разметка носит рекомендательный характер (см. скриншот выше), но раз Гугл хочет видеть это поле в коде, давайте его пропишем.
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="URL_страницы"/>
Здесь нам надо заполнить значение всего одного элемента:
itemid="URL_страницы"
Я так понял, сюда вписывается что-то, типа канонического урла, т.е, постоянный адрес страницы.
Чтобы автоматически прописывать постоянный адрес для каждой записи, воспользуемся функцией the_permalink(). Также для валидности придется указать атрибут content. Я наполнил его заголовком статьи, выводимым функцией the_title() .
В следующую строчку, сразу после schema.org/Article, вставляем такой код:
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="<?php the_permalink() ?>" content="<?php the_title(); ?>"/>
Проверяем результат на Гугл валидаторе:
Все в порядке! Вроде с полем mainEntityOfPage разобрались. Идем дальше.
Поле "publisher" и библиотека "schema.org/Organization"
Поле "publisher" переводится, как «Издатель» и относится к библиотеке "schema.org/Organization" Данное поле должно включать в себя еще несколько полей и выглядеть следующим образом:
<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"> <div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"> <img itemprop="url image" src="путь_до_логотипа" style="display:none;"/> <meta itemprop="width" content="ширина_изображения"> <meta itemprop="height" content="высота_изображения"> </div> <meta itemprop="name" content="название_сайта"> <meta itemprop="telephone" content="+7 xxx xxx xx xx"> <meta itemprop="address" content="Город"> </div>
Из примера видно, что поле "publisher" включает в себя еще одно поле "logo", которое относится к библиотеке "schema.org/ImageObject". К данной библиотеке мы еще вернемся, а пока давайте разберемся с полями.
Поле "logo" предназначено для разметки логотипа издателя, т.е. Гугл рекомендует, а на самом деле принуждает, всех веб-мастеров создать логотипы для своих проектов.
Будет ли логотип отображаться в сниппете, я пока не знаю, время покажет, но размечать все равно придется, так как данная разметка обязательна!
Поле "url" — это ничто иное, как ссылка на исходную страницу изображения, и для того, чтобы логотип не отображался в записи, прячем его с помощью стилей. В двух последующих полях вписываем размеры картинки с логотипом.
В поле "name" прописываем название сайта. Вроде все. Не забываем поставить закрывающий тег </div>.
В поля "telephone" и "address" я добавил уже после выхода статьи (читайте обсуждение в комментариях). В их заполнении ничего сложного нет.
Весь блок вставляем сразу после поля "mainEntityOfPage" и идем проверять на валидаторе:
Гугл доволен и мы тоже. Осталось еще одно поле, на которое мне указал валидатор.
Поле "dateModified"
Данное поле напрямую относится к библиотеке "schema.org/Article" и поэтому дополнительные мини библиотеки прописывать не надо.
Слово "dateModified" можно перевести, как «Дата изменения» и поэтому в значении надо указать соответствующую дату.
В WordPress за дату последнего изменения записи отвечает функция the_modified_time() и тут все просто.
<meta itemprop="dateModified" content="<?php the_modified_time('Y-m-d')?>"/>
Что скажет валидатор:
Видите, даты разные, и поле "dateModified" указывает именно на день последнего изменения.
Как размечать заголовок, дату публикации, автора статьи, а также description (краткое описание статьи) я показывать не буду, так как это элементы из старой версии разметки и я их уже описывал в статье Микроразметка Schema.org на примере кулинарного сайта.
Для наглядного примера покажу, как у меня выглядит весь блок микроразметки в файле single.php:
<div itemscope itemtype="http://schema.org/Article"> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="<?php the_permalink() ?>" content="<?php the_title(); ?>"/> <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"> <div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"> <img itemprop="url image" src="http://mayak.ru/wp-content/themes/wp-themes-blogger/images/logotip.png" style="display:none;"/> <meta itemprop="width" content="100"> <meta itemprop="height" content="100"> </div> <meta itemprop="name" content="SEO Mаяк"> <meta itemprop="telephone" content="+7 xxx xxx xx xx"> <meta itemprop="address" content="Город"> </div> <meta itemprop="dateModified" content="<?php the_modified_time('Y-m-d')?>"/> <h2 itemprop="headline"><?php the_title(); ?></h2> <span itemprop="datePublished"><?php the_time('Y-m-d') ?></span><span itemprop="author"> автор: <?php the_author() ?></span> <?php edit_post_link(__('Edit This')); ?> <?php the_content(__('(Читать полностью)')); ?> </div>
Это еще не все! У нас еще остались ошибки в разметки изображений.
Поле "image" и библиотека "schema.org/ImageObject"
Разметка изображений не возможна без использования php. Вернее можно конечно разметить картинки в ручном режиме, но в таком случаи представьте себе, каково же будет ваше состояние, когда поисковые системы опять поменяют схему микроразметки. Ужас!
Ну да ладно не будем о грустном, с помощью php мы сделаем это в два счета.
В прежней структуре разметки достаточно было в тело тега "img" добавить атрибут itemprop="image":
<img itemprop="image" src="адрес_изображения" alt="*****" width="ширина" height="высота"/>
Теперь же структура гораздо сложнее, вот пример:
<div itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url" src="адрес_изображения" alt="****" width="ширина" height="высота"/> <meta itemprop="width" content="ширина"> <meta itemprop="height" content="высота"> </div>
Создается отдельное поле "image" в котором указывается библиотека "schema.org/ImageObject". Кроме того, в рамках поля "image", необходимо прописать дополнительные мета-поля "width" и "height" и указать в них размеры изображения.
Но прежде, чем пойдет речь о решении задачи, хотел сказать несколько слов тем веб-мастерам, которые копируют мои авторские функции, меняют названия и публикуют, как свои собственные. Определить это проще простого.
Я сейчас не буду называть имена этих людей, но они конечно известны. Мне постоянно приходят письма, где порядочные читатели сообщают о том, что видели мои функции на тех или иных ресурсах.
Ребята, вы знаете вообще, что такое авторское право? Если у вас не хватает мозгов или желания изучать php, это Ваши проблемы, но не надо мой труд выдавать за свой!
Если кто-то захочет рассказать на своем сайте о новой микроразметке изображений и опубликовать мою функцию, я вовсе не против, но будьте добры поставить открытую ссылку на статью.
Итак, чтобы исправит ошибку в разметке изображений, прежде надо из файла functions.php удалить мою старую функцию. Напомню, как она выглядит:
function mayak_image_marking($content) { global $post; $pattern = "<img"; $replacement = '<img itemprop="image"'; $content = str_replace($pattern, $replacement, $content); return $content; } add_filter('the_content', 'mayak_image_marking');
Вместо нее вставляем другую:
function mayak_filter_image($content) { $ar_mk = '!<img (.*?) width="(.*?)" height="(.*?)" (.*?)/>!si'; $br_mk = '<span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" \\1 width="\\2" height="\\3" \\4/><meta itemprop="width" content="\\2"><meta itemprop="height" content="\\3"></span>'; $content = preg_replace($ar_mk, $br_mk, $content); return $content; } add_filter('the_content', 'mayak_filter_image');
Данная функция разметит все изображение в теле статьи, но если вы хотите разметить только первое изображение, то надо будет изменить строчку №4:
$content = preg_replace($ar_mk, $br_mk, $content, 1);
Идем смотреть результат:
Все отлично! Больше ошибок нет.
Гугл и Яндекс опять не договорились по поводу микроразметки
Подходы Яндекса и Гугла к вышеописанным нововведениям немного различаются, по крайней мере пока. Лично я думаю, что Яша просто запаздывает с внедрением новых алгоритмов.
Если вспомнить историю появление микроданных, когда 2 июня 2011 года Google, Yahoo! и Microsoft объявили о внедрении Schema.org и опубликовали соответствующую библиотеку, то Яндекс присоединился к ним только 1 ноября, т.е, на пол года позже.
Уверен, что отечественному поисковику в любом случаи придется следовать мировым тенденциям и в недалеком будущем он также перейдет на новые стандарты микроразметки.
Успехов всем! До встречи!
С уважением, Виталий Кириллов
Здравствуйте Виталий. Ждала от вас такую статью. Спасибо, что быстро отреагировали на изменения. Попробую доделать микроразметку. А еще подскажите, Яндекс просто «не видит» изменения для гугла или ошибки выдает, если разметить по новому. Это все таки разные вещи.
Здравствуйте Роза! Валидатор Яндекса выдает ошибки.
Уже посмотрела по картинкам. (они меня больше всего интересуют) Яндекс выдает предупреждение: «Не выполнено обязательное условие для передачи данных в Яндекс.Картинки: поле contentUrl или image или thumbnail отсутствует или пусто», хотя url картинки вроде как указан.
А еще большая проблема для меня, как разметить картинки, которые выводятся плагином галереи.
Про плагин ничего не могу сказать, никогда не пользовался.
Спасибо большое. У меня просто время не было на написание функции разметки картинок, занят проектом своим новым. А вот то, что твою функцию видел на различных сайтах, в рекомендациях по разметке, это да. Даже иногда улыбку вызывает изменение имени функции 🙂 А вот я честно ставлю своим клиентам оригинальные названия функции 🙂 кстати это относится ко всему. Если что то большое, то отмечаю в файле readme.
Сейчас пошучу. Спасибо Google, (тут правильно что в помощь веб мастерам!)я пошел разметку править клиентам, а так как это не моя недароботка, за обновление микроразметки надо денежки выкладывать. К Новому Году как раз кстати калымчик!
Виталий привет! Когда ты прописываешь мета для Полей «mainEntityOfPage» и библиотек «schema.org/WebPage» — ты это делаешь в header.php?
Здравствуйте Евгений! Мета поля не обязательно должны быть в хедере, их можно размещать и в других местах, тем более поле mainEntityOfPage должно находится в области действия библиотеки schema.org/Article.
Как повлияет на Яндекс? Если установить новую микроразметку, на Яндексе будет что то отображаться, или микроразметка там пропадет?
Отображаться будет конечно, но с ошибками.
Есть такой блог Кости Хмелева. У него на микроразметку ни гугл, ни яндекс не ругается. У обоих без ошибок.
В ходе совместных усилий мы также выработали вариант, устраивающий и Гугл и Яндекс. Почитайте комменты.
Виталий, еще вопросы: Внедрил у себя в single.php и functions.php , вышенаписанное, но теперь начал ругаться Яндекс:
ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для структурированных сниппетов Яндекс.Справочника: поле address отсутствует или пусто
ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для структурированных сниппетов Яндекс.Справочника: для данной категории организаций необходимо указать telephone
itemType =
https://schema.org/Organization
logo
imageobject
ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для передачи данных в Яндекс.Картинки: поле contentUrl или image или thumbnail отсутствует или пусто
Зато у гугла все четко, как я Яшей быть?
Я вроде в статье заострял внимание на данном аспекте. Яндекс на данный момент не поддерживает изменения! Тут каждый веб-мастер должен сам решать под какой поисковик подстраиваться.
Еще один вопрос, Виталий, счас проверил эту, твою статью, в валидаторе гугла и яндекса. Яндекс страницу не видит, но и гугл выдает ошибки, о которых написано в статье. Что-то дорабатывашь, Виталий?
Яндекс валидатор бывает глючит, я на блоге оставил старую версию разметки.
По поводу адреса и телефона для яндекса я решила проблему методом Виталия же: сразу после «<meta itemprop="name" content="название_сайта">» добавила аналогично
<meta itemprop="telephone" content="+7 495 789–00–00">
<meta itemprop="address" content="Москва">
Адрес и телефон естественно вымышленные. Эти 2 ошибки в яндексе исчезли. Гугл тоже принял. Не знаю только как на сниппетах отразится. Мне там телефон и адрес совсем не нужны. Хотя в Гоше их и не видно, сниппет обновился (по хлебным крошкам вижу), а Яша очень уж долго все индексирует.
А вот по поводу «в Яндекс.Картинки: поле contentUrl или image или thumbnail отсутствует или пусто» проблема осталась. У меня теперь это единственная ошибка в Яндексе.
Тут уж к Виталию за помощью обращаюсь. Мне кажется тут вашу функцию по картинкам еще чуть-чуть доработать надо. Я попробовала сама изменить в ней в <img itemprop="url" url на contentUrl, Яша проглотил, но теперь гугл ругаться начал, что урл отсутствует и «для image указан недопустимый URL.»
Роза, вы не меняйте, а просто добавьте к itemprop="url" через пробел itemprop="image" и все будут довольны.
Вот так:
Функцию в статье я пока менять не буду, надо провести еще дополнительные тесты.
Да, я поправила, все получилось и для Яндекса и для Гугла. Спасибо за помощь.
А сейчас обнаружила еще проблему. Так как logo, mainEntityOfPage и dateModified мы разметили только в статьях, на главной в аносах и в рубриках гугл выдает ошибку об их отсутствии. Добавить без проблем в соответствующие файлы темы получилось только dateModified этим же кодом. По остальным вылазят новые ошибки, потому что статьи размечены как schema.org/Article, а анонсы на главной как schema.org/BlogPosting и эти типы для них недопустимы.
В общем копаюсь дальше. Чую на все каникулы новогодние гугл нам работы задал 🙂
Трафик хоть и маленький пока (статей еще очень мало) но с обоих поисковиков идет, вот и хочется двух зайцев сразу поймать.
Роза, у меня на главной ошибок нет. Я по аналогии с single.php разметил главную index.php и все получилось. С картинками согласен, ошибки остались, но остальное все ушло. Единственный минус — это html checker начал ругаться и выдал больше ошибок.
Странно, у меня код из статьи ругался на ошибки, а вот выше который подошел отлично и никто не ругается, ни гугл ни яндекс.
А вот адрес и телефон прописывать не стал, чтобы в сниппете не вылез.
Как у Вас кстати дел со сниппетом? не появились адрес и телефон?
Нет, телефоны в сниппетах пока не появились. Прошло 2 месяца, после внедрения новой микроразметки.
Спасибо за ответ Виталий.
Поставлю и себе на досуге.
Вы не могли бы как профессионал, подсказать в чем может быть проблема моего кода на сайте?
Все подправил что можно в
validator.w3.org/nu/
, а с 1 ошибкой не могу справиться, ругается он, на не закрытый тег <a>, но как я его закрываю, вместо 6 ошибок, валидатор выдает от 125 до 255 ошибок, в зависимости от того, куда поставитьПроблема в header.php, в строчке:
Как я полагаю, закрыть его можно всего в 2-х местах, в конце и после (bloginfo(‘name’)); ?>»> и то и то приводит к многократному увеличению ошибок =(
оригиналы файла найти не смог, только архивные, там все так же, но еще в начале стоял и тоже без закрывающего тэга =))
Буду очень Вам благодарен за любой совет.
Ай ай ай, сработали тэги, сорри….
Виталий, добрый день! У меня такая же ошибка выпадает, как у Розы. Но добавление itemprop=»image» в код проблему не решило, валидатор яндекса так и ругается на «поле contentUrl или image или thumbnail отсутствует или пусто» да еще Html Checker добавил ошибку валидации кода. может есть все-таки «таблетка»?
Здравствуйте Артем! Атрибут itemprop=»image» уже добавлен в код и второй раз его добавлять не надо.
Виталий, второй раз атрибут itemprop=»image» я не добавлял, то есть взял код как есть из комента выше от 25.12.2015. и в этом случае, действительно, предупреждение яндекса «Не выполнено обязательное условие для передачи данных в Яндекс.Картинки: поле contentUrl или image или thumbnail отсутствует или пусто» исчезает, но при этом, в валидаторе w3c появляется ошибка «Duplicate attribute itemprop.». об этом я писал в предыдущем комментарии. кроме того, в любом случае висит предупреждение «Не выполнено обязательное условие для передачи данных в Яндекс.Картинки: поле contentUrl или image или thumbnail отсутствует или пусто» и для logo. возможно ли исправить всё-таки эти ошибки?
Все правильно, потому, что не должно быть два атрибута itemprop подряд. Это было сделано, чтобы угодить Яндексу, при этом w3c оказался обиженным. К сожалению приходится выбирать. Та же ситуация с полем logo. Просто добавьте itemprop=»image» в тело тега img.
ну, понятно…и, поскольку, это всего лишь предупреждение, пусть остается предупреждением…ошибку w3c долой 🙂
Виталий, огромное спасибо за функцию разметки картинок. Гугл с Яндексом довольны, но валидатор validator.w3.org ругается на Duplicate attribute itemprop. Как поступить? Оставить довольными оба поисковика и не обращать внимания на валидатор W3 или убрать повторяющийся атрибут и сделать недовольным какой-либо поисковик. А может у вас есть лучшее решение?
Сергей, с момента публикации функция несколько раз дорабатывалась, поэтому вставьте ее заново и затем проверьте на validator.w3.
Здравствуйте. А для миниатюр (thumbnail), код разметки дадите?
Огромное вам спасибо! Добавил сайт в закладки, очень интересный ресурс!
подскажите, как сделать, чтобы миниатюры размечались только внутри статьи (в цикле) а не по всему сайту
Так фильтр the_content и распространяет свое действие только на тело статьи.
немного запутался, я о том, можно ли в основном цикле размечать, а в дополнительных циклах, которые выводятся при помощи wp_query и так далее, не размечать
Я не знаю такого хука, который бы действовал в рамках определенного способа инициализации цикла.
Недавно сменил шаблон на блоге. Всю микроразметку сделал, кроме миниатюр. Ни в какую не хотят функцией размечаться.
В шаблоне миниатюра создается из основной картинки. Код вывода на главной
<a rel="bookmark" data-link="<?php the_permalink() ?>">
<?php $params = array( 'width' => 260, 'height' => 260,'crop' => true);
$base = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full');
$title = get_the_title($post->ID);
echo "<img itemprop='image' alt='$title' class='blog-thumb' src='" . bfi_thumb( $base[0], $params ) . "'/>"; ?>
</a>
Можете помочь?
Вот этот кусок кода отвечает за вывод картинки:
У вас он даже размечен, правильно было бы так:
Пробовал размечать. Попробовал ис url. Функция в functions не подхватывает миниатюры и не добавляет к ним
<div itemprop="image" itemscope itemtype="
https://schema.org/ImageObject
">и
<meta itemprop="width" content="ширина">
<meta itemprop="height" content="высота">
Добавил в ручную. Гугля заткнулась. Яша картинки тоже вроде вилит, но ругается на
===
ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для структурированных сниппетов творческих работ: поле description или articleBody отсутствует или пусто
===
Разобрался. Забыл разметить текст анонса.
Виталий, гугл выдает — Необходимо указать значение для поля url.
Почему так?
Значить где-то это значение не указано.
function mayak_filter_thumbnail($content) {
$ar = '!<img width="(.*?)" height="(.*?)" (.*?)/>!si';
$br = '<span itemprop="image" itemscope itemtype="
https://schema.org/ImageObject
"><img itemprop="url" width="\\1" height="\\2" \\3/><meta itemprop="width" content="\\1"><meta itemprop="height" content="\\2"></span>';$content = preg_replace($ar, $br, $content);
return $content;
}
add_filter('post_thumbnail_html', 'mayak_filter_thumbnail');
вот эту функцию использую, но url почему-то не проходит…
Евгений, вместо itemprop="image", вставьте itemprop="url image".
Заменил, теперь вобще 3 ошибки показывает…
ImageObject – недопустимый тип целевого объекта для свойства url.
Необходимо указать значение для поля url.
Необходимо указать значение для поля url.
Ссылку на сайт дайте, я посмотрю исходный код. Что там у вас не так, пока непонятно.
Сайт сейчас на денвере.
Ошибки в гугл, если использовать вашу функцию mayak_filter_thumbnail — ibb.co/dRZitR
Ошибки в гугл, если заменить на itemprop=»url image» — ibb.co/bBH3tR
Миниатюра на страницу выводится таким кодом в content-single.php —
Миниатюра на страницу выводится таким кодом в content-single.php — <?php awaken_featured_image(); ?>
Евгений, Вы не там правки внесли, верните обратно.
Надо вместо «contentUrl» вставить «url image».
Посмотрите внимательно исходный код.
Может какие миниатюры не разметились…
Гугл, как я помню, должен подсвечивать участок кода, где ошибка.
Виталий, заменил и та же ошибка — Необходимо указать значение для поля url.(ibb.co/dVoKiR)
У меня на странице всего одна картинка — миниатюра записи в оригинальном разрешении 752х440.
Странно, картинка на какой странице находится, на странице записи, категории или главной странице?
Заменил url на contentUrl, и самое странное, что Яндекс реагирует нормально, а гугл выдает ошибку…
Елена Картавцева, вчера, в ходе экспериментов, слетела база данных, пришлось восстанавливать из копии. К сожалению Ваш комментарий не сохранился.
Зравствуйте Виталий, какой вы умный! Ваша статья вызвала у меня целую бурю чувств. Микроразметку я заказывала блогеру, за 1,5 тыс, из своей пенсии. Вначале ошибок не было, потом в мастере появились замечания, исправляла их сама.Переустановила тему, где оказалась готовая микроразметка, тоже с ошибками,которые мне удалось исправить. Код на картинки у меня вставлен, может быть и ваш, но мне его установил блогер, сейчас в нем ошибки.
Хотела спросить, у меня микроразметка не артикеле, а блогпостинг, есть здесь существенные отличия? Или можно этим пренебречь?
И еще, я у вас коды копировала, но на вас ссылаюсь, как и на другие сайты, можете посмотреть.
Несколько недель микроразметка у меня была правильной, однако это не изменило индексацию сайта, на которую и раньше не жаловалась.
Здравствуйте Ксения Юрьевна! Смысл разметки — расширенный сниппет, а при ошибках сниппет не будет дополнен.
Здравствуйте Виталий! Подскажите пожалуйста
Для страницы категорий вывод первой картинки из статьи делаю
<span itemprop="image" itemscope itemtype="
http://schema.org/ImageObject
" ><a itemprop="contentUrl" href="<?php the_permalink()?>"><img itemprop="url" src="<?php echo catch_that_image()?>" alt="<?php the_title();?>" width="600" height="300"/></a>
<meta itemprop="width" content="600">
<meta itemprop="height" content="300">
</span>
код получается валидный и под яшу и под гугл В данном случае картинки в постах на страницы категорий все имеют размер 600 на 300
Есть еще один сайт и там картинки в постах все разного размера Подскажите пожалуйста как сделать так чтобы размер автоматически определялся?
Здравствуйте Алексей! Один вопрос, миниатюры для первых картинок в постах созданы?
у меня выводятся полного размера картинки ширина у всех 600 этот параметр микроразметки можно в коде указать А высота у всех разная как его задать незнаю
Алексей, дело в том, что в WordPress нет готовых функций вывода ширины и высоты изображений. Проблему можно решить следующим образом.
В файл functions.php вставляем две мои авторские функции:
В нужном месте шаблона выводим ширину и высоту первой картинки поста:
Дынный вариант вывода размеров изображений работает только в цикле WordPress.
спасибо огромное!
Насчет изображений что то не получается, где то без ошибок, где то встречается url не правильный или размер не правильный
Скинте ссылочку, я посмотрю.
Здравствуйте! А где это нужное место в шаблоне должно быть. Подскажите, пожалуйста.
И еще в разметке рецептов гугл рекомендует заполнить «aggregateRating» и «description» — вы делали?
Виталий, здравствуйте! Или у меня ночные глюки, или Гугл передумал вводить новую разметку. Сейчас у меня показывает все нормально, а еще днем выдавал кучу ошибок и пожеланий. Больше никто не обратил на это внимание?
Вот теперь опять показывает ошибки. )) Может настраивают чего-то.
Виталий, может сможешь придумать код, для картинок, который будет принят и яшей и гуглом без ошибок?
Виталий, здравствуйте. Спасибо за полезную статью У меня вопрос, не касающийся напрямую данной темы. В рассылке, которую я получаю от вас в почте mail.ru, перестали отображаться картинки (миниатюры). То есть вместо изображений — пустое белое окно. В первый раз 17 декабря (статья … произвольные типы записей WordPress) и к этой статье. У меня в блоге такая же ситуация. В другой почте (к примеру, в яндекс-почте) изображения показываются нормально (проверяла в своих анонсах). В анонсах других сайтов, на которые я подписана, в почте mail.ru миниатюры-изображения на месте. Вы не знаете, связано ли это как-то с последним обновлением WordPress? Или, может, подскажете, где можно искать причину? Если нужно, могу прислать скрины.
Здравствуйте Сауле! Скорее всего это проблемы
mail.ru
Привет Виталий! Классная статья, очень пригодилась! Только вот валидатор гугла после вставки твоего кода стал выдавать ошибку на каждое изображение
Свойство width недопустимо для объекта типа Article.
Свойство height недопустимо для объекта типа Article.
вот пример кода картинки
Если знаешь, подскажи в чем дело!
Здравствуйте Максим! Скорее всего это глюк валидатора.
нет, это не глюк. проблема возникает когда картинка вставлена с текстом в поле «подпись», т.е. движок обёртывает его в div. Как-то можно это учесть в функции?
Вот составил функцию, протестируйте:
Работает в паре с основной функцией разметки изображений.
да, работает! Спасибо огромнейшее! =)
Здравствуйте! Подскажите пожалуйста что нужно поправить в вашей функции чтобы сделать валидный код сейчас в коде страницы <p class="wp-caption-text"><meta itemprop="width" content="600"><meta itemprop="height" content="300"></span>описание картинки</p>
Валидный код будет <meta itemprop="width" content="600"><meta itemprop="height" content="300"></span><p class="wp-caption-text">описание картинки</p>
Вот протестируйте на валидаторе это решение.
Виталий, с наступившим!
Вот ещё забавная штука: Гугл для Product (в отличие от Article) к картинкам почему-то претензий не имеет. Вот и пойми их…
И Вас с наступившим Сергей!
Да и для библиотеки Recipe ничего подобного Гугл не требует. То ли еще будет!
С Рождеством!
Виталий, как «перфекционист перфекционисту»: конструкция для mainEntityOfPage (по тексту статьи ) вызывает «недовольство» валидатора validator.w3.org
Добавление content=»» снимает проблему (по аналогии для картинок с alt-ом).
Успехов.
И Вас с Рождеством Сергей! Конечно Вы правы, но вот в чем вопрос: зачем Гугл приводит в качестве примера не валидный код! Спасибо за комментарий, хорошее дополнение к статье.
Как по мне, так разобраться в микроразметке стоит каждому оптимизатору.
Поправил разметку для гугоа. На днях поправлю для аши адрес там и всякую муть. Проблема только с картинками. Функция не работает почему то. В коде ничего не меняется.
Возможно изображения у Вас выводятся функцией шаблона.
Тогда достаточно будет в конце функции в фильтре просто поменять имя стандартной функции на название из шаблона?
Я посмотрел исходный код Вашего сайта. Дело не в функции вывода изображений, а в функции вывода всего контента. Скорее всего у Вас не срабатывает хук the_content, иначе все бы работало.
А, the_content это стандартная функция вывода всего контента. Будем дальше посмотреть.
Переместил код в середину functions.php и гугля теперь ругается только на размеры картинок.
Причем в коде страницы оба meta (ширина и высота картинки) присутствуют, но Гугл их не видит.
У вас поле <span itemprop="image" itemscope itemtype="
https://schema.org/ImageObject
"> не отображается в коде, вот Гугл и не видит размеры.Тогда все, приехали. Больше моих знаний на этот шаблон не хватает.
Поэтому люди и обращаются за помощью, о чем я и писал в статье.
Нашел тему с уже встроенной микроразметкой. На ура проходит проверку и у гугли и у яшки. В настройках забивается телефон и адрес.
А название темки подскажите? многим интересно было бы взглянуть?
wp-puzzle.com/?wpam_id=34 Бесплатная Basis
Есть бесплатная 2 платных.
Bahus решение Вашей проблемы с микроразметкой изображений здесь.
Новая разметка конфликтует с плагином wordpress WP-PostRatings. Если он включен, не проходит проверка микроразметки. Появляется
Article 2:
endrblog.ru/sozdanie-bloga/seo/post-ratings-1977
с собственно ошибкамиauthor: отсутствует (обязательное)
name: отсутствует (обязательное)
publisher: отсутствует (обязательное)
dateModified: отсутствует (рекомендуется)
mainEntityOfPage: отсутствует (рекомендуется)
При отключении плагина остаются ошибки только с картинками. Возможно это только на моей теме.
С вашими функциями разметки картинок дублируются некоторые картинки в статье и пропадает кликабельность следующих за ними. Устал я от этого шаблона. Ничего на нем нормально не работает. Все через опу. Буду менять.
Убрал подписи, все восстановилось. Но картинки размечаются не все.
В статьях должны все размечаться, что качается миниатюр в комментах есть код для них.
Заработало. Проверил другим браузером. Осталась только ошибка у яндекса в комментах
ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop
Проверьте корректность размещения закрывающего тега библиотеки schema.org/Article, он не должен захватывать область комментариев.
Не захватывает.
Нашел косяк.
Была неверная строчка itemprop=»comment» itemscope=»itemscope» itemtype=»http://schema.org/Comment» с лишнимми тегами.
Заменил на itemscope itemtype=»http://schema.org/Comment» и все заработало. 🙂
Теперь буду с главной разбираться. С миниатюрами и
publisher: отсутствует (обязательное)
dateModified: отсутствует (рекомендуется)
mainEntityOfPage: отсутствует (рекомендуется)
Странно. Яша уперся в картинку с логотипом.
Сам дурак. Лишние кавычки в адресе логотипа. Блин, достала меня эта новая микроразметка. С предыдущей версией все быстрее было.
Добрый день Виталий! Проблема заключается в следующем. После установки Ваших функций для автоматической микроразметки картинок. Были выявлены следующие проблемы — перестал работать плагин Shutter Reloaded Plus. Так же яндекс стал выдавать вот такую ошибку на каждой отдельной странице. microdata
ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop. или вот такая ошибка в некоторых записях при поиске imageobject
ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для передачи данных в Яндекс.Картинки: поле contentUrl или image или thumbnail отсутствует или пусто. Еще какие-то неизвестные проблемы выдает и гугл
developers.google.com/structured-data/testing-tool?url=http%253A%252F%252Fapple-pnz.com%252F%253Fs%253D%2525D0%2525BF%2525D1%252580%2525D0%2525B8%2525D1%252585%2525D0%2525BE%2525D0%2525B4%2526x%253D19%2526y%253D6
. Если убрать функции микроразметки изображений эти проблемы исчезают. Можете помочь в этом плане?Здравствуйте Александр! Плагины выводят изображения, использую собственную структуру html и я не могу подстраивать функцию под каждый плагин, которых масса всяких разных. Неужели сложно настроить вывод изображений средствами WordPress…
Да я понимаю, но раньше эта функция как то справлялась. Теперь косяк. Но также есть косяк и в других местах попробуйте проверит микроразметку одной записи в яндексе. Тоже выдает ошибку или то что я давал Вам ссылку — в ней тоже ошибка абсолютно не связанная с плагином вывода изображений. Что делать с этими ошибками?
Как можно настроить вывод изображений средствами WordPress?
У меня на блоге много статей, посвященных изображениям и их миниатюрам. Почитайте.
Виталий ищу, но не могу найти что-то для себя. Можете дать конкретную ссылку. А лучше помогите разобраться с плагином) С ним было очень удобно.
Так у Вас вроде нет ошибок.
Ошибок, то не. Но у меня стоит плагин Shutter Reloaded Plus, который при нажатие на картинку в статье или просто на главной странице она увеличивалась. После установки функции микроразметки изображений этот плагин перестал работать. Как это исправить?
Приведите в комментарии полный код изображения без микроразметки, т.е. как было без моих функций.
Мне нужен код изображения из исходного кода страницы (CTRL + U), а не из редактора.
Виталий я сейчас убрал функцию микроразметки. Плагин работает как надо. Вы можете сами взять тот код который Вам нужен. Просто я точно не знаю какой именно кусок кода Вам скидывать.
Я скопировал код, теперь обратно все поставьте.
Все вернул.
Хорошо, попробуем что-нибудь сделать.
А почему в разметки картинки иногда дублируются?
Вы старую функцию удалите!
ну естественно.
https://developers.google.com/structured-data/testing-tool?url=http%253A%252F%252Fapple-pnz.com%252Facces%252Facustik%252Fakusticheskaya-sistema-bose-sound-mini-system-link-2.html
вот здесь видно.Да уж, функция нуждается в доработке! Функция дублирует размеры первого изображения, в вашем случаи изображения дублируются полностью, просто между ними нет текста. В общем отправляю функцию на доработку.
Спасибо!Буду ждать.
протестировал код валидный но теперь размечаются только картинка с описанием все остальные в статье картинки не разечаются
Вот доработал функцию, даже компактней получилось, протестируйте.
Вроде все равно есть какие-то дубли. Но так картинки перещелкиваются нормально. Можете сами посмотреть.
Я вот одного не пойму, зачем Вам две одинаковые фотографии, еще и расположенные рядом друг с другом?
Да точно. Проблема в одинаковых картинках. Спасибо Виталий за функцию!
У меня осталось без изменений размечаются только картинки с описанием первая картинка поста и другие картинки без описания остаются без микроразметки
Алексей, для картинок без подписи используйте функцию из статьи.
вставляю ещё функцию из статьи
ошибка 500
изменил немножко название функции чтобы были разные сработало только у картинок с описанием теперь по два размера высоты и ширины
Ну да косяк, надо дальше думать.
Алексей, приведите в комментарии php класс из Вашей темы, который находиться в начале файла functions.php или дайте доступ, хочу посмотреть.
не знаю что за класс вы спрашиваете высылаю доступ Адрес
Спасибо Алексей! Просто хотелось еще раз взглянуть на php класс из Вашей темы, для общего развития 🙂
Пока не получается составить корректную функцию, для разметки изображений одновременно: с подписью и без подписи, с ссылкой и без ссылки. В общем, очень много нюансов. Если получится, сразу опубликую.
Виталий спасибо большое за функцию! Вроде все работает! Думаю она будет много кому полезна. Единственное приходится иногда изображение несколько раз перещелкивать
Перещелкивать приходиться из-за кеша. Почистите кеш!
Добрый вечер. Сегодня весь день вникаю в разметку (именно вникаю, потому так долго, интересно стало). Так вот, в Помощи от Яндекса написано про свойства name и headline:
«Название или заголовок работы. Если в документе указаны одновременно оба свойства, в сниппет попадает название из свойства name.»
Возможно, я еще не до конца все понял, но вопрос: если name — это название сайта, а headline — статьи на этом сайте. То какого Яша подменяет название статьи названием сайта? ))
Такая же ерунда для Description и ArticleBody.
Перепроверил. С несостыковками разобрался. Плюс удалось избежать добавления лишних картинок (img для publisher).. Собственно, это вызывало главную проблему :).
$content = preg_replace($ar_mk, $br_mk, $content, 1);
можно ли здесь как то изменить чтобы размечались все изображения кроме первого?
Нет, не получится.
К сожалению у меня тоже есть ошибки и вообще не получается их убрать((
Здравствуйте Виталий! Подскажите пожалуйста. Как мне сделать, чтобы плагин вывода изображений работал корректно вместе с Вашей функцией микроразметки изображений? Плагин называется Shutter Reloaded Plus.
Небольшое уточнение по поиску решений ошибок валидации. Если выдаются ошибки, проверьте 2 варианта. Столкнулся сам.
1. Если установлен плагин Wp rating post, при включеной в нем опции разметки для гугла, и яшка и гугл выдают ошибки. Для проверки отключите опцию и проверьте снова. Для корректной работы опции при наличии микроразметки нужно будет удалить 3 строки из кода плагина.
2. Если используете в текстах смайлики, гугл и яшка так же выдают на них ошибки.
А какие именно 3 строчки нужно удалить?
Привет у меня wordpress обраезает код
Вместо <img itemprop="image" itemprop="url"
выводит только <img itemprop="image"
не подскажете как исправить?
Помню, намучался я с микроразметкой. Потом плюнул и обратился к фрилансерам. Не смог осилисть)
Подскажите пожалуйста Виталий! У меня на сайте комментарии к статье находятся отдельно (не в теле статьи) из-за чего возникают ошибки в микроразметки. Как перенести комментарии в тело статьи?
Коментарии не должны быть в теле статьи. Другое дело, что зона комментариев может находиться в поле действия общего со статьей блока div.
А у меня получается что это все как-то отдельно существует от статьи поэтому элемент микроразметки «Количество комментариев» у меня выдает ошибку. Как это исправить?
Разметка количества комментариев делается в файле comments.php.
Да я знаю. У меня так и было сделано, но после обновления гуглом микроразметки. Почему то именно на кол-во комментариев стал ругаться гугл и яндекс. Как я понял это потому что комментарии у меня существует отдельно. Как мне все это объединить?
Никак!
Хороший ответ)
Вы хоть поняли о чем я Вас спрашиваю?
Я понял, что речь шла об объединении статьи и комментариев, так вот я не знаю, как это все дело объединить)
а как разметить картинку в теге a, ссылка ведет на фул изображение?
если применить код из статьи, то тег span становится частью тега a и исчезает закрывающий тег span, хотя валидатор не ругается
Виталий, МЕГАсасибо за информацию. Похоже периодически нужно её проверять. Я думал что в микроразметку лезть уже не нужно будет, мол сделал и забыл. Не тут то было (( Буду корректировать, конечно же. Спасибо!
Здравствуйте! Спасибо за предложенную функцию микроразметки изображений, однако я в ней нашел один баг. Если в стетье используется хэш-тег описания изображения [caption], формируемый самим движком, то этот код мало того, что не добавляет теги, так еще и удаляет ссылку a. Прошу доработать 🙂
Приветствую! А какой смысл размечать все картинки в статье? Тег img ПС прекрасно понимают, а для гугл требуется только одна картинка. Вот и получается, что смысла размечаь все картинки нет никакого, достаточно и одной
Скажу больше это даже плохо. Я как то делал по методу автора на кулинарном сайте, так у меня в сниппете часто отражалась картинка которая не соответствовала данному рецепту. А просто была взята из «Похожих рецептов» или других мест, там тоже картинки имели данный тег.
Здравствуйте Виталий! Подскажите пожалуйста, а что делать с изображениями, которые размещены в комментариях? Google выдает ошибку — Свойство width недопустимо для объекта типа Comment. Буду благодарен за помощь!!!!
Здравствуйте Денис!
Попробуйте к функции разметки изображений добавить 2 строчки:
Еще вопрос! Как вывести itemprop=»description» у статьи, если описание указано в настройках All in Seo pack статьи?
Денис, в качестве description для статьи можно взять первый абзац или более. Вот функция:
Где цифра 1 — взять 1 абзац.
почему данная функция не срабатывает в версии вордпресса 4.5.2 ?
Должна работать, дело не в версии WordPress.
Виталий, добрый день! Вставил эту функцию, description добавилось. Но,блин, яндекс все равно выдает
creativework
ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для структурированных сниппетов творческих работ: поле description или articleBody отсутствует или пусто
itemType =
http://schema.org/CreativeWork
В чем подвох?
Здравствуйте Сергей!
Вам надо вставить эту функцию:
function mayak_text_description($content){
$ot = '<p(.*?)/p>';
$do = 'p itemprop="description" \\1/p';
$content = preg_replace($ot, $do, $content, 2);
return $content;
}
add_filter('the_content', 'mayak_text_description');
попробовал на двух сайтах с разными темами. в яндексе ошибка как была так и осталась. при том, что до вставки вашей функции поле articleBody и так было заполнено, а после вставки появилось еще и description. что яндексу нужно, не пойму.
советовал бы еще показать код миниатюр, чтобы заменить. т.к. вот столкнулся с задачей, и пришлось повозиться.
add_filter( ‘post_thumbnail_html’, ‘add_schema_wrap_thumbnail’, 10, 8 );
В смысле, пришлось повозиться, чтобы itemprop="url image" прописать?
add_filter( ‘post_thumbnail_html’, ‘add_schema_wrap_thumbnail’, 10, 8 );
function add_schema_wrap_thumbnail($html) {
$pattern = «<img";
$replacement = '<img itemprop="url image"';
$html = str_replace($pattern, $replacement, $html);
return '’.$html.»;
}
не тот код показался странно
Сергей, на самом деле, код должен выглядеть так:
Но если миниатюры попадут в действие библиотеки article, то будет ошибка. Тут надо использовать другой код:
Такие дела!
весь код не ставляется, но суть в том, что на return идет новый вариант ».$html.» ни в коем случае не хотел вас как-то обидеть, просто разбирался и вот решил скинуть
потрите комментарии код не вставляется, так что смысл дискуссий на выходе это должно быть
<span itemprop="image" itemscope itemtype="
https://schema.org/ImageObject
">'.$html.'<meta itemprop="width" content="610"><meta itemprop="height" content="260"></span>Как вы будите все такой код предлагать, размеры миниатюр то у всех разные.
Сергей, ваши некоторые комментарии не прошли, так как Вы отвечали сами себе.
У меня почему то в статьях некоторых выдается ошибка:
image: отсутствует (обязательное)
При нажатии, выдает:
Необходимо указать значение для поля image.
И указывает на
div class=»blogcontent» itemscope itemtype=»http: //schema. org/Article»
С момента выхода статьи я немного модифицировал код добавление микроразметки к изображением. Переустановить функцию.
Спасибо, все заработало.
Буду благодарен, если ответите на мою просьбу выше.
PS. Вы мобильную версию для сайта сами верстали или какой то плагин ставили?
Да мобильную версию сам делал. Уточните просьбу пожалуйста.
Добрый вечер.
Параллельно к Вашей статье подправил разметку в
validator.w3.org/nu/
, а с 1 ошибкой не могу справиться, ругается он, на не закрытый тег <a>, но как я его закрываю, вместо 6 ошибок, валидатор выдает от 125 до 255 ошибок, в зависимости от того, куда поставить закрывающий тэг </a>Проблема в header.php
Оригиналы файла найти не смог, только архивные, там все так же, но еще в начале стоял и тоже без закрывающего тэга =))
Толи я давно что то накосячил, то ли разработчики не доделали.
ЗЫ. Буду очень Вам благодарен за любой совет.
—————————————————
И по текущей статье, у меня почему то в некоторых статьях выдает ошибку:
«Свойство width недопустимо для объекта типа Article.»
«Свойство height недопустимо для объекта типа Article.»
А в статьях, где не прописаны width и height для картинки — валидатор пишет Необходимо указать значение для поля height и width, я так понял, что для каждой картинки нужно его ручками прописывать?
Не хотят тэги прописываться.
Не закрытый тэг А, а в архиве раньше еще и h1 стоял, ну с ним все понятно, он там не нужен.
Здравствуйте! Дело в том, что у Вас в зону действия библиотеки Article попали комментарии (об этом я предупреждал в статье), а граватары тоже картинки с тегом img. На счет тега «а» ничего не могу сказать.
Спасибо, разобрался с Article, на очереди циклические ссылки =) и нагрузка на сервер.
Здравствуйте! Делаю себе микроразметку, все получается хорошо, кроме комментариев! В гугле показывает все замечательно, а вот яндекс ругается, выдает ошибку:
» microdata
ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop
itemType =
comment
comment
itemType =
creator = Никанорыч
text = Спасибо за интересную статейку, есть к чему присмотреться.
datepublished = 2016-03-03
comment
comment
itemType =
creator = admin Дмитрий
text = Всегда пожалуйста!
datepublished = 2016-03-03″
С автоматической микроразметкой не выходит, выдает ошибку 500, белый экран!
Прописал в ручную, вроде бы комменты отображаются в валидаторе, но с ошибкой!
Подскажите пожалуйст, что можно сделать?
Пробовал отключать все плагины, перемещал itemprop=»comment» itemscope=»itemscope» itemtype=»http://schema.org/UserComments» в разные блоки, также пробовал разделять его, все равно ошибка выскакивает!
Здравствуйте Дмитрий! Возможно валидатор Id со словом comment принимает за элемент микроразметки, попробуйте подключить библиотеку после вывода граватара.
Здравствуйте, Виталий! Почему-то при нажатии кнопки ответить (на комментарий) появляется форма для написания комментария, но не активная, т.е. я не смог написать ответом на ваш ответ :). При наведении на область появляется курсор «рука»…. (возможно это только у меня, addblock отключен)
Теперь к делу! Библиотеку подключал к разным блокам, относящимся к комментариям, результат тот же, яндекс выдает ошибку: «microdata ОШИБКА …»
НО! Я нашел выход… хотя, нет, мне подсказали как его найти… (Константин Хмелев).
Ошибка заключалась в том что блок комментариев должен быть размещен внутри блока article, т.е. в теле статьи, а он у меня был размещен после article.
Переместив комментарии внутрь блока article и переместив закрывающий тег </div>, яндекс перестал ругаться! В гугле проверил — все ок!
В вашей статье указано правило, цитирую:
«Важное правило! Библиотеку schema.org/Article необходимо разместить так, чтобы она охватывала только зону записи и не в коем случаи не распространяла свое действие на зону комментариев или другие зоны, иначе будут ошибки.»
Получается оно не работает?… У меня сейчас как раз наоборот получается, библиотека schema.org/Article охватывает зону записи, форму подписки, значки соцсетей и комментарии…
P.S. Спасибо за классную статью, с помощью нее я исправил на своем блоге микроразметку, только вот с комментариями немного помучался… Блог тоже мне ваш нравится, читаю и не могу оторваться, столько интересного… Подписываюсь!
Здравствуйте Дмитрий! На моем блоге зона комментариев как раз не входит в поле действия библиотеки /Article и ошибок нет. Помню, в ходе экспериментов, я пробовал ставить закрывающий тег div после вывода комментарием и валидатор выдал ошибки, поэтому я и сделал в статье предупреждение.
Теперь думаю надо его убрать, дабы не сбивать людей с толку. Спасибо за комментарий! Интересный опыт.
Приветствую. У меня все хорошо в статьях
А вот на главной
image: отсутствует (обязательное)
и строчка —
Что делать, а? Подскажите пжста
itemscope itemtype="
http://schema.org/Article
"Разметить миниатюры.
А как это сделать?
А, все, спасибо, сделала
Разметить так, чтобы и Яндексу, и Гуглу понравилось достаточно трудно. Мне с изображениями пришлось повозиться. Статья ваша как раз кстати оказалась. спасибо.
добрый вечер! у меня ваша функция работает, только с теми изображениями, которые добавлены в ручную. для добавления миниатюр в категории использовал Taxonomy Images. да вот беда, функция не проставляет разметку. Может есть какой-то выход? Спасибо заранее!
Нашел у вас ошибку в микроразметке блога
Спасибо Виктор, уже поправил.
Вопрос: стоят Ваши функции, но когда вставляю картинки в статью галереей вида [gallery link="file" ids="667,668,669,670,671,661"]
на него функция не срабатывает. Вам не трудно подсказать функцию, которой бы размечались изображения галереи?
Здравствуйте Виталий! размечаю по новой инструкции кулинарный сайт, но валидатор ругается на отсутствие поля name.
сейчас по Вашей рекомендации строка выглядит так — , как её изменить для кулинарного сайта?
<h1 itemprop="headline"><?php the_title(); ?></h1>
Константин, а Вы автора разметили?
да, разметил, вот так — <span class ="vcard author"><span class="fn"><span itemprop="author"><?php the_author(); ?></span>
Константин, вот этот кусок уберите: <span class ="vcard author"><span class="fn">
убрал лишний кусок, подскажите как правильно разметить name и ingredients?
<h2 itemprop="name"><?php the_title(); ?></h2>
Константин, Вы эту статью почитайте, там все расписано.
у меня размечено так : <h1 itemprop="headline"><?php the_title(); ?></h1>
если я вставляю строку как вы порекомендовали, отображается 2 повторяющихся названия, может можно как то совместить?
Вы что размечаете, тело рецепта или шапку сайта?
тело, single.php
У Вас что заголовок повторяется? Приведите код файла.
прошу прощения, хотел все содержимое файла выложить
Вы скриншот куда-нибудь выложите и ссылку дайте.
Приветствую.
Замечательный у вас блог, Виталий!
У меня вопрос по авторазметке картинок «image»
Если ставлю ваш старый код в functions.php после <php, то Яндекс прекрасно видит всю разметку картинок. У гугла появляется более 100 ошибок на публикацию.
Ставлю новый ваш код — ни яндекс ни гугл в упор разметки картинок не видят.
Нужна ваша помощь.
Здравствуйте Василь! А какого рода ошибки выдает Гугл и какой конкретно код вы вставляете?
Не отобразился скрин. Вот ссылка на него —
hostingkartinok.com/show-image.php?id=945c7eaa4589398fe0a433ff39a76321
Впереди сами вставьте http
Понятно. Василь, у Вас в коде изображений вообще отсутствуют width (ширина) и height (высота):
Поэтому функция не работает.
Виталий, спасибо за такие интересные материалы. Вчера на них набрела. Первый сайт с таким доходчивым изложением.
Попробовала микроразметку внедрить. С фотографиями не получилось. Я попробовала внести изменения в functions.php дочерней темы (из текста вставила function mayak_filter_image($content) {
$ar_mk = ‘!!si’;
$br_mk = »;
$content = preg_replace($ar_mk, $br_mk, $content);
return $content;
}
add_filter(‘the_content’, ‘mayak_filter_image’);). Эффекта не увидела — имедж отсутствует у гугла. В основную тему лезть боюсь. Да и вроде у дочерней темы приоритет.
В яндекс сегодня пропробовала проверить сайт первый раз (сайт молодой — только до этапа проверки дошла). Есть ошибка «discussionUrl» написан «discussionURL». Где это поправить можно?
Здравствуйте Наталья! Изображения у Вас разметились нормально. Что касается discussionUrl, то вообще не понятно зачем нужен данный элемент микроразметки, его можно просто убрать.
Как Вы наверняка заметили, разметка с хлебными крошками у меня установлена. Но устанавливала не я — встроена в тему. discussionURL сама не ставила. Пытаюсь разобраться, как бы убрать встроенную разметку. Как Вы считаете, стоит ее убирать?
А почему у меня сообщение, в Article при проверке в гугле, что image отсутствует?
У меня из-за двух разметок (одну Вашу поставила, где из неправильного только image, вторая родная с Blog с 4 ошибками — breadcrumb недопустимо для объекта типа Blog, publisher отсутствует, dateModified отсутствует, mainEntityOfPage отсутствует.
Лучше бы в теме с начала не было совсем разметок…
Конечно лучше убрать встроенную разметку и сделать собственную. Я проверил одну Вашу страницу с записью с image все было в порядке.
Поизучала свою тему. Нашла файл, где функции с хлебными крошками… Называется интересно Hybrid. Разметку делали с учетом условия, чем является страница — записью (
http://schema.org/Blog
‘-if ( is_singular( ‘post’ ) || is_home() || is_archive() ) {$attr[‘itemscope’] = »;
$attr[‘itemtype’] = ‘
http://schema.org/Blog
‘;} ), вебстраницей (
http://schema.org/WebPage
). (Если я все правильно понимаю). Убрать такую разметку сложно… да и мысль появилась, а нужно ли…Что интересного в своей разметке нашла — есть блок ArticleBody (Вы в свою не делаете-может нужно?).
Попробовала Ваш предложенный блок под себя переработать. Теперь у меня в одном типе Блог все составляющие и есть, и нет — например, dateModified и есть, и нет…
Наталья, я даже не знаю, что Вам сказать. Самое главное, чтобы валидатор микроразметки не выдавал ошибок, а библиотеки для разметки можно разные использовать, все зависит от тематики сайта.
Вместо «ArticleBody» я использую «description», что одно и тоже.
Да ладно, Виталий. Хотелось Вам сказать «что за чайники»…Мы ведь оба понимаем, что это не правильно и что робот это не полюбит.
Нашла я куда мне нужно в мою тему добавить микроразметку (content-single.php). За одно цвет шрифта изменила на цветной. Теперь в родной теме валидатор не видит только image. Буду разбираться.
А Вы не подскажете, какие изменения мне нужно внести, чтобы избавиться от ошибки «Свойство breadcrumb недопустимо для объекта типа Blog»?
Виталий, картинки не обрабатываются только на главной. В чем может быть причина? Там изображения берутся из миниатюры, в которую по задумке авторов шаблона я задаю, какое хочу. Задан максимальный размер. Шаблон этого изображения в виде: ширина, высота, адрес…
Наталья поищите в комментариях под статьей функцию разметки миниатюр, я ее там публиковал.
Наталья, для хлебных крошек надо использовать библиотеку
http://data-vocabulary.org/Breadcrumb
, а никакой не Blog.Виталий, Вы не правы про
Это уже не актуальная ссылка.
Смотрела Thing > Intangible > ItemList > BreadcrumbList
и
https://schema.org/ListItem
это по-современному (как я понимаю) itemtype.
Значит вместо Blog должен быть Thing? А он (оно?) позволяет себя описывать, как у меня блог описан… Экспериментировать придется.
А картинки на главной обработались. Спасибо!
Наталья, все так быстро меняется, что не успеваешь отслеживать, хотя валидатор нормально обрабатывает данную библиотеку.
Виталий, помогите пожалуйста с моим single.php разобраться…
prnt.sc/awlvfc
Константин, что-то вы намудрили! Для рецептов надо использовать только библиотеку schema.org/Recipe, schema.org/Article вообще здесь не к месту. Все нововведения в микроразметке не относятся к кулинарной тематике. Сделайте все так, как описано в этой статье и ничего не выдумывайте.
Вот-вот… Я по жизни бухгалтер… Там тоже всякие новшества внедряют без конца и края.
Не понятно зачем.
Гоша мой сайт уже не ругает. Зашла в гости к Яше… Жуть. Главная и странички мои (не записи) — Ошибка разбора html.
На записях (над которыми билась)- microdata
ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop
itemType =
breadcrumb = HomeАвиабилеты дешевоБилеты в ЕвропуМосква⇄Салоники 8 938 руб., Санкт-Петербург⇄Салоники 13 250 руб.
Что нужно теперь делать?
Наталья, Все таки попробуйте библиотеку
http://data-vocabulary.org/Breadcrumb
Сказать просто спасибо мало!!!
Супер статья и информация. давно искал ….. Попробую сам внедрить, эту … разметку, а нет прямой путь к фрилансеру)))
Виталий, благодарю!!!
Виталий, доброго Вам дня! Я честно скажу, что мало что понимаю в микроразметке. Поэтому извиняюсь за вопрос. Текущая статья — она описывает только изменения в микроразметке с учетом последних тенденций?
То есть если внедрить только те коды, которые представлены в этой статьей, они достаточны? Или это только верхушка айсберга?
Заранее спасибо.
Здравствуйте Сергей! Да, в данной статье описаны не все элементы микроразметки, многие пункты можно настроить по статье микроразметка Schema.org на примере кулинарного сайта. Возможно в скором будущем я выпущу отдельную статью, где постараюсь расписать все, от а до я.
Доброго Вам утра, Виталий! Спасибо за ответ. Тогда подожду Вашу статью, ибо не разобрался до конца в этой теме.
Было бы здорово почитать об микроразметки видео, фото галереи, блога. Увидеть скриншоты сниппетов как результат микроразметки.
Здравствуйте, Виталий!
Я, практически разметку сделал на тестовом сайте в дочерней теме: _http://muzrestor.ru/testiruem/ , но возникла проблема с картинками. С помощью Вашей статьи мне удалось их разметить на страницах и в постах, но возникла эта проблемка в анонсах. Главная страница у меня статическая, по этому они (анонсы) выводятся здесь: _http://muzrestor.ru/testiruem/stat-i и Здесь: _http://muzrestor.ru/testiruem/?rubriki=nashi-ispolniteli
У Гоши по ошибке в каждом анонсе: image Необходимо указать значение для поля image.
И одна на главной: headline Необходимо указать значение для поля headline.
У Яшки только предупреждения в анонсах: ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для структурированных сниппетов творческих работ: поле description или articleBody отсутствует или пусто
ПРЕДУПРЕЖДЕНИЕ: значение «2016-06-3» в поле dateModified не является корректными значением даты. Дата должна быть в формате ISO 8601
Пробовал Ваши коды mayak_thumbnail_image , — не помогает.
У меня анонсы выводятся по-особому, не как у людей. Может подскажете, «где собака порылась»?
С уважением, Александр.
Здравствуйте Александр! Просто текст анонсов тоже надо размечать, подобно разметки записи. Дождитесь статьи, я немного освобожусь и выпущу статью, где будет все.
Здравствуйте, Виталий!
class-content-post_list у меня размечен без ошибок:
<section class="tc-content «>
<?php
do_action( '__before_content' );
printf('%2$s’,
$_sub_class,
$_content
);
do_action( ‘__after_content’ );
?>
Правильная строка после printf(
‘%2$s’,
Не вставляется строка section class=»%1$s» itemprop=»description»>%2$s</section
Здравствуйте! Виталий, подскажите для кулинарного сайта нужно внедрять разметку указанную в этой статье или достаточно той что указана у вас в этой статье: /seo-prodvizhenie/poiskovye-sistemy/makrorazmetka-schema-org.html
Здравствуйте Виктор! Для кулинарного сайта действует старая микроразметка.
Ну вот, проверил микроразметку. Гуголь доволен, Яндекс бранится. По поводу микроразметки комментариев. Как говорится, «жена довольна, теща — нет; теща довольна — жена бранится! И куды бедному хрестьянину податься?» 🙂
В чем ошибка?
Добрый день! Вставила вашу функцию
function mayak_filter_image($content) {
$ar_mk = ‘!!si’;
$br_mk = »;
$content = preg_replace($ar_mk, $br_mk, $content);
return $content;
}
add_filter(‘the_content’, ‘mayak_filter_image’);
и наблюдаю чудо в коде страницы пропадает строчка ‘ и соответственно появляются три ошибки разметки, о том что недопустимые атрибуты для Article. Если на настоящем сайте не увидите из-за CDN, то можете на болванке посмотреть
Здравствуйте, Виталий. Не могли бы Вы подсказать где необходимо прописать код itemscope itemtype="
http://schema.org/Article
".Как я понимаю, этот код нужно вставить в тег, который оборачивает всю область контента записи (текст и комментарии) и эти изменения нужно вносить в файле single.php.
Проблема в том, что внося изменения в файле single.php дочерней темы Twenty Therteen при нажатии «Сохранить» не происходит никаких изменений в коде.
Файл single.php приведен ниже:
get_header(); ?>
<div id="primary" class="content-area">
<div itemscope itemtype="
http://schema.org/Article
" id="content" class="site-content" role="main"><?php /* The loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php twentythirteen_post_nav(); ?>
<?php comments_template(); ?>
<?php endwhile; ?>
</div>
</div>
Мои предположения, что может быть я не туда вставляю данный код или, возможно, как-то влияет файл page.php, в котором первые строчки кода повторяются:
Файл page.php:
get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php /* The loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
и т.д
Не могли бы Вы помочь в этом разобраться.
Здравствуйте Андрей! Почитайте про функцию get_template_part() и думаю сами найдете ответы.
Прочитал про нововведения и исправил все ошибки, но одно но… Гугл ругается на картинки — «Необходимо указать значение для поля image.» и указывает на строку открытия сущности — itemscope itemtype=»http://schema.org/Article». Что тут надо сделать? Уже голову сломал. Сайт у меня работает не на WordPress, поэтому функции бесполезны.
Про другие движки ничего не скажу. Статья для WordPress.
Но микроразметка ведь не только для WordPress предназначена? Да и в заголовке статьи у вас про WordPress ничего не сказано…
Спасибо большое. Если бы ни ваш блог, так бы и мучился с этой разметкой.
Виталий, здравствуйте. Подскажите, пожалуйста, как вывести адрес миниатюры в вашем примере?
itemprop=»image» itemscope itemtype=»https://schema.org/ImageObject»
Это было бы логично. В таком виде как сейчас выдёргиваются картинки в записи, и они могут не соответствовать заголовку поста. (например, у меня первая картинка в посте — это фото с цитатой… и она не имеет отношения к названию записи).
Заранее благодарю.
Здравствуйте, Виталий.
Вы у меня как последняя инстанция больше обратиться не к кому. Сделал микроразметку по вашей статье и все работало на Ура! Но сейчас сменил шаблон и если главную и записи я разметил без проблем, то в библиотеке
schema.org/BlogPosting
выдает ошибку «Необходимо указать значение для поля image.» я все ваши коды со старого шаблона перенес на новый,а толку нет. Ставлю назад старый шаблон — все отлично, а на новом проблема с миниатюрами. Это может быть из за того, что у меня за рубрики отвечают не файлы archive.php или category.php, а files/list.php? И как это можно исправить?Спасибо!
Игорь, это значит, что HTML миниатюр у Вас прописан прямо в файлах шаблона, и разметку надо делать непосредственно в коде одного из файлов. Возможно это list.php, я точно не могу сказать не видя самого кода.
О господи, слава богу я разметил изображения, спасибо большое! Буду всем рекомендовать эту статью
Здравствуйте. Благодарю за ваши скрипты по разметке изображений! Как жаль, что такой функционал не идет в вордпрессе по-умолчанию…
Имеется такой вопрос:
вставил эти скрипты в function.php
//микроразметка для изображений
function mayak_filter_image($content) {
$ar_mk = ‘!!si’;
$br_mk = »;
$content = preg_replace($ar_mk, $br_mk, $content, 1);
return $content;
}
add_filter(‘the_content’, ‘mayak_filter_image’);
//фото в сниппете
function mayak_result_image($content) {
return preg_replace(array(‘{<img itemprop="image"}'), array('<img itemprop="resultPhoto"'),$content, 1);
}
add_filter('the_content', 'mayak_result_image');
но к сожалению ни в гугле, ни в яндексе в поисковой выдаче нет фото рецептов, хотя в валидаторах все хорошо.
Подскажите пожалуйста, правильные ли я скрипты Вашего написания использовал и как добиться отображения фото рецепта в поисковой выдаче?
Заранее благодарен!
Здравствуйте!
Чтобы фото появились в сниппетах, на это надо время. Если Вы сделали все правильно и в микроразметке нет ошибок, должны появиться.
Спасибо, что ответили!
А Ваших скриптов микроразметки изображений и фото в сниппете достаточно, чтобы у рецепта в поисковой выдаче присутствовала фотография? Или есть ньюансы?
На моем кулинарном блоге, миниатюры выводятся и в Яндексе и в Гугле.
Виталий, доброго дня. У меня проблема в том, что в длинных статьях, где имеются много изображений, приведенный код выше, для — Поле «image» и библиотека «schema.org/ImageObject», не оборачивает все изображения правильно. в одном случае, не добавляет в самом начале < span … , в другом, не закрывает. И изображения размечаются не правильно. Или часть размечается, часть нет. В подписи адрес одной из проблемных статей. Подскажите пожалуйста, что пошло не так. Спасибо заранее…
У Вас размеров в картинках нет: width и height, поэтому функция не работает.
Спасибо за оперативный ответ, проблема решена! Добавил размеры изображений. А если изображения не имеют размера, и вставляются как 100% оригинал, получается ошибка будет встречаться. Можно ли поправить код, или в любом случае, нужно назначать размеры изображениям, по правилам разметки?
У любых изображений должны быть размеры! Если размеров нет, то это, кроме всего прочего, негативно влияет на скорость загрузки страниц, так как браузеру приходятся определять размеры картинки самостоятельно.
Да, и размеры нужны для микроразметки, иначе будет ошибка.
Спасибо, Виталий!
Здравствуйте. Помогите, пожалуйста, разобраться в коде:
function mayak_filter_image($content) {
$ar_mk = ‘!!si’;
$br_mk = »;
$content = preg_replace($ar_mk, $br_mk, $content);
return $content;
}
add_filter(‘the_content’, ‘mayak_filter_image’);
Где и вместо чего вставлять урл сайта и размеры картинок?
Ничего в функцию вставлять не надо, просто копируете функцию и вставляете ее в файл functions.php вашей темы.
А в каком месте functions.php его надо вставлять?
Добрый день, может подскажите. Стоит плагин WP-Postratings и Platinum SEO. У WP-Postratings после звездочек есть свой description, дата и т.д. Яндекс упорно берет description с него, но фишка в том, что когда я меняю содержимое description статьи в окне Platinum SEO , оно не изменяется в wp-postrating.
Хотя Google берет всё правильно.
Кеш чистил, что только не делал он всё равно показывает самый первый description
Google опять ругается на картинки. Можете внести в функцию mayak_filter_image необходимые изменения?
Функция работает исправно и на мой сайт Гугл не ругается.
Виталий, добрый вечер!
Я не сильно в этом понимаю, но все же спрошу. Проверяю страницу через этот сервис
search.google.com/structured-data/testing-tool
Вот тут:
logo
@type — ImageObject
cancelurl — Необходимо указать значение для поля url.
ошибка, как её исправить, подскажите пожалуйста. Спасибо!
Здравствуйте Дмитрий!
Надо указать URL логотипа.
Где нужно указать url логотипа?
Не подскажите, где именно указать URL логотипа? Спасибо!
Не могу понять ЧТО и КУДА надо вставить код в мой шаблон…
к примеру:
код:
вставить: в файл functions.php вашей темы вверху страницы
Как-то так, если не сложно напишите для чайников. Спасибо!
Не вверху страницы, а в начало файла, после тега
Сори, может и глупій вопрос — но какого файла ?!
Не понимаю я этого идиотизма. Почему я на своем блоге не могу нормально разметить статью, без вранья и придумывания фейковой организации с несуществующим номером телефона. Может я чего недопонял, и можно в «издатель» просто указать сайт где была размещена статья? Или не владельцы и не члены организаций по мнению Google сайты иметь не могут?
Виталий, добрый день. Ваш сайт мне во многом помог. Кидаю свою «мыслю» не в тему, а лично Вам.
Немного накосячила при переезде на https. От Яндекса письмо пришло с указанием на блог yandex.ru/blog/platon/2778
Ели будете «переезжать», учтите
Добрый день Виталий.
Вроде все сделал правильно, прописал организацию у себя на сайте, но Гугл упрямо дает ошибку, Яндекс нет. Не могу понять почему.
Если не сложно посмотрите мой код, что я не правильно прописал.
За статью спасибо! Помогла!
Ошибка Гугла «Необходимо указать значение для поля url.» подчеркивает строку «»
Весь код.
<div itemscope itemtype="
https://schema.org/Organization
"><div itemprop="logo" itemscope itemtype="
https://schema.org/ImageObject
"><img itemprop="url image" src="
;http://lesstroy.by/logo.png
" style="display:none;"/><meta itemprop="width" content="191">
<meta itemprop="height" content="111">
</div>
<span itemprop="name"><span class="black-color">Лесстрой — строительство деревянных домов и бань.</span></span>
<div itemprop="address" itemscope itemtype="
http://schema.org/PostalAddress
">Адрес:
<span itemprop="postalCode"><span class="black-color">220033</span>,
<span itemprop="addressLocality"><span class="black-color">Минск</span>,
<span itemprop="streetAddress"><span class="black-color">Котовского, 56</span>,
</div>
Телефон:<span itemprop="telephone"><span class="black-color">+375 29 77-841-77, +375 29 132-76-49</span></span>,
<br>
E-mail:<span itemprop="email"><a data-link="
http://lesstroy.by/kontakty
"><span class="navi1-color">info@lesstroy.by</span></span></a><br>
</div>
</div>
Подчеркивает ошибку <div itemscope itemtype="
https://schema.org/Organization
">В коде, что вы мне привели стоит лишний закрывающий div
Здравствуйте, спасибо за статью!
«Поле «publisher» и библиотека «schema.org/Organization»» — Вы вставляете внутрь статьи, но вроде же это относится ко всему сайту (тогда вроде, как в header сразу после bode логичнее вставлять) или это относят к издателю, опубликовавшему статью (а это может быть и не владелец сайта)?
Николай, этого требует библиотека schema.org/Article
Здравствуйте. Ни где не могу найти schema.org для указания страниц в социальных сетях, относящихся к сайту. Раньше был код, но во время очередных обновлений потерял. Не подскажете ли? Заранее спасибо.
P.S С кодом разметки, что была у меня, на самом сайте ни чего не показывалось и внешних ссылок не давало.
К сожалению не знаю.
Здравствуйте, Виталий! Спасибо за ваш сайт — много полезного почерпнула для себя. В частности, помог именно ваш код для микроразметки изображений. Единственный правильный вариант из тех, что мне удалось откопать, да к тому же рабочий ))) Единственное но: функция не действует на самую первую картинку в статье (миниатюру поста), которая выводится строкой <?php echo the_post_thumbnail(); ?>. То есть, микроразметка не появляется. Может быть подскажете как это вылечить? Заранее спасибо )))
Диана, почитайте комментарии, там был разговор про разметку миниатюр.
Спасибо! Все получилось )))
Здравствуйте Виталий!
Помогите, пожалуйста, разобраться с функцией dateModified в разметке schema.org.
Я сделал по Вашей статье Обновление микроразметки — Гугл, Яндекс и Schema.org от 2015-12-23. Гугл на это ответил: Значение указано в неправильном формате. Требует сделать в формате ISO 8601. Там предпочтительный формат даты YYYY-MM-DD (смотрел по Википедии). Ответ Гугла тот же. В стандарте допускается еще формат YYYY/MM/DD, но и его Гугл не принимает. Поле datePublished вообще не видит. При этом я проверял только фрагмент кода, или файл index.php, но не блог вцелом.
Здравствуйте Владимир! Правильный фармат YYYY-MM-DD.
Выглядеть должно следующим образом:
Виталий,
Я пробовал и (‘Y-m-d’)и (‘YYYY-MM-DD’)и(‘YYYY/MM/DD’)В каждом из этих случаев ответ одинаковый: the_modified_time(‘Y-M-D’)?> указано в неправильном формате. Требует сделать в формате ISO 8601. Затем я просто поставил дату 2017-01-24 все равно ответ тот же самый — указано в неправильном формате. Я проверял только фрагмент кода Schema.org, то, что заключено в контейнере div. При этом функция Last modified у меня была настроена ранее так, что ни Гугл, ни Яндекс претензий не предъявляют.
Владимир, Вы точно уверен что именно в этом месте ошибка? Посмотрите внимательно исходный код, возможно у Вас еще какая-нибудь дата размечена, например дата публикации статьи или комментария.
Виталий!
Спасибо за внимание и помощь. Проблема решена.
Виталий!
В одном из предыдущих комментариев Вы дали функцию для вывода description статьи или поста, но использовали для этого первый абзац поста. Нельзя ли вывести для description описание, которое сделано для плагина All in SEO Pac, а то получается, что в одной статье два разных описания.
Описание description в микроразметке может отличаться, ничего страшного нет.
Здравствуйте! Перечитала ваши статьи о микроразметке для кулинарных сайтов, но немого не пойму, что мне делать. Я вашу прошлую разметку не делала, поэтому не понимаю, как тут начать с нуля. Гугл говорит, что все отлично (никакого кода в шаблон не добавляла). А вот яндекс пишет «ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop
itemType =
name = Название рецепта»
Я так понимаю, что у меня уже в шаблоне подключена микроразметка (в исходном коде вижу ссылку на схема орг).
Пожалуйста, объясните, какие шаги мне нужно сделать? с чего начать?
Вопрос: Гугл пишет ошибку prntscr.com/gl98o4 хотя на станице все выводится автор выводится так: «Автор».
Можете подсказать в чем проблема может быть? Спасибо!
Здравствуйте, Дмитрий!
Скорее всего у Вас нет разметки автора в комментариях.
Вроде есть prntscr.com/gm486w но все равно пишет ошибку, где мой косяк? никак понять не могу
Вы какой формат микроразметки используете, Schema.org?
vcard — не относится к данному формату.
Эврика, а я понять не мог, поменяю и буду смотреть в вебмастер ))) я Идиот
Здравствуйте!
Давно часто обращаюсь к вашему сайту и очень благодарен.
Возник такой вопрос:
1. В микроразметке publisher есть поле name. Действительно ли там нормально будет вписать «название сайта», если речь идет о его издателе/владельце? Может там правильнее будет вписать «Иванова Ивана» или «Текст компани»?
2. Если у меня много сайтов, то могу я везде делать тогда одного издателя того же Иванова Ивана с одним лого? И стоит ли сделать лого на отдельном сайте об Иванове Иване, или лучше просто размещать одинаковое лого Иванова Ивана на каждом сайте?
Здравствуйте! Я думаю, что тут каждый сам решает, что вписывать.
Сейчас на этом сайте (так же как и на моем блоге) Гугл матерится только на ширину картинки логотипа.
Атрибут logo.height имеет недопустимое значение.
Никак не могу понять, что этому ироду не нравится в ширине. Может у вас получится.
А если активировать плагин джетпак от wordpress.com, то в валидаторе появляются еще 2 ошибки про автора и дату публикации.
Как это всё поправить?
В разметке логотипа вместо:
Впишите:
Просто удалите из разметки строку с
У меня ошибка исчезла.
<meta itemscope itemprop="mainEntityOfPage" itemType="
https://schema.org/WebPage
" itemid="<?php the_permalink() ?>" content="<?php the_title(); ?>"/>Исправьте , функции the_permalink() и the_title() выводят данные на экран. Нужно использовать get_permalink() и get_the_title()