Исправляем ошибку разметки Open Graph — префикс article неизвестен валидатору!
Здравствуйте, дорогие читатели блога!
Недавно я внедрял микроразметку на свой блог и столкнулся с одной очень непонятной и назойливой ошибкой.
Собственно вот скриншот проверки в валидаторе микроразметки Яндекса.
Что интересно, Google не выдавал никаких ошибок. Судя по коду сразу понятно что это не микроразметка Schema.org, а совсем другой формат — Open Graph.
Микроразметку Open Graph у меня генерирует плагин All In One Seo Pack. Таким образом он размечает и делает расширенные сниппеты для Twitter, Facebook и Google +.
Можно было бы просто забыть про эту ошибку, ведь она никак не влияет на продвижение и позиции блога. Но она упорно не давала мне покоя. Я решил разобраться с этой ошибкой и найти решение. После пары часов серфинга по глобальной паутине и изучения микроразметки Open Graph в мануалах Яндекса, я наконец попал на блог Артема Абрамовича, где описано решение этой проблемы.
Оказывается все достаточно просто. Нужно в HTML код файла header.php вставить необходимый префикс.
prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile# fb: http://ogp.me/ns/fb#"
Вот как выглядел header моего блога с ошибкой:
<html <?php language_attributes(); ?> prefix="og: http://ogp.me/ns#"> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <link rel="profile" href="http://gmpg.org/xfn/11" /> <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" /> <?php wp_head(); ?> </head>
После вставленного префикса, код стал выглядеть вот так:
<html <?php language_attributes(); ?> prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile# fb: http://ogp.me/ns/fb#"> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <link rel="profile" href="http://gmpg.org/xfn/11" /> <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" /> <?php wp_head(); ?> </head>
Вместе с этим пропала ошибка в валидаторе Яндекса.
Микроразметку Open Graph генерируют практически все SEO плагины. Если ошибка в валидаторе не пропадает после описанного выше способа, вероятнее всего это дело блокирует плагин и не позволяет вывести требуемый префикс. В этом случае Артем предлагает вставить следующую функцию в файл function.php:
function artabr_opengraph_fix_yandex($lang) { $lang_prefix = 'prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile# fb: http://ogp.me/ns/fb#"'; $lang_fix = preg_replace('!prefix="(.*?)"!si', $lang_prefix, $lang); return $lang_fix; } add_filter( 'language_attributes', 'artabr_opengraph_fix_yandex',20,1);
Такое вот простое решение исправит одну из самых распространенных ошибок микроразметки.
Андрей, привет. Микроразметку я так и не внедрила на блогах. Откладываю на после Нового года. Если что обращусь к тебе.
Оль, привет.Там какие-то нововведения ввел гугл, теперь немного другие правила,с которыми я еще не разобрался.
Андрей, когда разберёшься я увижу по статьям, так как слежу за твоими публикациями). С наступающими праздниками!
Спасибо, что следишь за моим скромным блогом! С наступающим!
Знакомая ситуация. В прошлом году потратил не мало времени, чтобы найти эту информацию. Немного жаль, что такая подробная статья не попалась мне раньше. Зато теперь знаю, где можно искать действительно полезную справочную информацию.
К сожалению подобных ошибок может быть немало )) Спасибо за комментарий!
Автор, спасибо за материал! Следуйте по шагам, внедряйте с умом и у вас обязательно пропадет эта ошибка.
Здравствуйте. У Вас в исходном дублирован prefix=»og: http://ogp.me/ns#, один нужно убрать. С уважением.