Home / Блоговедение / Исправляем ошибку разметки Open Graph — префикс article неизвестен валидатору!
Хостинг от Макхост

Исправляем ошибку разметки Open Graph — префикс article неизвестен валидатору!

Здравствуйте, дорогие читатели блога!

Недавно я внедрял микроразметку на свой блог и столкнулся с одной очень непонятной и назойливой ошибкой.

ошибка префикс article неизвестен

ОШИБКА: префикс article неизвестен валидатору, укажите его явно атрибутом prefix

Собственно вот скриншот проверки в валидаторе микроразметки Яндекса.

префикс 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);

Такое вот простое решение исправит одну из самых распространенных ошибок микроразметки.

Об авторе: Андрей Назыров

Приветствую Вас на своем блоге! Здесь Вы найдете всю необходимую информацию по созданию своего блога (сайта), его SEO оптимизации и последующего заработка.

6 комментариев

  1. Андрей, привет. Микроразметку я так и не внедрила на блогах. Откладываю на после Нового года. Если что обращусь к тебе.

    Ответить
    • Оль, привет.Там какие-то нововведения ввел гугл, теперь немного другие правила,с которыми я еще не разобрался.

      Ответить
      • Андрей, когда разберёшься я увижу по статьям, так как слежу за твоими публикациями). С наступающими праздниками!

      • Спасибо, что следишь за моим скромным блогом! С наступающим!

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

    Ответить
    • К сожалению подобных ошибок может быть немало )) Спасибо за комментарий!

      Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *