Иногда требуется прописать каноническую ссылку для группы записей в 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.
Как видите, прописать каноническую ссылку не то чтобы совсем просто, но если у вас группа товаров или записей, то лучше для этого воспользоваться плагином.