Setting up 1C-Bitrix breadcrumbs

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Breadcrumb Navigation Configuration in 1C-Bitrix

Breadcrumbs in Bitrix are generated in two ways: automatically through the site structure and programmatically via the AddChainItem method. In practice, issues arise: breadcrumbs don't display, show incorrect paths, or contain technical page titles instead of user-friendly names.

How Bitrix Generates Breadcrumbs

Bitrix automatically builds the navigation chain based on the site's folder structure. Each folder has a .section.php file that defines the section name for breadcrumbs.

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,    // starting level (0 = from home)
    'PATH'       => '',   // empty = current path
    'SHOW_ROOT'  => 'Y',  // display "Home"
]);

Breadcrumbs in Catalog Components

In bitrix:catalog.element and bitrix:catalog.section components, breadcrumbs are added automatically when ADD_SECTIONS_CHAIN = Y is set. The component adds all sections from the root to the current location using the infoblock structure.

If a product is linked to multiple sections, the breadcrumb follows IBLOCK_SECTION_ID (the product's primary section).

Programmatic Breadcrumb Addition

In any PHP code or component template:

// Add item to the chain
$APPLICATION->AddChainItem('Item Name', '/path/to/page/');

// Rename the last item (current page)
$APPLICATION->SetTitle('Page Title'); // title = last breadcrumb

The chain is stored in the $APPLICATION object and reset with each request.

Breadcrumb Template Configuration

For custom breadcrumb styling — create a component template:

/local/components/bitrix/breadcrumb/templates/custom/template.php

Template variables:

  • $arResult['ITEMS'] — array of chain elements
  • $item['TITLE'] — item name
  • $item['LINK'] — item URL
  • Last element without LINK — current page

Schema.org Markup for Breadcrumbs

To transmit structured data to search engines, add BreadcrumbList micromarkup to the template:

$jsonLd = ['@context' => 'https://schema.org', '@type' => 'BreadcrumbList', 'itemListElement' => []];
foreach ($arResult['ITEMS'] as $pos => $item) {
    $jsonLd['itemListElement'][] = [
        '@type'    => 'ListItem',
        'position' => $pos + 1,
        'name'     => $item['TITLE'],
        'item'     => 'https://site.com' . $item['LINK'],
    ];
}
echo '<script type="application/ld+json">' . json_encode($jsonLd, JSON_UNESCAPED_UNICODE) . '</script>';

Execution Timeline

Configuration and customization of breadcrumb templates with Schema.org markup — 2–4 hours.