Тогда он объединит страницы в группу дублей и выберет для показа в результатах поиска только одну из них — наиболее информативную и релевантную поисковым запросам. Такая страница называется канонической.
Чтобы избежать проблем при SEO продвижении дубле страниц следует использовать атрибут rel canonical
:
<?
if((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443){
$protocol = 'https://';
}else{
$protocol = 'http://';
}
$url = $protocol.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$urlend = strrpos($url, '?', -1); // Находим и удаляем все параметры (номер страницы, параметры фильтра)
if($urlend != false){
$url = substr($url, 0, $urlend);
}
if(mb_substr($url, -1) == '/'){ // Тут оставляем, если ссылки на сайте не заканчиваются на /, либо удаляем, если заканчиваются на /.
$url = substr($url, 0, -1);
}
echo '<link rel="canonical" href="'.$url.'"/>';
?>
Вначале определяем, открывается ли сайт по безопасному протоколу или нет.
Потом собираем наш URL
из протокола ($protocol
), домена ($_SERVER['SERVER_NAME']
) и ссылки ($_SERVER['REQUEST_URI']
).
Далее определяем, есть ли в URL
параметры или нет ($_SERVER['QUERY_STRING']
). Если есть, их удаляем, они не нужны для тега.
И в конце (не обязательно) удаляем слеш, если ссылки формируются без него. Так-же это полезно, чтобы не использовать 301 редирект, который конфликтует с обработкой 404 страницы на разных CMS
.