1С Bitrix: Установка canonical адреса ( тега rel=canonical ) для статической страницы
Необходимо открыть для редактирования требуемую статическую страницу, у которой надо задать canonical-адрес. Для этого заходим в нужную папку и выбирает для редактирования index.php ( Редактировать как PHP )
После того как файл открылся, в него необходимо вставить php-код:
$APPLICATION->SetPageProperty("canonical", 'https://'.SITE_SERVER_NAME.$APPLICATION->GetCurDir());
Вставляем сразу после строки require($_SERVER[«DOCUMENT_ROOT»].»/bitrix/header.php»); и сохраняем изменения.

- https:// — протокол который используется на сайте, если сайт работает по незащищённому протоколу http тогда исправьте на него.
- SITE_SERVER_NAME — системная переменная Bitrix а именно — поле «URL сервера» в настройках текущего сайта.
- $APPLICATION->GetCurDir() — функция возвращает каталог текущей страницы относительно корня.
Битрикс. Добавляем
Обратившись ко мне вы получите надежного и сведущего исполнителя, который быстро и качественно реализует любую задачу для Вас и Вашего бизнеса.
Последние записи
Добавляем каноническую ссылку через настройки комплексного компонента каталог
Если у вас стандартный компонент и шаблон, то с большой долей вероятности вам достаточно просто добавить параметр в вызов компонента:
$APPLICATION->IncludeComponent( 'bitrix:catalog', 'catalog', [ . 'DETAIL_SET_CANONICAL_URL'=> 'Y' . ] );
Добавляем rel canonical в header.php
Как вариант, каноническую ссылку можно добавить обрезая из урл все лишнее
$page = $APPLICATION->GetCurPage(true); if (preg_match('/^\/catalog/', $curPage)) echo '';
GetCurDir(); ?>" />
Добавление канонической ссылки через шаблоны компонента catalog
В файле result_modifier.php компонента catalog.section в самый низ добавляем:
$arSection = CIblockSection::GetById($arResult["ID"])->GetNext(); $arResult['SECTION_PAGE_URL'] = $arSection['SECTION_PAGE_URL']; $cp = $this->__component; if (is_object($cp)) $cp->SetResultCacheKeys(array('SECTION_PAGE_URL'));
В файл component_epilog.php добавляем
$APPLICATION->AddHeadString('',true);
В шаблоне компонента catalog.element действуем аналогичным способом. В файл result_modifier.php добавляем
$arElement = CIblockElement::GetById($arResult["ID"])->GetNext(); $arResult['DETAIL_PAGE_URL'] = $arElement['DETAIL_PAGE_URL']; $cp = $this->__component; if (is_object($cp)) $cp->SetResultCacheKeys(array('DETAIL_PAGE_URL'));
В component_epilog.php добавляем
$APPLICATION->AddHeadString('',true);
Комментарии
Комментариев еще нет, Вы можете стать первым кто его оставит
Оставьте комментарий
На сайте используется система премодерирования комментариев, поэтому ваше сообщение будет опубликовано лишь после одобрения модератором
ОБРАТНАЯ СВЯЗЬ
Напишите мне
Вы разрабатываете новый сервис, вносите доработки в существующий и хотите лучше чем у конкурентов? Вы обратились по адресу. Предлагаю вам комплексную разработку сайтов студийного уровня. У меня вы можете заказать дизайн, верстку, програмированние, разработку нетрадиционного функционала, реализацию связи между CMS, CRM и Data Analitics, а так же все остальное касаемое сайтов, кроме продвижения.
Обращайтесь, я всегда проконсультирую по всем вопросам и помогу подобрать наиболее эффективное решение для Вашего бизнеса. Я занимаюсь созданием сайтов в Новосибирске и в других регионах России, также работаю со странами СНГ. Вы останетесь довольны нашим сотрудничеством
Форум
В магазине есть сортировка по цене, популярности и т.д. Как мне указать приоритетную страницу, чтобы не было дублей в выдаче? Куда нужно добавить rel=»canonical» ? Как я понял используется эта конструкция
$APPLICATION->AddHeadS tring(«[*]» );
Но я абсолютно не понимаю куда ее вставлять и как правильно прописывать.В шаблон или еще куда-то?Я не знаток php так что прошу объяснить на пальцах
Постоянный посетитель
Сообщений: 319 Баллов: 25 Регистрация: 26.08.2010
03.10.2012 18:14:53
в
Заглянувший
Сообщений: 22 Баллов: 2 Регистрация: 05.09.2012
03.10.2012 18:27:26
И что дальше? если бы все так было просто, то я бы не спрашивал. Можно более развернутый ответ?Я же сказал, что прошу популярно объяснить.
Постоянный посетитель
Сообщений: 319 Баллов: 25 Регистрация: 26.08.2010
04.10.2012 00:12:35
Вот тут можете почитать про rel=»canonical». Тег вставляется в , в значении тега указывается предпочтительная ссылка из возможного набора подобных страниц. Например, подобными считаться будет 2 страницы одного товарного раздела, если одна отсортирована по цене, а вторая по названию товаров — дублирование контента на лицо. Следовательно вам на всех этих страницах надо указать в качестве canonical страницу на первую страницу раздела вообще без сортировки. Например, у вас есть набор страниц:
/catalog/section/
/catalog/section/?page=2
/catalog/section/?sort=name&dir=asc
/catalog/section/?sort=name&dir=desc
и т.д.
Все эти страницы должны иметь в качестве canonical /catalog/section/ . Сделать это можно массой различных способов, например, вы можете использовать переменные страницы и раздела:
GetProperty("canonical")?>"/>
Переменная canonical в данном случае — это может быть параметр страницы, раздела, либо задаваться через $APPLICATION->SetPageProperty(«canonical», $val);.
Конкретно, если рассматривать товарный каталог, который обычно работает через комплексный компонент, например, bitrix:catalog, то вы можете сделать копию шаблона компонента и разместить соответствующий код в шаблонах этого компонента (detail.php, section.php, top.php). В качестве значения можете брать текущий URL после очистки всех параметров, это можно сделать опять же массой способов. Например, $val = $APPLICATION->GetCurPageParam(«», array_keys($_GET), false()); — получите текущий URL без параметров вообще.
Прописать rel=»canonical» для страниц с get-параметрами
Поскольку контент(тексты, метаданные) на этих страницах одинаковый, то создаются дубли, а значит они будут хуже индексироваться.
Чтобы указать поисковому роботу основную страницу (каноническую), используется rel=»canonical».
Получите консультацию специалиста

Cертифицированный программист 1С Битрикс
У меня Вы можете заказать программные работы или проконсультироваться по сайту. C 2010 года разрабатываю и поддерживаю сайты на 1С Битрикс. Являюсь Золотым партнером компании 1С Битрикс и имею компетенции: Интеграция с 1С, Композитный сайт, Битрикс24, а также все сертификаты специалиста.
Поделиться:
- Услуги
- Перевод сайта на https
- Выгрузка товаров в Яндекс.Маркет
- Интеграция сайта с 1С
- Создание сайтов
- Композитный сайт
- Внутренняя оптимизация сайта
- Проверить ответ сервера
- Сделать 301 редирект домена без WWW на домен с WWW
- Настроить sitemap
- Настроить robots.txt
- Добавить сайт в вебмастера Яндекса и Google
- Внедряем микроразметку на сайт
- Убираем циклические ссылки
- Прописать rel=»canonical» для страниц с get-параметрами
- Скрывать тексты при пагинации/сортировке
- Создаем ЯндексЧат
- Аудит внутренней оптимизации сайта
