itstnd@yandex.ru

Консультации

Разработка и поддержка сайтов

Как прописать каноническую ссылку для группы записей в wordpress

 SEO    

Иногда требуется прописать каноническую ссылку для группы записей в wordpress. Например, есть группа товаров у которых практически одинаковые описания. В таком случае развернутое описание пишется для одного товара. и на этот товар добавляют ссылку с остальных в качестве канонической. В остальные товары тоже делают описание, но короткое, оптимизированное по ключевым особенностям , которые как раз отличаются, например цвета или размеры или другие характеристики.

Для того чтобы прописать каноническую ссылку добавьте в файл functions.php вашей темы:

add_action('wp_head', 'set_custom_canonical_for_products');
function set_custom_canonical_for_products() {
    if (is_singular('product')) { // Замените 'product' на ваш тип записи
        global $post;
        $product_id = $post->ID;
        
        // ID основного товара с полным описанием
        $main_product_id = 123; // Замените на реальный ID
        
        // Проверяем, не является ли это основной товар
        if ($product_id != $main_product_id) {
            $main_product_url = get_permalink($main_product_id);
            echo '<link rel="canonical" href="' . esc_url($main_product_url) . '" />';
        }
    }
}

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

Если у вас несколько групп товаров с разными основными страницами:

add_action('wp_head', 'set_grouped_canonical_urls');
function set_grouped_canonical_urls() {
    if (is_singular('product')) {
        global $post;
        $current_id = $post->ID;
        
        // Массив соответствий: ID товара => ID канонической страницы
        $canonical_map = array(
            100 => 123, // Товар 100 ссылается на 123
            101 => 123,
            102 => 123,
            200 => 456, // Другая группа
            201 => 456,
        );
        
        if (array_key_exists($current_id, $canonical_map)) {
            $canonical_id = $canonical_map[$current_id];
            $canonical_url = get_permalink($canonical_id);
            echo '<link rel="canonical" href="' . esc_url($canonical_url) . '" />';
        }
    }
}

По мета-полю (гибкий способ)

  • Создайте произвольное поле canonical_url для товаров
  • Добавьте код:
add_action('wp_head', 'add_custom_canonical_from_meta');
function add_custom_canonical_from_meta() {
    if (is_singular('product')) {
        $canonical_url = get_post_meta(get_the_ID(), 'canonical_url', true);
        
        if (!empty($canonical_url)) {
            echo '<link rel="canonical" href="' . esc_url($canonical_url) . '" />';
        }
    }
}

Плагины для канонических ссылок

  • Canonical URL Manager — специализированный плагин
  • Custom Canonical URL — простой и легкий

Рекомендации

Лучший вариант — использовать SEO-плагин (Yoast, Rank Math), так как они имеют дополнительные преимущества для SEO.

  • Важно: Убедитесь, что на основной (канонической) странице:
  • Нет canonical ссылки на саму себя (или она корректна)
  • Полное и уникальное описание
  • Все варианты товаров/атрибуты указаны
  • Проверьте: После настройки проверьте исходный код страницы на наличие тега <link rel=»canonical» href=»…» />
  • Для WooCommerce: Если используете WooCommerce, тип записи обычно product. Убедитесь в этом через echo get_post_type(); на странице товара.
  • Выберите способ, который лучше всего подходит для вашей структуры и количества товаров. Для простых случаев достаточно SEO-плагина, для сложных — программирование через functions.php.

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