For web-developers

Атрибут rel="canonical" и ссылки на канонические страницы

И так от руководства поступила задача прописать тег rel-canonical для продвигаемого сайта. Но в движке такой опции не существует. Или же у вас вообще самописный движок. Или модуль в преста-шоп не работает корректно ;-) и такое бывает...

Давайте напишем небольшой скрипт который позволит нам выводить нужный тег на продвигаемых разделах. Первый вариант когда путь имеет следующий вид. http://website.com/shop/catalog/audio а пагинация разбивает и ваводит страницы в следущем виде http://website.com/shop/catalog/audio/3 В таком случае мы проверяем не передается ли значение номера страницы в нашем адресе и если передается то обрезаем все не нужное и создаем нужные нам теги раздела для сохранения веса страницы раздела. В общем вот код:

$url = $_SERVER['REQUEST_URI'];
$domain = $_SERVER['HTTP_HOST'];
// Разбиваем виртуальный URL "/"
$url_name = explode('/', trim($url, ' /'));
if($url_name[0] == 'shop' && isset($url_name[3])){	
	echo 'Page '.$url_name[3].' | {title}'; // выводим в заголовке номер текущей страницы и его title
	echo ''; // выводим в описании номер страницы и description
	echo ''; // склеиваем и выводим основной путь раздела для сохранения веса 
}
else {
	echo '{title}'; // для всех прочих страниц выводим стандартный title
	echo '';
}

Если у вас параметры передаются методом GET, то все тоже самое. второй вариант имеет ссылки следующего вида http://website.com/product?goods=audio&cat=SONY&page=2

if (isset($_GET['page']))
    {
        $canonical .= 'http://';
        // Имя сервера, напр. site.com или www.site.com
        $canonical .= $_SERVER['SERVER_NAME'];
        //product?goods=farkopy&cat=TOYOTA
        $canonical .= "/product?goods=".$_GET['goods']."&cat=".$_GET['cat'];
        echo '';
    }
985 Просмотров Комментариев: 1

Виктор

Ответить

если вложенность только в одной категории то да норм! А если множества то нет! если у тебя статья принадлежит двум или трем категориям... получается что все будут canonical в таком случае если используем bootstrap для выбора категорий то можно первую которая положена в список (выбираем ту которая больше подходит для этой статьи) и отправлять в отдельный элемент у меня для мелочей есть params где хранятся всякие настройки и вытягивать его , а можно сделать доп.поле для него и хранить там alias или id cat кому как вкуснее.