Що таке WordPress Multisite і навіщо він потрібен?
Керування мережею з 50 сайтів потребує єдиної системи. При окремому встановленні кожного сайту адміністрування займає в 3–5 разів більше часу: 50 оновлень ядра, 50 копій плагінів, 50 баз даних. WordPress Multisite (WPMS) дозволяє запустити необмежену кількість сайтів з одного встановлення з єдиною БД. Це не просто «кілька сайтів на одному сервері» — це повне розділення інфраструктури при єдиному ядрі. Підходить для мереж ЗМІ, мультирегіональних проектів, SaaS-платформ на WordPress, освітніх порталів. Базове налаштування мережі з 3–5 підсайтів займає 2–3 дні; доопрацювання під production з ізоляцією даних та кастомними плагінами — від 5 днів. За 8+ років ми реалізували 50+ проектів Multisite, включаючи мережі зі 100+ підсайтами. Багато хто стикається з проблемами синхронізації користувачів, оновлень та контенту — Multisite вирішує їх одним рішенням. Кожен проект проходить навантажувальне тестування та оптимізацію Core Web Vitals. Зв'яжіться з нами для детального аудиту вашої поточної архітектури.
Як включити Multisite?
Додайте константу в wp-config.php до встановлення:
define('WP_ALLOW_MULTISITE', true); Після цього в меню «Інструменти» з'явиться пункт «Налаштування мережі». Згідно з WordPress Codex, константа повинна бути додана до встановлення. Ось покрокова інструкція:
- Відкрийте
wp-config.phpта вставте рядок вище перед рядком/* That's all, stop editing! */. - Зайдіть в адмінку > Інструменти > Налаштування мережі.
- Виберіть тип адресації: піддомени або підпапки.
- Скопіюйте згенерований код та додайте його в
wp-config.phpі.htaccess(абоnginx.conf). - Перезавантажте сервер.
Порівняння типів адресації
| Параметр | Піддомени | Підпапки |
|---|---|---|
| Налаштування DNS | Wildcard запис | Не вимагається |
| SSL | Wildcard сертифікат | Єдиний сертифікат |
| SEO | Краще для регіональних сайтів | Єдиний домен, підходить для розділів |
| Складність | Вища (налаштування DNS+SSL) | Нижча |
| Приклад | ru.example.com, en.example.com | example.com/ru, example.com/en |
Wildcard SSL для *.example.com отримується через Let's Encrypt з DNS-01 challenge. Наприклад:
certbot certonly --manual --preferred-challenges dns \ -d example.com -d '*.example.com' Типові помилки при налаштуванні
- Невірний порядок констант:
WP_ALLOW_MULTISITEповинна бути доdefine('DB_NAME', ...). Інакше Multisite не активується. - Пропущений wildcard в DNS: для піддоменів необхідно додати запис
* → A — ваш IP. Без неї нові сайти не відкриються. - SSL тільки на головному домені: при піддоменах кожен сайт відкривається з помилкою сертифіката, якщо не налаштований wildcard.
Структура таблиць в БД
Multisite створює таблиці з префіксом для кожного підсайту. Головний сайт використовує wp_posts, другий — wp_2_posts, третій — wp_3_posts:
wp_blogs -- реєстр сайтів мережі wp_blog_versions -- версії БД за сайтами wp_sitemeta -- мета-дані всієї мережі wp_site -- кореневий сайт wp_users -- спільні користувачі (один реєстр) wp_usermeta -- ролі зберігаються тут per-site -- Таблиці першого сайту wp_posts, wp_postmeta, wp_options, wp_terms... -- Таблиці другого сайту wp_2_posts, wp_2_postmeta, wp_2_options, wp_2_terms... Користувачі спільні, але ролі — різні для кожного підсайту. Користувач може бути редактором на site2 і підписником на site3.
Програмне створення підсайтів
$blog_id = wpmu_create_blog( 'newsite.example.com', '/', 'Новий сайт', get_current_user_id(), ['public' => 1], 1 ); if (is_wp_error($blog_id)) { error_log('Помилка: ' . $blog_id->get_error_message()); return; } switch_to_blog($blog_id); update_option('blogdescription', 'Опис'); restore_current_blog(); Як прив'язати кастомний домен до підсайту?
Domain mapping — прив'язка стороннього домену (client-site.ru) до підсайту Multisite. Нативно з WordPress 4.5+ можна змінити siteurl і home через WP-CLI. Nginx додає server block, що направляє запити в ту ж кореневу директорію. Ось приклад конфігурації:
server { listen 443 ssl; server_name client-site.ru; root /var/www/html; ... } Не забудьте додати запис DNS для client-site.ru на IP сервера.
Мережеві плагіни та теми
Плагін, активований на рівні мережі, працює на всіх підсайтах. Деякі плагіни не підтримують Multisite через хардкоджений table prefix. Перевірити, чи є встановлення мультисайтовим, можна за допомогою is_multisite().
Як Multisite вирішує проблему масштабування?
При 50–100 активних підсайтах на одному сервері можлива деградація через таблицю wp_options кожного сайту. Рішення: Redis Object Cache з сегрегацією ключів за blog_id, Varnish, HyperDB для розподілу БД. Середня економія бюджету при переході з окремих встановлень на Multisite становить 40–60%. Multisite в 3–5 разів вигідніше окремих встановлень за вартістю хостингу та часу адміністрування. Замовте консультацію для оцінки вашого проекту.
Обмеження та рішення
| Проблема | Рішення |
|---|---|
| Деградація при 50+ підсайтів | Redis Object Cache + Varnish |
| Повільний switch_to_blog | HyperDB для розподілу БД |
| Конфлікт плагінів | Тестування на staging мережі |
Що входить в роботу
- Аналіз вимог та проектування архітектури мережі
- Налаштування сервера (Nginx, SSL wildcard, Redis, сертифікати)
- Встановлення та конфігурація WordPress Multisite
- Domain mapping для кастомних доменів
- Підключення мережевих плагінів (кешування, безпека, SEO)
- Розробка кастомного реєстратора підсайтів при необхідності
- Документація, передача доступів, навчання команди
- Гарантійний період 30 днів після здачі проекту
Наш досвід: 8+ років роботи з WordPress, 50+ успішних проектів Multisite, 100+ підсайтів в окремих проектах. Зв'яжіться з нами для оцінки вашого проекту. Замовте налаштування WordPress Multisite під ключ — ми запропонуємо оптимальне рішення.







