Schema.org Microdata Setup for 1C-Bitrix
Competitors in search results show price, rating, and availability. Your site shows only a link. The difference is Schema.org microdata. Studies show that rich snippets increase CTR by 30% (Search Engine Land). The problem is the lack of structured data. On 1C-Bitrix, implementing markup is not hard, but there are pitfalls: wrong format, duplication, context errors. We help you sort it out. We set up JSON-LD end-to-end—from products and breadcrumbs to organization and reviews. Get a free consultation and project evaluation within 24 hours.
Recently, a client in the electronics segment complained about low CTR. After implementing Product microdata with price and rating, click-through increased by 25% in a month. Similar results are achieved by 80% of our projects.
Why Schema.org Microdata Matters for 1C-Bitrix
Without structured data, search engines don't see that a page contains a product, its price, or availability. With microdata, you get rich snippets that attract more clicks. For an online store, this is a direct path to increased sales.
How to Choose the Microdata Format for Bitrix
Schema.org supports three formats. The table below compares them for Bitrix:
| Format | Implementation Difficulty | Flexibility | Google Recommendation |
|---|---|---|---|
| JSON-LD | Low | High | Preferred |
| Microdata | Medium | Medium | Supported |
| RDFa | High | Low | Not recommended |
JSON-LD is 2–3 times faster to implement on a standard template than Microdata. It doesn't break the layout and is easier to maintain—during template updates, the markup remains intact. In Bitrix, you only need to insert a <script> block into the epilogue or component. For more on working with the epilogue, see the Bitrix documentation. Microdata, on the other hand, requires marking up each element with attributes—any layout change breaks everything.
Main Markup Types for an Online Store
How to Mark Up a Product in 1C-Bitrix
In the bitrix:catalog.element component template, add a JSON-LD block:
<?php $price = $arResult['CATALOG_PRICE_1']['PRICE'] ?? 0; $availability = ($arResult['CATALOG_QUANTITY'] > 0) ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock'; $schema = [ '@context' => 'https://schema.org', '@type' => 'Product', 'name' => $arResult['NAME'], 'image' => $arResult['DETAIL_PICTURE']['SRC'] ?? '', 'sku' => $arResult['PROPERTIES']['ARTICLE']['VALUE'] ?? $arResult['ID'], 'brand' => [ '@type' => 'Brand', 'name' => $arResult['PROPERTIES']['BRAND']['VALUE'] ?? '', ], 'offers' => [ '@type' => 'Offer', 'priceCurrency' => 'RUB', 'price' => $price, 'availability' => $availability, 'url' => SITE_DIR . $arResult['DETAIL_PAGE_URL'], ], ]; ?> <script type="application/ld+json"> <?= json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) ?> </script> How to Add Ratings and Reviews to Microdata
If your site has a review system with ratings, add aggregateRating and review fields to the Product block:
<?php $schema['aggregateRating'] = [ '@type' => 'AggregateRating', 'ratingValue' => $avgRating, // average rating, float 'reviewCount' => $reviewCount, // number of reviews 'bestRating' => '5', 'worstRating' => '1', ]; ?> Google shows stars in the snippet only if at least one review with a rating exists.
BreadcrumbList Markup
<?php $breadcrumbs = $APPLICATION->GetNavChain(); // array of breadcrumbs $items = []; $position = 1; foreach ($breadcrumbs as $crumb) { $items[] = [ '@type' => 'ListItem', 'position' => $position++, 'name' => $crumb['TITLE'], 'item' => 'https://your-site.ru' . $crumb['LINK'], ]; } $schema = [ '@context' => 'https://schema.org', '@type' => 'BreadcrumbList', 'itemListElement' => $items, ]; ?> <script type="application/ld+json"> <?= json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) ?> </script> Organization Markup
On the homepage and "About" page, place Organization or LocalBusiness markup:
{ "@context": "https://schema.org", "@type": "Organization", "name": "Company Name", "url": "https://your-site.ru", "telephone": "+7-800-555-35-35", "address": { "@type": "PostalAddress", "addressLocality": "Moscow", "streetAddress": "1 Example Street" } } Step-by-Step Guide to Implementing JSON-LD on Bitrix
- Analyze page types: products, categories, articles, contacts.
- Identify data sources in Bitrix: infoblocks, properties, prices.
- Build a PHP array for each type with required fields.
- Place the code in the component epilogue or template.
- Validate using Google Rich Results Test and Yandex Validator.
How to Verify the Markup
After implementation, check via:
- Google Rich Results Test: search.google.com/test/rich-results
- Yandex Validator: webmaster.yandex.ru/tools/microtest
Both tools show which markup is recognized and any structural errors. Additionally, you can read the relevant Wikipedia article to understand data types.
Common Microdata Implementation Mistakes
- Duplicate markup on a page (e.g., two Product blocks).
- Incorrect URL in the
urlfield (must be canonical). - Missing required fields (e.g.,
pricefor Offer). - Data mismatch (outdated price, unavailable product).
What's Included in Microdata Setup
- Audit of existing microdata (if any)
- Selection of the optimal format (JSON-LD)
- Implementation on standard pages: product, catalog, article, contacts
- Addition of BreadcrumbList, Organization, Product, AggregateRating
- Validation via Google and Yandex tools
- Report on completed work and recommendations
Process and Timeline
| Stage | Duration |
|---|---|
| Analysis | 1–2 hours |
| Design | 1–2 hours |
| Implementation | 2–4 hours |
| Testing | 1–2 hours |
| Deployment | 0.5–1 hour |
Basic setup (product, breadcrumbs, organization) takes 3–5 hours. Full audit and turnkey implementation takes 1–3 days. Pricing is calculated individually, depending on the scope of work. Project evaluation is free.
Contact us for a free consultation and project evaluation. We guarantee valid markup and increased CTR. Order microdata setup and gain a competitive advantage.







