FAQ Module Development for 1C-Bitrix

Custom FAQ Module Development for 1C-Bitrix Imagine: a customer catalog with 500 questions, the standard `bitrix:catalog.list` outputs them all in one list, there is no answer search, and analytics are nonexistent. The user painfully searches for an answer, fails to find it, and leaves for a comp

Our competencies:

Frequently Asked Questions

Custom FAQ Module Development for 1C-Bitrix

Imagine: a customer catalog with 500 questions, the standard bitrix:catalog.list outputs them all in one list, there is no answer search, and analytics are nonexistent. The user painfully searches for an answer, fails to find it, and leaves for a competitor. We encountered such a project on one of our cases — an online store with hundreds of questions about delivery, payment, and returns. The standard infoblock couldn't handle it: the page loaded slowly, editors spent hours on manual sorting, and managers received dozens of identical inquiries in chat. We developed a specialized module that solves these problems. Our experience with Bitrix spans over 10 years and 20+ implemented projects. The module uses ORM (object-relational mapping, Wikipedia) for data operations and supports full-text search.

Limitations of the Standard Infoblock for FAQ

An infoblock with 'question' and 'answer' fields is a quick fix but doesn't scale. The main pain points:

  • No full-text search over answers — Bitrix search only looks through page titles.
  • No grouping by categories with an accordion — all questions are dumped in one list.
  • No analytics: which questions are searched for, which don't help.
  • No 'Ask a Question' form right on the page.

A custom module closes all these gaps. It includes ORM models, AJAX search with highlighting, voting, microdata, and reports.

How We Solve These Problems

We build the module on Bitrix ORM (QuestionTable, CategoryTable, SearchLogTable). This gives strict typing, events, and convenient querying. Search is implemented via AJAX with filtering by %QUESTION% and %ANSWER%, and for high loads, a full-text index in MySQL/PostgreSQL.

How to Speed Up Search with Thousands of Questions?

Standard %LIKE% search in MySQL slows down with 1000+ records. In the module, we implement two levels:

  1. Fast AJAX search — query via QuestionTable::getList() with filter %QUESTION% and %ANSWER% (up to 1000 records).
  2. Full-text index — when migrating to PostgreSQL (or MySQL 5.7+), create an fts_vector column with tsvector, updated via trigger. Search with MATCH ... AGAINST is 10x faster than LIKE.
public function search(string $query): array { $query = mb_strtolower(trim($query)); SearchLogTable::add(['QUERY' => $query]); $result = QuestionTable::getList([ 'select' => ['ID', 'QUESTION', 'ANSWER', 'CATEGORY_ID'], 'filter' => [ 'IS_ACTIVE' => 'Y', [ 'LOGIC' => 'OR', '%QUESTION' => $query, '%ANSWER' => $query, ], ], 'limit' => 10, 'order' => ['IS_FEATURED' => 'DESC', 'VIEWS' => 'DESC'], ])->fetchAll(); return array_map(fn($q) => $this->highlight($q, $query), $result); } 

What Does Schema.org Markup Give?

Schema.org FAQPage markup (Wikipedia: Schema.org) is generated automatically for each question. This allows Yandex and Google to display answers directly in the snippet, increasing click-through rates. Implementation inserts itemscope and itemprop into HTML. We integrated it into the output component with no extra configuration needed. Order the module with microdata and get a boost in organic traffic.

What's Included in the Module Development?

Component Description
ORM models Tables for categories, questions, votes, search log
AJAX search Search over questions and answers with highlighting
Accordion Category grouping with pure CSS, no JavaScript
View counter Incremented via AJAX
Voting 'helped/not helped' Statistics for sorting and identifying problematic answers
'Ask a Question' form Saves drafts for publication
Schema.org FAQPage markup Automatically generated for all questions
Analytics Reports on empty searches, popular questions, negative votes
Admin interface Manage categories, questions, view statistics

Development Timeline

Stage Duration
ORM tables, category & question models 0.5 day
AJAX search with highlighting 1 day
Accordion component, Schema.org 1 day
View counters, voting 0.5 day
'Ask a Question' form 0.5 day
Analytics and reports 1 day
Admin interface 1 day
Testing 0.5 day
Total 6 working days

Adding full-text search via PostgreSQL tsvector adds +1 day.

Example Implementation

When a question is opened, the counter increments:

QuestionTable::update($questionId, ['VIEWS' => new \Bitrix\Main\DB\SqlExpression('VIEWS + 1')]); 

After reading, the user votes 'This helped' or 'Did not help'. Voting statistics are used for sorting (useful questions higher) and for rewriting unclear answers.

The accordion is implemented with <details>/<summary> — indexed by search engines, requires no JavaScript. If ?q=question-slug is present, the section opens automatically.

Schema.org FAQPage markup is generated automatically:

<div itemscope itemtype="https://schema.org/FAQPage"> <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> <h3 itemprop="name">How to process a return?</h3> <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text">To process a return...</div> </div> </div> </div> 

Analytics and Reports

Based on b_vendor_faq_search_log, we build reports:

  • Top queries with no results — what users search for but don't find.
  • Most viewed questions over a period.
  • Questions with a high percentage of 'did not help'.

This data helps editors improve content.

Step-by-Step Implementation of Full-Text Search

  1. Create an fts_vector column in the questions table.
  2. Write a trigger that updates fts_vector on insert/update.
  3. Replace %LIKE% with MATCH ... AGAINST in the search() method.
  4. Configure relevance using field weights (e.g., question weight > answer).
  5. Test performance with 10,000 records.

Why Choose Us

  • Official 1C-Bitrix documentation confirms the best practices we use.
  • 10+ years of experience in Bitrix and Bitrix24 development.
  • Certified specialists — we guarantee code quality and deadline adherence.
  • Transparent process — you always see project status.
  • 30-day post-delivery support — free admin training.

Assess your project — contact us for a consultation. We will calculate the cost and timeline. Get a personalized offer today.