Как в 1С‑Битрикс реализовать поиск по страницам со статическим содержимым?

У меня сайт на 1С-Битрикс. На нём много статических страниц, например: <br/> mysite.ru/page-one/index.php <br/> mysite.ru/page-two/index.php <br/> mysite.ru/page-three/index.php <br/> и т.д. <br/> На каждой странице есть верстка с текстами, заголовками, картинками и т.д. Мне нужно сделать поиск по сайту, который находил бы именно эти статические страницы — по заголовкам и по содержимому. Я нашёл в Битрикс «Стандартную страницу поиска», установил и настроил её, указав область поиска [main] Статические файлы, но при вводе запроса, например «Контакты», страница не находится. <br/> Переиндексацию запускал — не помогает. <br/> Также пробовал настройки по инструкции: <a href="https://arturgolubev.ru/knowledge/course14/lesson97/" rel="nofollow">https://arturgolubev.ru/knowledge/course14/lesson97/</a> — результата нет. <br/> Подскажите, в чём может быть причина и что ещё нужно настроить (на уровне сайта или на искомых страницах), чтобы поиск корректно индексировал и находил статические страницы? Заранее спасибо.
  • 4 июня 2026 г. 18:01
Ответы на вопрос 4
Кратко — проблема почти всегда не в компоненте поиска, а в том, как настроен индексатор: он либо не «видит» ваши страницы (не может к ним обратиться), либо эти страницы исключены из областей/масок индексатора. Ниже — пошаговая инструкция, что проверить и исправить.

1) Правильные настройки индексатора (в админке)
- Откройте настройки модуля Поиск: /bitrix/admin/settings.php?mid=search&lang=ru (или: Настройки → Настройки продукта → Поиск).
- Далее — страница «Индексация сайта» или /bitrix/admin/search_index.php. Для каждого сайта укажите:
  - Корректный протокол (http/https) и хост (домен без «/»).
  - Порт, если нестандартный.
  - Пути, которые индексировать (например «/» или конкретные папки).
  - Маски исключения/включения (убедитесь, что не исключены ваши папки и index.php).
  - Разрешённые расширения файлов (.php, .html, .htm и т.д.).

2) Проверка доступа индексатора к сайту (частая причина)
- Индексатор обращается к сайту по HTTP как к внешнему ресурсу. Проверьте с сервера:
  - curl -I http(s)://ваш-домен/page-one/  — должна быть HTTP 200.
  - curl http(s)://ваш-домен/page-one/ | head — убедитесь, что в ответе виден HTML с текстом.
- Если эти запросы возвращают 301/302/403/500 или пустую страницу — индексатор не сможет.
- Частые причины: сайт требует авторизации, стоит .htaccess с запретом, сервер не резолвит свой домен (DNS), firewall блокирует loopback. Решения: сделать страницы общедоступными для индексатора, настроить hosts чтобы домен резолвился локально, при необходимости указать логин/пароль в настройках индексатора.

3) Запустите переиндексацию вручную и смотрите лог
- В админке на странице индексирования нажмите «Переиндексация» / «Начать индексирование».
- После выполнения просмотрите логи/сообщения об ошибках на странице индексирования — там видно, какие URL обработаны, какие ошибки были (403, 404, timeouts).
- Можно также смотреть таблицу b_search_content в БД: SELECT URL, SITE_ID, CONTENT FROM b_search_content WHERE URL LIKE '%page-one%';

4) Проверьте содержимое страниц
- Убедитесь, что основной текст действительно присутствует в HTML (не рисован картинками).
- Уберите/не используйте мета-теги noindex или тег <noindex> (если он есть в шаблоне).
- Если текст подгружается через AJAX после загрузки страницы — индексатор этот текст не увидит. Нужно, чтобы основной текст был в окончательном HTML.

5) Настройки компонента поиска на сайте
- На странице результатов (bitrix:search.page) в параметрах области поиска должна быть отмечена «Статические файлы» (Static files) и выбран правильный site_id (если у вас мультисайт).
- Если вы используете фильтры/ограничения по SITE_ID или по разделам — проверьте их.

6) Специальные случаи
- HTTPS и самоподписанные сертификаты: если сайт на https с проблемным сертификатом, индексатор может не пройти. Укажите https и, при необходимости, исправьте сертификат.
- Composite/сaching: редко, но может влиять. Временно отключите composite при индексировании для проверки.
- Если сервер не может обращаться к себе через внешний IP — добавьте в /etc/hosts маппинг домена на 127.0.0.1 или локальный IP.

7) Если всё проверили, но не индексируется
- Посмотрите список проиндексированных URL в админке — может быть, страницы проиндексированы под другим URL (без trailing slash, с index.php и т.п.).
- Выполните простую тест-страницу /test-page.html с явным текстом «тест» доступную снаружи и повторно индексируйте — проверите, индексируется ли вообще что-то.
- Можно вручную добавить или обновить запись в индексе через API: CSearch::Index("s1", "/path/to/page.php", $text) — но это костыль, лучше настроить автоматический индексатор.

Если хотите, могу помочь конкретнее — пришлите:
- URL одной проблемной страницы,
- результаты curl с сервера (curl -I и curl ... | head),
- скрин/текст ошибок, которые показывает страница индексирования в админке,
- настройки индексирования (какие пути/маски указаны).
чекни: на каждой страничке в первом php-блоке должен быть <code>$APPLICATION-&gt;SetTitle('Название страницы')</code> . Без него индексатор статических файлов их не подберёт — это требование Битрикса, не баг. Добавишь — переиндексируй.
Использование на странице компонента редактирования  визуально, например <code>bitrix:catalog.section</code> <br/> Перенести страницы со всей версткой в каталог: <code>_pages</code> <br/> Только не с расширением <code>.php</code> а <code>page-one.html</code> и т.д. <br/> А дальше уже вставлять их. <br/> Битрикс должен их проиндексировать для поиска.
А вы сам поиск настроили? Сначала "Настройки - Настройки продукта - Настройки модулей - Поиск" настраиваете, потом "Настройки - Поиск - Переиндексация" , снимаете флажок "Переиндексировать только измененные". <br/> Поиск в Битриксе осуществляется не "на лету". Он идексирует контент в базу, и ищет по своему индексу
Похожие вопросы