Як прибрати дублі сторінок сайту на 1с-бітрікс, bitrix

У мережі багато чого написано з приводу того як позбутися дублів в bitrix - але все дуже не ясно і размивчато - давайте вносити ясність.

Як прибрати дублі сторінок сайту на 1С-Бітрікс - ми будемо на живому прикладі, де я і прибирав ці дублі.

Є дві сторінки однакові абсолютно:

1) Насамперед знаходимо файл result_modifier.php (він лежить зазвичай в папці з шаблоном і там всередині знайдете папку catalog.element і в ній ще папку default ось в ній):

// add for canonical
$ 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'));

2) Тепер в тій же папці є файл - component_epilog.php - в ньому вставляємо наступне:

global $ APPLICATION // додати тільки, якщо цього немає
// add for canonical
$ APPLICATION-> AddHeadString ( '', True);

До речі, всі ці файли повинні починатися з цього:

Для тих, хто не розбирається в php - в цих файлах ви вставляєте файл в кінець, але перед таким символом?>. інакше у вас нічого не заробить.

$ 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 вставляємо це:

Самий робочий метод - і найпростіший! Вставляємо нижченаведений код в header.php - і нічого все, що вище було понаписувано не треба навіть (по ідеї цей варіант найкращий виявився, і мороки менше, тільки 404 сторінки - для них він теж виставляє, не особливо знаю як це виключити, скоро розберуся):