переменные yoast seo

25.04.2020 iMarketing5

Yoast SEO — полная настройка плагина WP (Все переменные Yoast SEO)

Yoast SEO — что это такое

Yoast SEO — это плагин WordPress, который настраивает страницы сайта для правильного отображения в поисковых системах. Он поможет:

  • избежать проблем и возможных санкций и фильтров со стороны поисковых систем за дубли контента;
  • настроит вывод titlemeta description и meta keywords;
  • создаст карту сайта sitemap.xml;
  • сделает навигационную цепочку «хлебных крошек» (breadcrumbs);
  • поможет убрать основу категорий (/category/), стоп-слова и replytocom из URL комментариев;
  • настроит редиректы с дочерних страниц медиафайлов на родительские записи;
  • и многое другое, полезное для внутренней поисковой оптимизации сайта.

Где скачать и как установить плагин Yoast SEO

У сайта sheensay.ru есть свой канал в Telegram — @sheensayru.
В нём публикуются ссылки на новые материалы сайта и интересные, по моему мнению, публикации. Подписывайтесь и будьте в курсе последних событий.
Спасибо, уже подписался

Вы можете скачать плагин из официального репозитория WordPress.org, либо перейти в панели администратора в Плагины — Добавить новый (http://example.com/wp-admin/plugin-install.php), и в поиске найти Yoast SEO

Универсальная инструкция по установке плагинов в WordPress

Установка Yoast SEO

Установка Yoast SEO

Быстрая настройка Yoast SEO

Здесь памятка, как быстро настроить Yoast SEO на новом сайте.

Если вы впервые сталкиваетесь с этим плагином, вам что-то может показаться непонятным. В таком случае, предлагаю пропустить этот раздел и перейти ниже — к полной настройке Yoast SEO.

Итак, плагин установлен и активирован. Далее:

  1. Включаем полный функционал плагина. Для этого, переходим SEO — Dashboard — Feauters и переводим Advanced settings pages в Enabled, затем вниз и сохраняем изменения.
  2. В сайдбаре появятся новые пункты. Переходим в Заголовки и метаданные (http://example.com/wp-admin/admin.php?page=wpseo_titles)
  3. В Заголовки и метаданные проходимся по всем вкладкам и везде удаляем конструкцию %%page%% %%sep%% %%sitename%%. Как правило, остаётся только первый шаблон, например %%title%%. Сохраняем изменения.
  4. Также, в Таксономии(http://example.com/wp-admin/admin.php?page=wpseo_titles#top#taxonomies) удаляем слово Архивы из начала каждой строки. Сохраняем изменения.
  5. В последней вкладке Другое (http://example.com/wp-admin/admin.php?page=wpseo_titles#top#otherSubpages of archives выставляем disabled, сохраняем изменения.
  6. В сайдбаре переходим в XML Карта сайта (http://example.com/wp-admin/admin.php?page=wpseo_xml) и XML sitemap functionality включаем (enabled). Проходимся по всем вкладкам, карту авторов выключаем и следим, чтобы нужные типы записей, страниц и таксономий присутствовали в карте sitemap.xml. Сохраняем изменения.
  7. В сайдбаре переходим в Дополнительно. Включаем навигационную цепочку breadcrumbs, прописываем текст ссылки на главную, в цепочке записи указываем Рубрика. Сохраняем изменения. Чтобы вставить хлебные крошки в шаблон, используем:
    1
    <?php if ( !is_front_page() and function_exists('yoast_breadcrumb') ) { yoast_breadcrumb('<div id="breadcrumbs">','</div>'); } ?>
  8. Во вкладке Постоянные ссылки (http://example.com/wp-admin/admin.php?page=wpseo_advanced&tab=permalinks) проставляем:
    1. Strip the category base — Remove;
    2. Redirect attachment URLs to parent post URL — Redirect;
    3. Remove the ?replytocom variables — Remove.

    Сохраняем изменения.

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

Полная настройка Yoast SEO

Теперь, когда плагин установлен и активирован, переходим к его настройке. В левом сайдбаре внизу появился отдельный раздел SEO, переходим в него:
http://example.com/wp-admin/admin.php?page=wpseo_dashboard

Стартовое меню Yoast SEO

Стартовое меню Yoast SEO

Внутри нам покажут несколько разделов:

  1. Dashboard
  2. Общие
  3. Features
  4. О себе
  5. Инструменты вебмастера
  6. Безопасность

Все эти пункты рассмотрим подробно.

Dashboard (Рабочий стол)

Dashboard или Рабочий стол. Здесь отображаются различные сообщения и уведомления, на которые стоит обращать внимание.

Yoast SEO Dashboard (рабочий стол)

Yoast SEO Dashboard (рабочий стол)

Например, на скрине выше мы видим 1 проблему (установлено название сайта по умолчанию, надо прописать своё) и 2 уведомления (предложения воспользоваться конфигуратором плагина и подключить сайт к Google Search Console). Мы только что установили плагин, и можно воспользоваться конфигуратором, но его будет недостаточно для полной настройки, поэтому я пропущу его и перейду непосредственно к обзору плагина и его тонкой настройке.

General (Общие)

Второй раздел, в который можно попасть по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#general

Общие Yoast SEO

Общие Yoast SEO

В нём расположен следующий функционал:

  1. Configuration wizard — здесь расположен конфигуратор, которым можно воспользоваться, чтобы в несколько этапов предварительно настроить плагин. Можно его пропустить;
  2. О создателях — информация о создателях плагина;
  3. Restore default settings — тут можно сбросить настройки плагина на первоначальные, если что-то пошло не так.

Features (Возможности)

Третий раздел — Features (Возможности). Доступен по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#features.

Yoast SEO Feauters (возможности)

Yoast SEO Feauters (возможности)

  • Advanced settings pages — включить (enabled). Во включенном состоянии активируются основные возможности плагина (установка шаблона meta title (заголовков) и meta description (описания), sitemap.xmlbreadcrumbs), которые нам нужны, и многое другое.
    При включении (enabled) и сохранении, посмотрите в сайдбар слева, там появятся новые пункты меню, которые обсудим далее

    Yoast SEO полное меню

    Yoast SEO полное меню

  • OnPage.org — включить, если пользуетесь сервисом мониторинга onpage.org. Включает проверку сайта ботами данного сервиса. Будет отсылать уведомления о недоступности сайта. Можно попробовать воспользоваться, это бесплатно для 1 проекта. Впрочем, это совсем не обязательно, особенно если вы не собираетесь пользоваться OnPage.org. А мониторить доступность сайта на WordPress можно и с помощью Host TrackerЯндекс Метрики или плагина JetPack.
  • Admin bar menu — включить, если хотите видеть уведомления от Yoast SEO в админтулбаре
    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 (О себе)

Yoast SEO Knowledge Graph (О себе)

  • Название сайта — тут можно прописать данные, которые могут отображаться в результатах поисковой выдачи Google как данные сайта.
    Если вы заглянете в исходный код любой страницы сайта, то увидите следующее:

    Yoast SEO application/ld+json

    Yoast SEO application/ld+json

    У нас прописано название сайта: «Название моего сайта» и «Описание моего сайта». А в коде это будет отображаться в формате

    1
    <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

    1
    <script type='application/ld+json'>{"@context":"http:\/\/schema.org","@type":"Person","url":"http:\/\/example.com\/","sameAs":[],"@id":"#person","name":"Myname"}</script>

    Здесь Myname — это имя частного лица, будет использоваться Ваше.

    Если выбрать компанию и ввести её данные, то данные будут отображаться примерно так:

    1
    <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

Как 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 (Инструменты Вебмастера)

Yoast SEO Webmasters Tools (Инструменты Вебмастера)

Google Search Console

Чтобы подтвердить право владения доменом example.com в Google Search Console:

  1. Переходим по ссылке: https://www.google.com/webmasters/verification/verification?hl=ru&siteUrl=http%3A%2F%2Fexample.com/
  2. Выбираем Альтернативные способы
  3. Отмечаем Тег HTML
  4. Выделяем и копируем строку
    Подтверждаем право владения доменом в Google Webmasters Tools

    Подтверждаем право владения доменом в Google Webmasters Tools

  5. Возвращаемся в панель Yoast SEO и вводим скопированную строку в соответствующее поле, сохраняем изменения
  6. Возвращаемся в панель Google Search Tools и подтверждаем право владения доменом

Yandex Webmaster Tools

Чтобы подтвердить право владения доменом example.com в Yandex Webmaster Tools:

  1. Если сайт не зарегистрирован в панели, добавим сайт
  2. Если сайт зарегистрирован в панели, подтверждаем право владения им
  3. Выбираем Мета-тег
  4. Выделяем и копируем строку <meta name="yandex-verification" content="9d165569f5534721" />
    Подтверждаем право владения доменом в Яндекс Вебмастере

    Подтверждаем право владения доменом в Яндекс Вебмастере

  5. Возвращаемся в панель Yoast SEO и вводим скопированную строку в соответствующее поле, сохраняем изменения
  6. Возвращаемся в Яндекс Вебмастер и подтверждаем право владения доменом

Security (Безопасность)

Раздел содержит только одну функцию: Security setting, и находится по адресу http://example.com/wp-admin/admin.php?page=wpseo_dashboard#top#security

Yoast SEO Безопасность

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 в метабоксе записи

Как выглядят переменные 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()

Наверное, вы понимаете, что некоторые переменные могут работать только на определённых, соответствующих им страницах.

Вышеуказанных переменных обычно хватает с запасом. Однако, существуют и продвинутые варианты:

  1. %%pt_single%% — тип записи в единственном числе (запись, страница, продукт, если есть)
  2. %%pt_plural%% — тип записи во множественном числе (записи, страницы, продукты, если есть)
  3. %%modified%% — дата модификации записи или страницы
  4. %%id%% — уникальный идентификационный номер (Post ID) записи или страницы
  5. %%name%% — имя автора записи или страницы (Nicename)
  6. %%userid%% — уникальный идентификационный номер автора записи или страницы (Author's ID)
  7. %%currenttime%% — текущее время
  8. %%currentdate%% — текущая дата
  9. %%currentday%% — текущий день
  10. %%currentmonth%% — текущий месяц
  11. %%currentyear%% — текущий год
  12. %%page%% — строка текущей страницы в пагинации (например, страница 2 из 4)
  13. %%pagetotal%% — общее число страниц в пагинации
  14. %%pagenumber%% — номер текущей страницы в пагинации (число)
  15. %%caption%% — описание вложения, прикрепления (аттачмента, например, изображения)
  16. %%focuskw%% — фокусная ключевая фраза записи
  17. %%term404%% — термин страницы с ошибкой 404 (такой страницы не существует)
  18. %%cf_имя_метаполя_записи%% — значение произвольного метаполя записи (post_meta)
  19. %%ct_имя_произвольной_таксономии_записи%% — произвольные таксономии записи, через запятую

    Пример для WooCommerce:
    Чтобы прописать в шаблон заголовка title страницы атрибут товара, можно создать атрибут со слагом (ярлыком) atribut, а затем воспользоваться следующей переменной:
    %%ct_pa_atribut%%
    Прописываем шаблон для Товаров
    В результате, в исходном коде любого товара можно будет увидеть значение атрибута
    Исходный код товара

  20. %%ct_desc_имя_произвольной_таксономии_записи%% — описание произвольной таксономии записи

Общие

Располагается по адресу http://example.com/wp-admin/admin.php?page=wpseo_titles#top#general

Заголовки и метаданные  - Общие - Yoast SEO

Заголовки и метаданные — Общие — Yoast SEO

  1. Разделитель для заголовка — тут можно выбрать символ, который будет служить разделителем в заголовке вместо переменной %%sep%%

Enabled analysis

  1. Readability analysis — можно включить или отключить анализатор текста
    Yoast Анализатор текста в метабоксе в записи

    Yoast Анализатор текста в метабоксе в записи

  2. Keyword analysis — включает и отключает анализатор вхождения ключевой фразы в заголовки и текст
    Yoast анализатор вхождения ключевой фразы в текст в метабоксе в записи

    Yoast анализатор вхождения ключевой фразы в текст в метабоксе в записи

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

Домашняя страница

Отвечает за то, что отображается в title и description на главной странице. Располагается в http://example.com/wp-admin/admin.php?page=wpseo_titles#top#home
Yoast SEO - Заголовки на главной
Здесь по умолчанию установлен набор %%sitename%% %%page%% %%sep%% %%sitedesc%%.
По идее, достаточно будет оставить %%sitename%% или %%sitename%% %%page%%. Вы меняете на своё усмотрение.

Типовые решения задач и проблем

В этом разделе собраны типовые задачи и проблемы, с которыми приходится сталкиваться при использовании Yoast SEO.

Как включить meta description для Рубрик (Категорий), Меток (Тегов) и других архивов

Это решение подойдёт в том случае, когда заполнены описания архивов (рубрик, меток и других), и нужно, чтобы эти описания выводились в meta description:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * Включаем meta description для Рубрик (Категорий) и других архивов
 */
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

Код ниже удалит дублирующееся название статьи в хлебных крошках (последнее звено в цепочке), оставим только ссылки на верхние уровни (то есть, было Главная > Рубрика > Запись, стало Главная > Рубрика):

1
2
3
4
5
6
7
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
8
9
10
11
12
13
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

1
2
// Полностью отключаем вывод JSON-LD в Yoast SEO
add_filter( 'wpseo_json_ld_output', '__return_empty_array' );

Также, порой возникает потребность отключить Google SearchBox для сайта

SearchBox в результатах поиска выглядит как на скрине:
SearchBox в выдаче Google

В WordPress обычно прописывается http://example.com/?s={Поисковый_запрос}. Если на сайте стандартный вид поиска отключен, то стоит также отключить его и в JSON-LD:

1
2
// Отключаем Yoast SearchBox для Google
add_filter( 'disable_wpseo_json_ld_search', '__return_true' );

Либо, можно изменить существующий адрес для поиска, например http://example.com/?search:

1
2
3
4
// Изменяем поисковую строку 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
Отключение OpenGraph в Yoast

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

1
2
3
4
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, можно воспользоваться следующими фильтрами:

1
2
3
4
5
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 отсутствует или пусто

Устранение ошибки: поле http://ogp.me/ns#image отсутствует или пусто

Как удалить rel prev next из head

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 *  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 дата публикации и дата модификации отображается только для Записей. Чтобы включить их для других произвольных типов записей или страниц, можно воспользоваться следующим кодом:

1
2
3
4
5
6
7
8
// Дата публикации и дата модификации для страниц
add_filter( 'wpseo_opengraph_show_publish_date', function () {
    if ( is_singular( 'page' ) )
        return true;
    return false;
});

А следующим кодом мы сможем включить отображение article:published_time и article:modified_time вообще для чего угодно:

1
add_filter( 'wpseo_opengraph_show_publish_date', '__return_true' );

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, и что нужно добирать сторонними плагинами:

  1. Карту сайта sitemap.xml;
  2. Удалить /category/ из URL;
  3. Хлебные крошки Breadcrumbs.

Как импортировать метаданные в Yoast SEO

Допустим, Вы переносите сайт со старого движка на WordPress. Также, допустим, у нас в базе данных есть таблица articles, в которой есть столбцы с нужными нам данными: столбцы meta_titlemeta_description и meta_keywords. Также, допустим, что в таблице articles есть столбец ID, который соответствует ID поста в базе данных WordPress.
Если вам нужно массово прописать метаданные Yoast SEO для своих статей, можно воспользоваться следующим кодом. Его можно прописать в functions.php или создать MU Плагин WordPress.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 позиции». Так можно разбить импорт на порции. Следующие будут:

  1. LIMIT 0, 1000
  2. LIMIT 1000, 1000
  3. LIMIT 2000, 1000
  4. и так далее до конца

Убедившись, что запрос выдаёт нужные данные, закомментируйте или удалите строку 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">

1
2
3
4
5
6
7
8
9
// Пример, в котором мы закрываем от индексации страницы дней архивов
add_filter( 'wpseo_robots', function ($robots) {
    if ( is_day() ) {
        $robots = "noindex, follow";
    }
    return $robots;
} );

Статья с сайта sheensay.ru

#переменные Yoast SEO

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

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