Уже не первый раз от сеошников приходит задача о том, что на страницах пагинации необходимо выводить теги "prev" и "next" с указанием адресов предыдущей и следующей страниц. Данный пост о расширении шаблона пагинации для данной задачи
Рассмотрим произвольный шаблон (решение не имеет к стилям, прописанным в шаблоне, никакого отношения, поэтому подойдет любой ваш шаблон).
Для начала, после подключения пролога в шаблоне, подключим класс Asset:
use Bitrix\Main\Page\Asset; $asset = Asset::getInstance();
Далее, определим функцию, которая из настроек сайтов в базе вытягивает информацию о текущем сайте:
if(!function_exists('PaiGetSiteInfo')){ function PaiGetSiteInfo($siteId = SITE_ID) { if (empty($siteId)) { return ""; } $arSite = false; $obCache = new \CPHPCache(); if ($obCache->InitCache(36000, 'site_' . $siteId, '/')) { $arSite = $obCache->GetVars(); } elseif ($obCache->StartDataCache()) { $arSite = \CSite::GetByID($siteId)->Fetch(); $obCache->EndDataCache($arSite); } return $arSite; } }
Далее, определяем ссылки на предыдущую и следующую страницы:
$context = \Bitrix\Main\Application::getInstance()->getContext(); $server = $context->getServer(); $curPage = $server->getRequestUri(); $arSiteInfo = PaiGetSiteInfo(); $arResult['PROTOCOL'] = CMain::IsHTTPS() ? "https://" : "http://"; $arResult['SERVER_NAME'] = $arSiteInfo['SERVER_NAME']; $arResult['NEXT_NUM'] = $arResult['NavPageNomer'] + 1; $arResult['PREV_NUM'] = $arResult['NavPageNomer'] - 1; $arResult['NEXT_PAGE'] = $arResult['PROTOCOL'] . $arResult['SERVER_NAME'] . $arResult['sUrlPath'] . '?' .$strNavQueryString.'PAGEN_'.$arResult["NavNum"].'=' . $arResult['NEXT_NUM']; $arResult['PREV_PAGE'] = $arResult['PROTOCOL'] . $arResult['SERVER_NAME'] . $arResult['sUrlPath'] . '?' .$strNavQueryString.'PAGEN_'.$arResult["NavNum"].'=' . $arResult['PREV_NUM'];
И последний штрих - выводим все это в шапку сайта (естественно, с проверкой количества страниц - если страница всего одна, то выводить ничего и не нужно):
if(intval($arResult['NavPageCount']) > 1){ if($arResult['PREV_NUM']>=1){ $asset->addString('<link rel="prev" href="'.$arResult['PREV_PAGE'].'" />'); } if($arResult['NEXT_NUM']<=$arResult['NavPageCount']){ $asset->addString('<link rel="next" href="'.$arResult['NEXT_PAGE'].'" />'); } if($arResult['NavPageNomer']>1){ $APPLICATION->SetDirProperty('robots','noindex,follow'); // если не выводится, можете попробовать так: // asset->addString('<meta name="robots" content="noindex, follow" />'); } }
Если заметили, тут кроме ссылок на следующую и предыдущую страницы, также выведен тег robots. В его логику подробно вдаваться не буду. Скажу только, что сео-шники сказали "Надо!". Если вы считаете иначе - удалите этот кусок.
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.