Как добавить дополнительные данные Schema.org в плагин Yoast SEO WordPress

Опубликовано: 2020-07-28

Для тех, кто не знаком со структурированными данными Schema.org и почему они стали неотъемлемой частью любой SEO-стратегии, прочитайте мою статью «Как использовать структурированные данные Schema.org для компаний и людей».

А как насчет WordPress и Yoast?

Что ж, 37% всего Интернета в настоящее время работает на WordPress. Да. Это около полумиллиарда сайтов, на которых установлена ​​та или иная версия WordPress, и только последняя версия (5.4 на момент публикации) была загружена 31 миллион раз!

Что такое Yoast SEO и почему он полезен для данных Schema.org?

Yoast SEO — это плагин WordPress, запущенный в 2010 году Йостом де Валком и загруженный более 202 миллионов раз. Он упрощает и автоматизирует некоторые базовые (и более сложные) SEO-задачи на странице.

Функции, обрабатывающие разметку Schema.org, были первоначально добавлены в 2011 году, а затем, в мае 2020 года, была развернута масштабная переработка кода с целым API, позволяющим разработчикам вводить данные в свою схему @graph . Это была отличная новость, но большинство специалистов по SEO, работающих с WordPress, либо не знают о его существовании, либо не знают, как его использовать. И на самом деле начать невероятно просто!

Итак, давайте посмотрим, как выглядит вывод Yoast Schema на странице WordPress. Вот базовый контейнерный блок:

Как видите, здесь интересно то, что данные схемы разделены на 4 основные части (например , @type : Person/Organization и т. д.), которые находятся на одном уровне в контейнере с именем @graph . Я удалил все данные, кроме @type , @id и любых свойств, используемых для связи частей, чтобы показать вам, как все это сочетается друг с другом.

Блоки схемы на веб-сайтах часто имеют элементы, вложенные друг в друга, например, код объекта изображения primaryImageOfPage находится внутри блока WebPage , тогда как здесь это целая отдельная часть. Это связано с тем, что вложение блоков в блоки может быстро стать очень громоздким из-за большого количества повторяющегося кода.

Здесь все части связаны с использованием @id каждой части, поэтому блоки на изображении выше связаны следующим образом: ImageObject — это основное изображение веб- страницы , которая является частью веб -сайта, издателем которого является блок Person/Organization . Это понятно и логично!

Короче говоря, API в основном позволяет нам «вшивать» новые части и ссылаться на них из любой другой части через @id .

Однако для сшивания новых фрагментов, которые еще не созданы, требуется немного больше кода и настройка условий для определения того, какие типы страниц нуждаются в новых фрагментах, поэтому вместо того, чтобы смотреть, как это сделать, мы просто рассмотрим как изменить данные в существующей части (посмотрите, какие части уже выводятся на вашу страницу) либо путем изменения одного из значений, либо путем вставки новых типов и свойств.

Для этого мы собираемся создать ультра-базовый плагин WordPress.

Но сначала вы можете задаться вопросом: почему мы хотим это сделать?

Зачем добавлять данные в схему плагина Yoast SEO?

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

Документация говорит нам, что в настоящее время она будет выводить следующие типы: Организация, Веб-сайт, Веб-страница, Навигация, Поиск по сайту (SearchAction), Человек, Продукт, Предложение, Совокупное предложение (AggregateOffer), Статья, Как сделать (HowTo), Вопрос, Обзор, Комментарий, изображение (ImageObject), видео (videoObject), местный бизнес (localBusiness) и адрес (PostalAddress). И есть несколько расширений, которые вы можете добавить для более конкретных целей, например, если вы используете WooCommerce.

Все это замечательно, но когда вы посмотрите на вывод для типа Person , вы увидите, что там только самые основные необходимые данные:

(примечание: я сократил @id, сгенерированный плагином)

Если вы читали мою предыдущую статью о разметке Schema.org для Person и Organization и почему она отлично подходит для улучшения «EAT» вашего сайта, вы читали о том, как вы можете использовать множество свойств для этих типов, некоторые из которых будут более точно идентифицировать вас и предоставлять ссылки на данные, свидетельствующие о вашем опыте и авторитете.

Например, вы можете добавить свойство alumniOf , чтобы рассказать об образовании человека, или свойство knowAbout , чтобы предоставить некоторые сведения об их области (областях) знаний. Для компании вы можете предоставить официальный регистрационный номер компании в виде идентификатора .

Мы собираемся сделать это в два простых шага:

  1. Создайте ультра-простой 1-файловый плагин WordPress
  2. Начните добавлять данные, которые мы хотим вывести через Yoast Schema API.

Зачем делать плагин?

