Migration from WordPress to 1C-Bitrix
Transitioning from WordPress to 1C-Bitrix isn't file conversion—it's full-fledged new site development with data migration. Content storage structure, template logic, and WordPress plugin architecture differ fundamentally from Bitrix's component model. Understand this from the first meeting.
Analyzing WordPress Site Before Migration
WordPress stores all content in two key tables: wp_posts (posts, pages, custom post types) and wp_postmeta (custom fields—metadata). Added are wp_terms, wp_term_taxonomy, wp_term_relationships—taxonomies (categories, tags, custom taxonomies).
Before starting work, create complete data map:
- What Custom Post Types are used and what they store
- What plugins provide key functionality (WooCommerce, ACF, Yoast SEO, WPML)
- Media library volume (
wp_attachment) - Number of users and their roles
Each requires separate migration strategy.
Content Migration: Posts and Pages
Articles and pages from wp_posts migrate to Bitrix infoblock. Create infoblock type "Articles" / "News", and for each WordPress post create element via CIBlockElement::Add().
Fields mapped as:
| WordPress | Bitrix (infoblock) |
|---|---|
post_title |
NAME |
post_content |
DETAIL_TEXT |
post_excerpt |
PREVIEW_TEXT |
post_date |
ACTIVE_FROM |
post_name (slug) |
CODE |
| Thumbnail (featured image) | PREVIEW_PICTURE / DETAIL_PICTURE |
ACF fields (Advanced Custom Fields) migrate to infoblock properties. ACF field type determines Bitrix property type: text → S, number → N, image → F, post relation → G (element binding).
WooCommerce: E-store Migration
If WordPress ran WooCommerce—separate layer of work. WooCommerce tables (wc_orders, wc_order_items, wc_product_meta_lookup, and old format via wp_posts with post_type='product') must migrate to Bitrix "E-Store" module.
WooCommerce products migrate to Bitrix catalog:
- Simple products → infoblock catalog elements
- Variable products → trade offers (SKU) via
catalog.sku - Product categories → infoblock sections
WooCommerce orders migrate via CSaleOrder::Add() with order composition recreation through CSaleBasket. Needed if preserving order history is required. If history not critical—migrate products and customer base only.
Multilingual (WPML → Bitrix)
WPML stores translations in icl_translations and icl_string_translations tables. Bitrix multilingualism implemented via site language mechanism: for each language, create separate language version of infoblock element (via ACTIVE_LANGS and multisite settings). Structure fundamentally different—migration requires separate script accounting for language pairs.
SEO: Preserving Rankings
Preserve URL structure and 301 redirects from old paths to new ones. Meta titles/descriptions from Yoast migrate to Bitrix's SEO settings per element. Internal links within content must be updated from WordPress URLs to Bitrix URLs.







