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.
Breadcrumb navigation
1C-Bitrix Documentation: AddChainItem
What Professional 1C-Bitrix Installation Includes
We start by checking innodb_buffer_pool_size. The default MySQL value (128 MB) is a death sentence for an online store with a catalog of 10,000+ items. We set 70–80% of available RAM on a dedicated server, 50% on VPS. This single setting speeds up the site by 2–3 times compared to the default. We'll assess your project in one day — get a consultation. Contact us to order turnkey installation with performance guarantee.
How to Choose Hosting and Edition for 1C-Bitrix Installation?
BitrixVM is a virtual machine with a pre-installed stack: nginx + Apache, PHP-FPM, MySQL/MariaDB, Sphinx, Push server. For VPS — the best start. Everything is already configured for Bitrix, including OPcache, log rotation, and firewall. Management via web panel on port 8890. Bitrix documentation recommends starting with BitrixVM for predictable performance.
VPS/VDS is the sweet spot. Minimum configuration for a medium online store: 2 vCPU, 4 GB RAM, SSD. Optimal: 4 vCPU, 8 GB RAM. OS: Ubuntu 22.04 or Debian 12. If not BitrixVM, we configure the stack manually for the task. Virtual hosting — only for business cards and landing pages. Requirements: PHP 8.0+, MySQL 5.7+ / MariaDB 10.0+, 512 MB RAM, .htaccess. 1C-Bitrix hosting partners guarantee compatibility. Dedicated server — for highload. Typical architecture: web server separate, database separate, Redis/Memcached separate. For Enterprise edition — web cluster with load balancer. Cloud (Yandex Cloud, VK Cloud, Selectel) — when load spikes: sales, seasonal peaks. Autoscaling via Managed Kubernetes or simple VM vertical scaling.
Choosing the edition is equally important. A common mistake: choosing "Small Business" for a store that grows to B2B with wholesale prices and three warehouses in six months. Upgrading to "Business" — pay the difference, data is not lost, but it's better to plan ahead. Our specialists select the edition for current tasks and with room for growth. For example, the "Business" license (about 35,000 RUB) pays off through multi-warehouse and 1C exchange, while the wrong choice can lead to a loss of up to 30,000 RUB monthly on excess resources.
| Edition |
For Whom |
Key Limitation |
| Start |
Business cards, landing pages |
No infoblocks 2.0, no trade catalog |
| Standard |
Corporate sites |
No e-commerce module |
| Small Business |
Small stores |
1 price type, 1 warehouse, no 1C exchange |
| Business |
Medium stores, B2B |
Multi-warehouse, multicurrency, CommerceML |
| Enterprise |
Highload, cluster |
Web cluster, CDN, multisite |
What Server Settings Are Critical for 1C-Bitrix?
Web Server and PHP
nginx as reverse proxy + Apache (mod_php) or nginx + PHP-FPM directly. The second option saves memory — Apache is not needed. But some Bitrix modules use .htaccess, so for compatibility we sometimes keep Apache. nginx configuration: fastcgi_read_timeout 300 — for long operations (1C import), client_max_body_size 1024m — large file uploads. Block access to .settings.php, .settings_extra.php, bitrix/.settings.php — they contain database passwords. Rewrite rules from urlrewrite.php — Bitrix generates them, but with nginx + PHP-FPM they need to be duplicated. PHP 8.0–8.2 with extensions: mbstring, curl, gd, xml, json, opcache, redis/memcached. Key php.ini settings: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, max_execution_time=300, memory_limit=512M, upload_max_filesize=100M, post_max_size=128M.
Database and Caching
MySQL/MariaDB. Key my.cnf parameters: innodb_buffer_pool_size — 70–80% RAM, innodb_log_file_size=256M, tmp_table_size=256M, max_heap_table_size=256M, thread_pool_size — number of CPU cores. Encoding utf8mb4 mandatory, otherwise emoji and special characters break. Redis is preferable to Memcached for Bitrix — supports persistent connections and is more reliable. In production, Redis handles concurrent writes three times faster than Memcached under typical load. Configure in .settings_extra.php:
'cache' => ['value' => ['type' => ['class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis']]]
'session' => ['value' => ['mode' => 'default', 'handlers' => ['general' => ['type' => 'redis']]]]
Example Redis configuration for Bitrix
sudo apt install redis-server
sudo systemctl enable redis
Add to .settings_extra.php as above.
SSL, Email, and Cron
SSL — Let's Encrypt via certbot in 90% of cases. Redirect HTTP → HTTPS (301), HSTS, TLS 1.2/1.3, OCSP Stapling. In Bitrix, switch to HTTPS in the main module settings. Email: abandon mail() — connect SMTP (Yandex.Mail for domain, Mail.ru for Business). Be sure to configure SPF, DKIM, DMARC. Without SPF, emails go to spam. Test deliverability via mail-tester.com — score 9+/10. Cron: Bitrix agents switch to system cron — * * * * * /usr/bin/php /var/www/bitrix/modules/main/tools/cron_events.php. Schedule 1C exchange (15–60 min), search reindex, backups (mysqldump + rsync, rotation 7+4), temporary file cleanup.
Security and Administration
File system: owner www-data, directories 755, files 644, upload 775. nginx blocks access to configuration files. Enable Bitrix Proactive Protection — WAF, activity control (block after 5 failed attempts), kernel integrity check. For admin panel: two-factor authentication via Google Authenticator or OTP, restrict access by IP via nginx for paranoid.
How Long Does 1C-Bitrix Installation and Configuration Take?
| Task |
Timeline |
| Installation on virtual hosting |
2–4 hours |
| Installation on VPS with stack configuration |
1–2 days |
| Installation on dedicated with architecture design |
2–5 days |
| SSL + email + cron + security |
1–2 days |
| Backup and monitoring setup |
0.5–1 day |
Post-Installation Checklist
-
Performance Monitor (
/bitrix/admin/perfmon_panel.php) — aim for 30+ points. Below 20 means serious configuration issues.
- System Check — automatic check of all parameters. Red items must be fixed, yellow — case by case.
- Security Scanner — check for typical vulnerabilities.
- PageSpeed Insights — TTFB < 200ms on VPS, LCP < 2.5s.
- Test 1C exchange — if integration is planned, verify CommerceML exchange before launch.
Additionally, check software versions, caching settings, cron operation, SSL certificate, SPF/DKIM/DMARC, access rights, delete default users and pages. For projects with 54-FZ, ensure fiscalization is configured via OFD provider.
Deliverables
- Fully configured server for 1C-Bitrix with MySQL, PHP, nginx optimization.
- Installed and activated license of the required edition.
- SSL certificate, email settings, cron and backups.
- Documentation: all configuration parameters, access credentials, cron tasks.
- Content manager training: how to log into admin panel, add products, upload images.
- Post-installation support for 30 days — consultations on settings.
Why Trust Professionals with Installation?
Incorrect installation means lost time and money. We've seen projects where a store on "Start" couldn't handle 50 visitors because innodb_buffer_pool_size wasn't configured. After migrating to VPS with correct configuration, the site "flew". Incorrect configuration can cost 30,000 RUB monthly due to excessive resource consumption. You get a ready-made architecture that scales. Order turnkey 1C-Bitrix installation — get a reliable platform for business growth. Contact us for a free consultation: we'll calculate the cost and time for your project. Over 7 years of experience, 120+ Bitrix projects implemented, including highload stores with million-item catalogs. Get in touch — we'll help configure Bitrix for your project.