Хотя можно просто вставить код в файл functions.php вашей дочерней темы, размещение его в простом плагине является рекомендуемым путем по той простой причине, что если есть какие-либо проблемы с кодом, вы можете просто деактивировать свой пользовательский плагин. и сайт по умолчанию будет возвращать основной вывод схемы с помощью плагина Yoast SEO. Кроме того, если вы поместите его в дочернюю тему и файлы когда-либо изменятся, вы можете потерять все драгоценные данные схемы, на компиляцию которых вы потратили часы!

Начните бесплатную 14-дневную пробную версию

Узнайте сами, почему Oncrawl является самой признанной платформой для SEO с технической точки зрения и данных на рынке! Кредитная карта не требуется и никаких условий: всего 14 дней полнофункциональной пробной версии.
Начать пробную версию

Как создать ультра-базовый плагин WordPress

Это не может быть проще!

Чтобы сделать функциональный плагин, вам просто нужно создать новый PHP-файл — я назвал его schema-extender.php — и сохранить его в новой папке с тем же именем, например:

Затем вам нужно поместить некоторую информацию в верхнюю часть schema-extender.php следующим образом:

<?php
/**
* Название плагина: Yoast Schema Extender, простая версия 2
* URI плагина: https://hugoscott.com/
* Описание: Очень простой плагин для расширения данных Yoast Schema.org.
* Версия: 1.0
* Автор: Хьюго Скотт
* URI автора: https://hugoscott.com/
**/

Если вы сохраните это и загрузите папку и файл в каталог /wp-content/plugins/ вашего сайта WordPress, вы увидите, что он отображается в списке плагинов следующим образом:

Вы можете активировать плагин, но он пока ничего не сделает, так как мы не добавили никаких функций — это следующий шаг!

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

add_filter('yoast_seo_development_mode', '__return_true');

Теперь мы собираемся добавить фильтр WordPress, который добавит пользовательскую функцию example_change_person (которую мы напишем далее) в процесс Yoast:

add_filter('wpseo_schema_person', 'example_change_person');

И затем, чтобы закончить, мы напишем очень простую функцию example_change_person() , которая вызывается фильтром и будет добавлять фрагменты данных:

функция example_change_person ($ данные) {
// данные
вернуть $данные;
}

Если вы сохраните это и загрузите файл на сервер, вы все равно не увидите никакой разницы в выводе схемы, потому что мы еще не добавили никаких данных в массив $data . Для тех, кто не знаком с термином «массив», это просто означает своего рода «коробку», содержащую структурированный набор битов данных, которые являются парами со «значением» и именем («ключом»).

Точно так же работает разметка schema.org. Он состоит из пар с именем и значением, например, вот данные URL -адреса для веб -сайта в выходных данных схемы:

«URL»: «https://hugoscott.com/»,

Здесь имя (или «ключ») — «url», а значение — «https://hugoscott.com/».

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

Если бы мы хотели добавить вышеуказанные данные в массив $data , мы бы просто добавили строку в функцию, подобную этой

$data['url'] = "https://hugoscott.com/";

Однако для части Person мы хотели добавить свойство knownAbout , поэтому давайте добавим его вместо этого:

$data['knowsAbout'] = "https://en.wikipedia.org/wiki/Балти_(еда)";

Сохраните файл, загрузите его на сервер, перезагрузите страницу и посмотрите на исходный html (или проверьте его в Google Structured Data Testing Tool), и вы увидите это:

Как насчет этого! Мы добавили немного данных, и это действительно было не так уж сложно. Это замечательно, но что нам делать, если мы хотим добавить alumniOf , который является не простой текстовой строкой, а вложенным блоком?

Самое замечательное в том, как плагин Yoast работает с массивом $data , заключается в том, что вместо текстовой строки мы можем включить подмассив, и он выводится как подблок схемы!

Представьте, что мы хотели сделать это:

Вы можете добавить эти данные в виде подмассива следующим образом:

Если у человека , о котором идет речь, было несколько дипломов, и вам нужно несколько подблоков AlumniOf , просто добавьте их следующим образом:

И это будет отображаться так:

Это не может быть проще, чем это!

Последнее слово

Спасибо, что прочитали эту статью. Это только беглый взгляд на то, что возможно с Yoast SEO API.

Приведенные мной примеры хороши как отдельные биты данных для Person и Organization , но если вы хотите пойти дальше — например, со страницами шаблонов — вы можете добавить формы в свой плагин и сохранить данные в настраиваемой таблице базы данных, а затем скомпилировать Schema в файле шаблона вашей темы и выведите его в нижний колонтитул вашей страницы. Все это возможно, и вы можете использовать свойство @id , чтобы связать любой вывод схемы в нижнем колонтитуле с выводом схемы в заголовке!

API плагинов Yoast SEO будет значительно развиваться в ближайшем будущем, поэтому обязательно следите за их последними разработками.

Приходите на мой сайт для получения дополнительной информации или если вы хотите нанять меня, чтобы сделать это для вас.

Спасибо

В заключение я хотел бы поблагодарить Джона Олдерсона из Yoast за то, что он нашел время ответить на мои вопросы!