Ошибки в Микроразметке Статьи - большая

 

Я не занимаюсь профессионально разработкой сайтов, поэтому прочитав в прошлом несколько статей в Интернете о том, что Joomla автоматически обеспечивает поддержку микроразметки для схемы "Статья", не стал тратить время на изучение этой темы. Но недавно, любопытства ради открыл в 'Google Developers' одну из страниц своего сайта и картинка как-то не придала оптимизма ... Ситуацию прояснила статья “Enabling Rich Snippets for Articles”, а также просмотр кода шаблона страницы Protostar, о стандартной процедуре замещения некоторых файлов которого и пойдет речь. Не сомневаюсь, что разработчики Joomla предложат в будущем элегантный вариант поддержки этой и других схем, и предлагаю в этой статье простой временный вариант для поисковика Google.

Главным условием при разработке определим максимальное использование средств настройки, которые уже предоставляет Joomla. Вначале рассмотрим список требований Google к разметке схемы "Статья". При этом, для описания текущего состояния поддержки со стороны Графического Интерфейса Пользователя (GUI) Joomla, будет использоваться следующая цветовая гамма:

 

Зеленый полная
Оранжевый частичная
Красный не поддерживается

 

 

 

 

 

 

Обязательные элементы:

 

  • author (Object)
    - name (Text)
  • headline (Text - заголовок статьи поддерживается, но имеет другое имя в коде программы)
  • image (Object)
    - url (URL - ссылка на репрезентативную картинку статьи)
    - height (Number)
    - width (Number)
  • publisher (Object)
    - name (Text)
    - logo (Object)
       - url(URL)
       - height (Number)
       - width (Number)     
  • datePublished (DateTime)

 

Желательные элементы:

 

  • mainEntityOfPage (URL)
  • dateModified (DateTime)

 

Проверим какие из вышеперечисленных элементов поддерживаются GUI Joomla.

Авторство, заголовок, а также даты публикации и модификации статьи определяются на закладке 'Публикация' в диалоге редактирования статьи:

md author
Репрезентативную картинку статьи можно назначить на закладке 'Изображения и ссылки':

md author image
Название организации-издателя и ее логотип можно указать в диалоге редактирования стиля шаблона:

organization
Добавим Простое Замещение

Таким образом, GUI поддерживает все необходимые параметры и нам не придется его дорабатывать. Вначале создадим замещение файла Внешнего Вида Контента. Для этого активируем диалог 'Extensions/Templates', где выберем шаблон Protostar и создадим замещение 'Layouts/content':

template override
ПРИМЕЧАНИЕ:
возможно нам придется заместить также один из файлов группы 'Components/article', который также отмечен красным на этом рисунке. На данный момент просто запомним его расположение, но активировать не будем.

 

Редактор Joomla обеспечивает вполне полноценную среду для модификации шаблона, позволяющую внести изменения в требуемые файлы. Перейдем на закладку 'Редактор' и откроем файл 'block.php'.

 

template editor

Добавим следующий код в самый конец списка <dl class="article-info muted"> этого файла (перед закрывающим тегом '</dl>'):

 

microdata article cond
В 61-й строке объявлена переменная 'gmd_follow_google_recommendations_for_images_size', которой я назначил значение 'true'. Дело в том, что Google рекомендует устанавливать для изображений некоторые граничные размеры, значения которых определены в строках 83-85. Хотя, я специально тестировал страницы с изображениями, размеры которых не соответствовали указанным рекомендациям, и при этом 'Google Developers' не возвращал ошибки. Поэтому, Вы можете на свое усмотрение установить 'gmd_follow_google_recommendations_for_images_size = false'. Но т.к. значения размеров изображений нам нужны в любом случае, то в строках 62-80 вычисляем их и проверяем возможность добавления соответствующих элементов микроразметки на страницу. В строках 82-93 производится проверка размеров изображений и устанавливается окончательное значение переменной 'gmd_add_extended_microdata', которое в итоге определяет будет ли выводится наша дополнительная информация на страницу.

 

Теперь добавим собственно обработчик вывода микроразметки на страницу, для чего вставим следующий блок кода сразу после описанного выше:

 

microdata article output
 

Т.к. все проверки мы уже выполнили, то код предельно прост для понимания. В строке 99 мы проверяем состояние переменной 'gmd_add_extended_microdata' и разрешаем вывод если она имеет значение 'true'. Для этого вставляем двоеточие (':') в код строки условия. Т.к. Joomla самостоятельно управляет выводом видимых элементов страницы, а нам необходима только микроразметка, которую пользователь не должен видеть, то активно применяем тег 'meta'. Теперь все готово для повторной проверки нашей работы в 'Google Developers'.

 

Вполне вероятно, что Вы получите сообщение об ошибке касательно изображения 'image_fulltext', но ее источник будет находиться вне нашего кода. В таком случае, вернемся к закладке 'Создать Замещение' и сделаем его для 'Components/com_content/article'. Вернемся на закладку 'Редактор', откроем файл '/html/com_content/article/default.php' нашего Замещения и найдем строку, отвечающую за вывод изображения 'image_fulltext':

microdata article last edit
Т.к. мы уже описали свойства этого изображения в коде файла 'block.php', то не будем загружать сервер дополнительными вычислениями, а просто удалим часть кода, выделенную в рамке красного цвета и добавим, то что выделено в зеленой. Проверьте еще раз свою страницу в Google Developers и, надеюсь, теперь Вы не увидите сообщений об ошибках.

 

В данной статье показана модификация стандартного шаблона Joomla, но думаю, идея вполне применима и для других шаблонов. Добавлю, что мы могли бы полностью автоматизировать процесс вставки микроразметки используя, например, методы класса JImage, позволяющие на лету изменять размеры изображений. Но, на мой взгляд SEO должно представлять собой осмысленный процесс, и разработчику сайта все же надо вручную потрудиться над определением и соответствующим оформлением тех страниц, которые он считает важными для представления поисковой системе.

 

Вы можете загрузить описанный код по этой ссылке

Будьте осторожны с модулем Популярные Статьи

На следующем скриншоте показан этот модуль на главной странице сайта, с разрешением не более пяти элементов в списке (версия Joomla! 3.9.2):

ModulePopular
А так оценивает эту страницу Инструмент Тестирования Структурированных Данных Google - 5 ошибок, связанных с популярными статьями:

ModulePopularErrByGoogleTest
По этой причине я отключил данный модуль.