Как настроить страницу 404 на сайте 1С-Битрикс: шаблон, редиректы и SEO

Как настроить страницу 404 на сайте 1С-Битрикс: шаблон, редиректы и SEO

Удалили двести карточек после распродажи, в браузере все выглядит нормально: "Товар не найден" в шаблоне каталога. Но curl -I показывает HTTP 200, и через месяц в Вебмастере сотни страниц с одинаковым title. Это "мягкая 404" - ловушка CMS "1С-Битрикс: Управление сайтом" после переезда или чистки каталога. Ниже настроите /404.php с кодом 404, снимете галочку "статус 200 на ошибку", разведете 301 и настоящие 404 и проверите результат через curl и Вебмастер.

HTTP-код важнее красивого текста: робот смотрит заголовок ответа, а не надпись "элемент не найден". Нужны /404.php с CHTTP::SetStatus("404 Not Found"), отключенная опция "статус 200 на 404" в главном модуле и галочки SET_STATUS_404 плюс SHOW_404 в каталоге. Редирект всех битых URL на /404 - ошибка: прямой 404 на исходном адресе или 301 только туда, где страница реально переехала.

Речь про "Управление сайтом" на вашем хостинге - не про портал Bitrix24. Если 404 всплыла после переезда, сверьте карту URL из гайда по переносу на Bitrix.

Разберите, почему "мягкая 404" бьет по SEO и заявкам

Сравнение мягкой 404 и настоящей 404: влияние на SEO и индекс

HTTP-статус - код ответа сервера. 404 значит "страницы нет", 200 - "индексируй". Когда CMS показывает текст ошибки с кодом 200, поисковик считает URL рабочим - это soft 404. На форуме dev.1c-bitrix.ru SEO-специалисты и интеграторы годами спорят про редирект на /404.html, но по HTTP-семантике верно только одно: отдавать 404 на исходном URL без смены адреса.

Итог для бизнеса: дубли title на сотнях адресов, просадка каталога, реклама на мертвые посадочные, рост "дублей" в Вебмастере вместо честных 404. Маркетолог видит "элемент не найден" и успокаивается; робот видит 200 OK и добавляет URL в индекс.

Делайте: проверяйте curl -I, а не только браузер. Не делайте: типичная ошибка — считать "раздел не найден" в шаблоне каталога настоящей 404; на практике компонент часто живет с кодом 200.

Создайте или обновите файл 404.php в корне сайта

Схема настройки 404.php в корне сайта на Битрикс

Шаблон ошибки - PHP-файл /404.php в корне, не 404.html: при ЧПУ адрес в браузере должен оставаться битым. Минимальный каркас по dev.1c-bitrix.ru:

