Уявіть: ви запустили інтернет-магазин на WordPress, трафік з Німеччини зростає, але сайт тільки російською. Додаєте WPML, налаштовуєте мови — і за тиждень бачите, що дублі сторінок у пошуку, кошик не перекладається, а сторінка товару завантажується 5 секунд. Ми налаштовували WPML на десятках проєктів і знаємо, як уникнути цих граблів. Близько 60% багатомовних сайтів на WordPress використовують WPML — це де-факто стандарт для проєктів, де потрібна надійність та гнучкість. Вартість налаштування розраховується індивідуально, а економія на перекладі контенту може сягати 60% порівняно з наймом перекладачів. Зв'яжіться з нами, щоб отримати безкоштовну консультацію щодо вашого проєкту.
Як WPML вирішує проблеми багатомовності
WPML — платний плагін, який перетворює звичайний WordPress-сайт на багатомовну платформу. Він перекладає не тільки сторінки та пости, але й рядки теми, користувацькі поля, таксономії, атрибути товарів WooCommerce. Підтримує до 40 мов. Розберемо ключові налаштування та типові проблеми.
Компоненти WPML
WPML — не один плагін, а набір:
- WPML Multilingual CMS — ядро, обов'язкове для всього
- WPML String Translation — переклад рядків теми, плагінів, віджетів
- WPML Translation Management — керування чергою перекладів, призначення перекладачів
- WPML Media Translation — окремі зображення для різних мов
- WooCommerce Multilingual — підтримка товарів, атрибутів, варіацій, кошика
Мінімальний набір: CMS + String Translation. Для інтернет-магазину додаємо WooCommerce Multilingual.
Мовна структура URL
WPML підтримує три варіанти. Ми рекомендуємо підпапки — вони добре індексуються і не потребують окремого хостингу.
| Варіант |
Приклад |
Особливості |
| Піддомени |
ru.example.com / en.example.com |
Потрібне налаштування DNS, краще для великих проєктів |
| Підпапки |
example.com/ru/ / example.com/en/ |
Простота, SEO-friendly, поширений |
| Різні домени |
example.ru / example.com |
Дорожче, складніше в підтримці |
Налаштовується в WPML → Languages → Language URL format. Час перемикання — 5 хвилин.
Створення перекладів контенту
Переклади створюються двома способами:
- Вручну: в редакторі поста з'являється блок «Translation» з кнопками для кожної мови. Відкривається редактор перекладу з оригіналом та перекладом поруч. Підходить для невеликих обсягів (до 100 сторінок).
- Через Translation Management: пости відправляються в чергу, призначаються перекладачі (локальні або з бюро перекладів WPML). Можна задати статуси, затвердження, сповіщення. Ідеально для проєктів з 10+ мовами.
Переклад рядків теми та плагінів
WPML → Theme and Plugins Localization → Вибрати тему → Scan for strings
Після сканування всі рядки з'являються в String Translation для ручного перекладу або завантаження через .po/.mo файли. Рядки, виведені через wp_localize_script, скануються автоматично починаючи з WPML 4.5. Якщо рядок не відображається — перевірте, чи не використовує плагін __() з динамічними ключами.
Як налаштувати WooCommerce Multilingual?
Після встановлення WooCommerce Multilingual виконайте кроки:
- WPML → WooCommerce Multilingual → Products — вибрати: перекладати кожен товар окремо або синхронізувати поля (назва, опис, ціна).
- Currencies — задати різні валюти для різних мов (EUR для німецької, GBP для англійської). Курси оновлюються автоматично.
- Shipping — способи доставки перекладаються окремо, можна задати різні тарифи для країн.
Таблиця відповідностей перекладів: wpml_translations зберігає trid (translation group id), language_code, element_id, element_type. Це основа для кастомних запитів.
Програмний доступ до перекладів
// Отримати ID перекладу поста на конкретну мову
$translated_id = apply_filters( 'wpml_object_id', $original_post_id, 'post', true, 'en' );
// Отримати поточну мову
$current_language = apply_filters( 'wpml_current_language', null );
// Переключити мову програмно
do_action( 'wpml_switch_language', 'de' );
$german_posts = get_posts( [...] );
do_action( 'wpml_switch_language', null ); // відновити
Фільтр wpml_object_id — основа інтеграції. Використовуйте його в довільних запитах, щоб не повертати пости не тією мовою.
Синхронізація полів
У WPML → Settings → Custom Fields Translation задається поведінка кастомних полів:
- Copy — копіювати значення в переклад (для числових полів, дат)
- Copy once — скопіювати тільки при першому створенні перекладу
- Translate — поле перекладається незалежно
- Ignore — не копіювати
ACF-поля визначаються автоматично. Ми перевіряємо кожне поле на проєкті, щоб не втратити дані.
Типові проблеми з WPML та їх вирішення
Дублювання контенту в пошуку — якщо sitemap генерується Yoast без урахування мов. Рішення: у Yoast включити підтримку WPML у Yoast SEO → Integrations, або використовувати WPML XML Sitemap. Після налаштування дублі зникають протягом 2–3 днів переіндексації.
Порожні переклади в REST API — при зверненні до /wp-json/wp/v2/posts повертаються пости тільки поточної мови. Для явного вказівки: додати параметр ?lang=en до запиту. WPML додає цей параметр автоматично.
Повільний сайт — WPML додає JOIN до кожного WP_Query. На великих базах (10k+ постів, 3+ мови) це відчутно — до 40% приросту часу запиту. Рішення: індекси на wpml_translations.trid, кеш об'єктів (Redis/Memcached), вибіркове кешування складних запитів. У наших проєктах ми впроваджуємо кеш ще на етапі планування.
Чому WPML може сповільнити сайт?
Основна причина — додаткові запити до таблиці wpml_translations. Кожен WP_Query виконує JOIN, що на великих обсягах даних (10k+ постів, 3+ мови) може збільшити час запиту на 40%. Вирішується додаванням індексів та використанням об'єктного кешу. Ми завжди враховуємо це при проєктуванні.
Як WPML впливає на SEO?
Правильне налаштування WPML покращує міжнародне SEO: правильно налаштовані hreflang-теги, мовні sitemap, відсутність дублів. Ми налаштовуємо інтеграцію з Yoast SEO або Rank Math, щоб усі метадані перекладалися коректно. В одному проєкті після налаштування WPML та SEO-плагіна трафік з Німеччини виріс на 35% за 2 місяці.
Що входить у налаштування WPML під ключ
Ми готуємо проєкт за багаторічний досвід з WPML. Ось що ви отримуєте:
- Аудит поточного сайту на сумісність з WPML (тема, плагіни, кастомні поля)
- Вибір URL-структури та налаштування мов
- Імпорт та переклад існуючого контенту (до 50 сторінок — безкоштовно)
- Налаштування Translation Management (черга, ролі, сповіщення)
- Інтеграція з WooCommerce: товари, валюти, доставка
- Тестування всіх форм, кошика, пошуку, REST API
- Оптимізація продуктивності (індекси, кеш)
- Документація з адміністрування + доступи
Зв'яжіться з нами — оцінимо проєкт за 1 день. Замовте налаштування WPML під ключ, щоб уникнути типових проблем з продуктивністю та дублями контенту. Гарантуємо сумісність та підтримку після запуску. Ми забезпечуємо фіксовану вартість на етапі узгодження.
| Компонент |
Призначення |
Обов'язковий? |
| Multilingual CMS |
Ядро WPML |
Так |
| String Translation |
Переклад рядків теми |
Рекомендується |
| Translation Management |
Керування перекладами |
Для великих проєктів |
| WooCommerce Multilingual |
Товари та кошик |
Для магазинів |
Розробка WordPress: кастомні теми, плагіни та WooCommerce
Клієнт приходить з готовим сайтом — і перше, що бачу в DevTools: 47 активних плагінів, сторінка важить 6.8 MB, TTFB 2.4 с, у консолі п'ять конфліктуючих версій jQuery. Це не рідкість — стандарт «доробленого» сайту, що виріс із шаблону в щось живе, але некероване. Ми вирішуємо такі завдання під ключ: від аудиту до деплою. Оцініть ваш проект за один робочий день — зв'яжіться з нами.
WordPress займає 43% ринку CMS (дані Wikipedia) — не тому що ідеальний, а тому що передбачуваний і має екосистему під будь-яке завдання. Завдання інженера — використовувати цю екосистему акуратно, не перетворюючи сайт на смітник залежностей. Ми допомагаємо знайти баланс між функціональністю та продуктивністю, спираючись на 10-річний досвід і 80+ виконаних проектів.
Чому кастомна тема швидша за page builder?
Page builders (Elementor, Divi) генерують роздутий HTML і прив'язують клієнта до візуального редактора назавжди. Кастомна тема на базі _s (underscores) завантажується в 4 рази швидше, ніж тема на Elementor, і не накопичує CSS/JS, які не використовуються. Критичний CSS витягується автоматично, а некритичні скрипти — в defer. На 30+ проектах ми переконалися: кастомна тема дає LCP на 60% нижче при однаковій кількості контенту.
Архітектурні рішення та часті проблеми
Блокування рендерингу через плагіни
Plugin A завантажує jQuery 3.6, Plugin B — jQuery 1.12, тема — свій jQuery Migrate. В результаті wp_enqueue_scripts віддає три різні версії бібліотеки, рендеринг сторінки блокується на 800 мс. Вирішується через wp_dequeue_script, централізований контроль залежностей та переведення некритичних скриптів у defer/async.
N+1 запити та їх вирішення
Розробник написав WP_Query в циклі — кожен пост генерує окремий SQL-запит. На сторінці з 20 постами це 21+ запит до бази. MySQL починає тупити, сервер гріється. Фіксується через post__in з prefetch або перехід на wpdb->get_results() з JOIN. Query Monitor — перший інструмент для діагностики.
WooCommerce під навантаженням
Магазин з 15 000 SKU без object caching і Redis — при 200 одночасних користувачах wc_get_product() вбиває базу. Транзиент-кеш WordPress не рятує: він пише в базу, збільшуючи навантаження. Реальне рішення — Redis через wp-redis або Memcached, плюс wp_cache_set()/wp_cache_get() в кастомному коді.
Як вибрати архітектуру: headless чи моноліт?
Вибір залежить від вимог до продуктивності та складності інтерфейсів. Headless (REST API / WPGraphQL + Next.js) дає приріст TTFB до 50% та ізоляцію фронтенду, але вимагає більш складної інфраструктури. Монолітна тема простіша в підтримці для контентних проектів, де SEO критичне і потрібен прямий доступ до WP Rewrite. Ми допомагаємо визначити оптимальний варіант на етапі аудиту. Перехід на headless покращує LCP у 2.5 рази порівняно з монолітом при правильному налаштуванні кешування — це підтверджено на 30+ проектах.
Стек та підходи в розробці WordPress
Розробка тем. Не використовуємо page builders для продуктових сайтів — вони генерують роздутий HTML. Кастомна тема на базі _s (underscores) завантажується в 4 рази швидше, ніж тема на Elementor. Замість цього: кастомна тема або блочна тема для Full Site Editing, Tailwind CSS через Vite, TypeScript для складного JS.
Gutenberg та блочна розробка. Розробляємо кастомні блоки через @wordpress/scripts, реєструємо через register_block_type() з block.json. Серверний рендеринг через PHP для SEO-критичних блоків, клієнтський — для інтерактивних. Inner Blocks для складених компонентів.
REST API та headless. WordPress як headless CMS через WP REST API v2 або WPGraphQL. Типова схема: WordPress на піддомені cms.example.com, Next.js фронтенд на основному домені. ISR (Incremental Static Regeneration) для сторінок блогу — сторінка регенерується у фоні при зверненні після закінчення revalidate. Для аутентифікованих запитів — JWT через jwt-authentication-for-wp-rest-api або Application Passwords (вбудовано з WP 5.6). Детальніше про REST API — Wikipedia.
WooCommerce. Розширюємо через хуки та фільтри — ніколи не правимо core-файли. Кастомні типи продуктів через WC_Product extension. Для складної логіки цін — woocommerce_get_price_html та woocommerce_product_get_price. Payment gateways пишемо з нуля, успадковуючи від WC_Payment_Gateway. Інтеграція з 1С — через CommerceML або кастомний REST endpoint.
Продуктивність. Обов'язковий стек: Redis Object Cache + Full Page Cache (LiteSpeed Cache або WP Rocket) + CDN для статики + WebP через add_image_size() з конвертацією. Lazy load нативний (loading="lazy") плюс кастомний для критичних зображень вище згину — preload через <link rel="preload">.
| Підхід |
Продуктивність |
Складність розробки |
SEO |
Рекомендується для |
| Монолітна тема |
Середня |
Низька |
Відмінна |
Контентні сайти, блоги, лендінги |
| Headless (REST/GraphQL) |
Висока |
Висока |
Хороша (з SSR) |
Веб-додатки, SPA, мультидомени |
| Headless + Next.js (ISR) |
Дуже висока |
Середня |
Відмінна |
Каталоги, новинні портали |
Кейс з нашої практики: WooCommerce‑магазин, LCP 9:00 с → 1.8 с
Наш клієнт — магазин електроніки з 40 000 SKU, WooCommerce + кастомна тема. PageSpeed Insights: LCP 9.2 с, CLS 0.41, INP 680 мс.
Діагноз:
- Hero-зображення 3.8 MB JPEG, не оптимізоване, без
srcset.
- 23 плагіни завантажували JS/CSS на кожній сторінці, включаючи сторінки продуктів.
-
wc_get_product() викликався 60 разів на сторінці категорії без кешування.
- Шрифти завантажувалися через Google Fonts (додатковий DNS lookup).
Що зробили:
- Hero — WebP 180 KB,
<img fetchpriority="high" decoding="async">, srcset для 3 breakpoints.
- Умовне завантаження плагінів через
is_product(), is_cart(), is_checkout() — прибрали 80% зайвого JS.
- Redis Object Cache,
WC_Product prefetch через wc_get_products() з include.
- Шрифти — self-hosted через
@font-face, font-display: swap.
- CLS перемогли через
aspect-ratio на всіх product card images.
Результат: LCP 1.8 с, CLS 0.04, INP 140 мс. Core Web Vitals — зелені. Клієнт скоротив витрати на хостинг на 40% — це дозволило перейти на дешевший тариф. Додатково заміна десяти плагінів на один кастомний заощадила 12 000 грн на рік на ліцензіях.
Процес роботи
-
Аудит та аналітика. Аналіз існуючої кодової бази, конкурентів, технічних вимог. Для нового сайту — семантичне ядро, UX-прототипування.
-
Архітектура. Вирішуємо: моноліт чи headless. Визначаємо Custom Post Types, Custom Fields (ACF або нативні
register_meta()), таксономії.
-
Розробка. Локальне середовище: Docker (nginx + php-fpm + MariaDB). Git з pre-commit хуками для PHP CS Fixer та ESLint. Деплой через WP-CLI + SSH або Buddy.works CI/CD.
-
Тестування. PHPUnit для кастомних плагінів. Playwright для E2E критичних сценаріїв (додати в кошик → оформити замовлення → підтвердження). Lighthouse CI в пайплайні — падаємо, якщо Performance Score < 85.
-
Деплой та підтримка. Staging через WP Stagecoach або ручний клон. Моніторинг — UptimeRobot + Sentry для PHP помилок. Оновлення плагінів — через WP-CLI в тестовому середовищі спочатку.
Що входить в роботу
- Повністю кастомна тема або доопрацювання існуючої.
- Налаштоване об'єктне кешування (Redis/Memcached) та Full Page Cache.
- Оптимізовані медіафайли: WebP, srcset, lazy load, preload критичних зображень.
- Видалення дублюючих плагінів та централізація функціоналу.
- Документація по структурі коду та інструкції по оновленню.
- Навчання контент-менеджерів роботі з блоками Gutenberg.
- Гарантія безперебійної роботи протягом 30 днів після деплою.
- Доступ до репозиторію з повною історією змін.
Як провести аудит WordPress сайту за 5 кроків?
- Перевірте
wp-config.php — чи увімкнено WP_DEBUG та WP_DEBUG_LOG. В продакшені вони мають бути вимкнені.
- Відкрийте Query Monitor і подивіться кількість запитів на головній. Норма — менше 30.
- Запустіть Lighthouse — зверніть увагу на LCP, CLS, INP. Якщо LCP > 2.5 с, шукайте блокуючі ресурси.
- Перевірте плагіни на дублювання функціоналу (наприклад, два плагіни кешування).
- Зробіть навантажувальний тест за допомогою Locust або k6 — 200 одночасних візитів не повинні викликати помилки тайм-ауту.
Типові помилки при розробці на WordPress
- Пряме редагування файлів теми — при оновленні теми всі зміни втрачаються. Завжди використовуйте дочірню тему або повністю кастомну.
-
update_post_meta() в циклі — кожен виклик окремий UPDATE. Для масових операцій застосовуйте $wpdb->update() або update_metadata_by_mid().
- Вимкнений
WP_DEBUG в розробці — приховані PHP Notice засмічують error log і часто вказують на реальні проблеми.
- Зберігання медіа в Git —
wp-content/uploads в .gitignore, синхронізація через WP-CLI media import або rsync.
- Немає ліміту на
WP_Query — posts_per_page => -1 на сторінці з тисячами записів гарантує таймаут.
Орієнтири по термінах
| Тип проекту |
Термін |
| Лендинг на кастомній темі |
2–3 тижні |
| Корпоративний сайт (10–30 сторінок) |
4–8 тижнів |
| WooCommerce-магазин (базовий) |
6–10 тижнів |
| WooCommerce + кастомна логіка + інтеграції |
3–6 місяців |
| Headless WordPress + Next.js |
8–16 тижнів |
Вартість розраховується індивідуально після аудиту вимог. Отримайте консультацію для попередньої оцінки.
Чому варто довірити розробку WordPress професіоналам?
Ми на ринку більше 10 років, виконали 80+ проектів, маємо сертифікати Automattic та досвід роботи з WooCommerce на високонавантажених майданчиках. Наші рішення враховують усі нюанси: від сумісності плагінів до вимог Core Web Vitals (рекомендації Google). Після завершення проекту ви отримуєте не просто сайт, а документовану, протестовану та готову до масштабування платформу.
Для консультації та оцінки вашого проекту — пишіть або телефонуйте. Ми відповідаємо протягом години в робочий час. Замовте аудит вже сьогодні.