Часто бывает необходимость при SEO-оптимизации избавиться от дубликатов, дубликатами могут быть страницы пагинации, которые имеют GET параметр page=2 , например.
Для этого можно создать сниппет и написать функцию обработки canoniacal ссылки
<?php
function deleteGET($url, $name, $amp = true) {
$url = str_replace("&", "&", $url); // Заменяем сущности на амперсанд, если требуется
list($url_part, $qs_part) = array_pad(explode("?", $url), 2, ""); // Разбиваем URL на 2 части: до знака ? и после
parse_str($qs_part, $qs_vars); // Разбиваем строку с запросом на массив с параметрами и их значениями
unset($qs_vars[$name]); // Удаляем необходимый параметр
if (count($qs_vars) > 0) { // Если есть параметры
$url = $url_part."?".http_build_query($qs_vars); // Собираем URL обратно
if ($amp) $url = str_replace("&", "&", $url); // Заменяем амперсанды обратно на сущности, если требуется
}
else $url = $url_part; // Если параметров не осталось, то просто берём всё, что идёт до знака ?
return $url; // Возвращаем итоговый URL
}
if(isset($_GET['page'])){
$actual_link = "https://".$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI];
$canonical_link = deleteGET($actual_link, "page");
$canonical_meta = "<link rel='canonical' href='$canonical_link'/>";
echo $canonical_meta;
}