404 ошибка на несуществующих страницах пагинации в битриксе

С самого начала, Битрикс имел проблемы с СЕО оптимизацией. Со временем настройки продукта претерпели изменения и часто их достаточно, для того, чтобы грамотно провести оптимизацию. Но есть момент, который, все еще имеет проблему с оптимизацией. Если в каталоге всего 5 страниц товаров, а мы перешли на 10ю, то увидим первую страницу. Это в корне не верно и нужно проставить 404 ошибку для несуществующих страниц пагинации. Для этого нам нужно внести правки в двух файлах шаблона компонента, который выводит элементы. Первый файл: result_modifier.php - здесь мы выведем из кеширования некоторые параметры компонента, чтобы отдавались актуальные, а не кешированные. И второй файл, который не кешируется в шаблоне: component_epilog.php - в нем мы и будем делать проверки.

result_modifier.php

$arResult['NAV_NUM'] = $arResult['NAV_RESULT']->NavNum;
$arResult['NAV_NUMBER'] = $arResult['NAV_RESULT']->NavPageNomer;

if($arResult['NAV_NUM'] && $arResult['NAV_NUMBER']){
    $cp = $this->__component; // объект компонента

    $cp->SetResultCacheKeys(
        array(
            'NAV_NUM',
            'NAV_NUMBER'
        )
    );

}

component_epilog.php

use Bitrix\Main\Application;

$arGetParams = Application::getInstance()->getContext()->getRequest()->getQueryList()->toArray();

if ($arGetParams["PAGEN_" . $arResult["NAV_NUM"]] > 0 && $arResult["NAV_NUMBER"] != $arGetParams["PAGEN_" . $arResult["NAV_NUM"]])
{
    CHTTP::SetStatus("404 Not Found");
    define('ERROR_404','Y');
	Bitrix\Iblock\Component\Tools::process404(
	       'Не найден', //Сообщение
	       true, // Нужно ли определять 404-ю константу
	       true, // Устанавливать ли статус
	       true, // Показывать ли 404-ю страницу
	       false // Ссылка на отличную от стандартной 404-ю
	);

}