- Yoast SEO — что это такое
- Где скачать и как установить плагин Yoast SEO
- Быстрая настройка Yoast SEO
- Полная настройка Yoast SEO
- Dashboard (Рабочий стол)
- General (Общие)
- Features (Возможности)
- Knowledge Graph (О себе)
- Webmaster Tools (Инструменты Вебмастера)
- Yandex Webmaster Tools
- Security (Безопасность)
- Заголовки и метаданные
- Общие
- Домашняя страница
- Типовые решения задач и проблем
- Как включить meta description для Рубрик (Категорий), Меток (Тегов) и других архивов
- Как убрать дублирование названия записи в breadcrumbs (хлебных крошках) WordPress SEO by Yoast
- Как добавить ссылку в breadcrumbs (хлебные крошки) Yoast SEO
- Как убрать Товары WooCommerce из цепочки хлебных крошек Yoast SEO
- Как убрать и отключить JSON-LD от Yoast
- Как в Yoast SEO отключить метатеги OpenGraph
- ОШИБКА: поле http://ogp.me/ns#image отсутствует или пусто
- Как удалить rel prev next из head
- Как включить article:published_time и article:modified_time
- Не работает карта сайта sitemap.xml
- Yoast SEO и Woocommerce
- Yoast или All In One Seo Pack, какой плагин выбрать
- Как импортировать метаданные в Yoast SEO
- Хуки, фильтры Yoast SEO
Yoast SEO — что это такое
Yoast SEO — это плагин WordPress, который настраивает страницы сайта для правильного отображения в поисковых системах. Он поможет:
- избежать проблем и возможных санкций и фильтров со стороны поисковых систем за дубли контента;
- настроит вывод title, meta description и meta keywords;
- создаст карту сайта
sitemap.xml; - сделает навигационную цепочку «хлебных крошек» (breadcrumbs);
- поможет убрать основу категорий (
/category/), стоп-слова иreplytocomиз URL комментариев; - настроит редиректы с дочерних страниц медиафайлов на родительские записи;
- и многое другое, полезное для внутренней поисковой оптимизации сайта.
Где скачать и как установить плагин Yoast SEO
Вы можете скачать плагин из официального репозитория WordPress.org, либо перейти в панели администратора в Плагины — Добавить новый (
http://example.com/wp-admin/plugin-install.php), и в поиске найти Yoast SEO
Установка Yoast SEO
Быстрая настройка Yoast SEO
Здесь памятка, как быстро настроить Yoast SEO на новом сайте.
Если вы впервые сталкиваетесь с этим плагином, вам что-то может показаться непонятным. В таком случае, предлагаю пропустить этот раздел и перейти ниже — к полной настройке Yoast SEO.
Итак, плагин установлен и активирован. Далее:
- Включаем полный функционал плагина. Для этого, переходим
SEO—Dashboard—Feautersи переводимAdvanced settings pagesвEnabled, затем вниз и сохраняем изменения. - В сайдбаре появятся новые пункты. Переходим в Заголовки и метаданные (
http://example.com/wp-admin/admin.php?page=wpseo_titles) - В Заголовки и метаданные проходимся по всем вкладкам и везде удаляем конструкцию
%%page%% %%sep%% %%sitename%%. Как правило, остаётся только первый шаблон, например%%title%%. Сохраняем изменения. - Также, в Таксономии(
http://example.com/wp-admin/admin.php?page=wpseo_titles#top#taxonomies) удаляем слово Архивы из начала каждой строки. Сохраняем изменения. - В последней вкладке Другое (
http://example.com/wp-admin/admin.php?page=wpseo_titles#top#other) Subpages of archives выставляемdisabled, сохраняем изменения. - В сайдбаре переходим в XML Карта сайта (
http://example.com/wp-admin/admin.php?page=wpseo_xml) и XML sitemap functionality включаем (enabled). Проходимся по всем вкладкам, карту авторов выключаем и следим, чтобы нужные типы записей, страниц и таксономий присутствовали в карте sitemap.xml. Сохраняем изменения. - В сайдбаре переходим в Дополнительно. Включаем навигационную цепочку breadcrumbs, прописываем текст ссылки на главную, в цепочке записи указываем Рубрика. Сохраняем изменения. Чтобы вставить хлебные крошки в шаблон, используем:
<?php if ( !is_front_page() and function_exists('yoast_breadcrumb') ) { yoast_breadcrumb('<div id="breadcrumbs">','</div>'); } ?> - Во вкладке Постоянные ссылки (
http://example.com/wp-admin/admin.php?page=wpseo_advanced&tab=permalinks) проставляем:- Strip the category base —
Remove; - Redirect attachment URLs to parent post URL —
Redirect; - Remove the ?replytocom variables —
Remove.
Сохраняем изменения.
- Strip the category base —
Выше был пример быстрой настройки Yoast SEO. Это некая шпаргалка для тех, кто уже не в первый раз настраивает плагин. Если Вы не относитесь к их числу, то далее подробно рассмотрим все настройки.
Полная настройка Yoast SEO
Теперь, когда плагин установлен и активирован, переходим к его настройке. В левом сайдбаре внизу появился отдельный раздел SEO, переходим в него:
http://example.com/wp-admin/admin.php?page=wpseo_dashboard
Стартовое меню Yoast SEO
Внутри нам покажут несколько разделов:
- Dashboard
- Общие
- Features
- О себе
- Инструменты вебмастера
- Безопасность
Все эти пункты рассмотрим подробно.
Dashboard (Рабочий стол)
Dashboard или Рабочий стол. Здесь отображаются различные сообщения и уведомления, на которые стоит обращать внимание.
Yoast SEO Dashboard (рабочий стол)
Например, на скрине выше мы видим 1 проблему (установлено название сайта по умолчанию, надо прописать своё) и 2 уведомления (предложения воспользоваться конфигуратором плагина и подключить сайт к Google Search Console). Мы только что установили плагин, и можно воспользоваться конфигуратором, но его будет недостаточно для полной настройки, поэтому я пропущу его и перейду непосредственно к обзору плагина и его тонкой настройке.
General (Общие)
Второй раздел, в который можно попасть по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#general
Общие Yoast SEO
В нём расположен следующий функционал:
- Configuration wizard — здесь расположен конфигуратор, которым можно воспользоваться, чтобы в несколько этапов предварительно настроить плагин. Можно его пропустить;
- О создателях — информация о создателях плагина;
- Restore default settings — тут можно сбросить настройки плагина на первоначальные, если что-то пошло не так.
Features (Возможности)
Третий раздел — Features (Возможности). Доступен по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#features.
Yoast SEO Feauters (возможности)
- Advanced settings pages — включить (
enabled). Во включенном состоянии активируются основные возможности плагина (установка шаблонаmeta title(заголовков) иmeta description(описания),sitemap.xml,breadcrumbs), которые нам нужны, и многое другое.
При включении (enabled) и сохранении, посмотрите в сайдбар слева, там появятся новые пункты меню, которые обсудим далее
Yoast SEO полное меню
- OnPage.org — включить, если пользуетесь сервисом мониторинга onpage.org. Включает проверку сайта ботами данного сервиса. Будет отсылать уведомления о недоступности сайта. Можно попробовать воспользоваться, это бесплатно для 1 проекта. Впрочем, это совсем не обязательно, особенно если вы не собираетесь пользоваться
OnPage.org. А мониторить доступность сайта на WordPress можно и с помощью Host Tracker, Яндекс Метрики или плагина JetPack. - Admin bar menu — включить, если хотите видеть уведомления от Yoast SEO в админтулбаре
Yoast SEO в тулбаре админа
Knowledge Graph (О себе)
Четвёртый раздел — Knowledge Graph (О себе). Доступен по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#knowledge-graph.
Yoast SEO Knowledge Graph (О себе)
- Название сайта — тут можно прописать данные, которые могут отображаться в результатах поисковой выдачи Google как данные сайта.
Если вы заглянете в исходный код любой страницы сайта, то увидите следующее:
Yoast SEO application/ld+json
У нас прописано название сайта: «Название моего сайта» и «Описание моего сайта». А в коде это будет отображаться в формате
<script type='application/ld+json'>{"@context":"http:\/\/schema.org","@type":"WebSite","@id":"#website","url":"http:\/\/1.wp\/","name":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430","alternateName":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430","potentialAction":{"@type":"SearchAction","target":"http:\/\/1.wp\/?s={search_term_string}","query-input":"required name=search_term_string"}}</script>nameиalternateName— тут и выводятся данные по названию сайта, . Google будет использовать их для своего Knowledge Graph - Компания или Частное лицо — отметьте ваш вариант.
Если выбрать частное лицо и заполнить имя, то это имя будет прописано вapplication/js+json<script type='application/ld+json'>{"@context":"http:\/\/schema.org","@type":"Person","url":"http:\/\/example.com\/","sameAs":[],"@id":"#person","name":"Myname"}</script>Здесь
Myname— это имя частного лица, будет использоваться Ваше.Если выбрать компанию и ввести её данные, то данные будут отображаться примерно так:
<script type='application/ld+json'>{"@context":"http:\/\/schema.org","@type":"Organization","url":"http:\/\/example.com\/","sameAs":[],"@id":"#organization","name":"Google","logo":"https:\/\/google.com\/logo.png"}</script>Тут я для примера привёл компанию Google и её лого. Вы, опять же, вводите свои.
Зачем это всё нужно? Google будет использовать их для своего Knowledge Graph.
А также, он может использовать эти данные в поисковой выдаче:
Как Google использует данные Yoast application/js+json
Webmaster Tools (Инструменты Вебмастера)
Раздел находится по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#webmaster-tools.
В этом разделе вы можете быстро подтвердить право на владение доменом в панелях Google Webmasters и Яндекс Вебмастер.
Если вы уже подтвердили право владения доменом, пропускайте этот раздел.
Yoast SEO Webmasters Tools (Инструменты Вебмастера)
Google Search Console
Чтобы подтвердить право владения доменом example.com в Google Search Console:
- Переходим по ссылке: https://www.google.com/webmasters/verification/verification?hl=ru&siteUrl=http%3A%2F%2Fexample.com/
- Выбираем
Альтернативные способы - Отмечаем
Тег HTML - Выделяем и копируем строку
Подтверждаем право владения доменом в Google Webmasters Tools
- Возвращаемся в панель Yoast SEO и вводим скопированную строку в соответствующее поле, сохраняем изменения
- Возвращаемся в панель Google Search Tools и подтверждаем право владения доменом
Yandex Webmaster Tools
Чтобы подтвердить право владения доменом example.com в Yandex Webmaster Tools:
- Если сайт не зарегистрирован в панели, добавим сайт
- Если сайт зарегистрирован в панели, подтверждаем право владения им
- Выбираем
Мета-тег - Выделяем и копируем строку
<meta name="yandex-verification" content="9d165569f5534721" />
Подтверждаем право владения доменом в Яндекс Вебмастере
- Возвращаемся в панель Yoast SEO и вводим скопированную строку в соответствующее поле, сохраняем изменения
- Возвращаемся в Яндекс Вебмастер и подтверждаем право владения доменом
Security (Безопасность)
Раздел содержит только одну функцию: Security setting, и находится по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#security
Yoast SEO Безопасность
По умолчанию (disabled), метабокс Yoast SEO в каждой записи не позволяет авторам изменять для записей права на просмотр поисковыми роботами (meta name robots noindex), а также переопределить каноническую ссылку (link rel canonical). Поэтому, если вы доверяете авторам, вы можете включить (enabled) возможность изменять эти жизненно важные вышеуказанные параметры в записях всем, а не только администраторам сайта. Иначе оставьте всё так, как есть по умолчанию — disabled
Заголовки и метаданные
Этот раздел отвечает за то, как в коде в секции head отображаются теги <title>, <meta name="description" content=""> и <meta name="keywords" content="">
Сразу расскажу про переменные шаблонов, которые используются в этом разделе. Переменные в Yoast SEO выглядят как определённое слово, обёрнутое в двойные знаки процентов. Если Yoast видит такую переменную у себя в метабоксе, он заменит её на определённое значение, взяв его из настроек или данных сайта.
Чтобы для Записей отображался
meta desciption, пропишите в поле Мета описание тег%%excerpt%%
Как выглядят переменные Yoast SEO в метабоксе записи
Например, %%sitename%% будет заменёна на название сайта, определённое в настройках, %%sitedesc%% на описание сайта, %%title%% — на название записи или страницы, и так далее. Ниже полный перечень переменных с их описаниями:
- %%sitename%% — обозначает название сайта. Определяется в настройках сайта
- %%sitedesc%% — описание сайта. Определяется там же
- %%date%% — дата публикации записи или страницы
- %%title%% — заголовок записи или страницы
- %%parent_title%% — заголовок родительской страницы
- %%excerpt%% — короткое описание записи или страницы. Если не существует, будет сгенерировано автоматически
- %%excerpt_only%% — короткое описание записи или страницы. Если не существует, ничего не выведет
- %%tag%% — текущая метка/метки (теги)
- %%category%% — рубрика (категория) или список рубрик (категорий), разделённых запятой
- %%primary_category%% — главная рубрика (категория)
- %%category_description%% — описание рубрики
- %%tag_description%% — описание метки (тега)
- %%term_title%% — заголовок произвольного термина
- %%term_description%% — описание произвольного термина
- %%searchphrase%% — текущая поисковая фраза
- %%sep%% — разделитель, который определяется в следующем пункте, и который присутствует в
wp_title()
Наверное, вы понимаете, что некоторые переменные могут работать только на определённых, соответствующих им страницах.
Вышеуказанных переменных обычно хватает с запасом. Однако, существуют и продвинутые варианты:
- %%pt_single%% — тип записи в единственном числе (запись, страница, продукт, если есть)
- %%pt_plural%% — тип записи во множественном числе (записи, страницы, продукты, если есть)
- %%modified%% — дата модификации записи или страницы
- %%id%% — уникальный идентификационный номер (Post ID) записи или страницы
- %%name%% — имя автора записи или страницы (
Nicename) - %%userid%% — уникальный идентификационный номер автора записи или страницы (
Author's ID) - %%currenttime%% — текущее время
- %%currentdate%% — текущая дата
- %%currentday%% — текущий день
- %%currentmonth%% — текущий месяц
- %%currentyear%% — текущий год
- %%page%% — строка текущей страницы в пагинации (например,
страница 2 из 4) - %%pagetotal%% — общее число страниц в пагинации
- %%pagenumber%% — номер текущей страницы в пагинации (
число) - %%caption%% — описание вложения, прикрепления (
аттачмента, например, изображения) - %%focuskw%% — фокусная ключевая фраза записи
- %%term404%% — термин страницы с ошибкой 404 (
такой страницы не существует) - %%cf_имя_метаполя_записи%% — значение произвольного метаполя записи (
post_meta) - %%ct_имя_произвольной_таксономии_записи%% — произвольные таксономии записи, через запятую
Пример для WooCommerce:
Чтобы прописать в шаблон заголовка title страницы атрибут товара, можно создать атрибут со слагом (ярлыком)atribut, а затем воспользоваться следующей переменной:
%%ct_pa_atribut%%

В результате, в исходном коде любого товара можно будет увидеть значение атрибута
- %%ct_desc_имя_произвольной_таксономии_записи%% — описание произвольной таксономии записи
Общие
Располагается по адресу http://example.com/wp-admin/admin.php?page=wpseo_titles#top#general
Заголовки и метаданные — Общие — Yoast SEO
- Разделитель для заголовка — тут можно выбрать символ, который будет служить разделителем в заголовке вместо переменной
%%sep%%
Enabled analysis
- Readability analysis — можно включить или отключить анализатор текста
Yoast Анализатор текста в метабоксе в записи
- Keyword analysis — включает и отключает анализатор вхождения ключевой фразы в заголовки и текст
Yoast анализатор вхождения ключевой фразы в текст в метабоксе в записи
С переменными вы уже знакомы (описание выше), поэтому дальше буду давать примеры шаблонов, которые я обычно ставлю.
Домашняя страница
Отвечает за то, что отображается в title и description на главной странице. Располагается в http://example.com/wp-admin/admin.php?page=wpseo_titles#top#home

Здесь по умолчанию установлен набор %%sitename%% %%page%% %%sep%% %%sitedesc%%.
По идее, достаточно будет оставить %%sitename%% или %%sitename%% %%page%%. Вы меняете на своё усмотрение.
Типовые решения задач и проблем
В этом разделе собраны типовые задачи и проблемы, с которыми приходится сталкиваться при использовании Yoast SEO.
Как включить meta description для Рубрик (Категорий), Меток (Тегов) и других архивов
Это решение подойдёт в том случае, когда заполнены описания архивов (рубрик, меток и других), и нужно, чтобы эти описания выводились в meta description:
/**
* Включаем meta description для Рубрик (Категорий) и других архивов
* https://sheensay.ru/yoast
*/
add_filter( 'wpseo_metadesc', function ( $wpseo_metadesc ) {
if (
is_archive() // Можно заменить на is_category(), чтобы работать только с Рубриками
and empty( $wpseo_metadesc )
and ! empty( $description = get_queried_object() -> description )
) {
$wpseo_metadesc = $description;
}
return $wpseo_metadesc;
} );
Как убрать дублирование названия записи в breadcrumbs (хлебных крошках) WordPress SEO by Yoast
Код ниже удалит дублирующееся название статьи в хлебных крошках (последнее звено в цепочке), оставим только ссылки на верхние уровни (то есть, было Главная > Рубрика > Запись, стало Главная > Рубрика):
add_filter('wpseo_breadcrumb_single_link', 'remove_wpseo_breadcrumb_last' );
function remove_wpseo_breadcrumb_last( $link_output) {
if( FALSE !== strpos( $link_output, 'breadcrumb_last' ) ) {
$link_output = '';
}
return $link_output;
}
Как добавить ссылку в breadcrumbs (хлебные крошки) Yoast SEO
Удобнее всего манипулировать breadcrumbs с помощью фильтра wpseo_breadcrumb_links. В примере ниже показано, как можно добавить дополнительную ссылку со страниц произвольной таксономии products_type:
add_filter( 'wpseo_breadcrumb_links', function ( $links ) {
if ( is_tax( 'products_type' ) ) {
// Добавляем элемент в ассоциативный массив ссылок
array_splice( $links, $offset = 1, $length = 0, [
[
'text' => 'Текст ссылки',
'url' => 'Адрес ссылки',
'allow_html' => '1',
]
] );
}
return $links;
}, 10, 2 );
Как убрать Товары WooCommerce из цепочки хлебных крошек Yoast SEO
add_filter( 'wpseo_breadcrumb_links', 'sheens_wpseo_breadcrumb_output' );
function sheens_wpseo_breadcrumb_output( $output ){
if ( 'product' == $output[1]['ptarchive'] ) {
unset( $output[1] );
$output = array_values( $output );
}
return $output;
}
Как убрать и отключить JSON-LD от Yoast
// Полностью отключаем вывод JSON-LD в Yoast SEO add_filter( 'wpseo_json_ld_output', '__return_empty_array' );
Также, порой возникает потребность отключить Google SearchBox для сайта
SearchBox в результатах поиска выглядит как на скрине:
![]()
В WordPress обычно прописывается http://example.com/?s={Поисковый_запрос}. Если на сайте стандартный вид поиска отключен, то стоит также отключить его и в JSON-LD:
// Отключаем Yoast SearchBox для Google add_filter( 'disable_wpseo_json_ld_search', '__return_true' );
Либо, можно изменить существующий адрес для поиска, например http://example.com/?search:
// Изменяем поисковую строку Yoast SEO
add_filter('wpseo_json_ld_search_url', function () {
return 'http://example.com/?search={search_term_string}';
} );
Как в Yoast SEO отключить метатеги OpenGraph
Чтобы отключить метаданные Open Graph, можно зайти в панель администратора: SEO — Социальные сети — Facebook, и переключить ползунок OpenGraph

Чтобы отключить Open Graph через хуки, можно воспользоваться следующим кодом:
add_action('wp_head', 'remove_all_wpseo_og', 1);
function remove_all_wpseo_og() {
remove_action( 'wpseo_head', array( $GLOBALS['wpseo_og'], 'opengraph' ), 30 );
}
Чтобы отключить конкретные элементы OpenGraph, можно воспользоваться следующими фильтрами:
add_filter('wpseo_opengraph_url' , '__return_false' );
add_filter('wpseo_opengraph_desc', '__return_false' );
add_filter('wpseo_opengraph_title', '__return_false' );
add_filter('wpseo_opengraph_type', '__return_false' );
add_filter('wpseo_opengraph_site_name', '__return_false' );
ОШИБКА: поле http://ogp.me/ns#image отсутствует или пусто
Если при проверка сайта в валидаторе микроразметки возникает ошибка ОШИБКА: поле http://ogp.me/ns#image отсутствует или пусто, значит, Вы не указали дефолтное изображение в настройках плагина: Yoast — Социальные сети — Facebook, и указываете любое изображение, которое будет показываться в соцсетях при шаринге страниц, не имеющих миниатюр.
Устранение ошибки: поле http://ogp.me/ns#image отсутствует или пусто
Как удалить rel prev next из head
/**
* Yoast: Удаляем Prev Next для архивов
*/
add_filter( 'wpseo_prev_rel_link', '__return_false' );
add_filter( 'wpseo_next_rel_link', '__return_false' );
// Редиректим /page/2, /page/3 и т.д. на основную первую страницу рубрики (категории)
add_action( 'pre_get_posts', function ( $query ) {
// Если находимся на странице архивов, на странице пагинации 2 и выше, а также существует имя рубрики
if ( $query -> is_archive && $query -> query['paged'] > 1 && $query -> query['category_name'] ) {
// Редиректим на основную страницу рубрики
wp_redirect( site_url( $query -> query['category_name'] ), 301 );
exit;
}
} );
Как включить article:published_time и article:modified_time
По умолчанию, в Yoast в Open Graph дата публикации и дата модификации отображается только для Записей. Чтобы включить их для других произвольных типов записей или страниц, можно воспользоваться следующим кодом:
// Дата публикации и дата модификации для страниц
add_filter( 'wpseo_opengraph_show_publish_date', function () {
if ( is_singular( 'page' ) )
return true;
return false;
});
А следующим кодом мы сможем включить отображение article:published_time и article:modified_time вообще для чего угодно:
add_filter( 'wpseo_opengraph_show_publish_date', '__return_true' );
Если требуется отключить article:published_time и article:modified_time везде:
add_filter( 'wpseo_opengraph_show_publish_date', '__return_false' );
Не работает карта сайта sitemap.xml
Зачастую проблема в NGINX — он просто не настроен верным образом, чтобы карта сайта sitemap.xml генерировалась. Чтобы исправить дело, нужно отредактировать необходимый блок с конфигурацией конкретного сайта, добавив в секцию server{} следующую инструкцию:
#Yoast SEO sitemap.xml # https://sheensay.ru/?p=2205
location ~ ([^/]*)sitemap(.*).x(m|s)l$ {
## this rewrites sitemap.xml to /sitemap_index.xml
rewrite ^/sitemap.xml$ /sitemap_index.xml permanent;
## this makes the XML sitemaps work
rewrite ^/([a-z]+)?-?sitemap.xsl$ /index.php?yoast-sitemap-xsl=$1 last;
rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
## The following lines are optional for the premium extensions
## News SEO
rewrite ^/news-sitemap.xml$ /index.php?sitemap=wpseo_news last;
## Local SEO
rewrite ^/locations.kml$ /index.php?sitemap=wpseo_local_kml last;
rewrite ^/geo-sitemap.xml$ /index.php?sitemap=wpseo_local last;
## Video SEO
rewrite ^/video-sitemap.xsl$ /index.php?yoast-sitemap-xsl=video last;
}
Yoast SEO и Woocommerce
Для WooCommerce есть специальный платный плагин, описание доступно по адресу https://yoast.com/wordpress/plugins/yoast-woocommerce-seo/. На данный момент, стоит $49.
Помимо стандартных фишек Yoast SEO, он позволяет:
- Увеличить число шарингов в Pinterest
- Использовать хлебные крошки (breadcrumbs) от Yoast взамен стандартных WooCommerce
- Гарантирует отличную совместную работу Yoast SEO и WooCommerce
- Удаляет ненужные страницы из карты сайта
sitemap.xmlи отдаёт приоритет индексации нужным страницам
Yoast или All In One Seo Pack, какой плагин выбрать
Я бы однозначно выбрал Yoast SEO, так как он содержит в себе всё, что нужно, чего нет в All In One Seo Pack, и что нужно добирать сторонними плагинами:
- Карту сайта sitemap.xml;
- Удалить
/category/из URL; - Хлебные крошки Breadcrumbs.
Как импортировать метаданные в Yoast SEO
Допустим, Вы переносите сайт со старого движка на WordPress. Также, допустим, у нас в базе данных есть таблица articles, в которой есть столбцы с нужными нам данными: столбцы meta_title, meta_description и meta_keywords. Также, допустим, что в таблице articles есть столбец ID, который соответствует ID поста в базе данных WordPress.
Если вам нужно массово прописать метаданные Yoast SEO для своих статей, можно воспользоваться следующим кодом. Его можно прописать в functions.php или создать MU Плагин WordPress.
add_action( 'admin_action_sheensay_import_yoast_meta', function() {
current_user_can( 'manage_options' ) or exit; // Только администратор сможет сделать запрос
global $wpdb;
// Создаём запрос в базу данных
$sql = "SELECT articles.meta_title, articles.meta_description, articles.meta_keywords, articles.ID, wp_posts.ID FROM articles "
. " INNER JOIN wp_posts "
. " ON articles.ID = wp_posts.ID "
. " AND wp_posts.post_type = 'post' "
. " LIMIT 0, 10";
$rows = $wpdb->get_results( $sql );
exit( print_r( $rows ) ); // Выводим результат запроса в базу данных. Чтобы произвести импорт, надо закомментировать или удалить строку
foreach ( $rows as $row ) {
update_post_meta( $row->ID, '_yoast_wpseo_title', $row->meta_title ); // Пишем meta title
update_post_meta( $row->ID, '_yoast_wpseo_metadesc', $row->meta_description ); // Пишем meta description
update_post_meta( $row->ID, '_yoast_wpseo_metakeywords', $row->meta_keywords ); // Пишем meta keywords
}
printf( "Импортировано %d позиций.<br>", count( $rows ) );
exit;
} );
Теперь можно открыть URL http://example.com/wp-admin/admin.php?action=sheensay_import_yoast_meta, увидите результат запроса. Попробуйте стереть из $sql ограничение LIMIT 0, 10" или увеличить его, например, LIMIT 0, 1000, затем проверьте результат, перезагрузив страницу.
LIMIT 0, 1000означает «выбрать 1000 записей, начиная с 0 позиции». Так можно разбить импорт на порции. Следующие будут:
LIMIT 0, 1000LIMIT 1000, 1000LIMIT 2000, 1000- и так далее до конца
Убедившись, что запрос выдаёт нужные данные, закомментируйте или удалите строку exit( print_r( $rows ) );, затем перезагрузите страницу. Увидите, сколько строк импортировано.
Если данных слишком много, скрипт может завершиться с ошибкой, ему просто может не хватить времени на исполнение. В этом случае, попробуйте либо увеличить максимальное время исполнения PHP, либо увеличить время ожидания NGINX.
Если время исполнения увеличить нельзя, попробуйте скармливать данные порциями, меняя ограничение: например,LIMIT 0,100первая итерация,LIMIT 100,100вторая,LIMIT 200,100третья, и так далее.
Хуки, фильтры Yoast SEO
- wpseo_robots
- Отвечает за вывод
<meta name="robots" content="noindex, nofollow">// Пример, в котором мы закрываем от индексации страницы дней архивов add_filter( 'wpseo_robots', function ($robots) { if ( is_day() ) { $robots = "noindex, follow"; } return $robots; } );



Свежие комментарии