Вопрос или проблема
По этому URL: https://www.phuket-luxury-villas.us.com/tourist-spots/buddhist-temples-wats/ у меня неверная каноническая ссылка:
<link rel="canonical" href="https://www.phuket-luxury-villas.us.com/tourist-spots/buddhist-temples-wats/" />
Ранее это была правильная каноническая ссылка:
<link rel="canonical" href="https://www.luxuryvillasphuketthailand.com/tourist-spots/buddhist-temples-wats/" />
Я пытался использовать этот код:
function yoast_seo_canonical_change_woocom_shop( $canonical ) {
if ( is_archive() ) {
echo '';
}
}
add_filter( 'wpseo_canonical', 'yoast_seo_canonical_change_woocom_shop', 10, 1 );
Но, похоже, сейчас на сайте слишком много канонических ссылок…
Есть идеи, что еще я могу сделать?
Упомянутый URL является архивом (создан с помощью Toolset). И мы используем WPML. К сожалению, WPML не позволяет дублировать категории или таксономии.
Я сам нашел решение:
function yoast_seo_canonical_change_archives( $canonical ) { if ( is_tax( 'tourist-spots' ) ) { $path = parse_url( $canonical, PHP_URL_PATH ); return 'https://www.luxuryvillasphuketthailand.com' . $path; } return $canonical; } add_filter( 'wpseo_canonical', 'yoast_seo_canonical_change_archives', 10, 1 );
Ответ или решение
Для изменения канонической ссылки в архиве категории или таксономии в WordPress, вы можете воспользоваться функцией и фильтром, предоставляемыми плагином Yoast SEO. В вашем случае, вы правильно идентифицировали проблему с неправильной канонической ссылкой и нашли соответствующее решение.
Шаги по изменению канонической ссылки:
-
Создание пользовательской функции: Вам нужно создать функцию, которая будет проверять, относится ли текущая страница к вашей таксономии (
tourist-spots
), и изменять канонический URL на нужный. -
Использование фильтра
wpseo_canonical
: Этот фильтр позволяет изменять каноническую ссылку, добавляя вашу пользовательскую функцию.
Вот пример кода, который вы можете использовать:
function yoast_seo_canonical_change_archives( $canonical ) {
if ( is_tax( 'tourist-spots' ) ) {
$path = parse_url( $canonical, PHP_URL_PATH );
return 'https://www.luxuryvillasphuketthailand.com' . $path;
}
return $canonical;
}
add_filter( 'wpseo_canonical', 'yoast_seo_canonical_change_archives', 10, 1 );
Объяснение кода:
-
Функция
yoast_seo_canonical_change_archives
: Этот код проверяет, находится ли текущая страница в архиве таксономииtourist-spots
. Если да, то он извлекает путь из текущей канонической ссылки и возвращает новый канонический URL, добавляя к пути основной домен. -
Фильтр
add_filter
: Этот вызов добавляет вашу пользовательскую функцию в качестве обработчика для фильтраwpseo_canonical
. Параметр10
указывает на приоритет выполнения, а1
указывает на количество передаваемых аргументов.
Заметки:
- Убедитесь, что у вас есть резервная копия вашего сайта перед внесением изменений в код.
- Проверьте результат с помощью инструментов, таких как Google Search Console, чтобы убедиться, что канонические ссылки обновлены и верные.
- Помните, что неправильно настроенные канонические ссылки могут негативно повлиять на SEO вашего сайта, поэтому следите за правильностью их установки.
Таким образом, используя предложенное решение, вы можете корректно установить нужные канонические ссылки для своих архивов таксономий и обеспечить правильную индексацию ваших страниц поисковыми системами.