Исправляем ошибку OpenGraph «префикс article неизвестен валидатору»

Некоторые вещи не влияя на общее функционирование сайта вымораживают своим наличием. Это относиться и к такому заявлению валидатора Яндекса «ОШИБКА: префикс article неизвестен валидатору, укажите его явно атрибутом prefix».

префикс article неизвестен валидатору

Данная ошибка появляется, если в плагине Yoast SEO включить поддержку OpenGraph. Причем в Гугле все нормально, а вот Яндекс выдает такую ошибку. Эта ошибка никак не влияет ни на формирование сниппета, ни на общее продвижение, но раздражает.

Так поковыряв немного плагин Yoast SEO написал решение, которое исправляет эту ошибку. Решение элементарное, как валенок. Надо в тег html просто добавить нужный префикс

prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile# fb: http://ogp.me/ns/fb#"

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

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);

Данную функцию надо добавить в файл functions.php и все, ошибка исчезнет…

Если есть вопросы задавайте в комментариях. Всегда рад помочь.

Всегда ваш, Артем.

54 комментариев
  • Василий

    30.10.2015

    Спасибо!
    подскажите пожалуйста, как исправить такую ошибку
    ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop

    и такое предупреждение

    Не выполнено обязательное условие для структурированных сниппетов Яндекс.Справочника: кажется, ваша разметка hCard описывает не организацию (поля fn и org не совпадают). В данный момент такая разметка не поддерживается Яндексом

    • Артем

      30.10.2015

      Добрый вечер! Первая ошибка у вас — это что-то лишнее размечено или наоборот не указана сама схема. Надо посмотреть, если покажете статью скажу точно где ошибка.
      Вторая ошибка — это у вас vcard в теме присутствует, скорее всего в комментариях. Надо просто удалить или изменить класс vcard, но надо смотреть, бывает что на этот класс стили завязаны

  • Василий

    30.10.2015

    Если не сложно то посмотрите пожалуйста для примера вот эту статью
    _http://allavon.ru/акция-для-тех-кто-любит-подарки/
    про vcard стала ругаться сегодня после добавления небольшого кода (никак не мог добиться чтоб в гугл вебмастере пропала ошибка author, подсказали разработчики темы как исправить)

    • Артем

      30.10.2015

      Ну все правильно, у вас какой-то плагин добавляет разметку картинки для гугл+, а просто так картинку нельзя размечать, надо указывать схему. В вашем случае должна быть схема Article или ImageObject.
      Но проще удалить или поправить плагин, так же как и vcard. Vcard надо просто убирать, у вас к нему никаких стилей не привязано, так же как и fn и тогда ошибки исчезнут

  • Василий

    31.10.2015

    Попробовал в плагине (Yoast SEO) снять галочку google+, в настройках социальных сетей, результат тот же, ошибка в валидаторе осталась :(

    • Артем

      31.10.2015

      Дак это не обязательно Йоаст, может и просто в самой теме прописано. В head страницы добавляется разметка картинки http://snap.ashampoo.com/L6dWHDpK
      Попробуйте выключить все плагины и проверить, если ошибка не уйдет, значит где-то в теме зашито

  • Василий

    31.10.2015

    отключил все плагины, ошибка осталась :(
    подскажите пожалуйста, что надо искать в файлах темы?

    • Артем

      31.10.2015

      Хороший вопрос))) Судя по тому, что размечается первая картинка в статье, то надо смотреть файл functions.php на наличие соответствующей функции. Так сложно что-то сказать, надо ковыряться в файла темы…

  • Василий

    31.10.2015

    хммм… понятно))
    в файлах темы не очень хотелось ковыряться, да и после обновления темы каждый раз менять все по новой. Получается либо писать разработчикам, либо забить на эту ошибку :(

    • Артем

      31.10.2015

      Получается так, пишите разрабам, это косяк пусть разбираются

      • Василий

        31.10.2015

        уже задавал вопрос им ))) ответ скопирую сюда))
        Unfortunately we can’t add the structured data for all types of engines, you’d need to do similar theme edits to get that.

        вот такие разработчики, отвечают одно сообщение в день))

  • Василий

    31.10.2015

    посмотрите пожалуйста скрин
    _http://hostingkartinok.com/show-image.php?id=28bc7fcaed9fa0cc239743222b34183a
    здесь нужно править?

    • Артем

      31.10.2015

      Пришлите на почту art@artabr.ru мне файлы темы, так долго искать будете

  • Андрей

    07.12.2015

    У меня эту ошибку создавал плагин All In One Seo Pack. Вставил требуемый префикс в хэдер ошибка исчезла. Спасибо за решение! Даже не пришлось вставлять функцию.

    • Артем

      08.12.2015

      Всегда пожалуйста.
      Так то да, многое зависит от темы и набора плагинов. С Yoast такое не проходит, придется все равно функцию использовать

  • Мария

    01.01.2016

    Артем, спасибо за подробный урок по Yoast и за подробные урок по исправление ошибки!
    Я и добавляла Ваш код и убирала, на Яндексе все равно выходит такая ошибка: rdfanode
    ОШИБКА: поле http://ogp.me/ns#image отсутствует или пусто

    Я буду Вам очень благодарна если Вы подскажете что это за ошибка?

    • Артем

      01.01.2016

      Добрый день! С новым годом!
      Данная функция предназначена для исправления другой ошибки, а ОШИБКА: поле http://ogp.me/ns#image отсутствует или пусто (это означает что плагин просто не нашел картинок на странице) исправить довольно просто:
      заходите в настройки плагина Yoast Социальные сети, вкладка Facebook, добавьте любое изображение по умолчанию http://snap.ashampoo.com/QVg6DF6h ошибка должна уйти

  • Мария

    01.01.2016

    Ой, Артем!
    Извините, что не поздравила с Новым Годом.
    Я почти не отмечала, поэтому отношусь как к рабочему дню. И Вы тоже, смотрю трудитесь несмотря на праздник.
    Но, я срочно исправляю ошибку!
    Артем, поздравляю с Новым Годом!
    Загадайте три желания, ПУСТЬ они сбудутся обязательно!

    И второе: Спасибо за такой быстрый, очень оперативный ответ на мой вопрос.
    Мне очень нравятся Ваши уроки и Ваш сайт!
    Спасибо большое!

    • Артем

      01.01.2016

      Я отмечал, но умеренно))) Богеры смотрю все уже почти у компов собрались))) Спасибо за комплимент! Если что пишите…

    • Ирина

      03.01.2016

      Всем привет!
      Мария!
      У Вас получилось победить ошибку поле http://ogp.me/ns#image отсутствует или пусто? У меня и такая и та, что в теме статьи.. Стоит yoast seo.. Перебрала все предложенные комбинации — не помогает

      • Артем

        03.01.2016

        А картинку в настройках плагина yoast добавили?
        А по первой ошибке: откройте файл header.php и в тег html (в самом верху должен быть) добавьте prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile# fb: http://ogp.me/ns/fb#" прямо внутри скобок

        • Ирина

          03.01.2016

          Всем спасибо ))). Всё ставила, всё убирала, галки, префиксы, функции..
          Все также. Два вопроса:
          1. А после изменений в коде сайта валидатор разметки яндекса самостоятельно и сразу же подхватывает эти изменения?
          2. И нельзя ли эту вот всю социальную направленность yoast seo взять и отключить совсем? )) и вообще вот думаю.. мне валидатор гугла говорит что в моей разметке не хватает нескольких полей. Это не связано? Может стоит сначала это исправить , и эта неприятность сама отвалится…

          • Артем

            03.01.2016

            1. Валидатор сразу должен подхватывать изменения. Если нет изменений, значит или что-то не правильно или кеш не сброшен
            2. Можно конечно и не пользоваться этой функцией, ничего страшного не произойдет.
            3. У гугла в декабре требования изменились к разметке, это никак не связано между собой. Потому и поля есть с ошибками

        • Ирина

          03.01.2016

          Артём, оставила в покое пока это. Стала разбираться с тем, что выдаёт валидатор гугл..

          Столкнулась с новой неприятностью от seo yoast —
          не могу указать — атрибут headline … Потому что, то место, где у меня в хедере выводится заголовок и описание блога автоматически подменяется yoast seo ((( . Возможно как-то обойти? Или вернуть уже обратно All seo pack ..

          • Ирина

            03.01.2016

            Извиняюсь. Headline вроде бы таки сделала. Только почему-то валидаторы не видят. Разбираюсь. Я первый раз за разметку взялась

  • Мария

    03.01.2016

    Да, Ирина.
    Мне Артем подсказал: Вставить картинку на вкладке Facebook, в самом плагине. И все получилось….

    • Ирина

      03.01.2016

      Спасибо за ответ, Мария!

  • Игорь

    08.04.2016

    Спасибо, Артем, отличная штука

  • Людмила

    24.07.2016

    Спасибо!Все получилось!

  • Руслан Мифтахов

    07.09.2016

    После установки плагина Yoast SEO на самом деле выходила ошибка «префикс article неизвестен валидатору». Добавил код в header и function как описано в статье, ошибка в микроразметке исчезла. Спасибо огромное дружище=)

    • Артем

      07.09.2016

      Та завсегда пожалуйста)

  • aliprofi

    12.10.2016

    Странно, мне почему-то не помогло. Еще вот такая беда есть : Справочника: кажется, ваша разметка hCard описывает не организацию (поля fn и org не совпадают).

    • Артем

      12.10.2016

      Обычно помогает. Надо смотреть почему, может у вас в теме просто хук не используется тот, что нужен и проще вручную добавить или еще что
      Разметка hCard сегодня почти не используется и ее надо удалять

  • Константин

    09.11.2016

    Cпасибо, помогло!

  • Юрий

    01.12.2016

    Здравствуйте!
    Подскажите, как правильно добавить код в хедер чтобы не было ошибки? У меня плагин установлен All In One SEO Pack, и видимо из-за него эта проблема. Установка файла в function.php ошибку не устраняет.

    Вначале header.php у меня такой код:





    <html > <!—

    И куда тут чего вставлять — вообще не понятно.
    Заранее спасибо

    • Артем

      02.12.2016

      Добрый день! Воспользуйтесь плагином (можно скачать в конце статьи). Это тоже самое что и код, только нет возни с установкой. И в настройках All In One SEO Pack отключите настройку Использовать разметку Schema.org

      • Юрий

        02.12.2016

        Хорошо, спасибо Вам! Попробую сейчас установить плагин и отключить achema.org

  • Саша

    29.04.2017

    здравствуйте,не поможете решить проблему.
    vcard
    ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для структурированных сниппетов Яндекс.Справочника: кажется, ваша разметка hCard описывает не организацию (поля fn и org не совпадают). В данный момент такая разметка не поддерживается Яндексом
    fn = Admin
    n = Admin
    url = http://mykvadrocopter.ru/author/daiw

    еще одна

    vcard
    ОШИБКА: Не выполнено обязательное условие для структурированных сниппетов Яндекс.Справочника: поле fn отсутствует или пусто
    ПРЕДУПРЕЖДЕНИЕ: Не выполнено обязательное условие для структурированных сниппетов Яндекс.Справочника: кажется, ваша разметка hCard описывает не организацию (поля fn и org не совпадают). В данный момент такая разметка не поддерживается Яндексом
    photo = http://2.gravatar.com/avatar/eade1179fcc87bbb87441f95855e8bd9?s=74&r=g

    • Артем

      06.05.2017

      Это разметка hcard. Надо в самой теме убрать класс vcard и тогда ошибки не будет

      • Саша

        09.05.2017

        Не подскажете где расположен класс vcard?

        • Артем

          21.05.2017

          Обычно в комментариях. В той функции, которая выводит комментарии

  • Бендер

    10.05.2017

    Спасибо, исправил. Как думаете, насколько эта ошибка критична для выдачи яндекса?

    • Артем

      21.05.2017

      Не особо, по крайней мере не заметил чтобы влияла

  • Алексей

    18.05.2017

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

    • Артем

      21.05.2017

      Всегда пожалуйста, рад, что все получилось

  • Дизайнер

    23.05.2017

    У меня такая же проблемы возникла, но я вспомнил про вашу статью, прочитал заново и сделал все как у вас описано все получилось, я этому очень рад.

  • Мастер

    13.06.2017

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

  • Роман

    08.09.2017

    Здравствуйте! Помогите решить проблему с микроразметкой страницы (как вариант ссылку даю)
    _https://blasercafe93.ru/shop/belyj-shokolad-caotina-blanc-30_15/
    Валидатор yandex дает две ошибки:

    Плагин All in one Seo Pack/
    Такая ошибка есть на каждой странице……
    Не знаю как убрать???

    • Артем

      16.09.2017

      Доброго! У вукомерса есть своя разметка и скорее всего у вас просто некоторых данных не хватает, картинко например. А разметку в All in one Seo Pack лучше выключить, она там кривая

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

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