Yoast Seo і Woocommerce – відображення канонічної сторінки

Можливості плагіна Yoast Seo приємно радують мене. Він не тільки виконує свою основну функцію SEO оптимізації, але й дає можливість легко вказати канонічне посилання на сторінку. Проте я зіткнувся з ситуацією, коли цей плагін не зміг додати канонічне посилання. Чомусь не хотілось додаватись канонічне посилання для сторінки магазину на Woocommerce.

Якщо Ви ще не знаєте, де додати канонічне посилання для будь якої сторінки чи категорії з допомогою плагіну Yoast Seo (а ця функція справді якось трохи захована), то я Вам підкажу.

Внизу запису чи категорії у режимі редагування Ви побачите блок Yoast SEO. Натисніть на шестірню і знайдіть поле Canonical URL. Як Ви можете вже догадатись, це і є те поле, яке додає канонічне посилання на іншу сторінку.

Фото Канонічне посилання для сторінки чи категорії у WordPress з плагіном Yoast

Проблема виводу канонічної сторінки і Woocommerce

При наявності плагіну Woocommerce Вам потрібно вибрати якусь сторінку для магазину. І якщо Вам захочеться додати канонічне посилання для цієї сторінки, Yoast може не справитись з цим. Для вирішення цієї проблеми в functions.php нижче всього коду вставляємо цей:

add_action('wp_head', 'add_can_woo', 1 );
function add_can_woo() {
  if (is_shop()) {
    echo '<link rel="canonical" href="' . get_home_url() . '" />';
  }
}

Хоча то було вирішення проблеми у моєму конкретному випадку, коли сторінка магазину мала мати канонічною головну. У Вас може бути інше бажання, тому Вам прийдеться відредагувати ось цей кусок коду: ' . get_home_url() . 'замінивши його, наприклад, на посилання на конкретну сторінку.

Але в такому випадку може статися така ситуація, що всі інші сторінки, які будуть дочірніми по відношенню до сторінки магазину теж будуть мати канонічною головну сторінку. Адже функція is_shop() вертає сторінку магазину і може вважати таку сторінку й дочірню (принаймні в мене так було). В такому випадку слід використати дещо інший код:

add_action('wp_head', 'add_can_woo', 1 );
function add_can_woo() {
  if ($_SERVER['REQUEST_URI'] == '/shop/') {
    echo '<link rel="canonical" href="' . get_home_url() . '" />';
  }
}

Розберемо бистро цей код:

  • $_SERVER['REQUEST_URI'] – функція, яка вертає адрес поточної сторінки в PHP після доменого імені. Тобто все після ваш_домен.ком
  • якщо цей адрес такий самий, як зазначено після двох знаків, то прописати в хедер для цієї сторінки відповідне канонічне посилання

А вазгалі навіть якщо Ви додали канонічні сторінки та посилання у плагіні Yoast Seo, але вони вперто не хочуть показуватись в хедері, перевірте налаштування сайту Вордпрес. Раптом Ваш сайт закритий від індексації.

Author:

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *