Генерируем HTML-структуру...
Качественная, кроссбраузерная верстка
Адаптивность, валидность, высокая скорость загрузки сайта
Интеграция верстки с CMS
1С-Битрикс, Joomla, Wordpress и многими другими.
Серверное и клиентское программирование
PHP, Javascript(Jquery, Angular.js). От js-анимаций до REST-систем.
Сайт под ключ
От сайтов-визиток и лендингов до корпоративных порталов и интернет-магазинов на 1С-Битрикс
Оптимизация и доработка существующих сайтов
Увеличение скорости загрузки, стабильности работы, исправление ошибок. Удаление вирусов и повышение безопасности сайта.

Что такое canonical и его генерация

Достаточно часто, при внедрении сео-рекомендаций встречается требование настроить генерацию тега canonical. Что это за тег? Как правильно его генерировать? Какие нюансы учитывать? Разбираемся.

Итак, представим ситуацию: интернет-магазин, с большим количеством категорий и карточек товара. На сайте есть постраничная навигация, встречаются ссылки с utm-метками, время от времени попадаются ссылки с непонятным get-параметрами, взявшимися из ниоткуда.. И как результат, в поисковой выдаче встречаются ссылки с этими «мусорными» параметрами. При этом, поисковики могут считать страницы с нормальными ссылками дублями и пессимизировать их в выдаче. Что же делать?

Для решения этих проблем есть тег canonical. Синтаксис его таков:

<link rel="canonical" href="канонический URL" />

В качестве канонического url нужно указывать тот адрес страницы, который является основным. Без utm-меток, битриксового clear_cache и прочего. При этом, в url обязательно нужно указывать протокол сайта и домен.

Как правило, проблемы возникают у категорий товаров и карточек товаров. И конечно, не стоит прописывать эти url вручную, по понятным причинам – нужно настроить их генерацию. Как это сделать правильно?

Первым делом, нужно определиться – все ли url вашего сайта доступны по адресам, содержащим буквы только в нижнем регистре. Желательно настроить сайт так, чтобы это работало, пользователи как правило не заморачиваются с регистром в url и пишут все в нижнем.

Во-вторых, нужно определить, какие get-параметры важны для работы вашего сайта. Например, пагинация. Или, если используется ЧПУ – возможно там указывается id товара, или что-то в этом роде. В идеальном варианте, GET-параметры вообще не нужно использовать в адресах страниц, но бывают такие случаи, когда их нельзя просто так выкинуть.

Алгоритм решения выглядит так:

Получаем адрес текущей страницы Приводим все символы к нижнему регистру Выкидываем все get-параметры кроме тех, что в списке критически важных Генерируем тег, подставляем его в head

Для примера, вот готовый рецепт генерации тега canonical для umi.cms:

в classes/modules/custom.php определяем функцию:

public function setcano() {
	$qu = strpos($_SERVER['REQUEST_URI'], '?');
	$ruri = substr($_SERVER['REQUEST_URI'], 0, $qu);
	if(!$ruri){
	$ruri=$_SERVER['REQUEST_URI'];
	}
	if($_GET['p']>0){
	$ruri = $ruri.'?p='.$_GET['p'];
	
	}
	if($_GET['search_string']){
	$ruri = $ruri.'?search_string='.$_GET['search_string'];
	
	}
	return mb_strtolower('');
	
}	

В шаблоне, в нужное место в head подставляем:

%custom setcano()%

Вот и все. В этом примере, учитывается GET-параметр пагинации «p», другие параметры отсекаются. Функция strtolower используется для приведения строки с адресом к нижнему регистру.

На Битриксе это делается чуть проще – скрипт генерации можно записывать прямо в шаблоне. Но при этом, у битрикса есть своя особенность: при чпу, настроенном стандартным образом, очень часто можно подменить символьный код одной категории на другой в адресе карточки товара, и получить ту же страницу. А точнее – получить дубль страницы, с точки зрения поисковика. Поэтому, очень важно этот момент не упустить из виду и исправить. Хотя, это наверное тема для целого отдельного поста:)

SEO, 11 Сентября 2015

Комментарии

25.11.2016 10:06:38
Дмитрий, добрый день!
Подскажите, пожалуйста, существует ли какая-то формула генерации канонических url для указания таковыми соответствующих страниц сайта с протоколом https?
То есть, если смотришь исходный код любой страницы сайта с протоколом https, в нем указывается, что канонической является аналогичная страница с протоколом https?
Заранее благодарен за ответ!
С уважением,

Добавить комментарий

CAPTCHA
← Вернуться к блогу
Ознакомьтесь с моим резюме

Обратная связь

Вы также можете связаться со мной, отправив письмо на почту . В любом случае, я постараюсь ответить вам как можно оперативнее!