<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
CHTTP::SetStatus('404 Not Found');
@define('ERROR_404', 'Y');
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');
$APPLICATION->SetTitle('Страница не найдена');
?>
<p>Такой страницы нет. Воспользуйтесь поиском или каталогом.</p>
<?php require($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php'); ?>
  1. Создайте или откройте /404.php в корне DOCUMENT_ROOT.
  2. Добавьте SetStatus, ERROR_404, prolog/header/footer.
  3. Задайте title через SetTitle - не оставляйте пустой заголовок.
  4. На Apache проверьте.htaccess: ErrorDocument 404 /404.php.
  5. На Nginx (BitrixVM или VPS) настройте error_page 404 на /404.php с кодом 404, не редиректом на главную.

Строки CHTTP::SetStatus и ERROR_404 обязательны: без них шаблон рисуется с кодом 200. Header.php и footer.php дают единый дизайн - шапка, меню, поиск. Проверка: откройте несуществующий URL и убедитесь, что в строке браузера остался битый путь, а не редирект на /404.php с кодом 301.

На shared-хостинге с Apache часто хватает.htaccess. На VPS сверьте конфиг с документацией провайдера - при смене хостинга, например на Beget, меняется связка Apache/Nginx.

Делайте: храните 404.php в Git. Не делайте: не ставьте 301 с битых URL на /404.php.

Отключите "статус 200 на 404" в главном модуле

Чеклист отключения опции «статус 200 на 404» в главном модуле Битрикс

"Настройки - Настройки модулей - Главный модуль" - снимите "Посылать в заголовке статус 200 на 404 ошибку". Без этого даже корректный 404.php может уйти с кодом 200. После сохранения снова проверьте curl -I на несуществующий URL.

Делайте: зафиксируйте скрин настройки. Не делайте: не включайте опцию "для совместимости" без причины.

Настройте каталог и news: SET_STATUS_404 и SHOW_404

URL удаленного товара открывается, bitrix:catalog пишет "элемент не найден", код 200. В параметрах комплексного компонента включите "Устанавливать статус 404" (SET_STATUS_404) и "Показывать специальную страницу" (SHOW_404). То же для bitrix:news.

В кастомном PHP с D7 вызывайте:

\Bitrix\Iblock\Component\Tools::process404('', true, true, true);

Если после галочек остается текст компонента, добавьте OnEpilog в /local/php_interface/init.php: при ERROR_404 очистить буфер и подключить /404.php. Магазины особенно уязвимы - см. гайд по интернет-магазину.

Делайте: тестируйте URL удаленного товара. Не делайте: не оставляйте снятые товары с открытым ЧПУ без 404 или 301.

Соберите полезную 404: поиск, меню и путь для клиента

Кастомная 404 - навигация, не мем. Добавьте поиск, 4-6 ссылок на ключевые разделы, кнопку "На главную", короткий текст без жаргона. Сохраняйте шапку и футер - человек не должен чувствовать, что попал на другой сайт. По данным community-гайдов, страница с поиском и каталогом удерживает пользователя в 2-3 раза чаще, чем пустой экран с одной ссылкой.

Делайте: единый дизайн с сайтом. Не делайте: не гонитесь за noindex на /404.php - важен код на каждом битом URL.

Выберите между 301 и 404 после миграции

Редирект всех битых ссылок на /404 - неверно по HTTP: робот путает "переехало" и "не существует".

Ситуация Действие Код
Страница переехала 301 на новый URL один к одному 301
Товар удален без замены 404 на исходном URL, показ /404.php 404
URL никогда не существовал 404, без редиректа на главную 404
"Все 404 на главную" Не использовать soft 404
Итог: 301 только для URL с реальной заменой; остальное - честный 404. Карту редиректов собирают до DNS - см. перенос и SEO-настройку Bitrix.

Делайте: таблица old URL → 301 или 404. Не делайте: 301 на /404.php - эксперты Битрикс и webmasters.stackexchange.com сходятся: это технически неверно.

Проверьте результат: curl, Вебмастер и краулер

Схема: curl -I на битый URL; curl на удаленный товар; Вебмастер «Исключенные»; краулер; сверка с картой 301.
  1. curl -I https://ваш-домен.ru/nesushchestvuyushchiy-url/ - в ответе HTTP 404.
  2. Повторите для URL снятого товара - здесь чаще остается 200.
  3. В DevTools (Network) сверьте Status Code для коллег без curl.
  4. В Яндекс.Вебмастере смотрите "Исключенные" - рост 404, а не дублей с кодом 200.
  5. Через 2-4 недели прогоните краулером топ-URL из старой карты.
  6. Зафиксируйте в чек-листе после запуска.

Делайте: сохраняйте вывод curl в тикет. Не делайте: не закрывайте задачу по скриншоту без проверки каталога.

Что получите после настройки

Любой несуществующий URL отдает HTTP 404 и единый /404.php в дизайне сайта. Роботы перестают копить "мягкие" дубли; перенесенные страницы тянут вес через 301; мусор без аналога выпадает из индекса. Базовую SEO-настройку CMS после правок 404 имеет смысл сверить с отдельным гайдом - sitemap, canonical и robots должны работать в связке с кодами ответа.

  1. Диагностика curl -I на статике и удаленном товаре.
  2. /404.php и снятие "статус 200 на 404".
  3. SET_STATUS_404 и SHOW_404 в каталоге.
  4. Разведение 301 и 404 по таблице.
  5. Чек-лист B05 и мониторинг Вебмастера две недели.

Сложный каталог - обсудите на mvmolkov.ru. Примеры магазинов - в портфолио.

Автор: Максим Мольков, Senior-разработчик 1С-Битрикс, 8+ лет.
Источники: dev.1c-bitrix.ru.

Частые вопросы

Где изменить текст страницы 404 в Bitrix?

В /404.php между header.php и footer.php. Title - через SetTitle. Текст не лежит в разделе "Контент" админки - это PHP-файл шаблона.

Нужен ли редирект всех битых ссылок на главную?

Нет. Массовый 301 на главную - soft 404. Для несуществующих адресов - HTTP 404 на том же пути; 301 только если страница переехала один к одному.

Как проверить 404 после переноса?

curl -I на несуществующий путь, удаленный товар и старый URL без 301. Сверьте с картой редиректов. В Вебмастере - "Исключенные", без дублей с кодом 200. Повторите краулером через 2-4 недели.

Влияет ли 404 на SEO?

Честные 404 не штрафуют домен. Вредит "мягкая 404" с кодом 200 - дубли title и размывание каталога. 301 сохраняет вес там, где есть замена страницы.

Почему каталог пишет "элемент не найден", а не /404.php?

Не включены SET_STATUS_404 и SHOW_404 в bitrix:catalog. Включите обе галочки. На старых шаблонах добавьте OnEpilog в init.php.

Можно ли 404.html вместо 404.php?

Не рекомендуется: официальный курс указывает 404.php. HTML не подключает ядро CMS и ломает единый шаблон с ЧПУ.

Это для Bitrix24 или CMS на хостинге?

Для "1С-Битрикс: Управление сайтом" на вашем домене. Облачный CRM-портал не использует /404.php в корне — другой продукт, другие настройки.

Читайте также

Интеграции с 1С и API
947 6 мин.

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Пошаговая настройка регистрации на сайте битрикс: Главный модуль, main.register, system.auth.form и sale.personal.section с историей заказов и 152-ФЗ.
Интеграции с 1С и API
675 15 мин.

Что такое компонент в Битриксе и как он работает

Каждый разработчик, впервые столкнувшийся с Битриксом, проходит через своеобразный обряд посвящения. Вначале кажется, что это просто CMS, где можно поправить HTML в визуальном редакторе или дописать пару строк CSS. Но однажды наступает момент, когда нужно изменить логику вывода новостей, отфильтровать товары по хитрому свойству или добавить на страницу нечто совершенно новое. И тут он впервые слышит это слово — «компонент». Для многих этот момент становится стеной. Система, казавшаяся понятной, вдруг превращается в черный ящик, полный непонятных файлов и странных переменных. Но стоит лишь раз заглянуть под капот, как эта стена рассыпается, превращаясь в набор удивительно логичных и мощных строительных блоков. Понимание компонентов — это тот самый щелчок, после которого разработка на Битрикс из мучения превращается в творчество.

Эта статья — ваш проводник в мир компонентов «1С-Битрикс». Мы не будем сыпать сухими терминами из документации. Вместо этого мы совершим путешествие: от философии, заложенной в эту архитектуру, до мельчайших деталей её работы. Мы разберем компонент на атомы — его файлы, логику, шаблон, параметры — и соберем обратно, чтобы вы не просто знали, что это, но и глубоко понимали, почему это работает именно так. Это знание — ключ к эффективной и профессиональной разработке на Битрикс.

Интеграции с 1С и API
605 2 мин.

Установка Composer в 1С-Битрикс

Установка Composer в проекте на 1С-Битрикс требует учета особенностей платформы, чтобы обеспечить корректную работу и интеграцию с системой.