Breadcrumbs in 1C-Bitrix: Setup and Microdata
A typical situation: after migrating a site to Bitrix from another CMS, breadcrumbs stop displaying — the component is there, but the chain is empty. Or it shows a path like "Home → Catalog → Product" when it should be "Home → Catalog → Subcategory → Product". We've encountered such cases dozens of times over 10+ years of development. Let's dive into how the mechanism works at the core level and how we set up breadcrumbs turnkey — with a guarantee that they will work correctly on all pages, including catalog sections and products.
Why breadcrumbs matter for SEO?
Breadcrumbs are not just a navigation element. Search engines use them to understand site structure and show them in search results as rich snippets. According to our data, after implementing Schema.org BreadcrumbList, organic traffic CTR increases on average by 20–30%. Moreover, correct breadcrumbs reduce browsing depth and decrease bounce rate. For e-commerce stores with catalogs of over 1000 products, proper microdata yields a 15–25% increase in search traffic.
Problems we solve
Incorrect section order. When a product is linked to multiple sections, Bitrix uses IBLOCK_SECTION_ID — the main section. If it does not match the desired path, breadcrumbs break. The solution is to reassign the binding or custom-build the chain via AddChainItem.
Technical titles instead of names. In .section.php files, the SetTitle() or AddChainItem() calls are often missing. Then the file name ends up in the breadcrumb. We check all folders from root to current. In 90% of cases, the issue is resolved within 2 hours.
Missing Schema.org microdata. Even perfectly built breadcrumbs without markup provide no advantage in search results. Search engines love structured data, and we add BreadcrumbList to every project — this increases CTR by up to 30%.
How Bitrix builds breadcrumbs
Bitrix automatically constructs the navigation chain based on the site's folder structure. Each folder has a .section.php file where the section name for breadcrumbs is defined.
Example /catalog/.section.php:
<? $APPLICATION->SetTitle('Catalog'); $APPLICATION->AddChainItem('Catalog', '/catalog/'); ?> The bitrix:breadcrumb component outputs the collected chain:
$APPLICATION->IncludeComponent('bitrix:breadcrumb', '', [ 'START_FROM' => 0, // which level to start from (0 = from home) 'PATH' => '', // empty = current path 'SHOW_ROOT' => 'Y', // whether to show 'Home' ]); How to programmatically add an item to the chain?
In any PHP code or component template, use the $APPLICATION object methods:
$APPLICATION->AddChainItem('Item name', '/path/to/page/'); $APPLICATION->SetTitle('Page title'); // title = last breadcrumb The chain is stored in the $APPLICATION object and is reset on each request.
Case study from our practice: fixing a product chain
Recently, a client complained that on the product page, breadcrumbs showed "Home → Catalog" instead of "Home → Catalog → Subcategory". It turned out that the product had an incorrect IBLOCK_SECTION_ID. We reassigned the binding to the correct section and additionally customized the template — adding a separator "→" instead of the standard "/". The work took 3 hours. The result: users began leaving the product card less often, and navigation became intuitive.
Comparison of methods: automatic vs programmatic
The automatic method via .section.php and bitrix:breadcrumb is the fastest — no programming required, but it's rigidly tied to the file structure. The programmatic method via AddChainItem gives full flexibility: you can set any path, even one that does not match the actual folder structure. The catalog component with ADD_SECTIONS_CHAIN automatically pulls sections from the infoblock, but only works for infoblock elements. We usually combine them: for the catalog we use ADD_SECTIONS_CHAIN, for static pages — bitrix:breadcrumb with .section.php adjustments. This approach reduces maintenance time by half when adding new sections compared to a purely automatic method.
Common mistakes in setup
In practice, people often confuse ADD_SECTIONS_CHAIN with enabling the bitrix:breadcrumb component itself. The first adds sections from the infoblock, the second builds the path based on the file structure. If both are enabled, the chain can duplicate. We always check that START_FROM matches the number of levels. Another common problem is the absence of a .section.php file in the root directory, causing "Home" to not display. The solution is to add SetTitle('Home') in the root .section.php.
What is included in the work
| Stage | What we do | Result |
|---|---|---|
| Analysis | Check .section.php files, components, infoblock settings | Plan of improvements |
| Design | Agree on chain logic | Navigation roadmap |
| Development | Fix .section.php, add AddChainItem, configure component | Working breadcrumbs on all pages |
| Microdata | Implement Schema.org BreadcrumbList (JSON-LD) | Rich snippets in search results |
| Testing | Check on desktop and mobile | Guarantee of correct display |
Typical work scope and cost
| Task | Duration | Cost (approximate range) |
|---|---|---|
| Basic setup | 2–4 hours | determined after analysis |
| Custom template with microdata | 4–8 hours | determined after analysis |
| Catalog integration | 2–4 hours | determined after analysis |
Exact cost is calculated individually after analyzing your project. Saving on navigation improvements — up to 40% of development time with a comprehensive order.
Contact us for a consultation — we will assess your project for free. Order breadcrumb setup from professionals — write to us, and we will find the optimal navigation solution for your site.

