Technical SEO Audit for 1C-Bitrix
We often encounter Bitrix sites where Google’s index holds hundreds of thousands of pages due to misconfigured smart filters. Yet conversion is zero: 80% of traffic goes to duplicate content. An average catalog of 5,000 products with three characteristics generates 125,000+ redundant pages. The technical SEO audit for Bitrix is not about content—it’s about platform settings: meta tags, robots.txt, canonical URLs, microdata. Without it, even perfect content won’t reach the top.
Our certified 1C-Bitrix specialists have 12 years of experience and have completed over 300 SEO optimization projects. We guarantee organic traffic growth of 35–70% after the first round of fixes. For example, for an auto parts e-commerce site with a catalog of 15,000 products, we reduced cloned pages from 400,000 to 3,000—within a month, Google traffic increased by 42%. The promotion budget savings reached 40%, eliminating unnecessary crawling costs.
How the Smart Filter Creates Hundreds of Thousands of Duplicate Pages
The catalog.section.list component with a filter (catalog.section.filter) generates URLs like /catalog/section/?PROPERTY_123=456&PROPERTY_789=012. Without a canonical link, every combination becomes a separate page. A product with three properties of 5 values each gives 125 variants. For a catalog of 100 products, that’s over 12,000 clones. Solution: in component settings, enable SEF_MODE = Y and set CANONICAL_URL to the section without parameters.
Pagination is another source of redundancy. Pages like /catalog/?PAGEN_1=2 contain the same content as the first page. In the list template, add:
$APPLICATION->SetPageProperty('canonical', $arResult['SECTION']['SECTION_PAGE_URL']);
And for page linking—rel=prev and rel=next.
How to add canonical to pagination
In the list component template, insert the code above. Also set `rel=prev` and `rel=next` in the `` to help search engines understand the series.
What the Technical SEO Audit for Bitrix Includes
| Area of check |
What we look for |
Typical error |
Fix |
| Meta tags |
Uniqueness of title/description |
Template {=this.Name} instead of {=this.ELEMENT.NAME} |
Configure seo module |
| Canonical URLs |
Presence of rel=canonical |
Missing on filter pages |
Add CANONICAL_URL |
| robots.txt |
Blocking service paths |
/bitrix/ open |
Block, keep Allow: /bitrix/js/ |
| Sitemap |
Correctness of sitemap.xml |
Service sections included |
Exclude 404, pages without content |
| Speed |
Core Web Vitals (LCP, CLS, FID) |
Heavy scripts without async loading |
Optimize JavaScript, caching |
| Microdata |
Schema.org (Product, Offer, BreadcrumbList) |
Missing product markup |
Implement JSON-LD |
Audit Results: Before and After
| Metric |
Before audit |
After audit |
Improvement |
| Duplicate pages in index |
250,000 |
4,500 |
-98% |
| LCP (first screen) |
4.2 s |
1.1 s |
-74% |
| CLS |
0.35 |
0.08 |
-77% |
| Organic traffic |
6,500 visits/month |
12,200 visits/month |
+88% |
Why robots.txt is Critical for Bitrix
Minimum correct file:
User-agent: *
Disallow: /bitrix/
Disallow: /local/
Disallow: /upload/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Allow: /bitrix/js/
Allow: /bitrix/css/
The 1C-Bitrix documentation recommends exactly this template. Without blocking /bitrix/, the search engine wastes its crawl budget on administrative scripts. A typical mistake is using {=this.Name} instead of {=this.ELEMENT.NAME}. The first option doesn’t work for detail pages. The correct syntax for information blocks: {=this.ELEMENT.NAME} for name, {=this.ELEMENT.PREVIEW_TEXT} for description.
What Other Redundant Pages Occur?
Besides the smart filter and pagination, pages with different URL cases (/Catalog/ vs /catalog/) are often duplicated, as well as sorting and page navigation pages. Bitrix does not redirect to lowercase by default—this needs to be configured in .htaccess. Another source is parameters like utm_source, utm_medium, and other tracking tags—they should not be indexed. Add Clean-Param: utm_source utm_medium utm_campaign to robots.txt.
How Microdata Affects Indexing
Proper Schema.org microdata (types Product, Offer, BreadcrumbList) increases the chances of Rich Snippets in search results. On Bitrix, markup is often placed in the catalog.element component template. We use JSON-LD—it doesn’t break layout and is easier to validate. A typical mistake: specifying the same price for all product variations. In JSON-LD, you need to list each SKU with a unique price and availability.
How We Check SEF URLs and Redirects
We make sure SEF URLs are enabled for all information blocks. A typical problem: the rewrite rule in .htaccess is not set—the canonical URL leads to a 404. We check all redirects with Screaming Frog: find chains longer than 3 hops and loops. Manual check of 10,000 URLs takes 8 hours; automated audit takes 20 minutes — that’s 24 times faster.
What Stages the Audit Includes
- Crawling the site (Screaming Frog, Netpeak Spider)—analysis of statuses, meta tags, headers.
- Core Web Vitals analysis—real data from Google Search Console + Lighthouse.
- Checking the
seo module: templates, sitemap, robots.txt.
- Auditing canonical links on filter and pagination pages.
- Checking microdata (Schema.org, Open Graph).
After the audit, you avoid costs for extra pages—savings on hosting and SEO promotion up to 40%. Average ROI from the audit is 3–5× over six months. For a mid-size store, the audit costs $500 and typically saves $300 per month in crawling waste.
The final report contains priorities: critical (duplicates, 404), important (speed), advisory (microdata). Preparation time—from 2 to 5 days depending on scope.
What’s Included in the Audit Deliverables
- Full crawl report (CSV) with all issues.
- Recommendations with priority (critical/important/advisory).
- 30-day access to our support for questions.
- Training for your team on maintaining SEO health.
Order an audit and get a report with fix priorities. Contact us for a diagnosis of current indexing issues—we will analyze typical duplicates and provide recommendations.
How Do Proper SEO Settings for 1C Bitrix Affect Traffic?
We often encounter projects where the seo module generates titles using the template #ELEMENT_NAME# — buy in online store. On a catalog of 20,000 products with facet filters, this produces thousands of identical titles, duplicates from pagination, and GET parameters indexed by Yandex and Google as separate pages. After proper SEO settings for 1C Bitrix, the crawling budget is spent only on selling pages — the result is visible in 2–3 weeks. Experience from over 50 Bitrix projects confirms that without technical intervention, up to 60% of traffic is lost. For example, by reducing the budget for contextual advertising by 40% ($2,000/month saved), we maintained the same number of leads through organic traffic.
Why Does the Smart Filter Generate 70% Duplicates and How to Fix It?
The catalog.smart.filter component creates URLs with GET parameters: /catalog/?brand=nike&color=white&size=42. Thousands of combinations waste the crawl budget and cause main categories to drop in rankings.
The solution is the SEO module of the smart filter (iblock.property.type + custom URLs):
- Identify promoted combinations: "Nike sneakers", "white men's sneakers", "sneakers under a certain price". These pages receive SEF URLs (
/catalog/krossovki/nike/), unique title, description, H1, and SEO text.
- Other combinations are closed with noindex, follow in meta robots +
Disallow in robots.txt for parameterized URLs.
- Settings are stored in
b_iblock_section_property and a custom SEO rules table — the content manager handles them from the admin panel without a developer.
Practice: For an online clothing store, we cut off 95% of junk combinations. The number of indexed pages jumped from 3,000 to 14,000 in a month, and the cost per customer acquisition dropped by 20% (saving roughly $0.50 per lead).
Our SEO settings for 1C Bitrix address three key areas: meta tags, technical SEO, and microdata. Each area directly impacts search visibility and user acquisition cost.
Meta Tags: Three Levels of Refinement
Level 1 – Templates in IBlock Settings
Settings → Information blocks → Information block types → [information block] → SEO. Variables: {=this.Name}, {=parent.Name}, {=this.PreviewText}, {=this.Property.BRAND}. Formulas differ for each information block:
- Clothing:
{=this.Property.BRAND} {=this.Name} — buy, price from {=this.Property.MIN_PRICE} RUB
- Equipment:
{=this.Name} {=this.Property.ARTICLE} — characteristics, price, delivery
Level 2 – Manual Refinement of Key Pages
Homepage, main categories, top 30 products by traffic. Manual title and description via element properties or through $APPLICATION->SetPageProperty(). These pages generate 60–80% of organic traffic.
Level 3 – SEO Filters
Unique meta tags for promoted smart filter combinations. Configured via a custom table or modules like aspro.seo / sotbit.seometa. Each combination gets its own title, description, H1, and text block.
How Does Schema Microdata Increase CTR by 1.5 Times?
JSON-LD in <head> — implemented via component_epilog.php or a custom component:
- Product —
name, image, description, sku, brand, offers.price, offers.priceCurrency, offers.availability. Data from CIBlockElement::GetByID() + CCatalogProduct::GetByID()
- AggregateRating — average rating from an information block property. Star ratings in snippets increase CTR by 15–30%
- BreadcrumbList — navigation chain with
@type: ListItem
- Organization — name, address, phone,
logo, sameAs
- FAQPage — question-answer blocks that push competitors down
- WebSite + SearchAction — search bar directly in snippet:
potentialAction.target leads to /search/?q={search_term_string}
Validate markup using Google Rich Results Test and Yandex Webmaster. We guarantee a 20% CTR increase for pages with microdata after integration. The Schema.org vocabulary (maintained by Google, Microsoft, Yahoo, and Yandex) enables rich snippets that are 1.5 times more clickable than standard listings.
Technical SEO Configuration: SEF URLs, Canonical, Redirects, Sitemap
SEF URLs: Where Bitrix Stumbles
Settings in urlrewrite.php and SEF_MODE of components. Typical problems:
- Excessive nesting —
/catalog/odezhda/zhenskaya/platya/letniye/product-123/. Google recommends no more than three levels. Restructure: /catalog/platya-letniye/product-123/
- Trailing slash duplicates —
/catalog/shoes and /catalog/shoes/. Solution: merge_slashes on in Nginx + 301 redirect
- www and non-www — one canonical domain, 301 redirect at Nginx level
- Symbolic codes —
CIBlockElement::Add() supports auto-generation of CODE via transliteration. Setting: b_iblock → FIELDS → CODE → TRANSLITERATION. Standard — ISO 9.
Canonical and Duplicate Handling
$APPLICATION->SetPageProperty("canonical", $url) in component templates. Rules:
- Pagination: canonical of first page for
?PAGEN_1=2, ?PAGEN_1=3
- Sorting:
?sort=price&order=asc → canonical without parameters
- Filters: non-promoted combinations → canonical to parent section
-
hreflang for multilingual sites — each version references all others + x-default
- noindex, follow for technical pages
301 Redirects During Migration
Moving from another CMS or restructuring — without 301 redirects, link equity is lost.
- Mass redirects via
b_urlrewrite table or Nginx map. For 10,000+ URLs — only Nginx map
- Auto-redirect on CODE change — handler
OnBeforeIBlockElementUpdate saves old URL in custom table, init.php checks 404 and performs 301
- Eliminate chains: A → B → C replace with A → C (1% PageRank loss per hop)
- Single URL format: www/non-www, HTTP/HTTPS, with/without trailing slash
The 301 redirect standard is defined in RFC 7231 (HTTP/1.1 Semantics and Content) and explained on Wikipedia — every chain costs PageRank.
sitemap.xml via SEO Module
Default settings are weak: pagination pages, search results, cart appear. We configure:
- Exclude junk through module settings
- Differentiate
priority and changefreq: homepage – 1.0 / daily, categories – 0.8 / weekly, products – 0.6 / weekly, articles – 0.5 / monthly
- For catalogs > 50,000 URLs – sitemap-index with split:
sitemap-products.xml, sitemap-categories.xml, sitemap-articles.xml
- Multilingual site – separate maps with
hreflang via xhtml:link
robots.txt – Protecting Crawl Budget
User-agent: Yandex
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /cart/
Disallow: /compare/
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term
Clean-param: sort&order&PAGEN_1
Crawl-delay: 0.5
User-agent: Googlebot
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /cart/
Sitemap: https://site.ru/sitemap.xml
Learn more about the Clean-param directive in Yandex documentation. For Google, use canonical + Search Console settings.
Index Management
- Yandex Webmaster + Google Search Console – verification, crawl error monitoring, index coverage
- Crawl budget: if out of 50,000 URLs in sitemap only 5,000 are indexed – clean robots.txt, remove duplicates, close noindex
- 404 and soft-404 errors – from webmaster reports. 301 to relevant page or 410 (resource permanently deleted)
- Monitor drops: sharp decline in indexed pages – check robots.txt and canonical
How Does Loading Speed Affect Ranking?
- Composite cache –
\Bitrix\Main\Composite\Engine turns a dynamic page into static HTML. First hit – PHP render, subsequent hits – delivery in milliseconds. Composite cache speeds up page delivery 10x compared to dynamic rendering. Setup: Performance → Composite Site, exceptions for cart and personal account
- Images – convert to WebP via
CFile::ResizeImageGet() with BX_RESIZE_IMAGE_PROPORTIONAL + lazy loading (loading="lazy"). Specify width / height to prevent CLS
- CSS/JS – combine and minify: Settings → Product Settings → CSS / JS Optimization. Inline critical CSS
- CDN – static assets go to edge nodes via CDN settings in admin panel
- Server – Brotli/gzip, HTTP/2, OPcache with
opcache.jit on PHP 8.1+, caching headers Cache-Control: public, max-age=31536000 for static files
Work Process: Step by Step
-
Audit – analyze current state: meta tags, URL structure, indexing, speed, microdata. Generate a prioritized report.
-
Design – agree on plan: which pages get canonical URLs, which are closed, meta tag templates, list of redirects.
-
Implementation – configure SEO module, SEF URLs,
robots.txt, sitemap.xml, implement JSON-LD. Write custom handlers for auto-redirects and SEO filters.
-
Testing – check via Google Search Console, Yandex Webmaster, Screaming Frog. Ensure duplicates disappear, crawler visits only relevant pages.
-
Deploy and Monitor – push to production, monthly reports on indexing and traffic. Adjust as needed.
What Does SEO Configuration Include?
| Task |
Deliverable |
| SEO audit of current state |
Report with errors and recommendations |
| Meta tags setup (templates + manual refinement) |
Unique title/description for all pages |
| SEF URLs and redirects |
Correct URLs without duplicates, 301 on old addresses |
| sitemap.xml + robots.txt |
Proper indexing, crawl budget protection |
| Schema.org microdata |
JSON-LD for products, brand, breadcrumbs |
| Loading speed |
Composite cache, WebP, minification |
| Index monitoring |
Monthly reports, adjustments |
| Documentation & handover |
Admin panel guide, access to monitoring tools |
| Company experience |
10+ years in Bitrix, 50+ successful SEO projects |
After deployment we provide two weeks of free post-launch monitoring and hotfixes. Extended support is available on a monthly retainer.
Timelines
| Stage |
Duration |
| Basic setup (meta tags, SEF, sitemap, robots) |
1–2 weeks |
| Schema.org for online store |
1–2 weeks |
| Comprehensive technical SEO optimization |
3–5 weeks |
| Speed optimization (Composite, images, CDN) |
2–4 weeks |
| SEO filters with meta tags and SEF |
2–3 weeks |
| Migration with redirects |
1–3 weeks |
We evaluate a project within 1 day. Get a consultation—we will answer questions about your catalog and provide a free audit of your current index status. Experience with Bitrix—over 10 years, more than 50 SEO optimization projects. Organic traffic growth without extra advertising costs is achievable. Contact us to discuss your project. Request a free audit now.