Skip to content

Всё для WordPress, веб-разработки — и не только

🛠 Полное руководство по мультисайту WordPress

🛠 Полное руководство по мультисайту WordPress

Десять сайтов на WordPress, и к каждому свой логин, своя админка, свои обновления. Через месяц администрирование превращается в работу на полный день.

WordPress Multisite решает эту проблему на корню: одна установка, один вход, а сайтов, сколько нужно. Этот режим встроен в ядро WordPress с версии 3.0 и не требует сторонних плагинов. Ниже, пошаговая настройка мультисайта от включения в wp-config.php до управления готовой сетью.

💡 Быстрый обзор:

  • Подготовьте WordPress: установите сайт на собственном хостинге и получите доступ к файлам по FTP или через файловый менеджер. WordPress.com-тарифы для мультисайта не подходят.
  • Включите мультисайт: добавьте define('WP_ALLOW_MULTISITE', true); в wp-config.php. После обновления админки появится пункт «Настройка сети».
  • Настройте структуру сети: выберите поддомены или подкаталоги и заполните базовые параметры. От этого решения зависит формат URL всех сайтов сети.
  • Активируйте сеть: скопируйте выданный WordPress код в wp-config.php и.htaccess, сохраните файлы и войдите в админку заново. Сеть запущена.

Шаг 1: Подготовка установки WordPress

Мультисайт включается на существующем сайте или на чистой установке WordPress, принципиальной разницы нет. Главное условие: WordPress должен быть установлен на собственном хостинге (self-hosted). WordPress.com-тарифы мультисайт не поддерживают.

Если сайт уже работает, временно деактивируйте все плагины перед настройкой. Это страховка от конфликтов на этапе активации сети. После того как мультисайт заработает, плагины можно включить обратно, они подхватятся корректно.

Проверьте, что у вас есть доступ к файлам сайта по FTP или через файловый менеджер хостинга. Редактировать wp-config.php и.htaccess придётся вручную, без доступа к файловой системе не обойтись.

Шаг 2: Включение мультисайта в wp-config.php

Откройте файл wp-config.php в корне установки WordPress. Найдите строку:

1/* That's all, stop editing! Happy publishing. */

Прямо над ней добавьте:

1/* Multisite */
2define( 'WP_ALL_MULTISITE', true );

Сохраните файл. Эта единственная строка активирует скрытый функционал мультисайта в ядре WordPress. На этом этапе сеть ещё не создана, вы только включили инструмент для её настройки.

Обновите страницу админки (или войдите заново, если система выбросила). В меню Инструменты появится новый пункт, Настройка сети.

Шаг 3: Настройка сети, поддомены или подкаталоги

Перейдите в Инструменты → Настройка сети. Откроется страница «Создание сети сайтов WordPress»:

Страница настройки мультисайта WordPress

Здесь принимается ключевое архитектурное решение, структура адресов сайтов сети:

  • Поддомены: адреса вида site1.yourdomain.com, site2.yourdomain.com. Выглядят как независимые сайты, лучше для SEO. Требуют wildcard DNS-записи на сервере.

  • Подкаталоги: адреса вида yourdomain.com/site1, yourdomain.com/site2. Проще в настройке, не требуют дополнительной DNS-конфигурации. Работают на любом хостинге.

Если сайт старше месяца, WordPress не даст выбрать поддомены для существующей установки, только подкаталоги. Это не ограничение, а защита от битых ссылок (старые URL постоянных страниц пересеклись бы с адресами новых сайтов сети).

Заполните поля: название сети и email администратора сети. Email суперадминистратора не обязан совпадать с email администратора текущего сайта, но именно на него пойдут уведомления о новых регистрациях и проблемах сети.

Нажмите Установить.

Шаг 4: Активация сети, wp-config.php и.htaccess

После нажатия «Установить» WordPress покажет страницу с инструкциями и двумя блоками кода:

Инструкция по активации сети мультисайта

Перед внесением изменений сделайте резервную копию wp-config.php и.htaccess. Если опечатаетесь в любом из файлов, сайт упадёт, копия позволит откатиться за секунды.

Добавьте в wp-config.php (сразу после строки define('WP_ALLOW_MULTISITE', true);, которую вы уже добавили на шаге 2):

1define( 'MULTISITE', true );
2define( 'SUBDOMAIN_INSTALL', false );
3define( 'DOMAIN_CURRENT_SITE', 'yourdomain.com' );
4define( 'PATH_CURRENT_SITE', '/' );
5define( 'SITE_ID_CURRENT_SITE', 1 );
6define( 'BLOG_ID_CURRENT_SITE', 1 );

Значение SUBDOMAIN_INSTALL берите с экрана настройки: true для поддоменов, false для подкаталогов. DOMAIN_CURRENT_SITE, ваш домен без https:// и без слеша в конце.

Замените содержимое.htaccess. Если файла.htaccess нет, создайте его в корне сайта рядом с wp-config.php. Если файл есть, полностью замените его содержимое кодом с экрана настройки сети. Пример для подкаталогов:

1RewriteEngine On
2RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
3RewriteBase /
4RewriteRule ^index\.php$ - [L]
5
6#Rewrite rule: trailing slash for wp-admin
7RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
8
9RewriteCond %{REQUEST_FILENAME} -f [OR]
10RewriteCond %{REQUEST_FILENAME} -d
11RewriteRule ^ - [L]
12RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
13RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
14RewriteRule . index.php [L]

Обратите внимание: код на вашем экране WordPress может незначительно отличаться от примера выше. Копируйте именно тот, который выдала ваша установка, он сгенерирован под конкретную конфигурацию сервера.

После сохранения обоих файлов выйдите из админки и войдите заново. WordPress перечитает конфигурацию и активирует сеть.

Шаг 5: Панель администратора сети

После повторного входа в админку появляется новый пункт меню, Мои сайты → Администратор сети:

Выпадающее меню администратора сети WordPress

Панель администратора сети, это отдельный раздел, где управляются все сайты сети. Здесь доступны:

  • Сайты, список, добавление, редактирование и удаление сайтов сети.
  • Пользователи, управление пользователями, назначение администраторов отдельных сайтов.
  • Темы, установка и активация тем для всей сети. Тема становится доступной сайтам только после сетевой активации.
  • Плагины, сетевая активация плагинов (подключаются сразу на всех сайтах) или разрешение активировать выборочно.
  • Настройки, глобальные параметры: регистрация сайтов и пользователей, welcome-письма, лимиты загрузок.

Чтобы вернуться к администрированию конкретного сайта, выберите его в выпадающем меню Мои сайты и нажмите Консоль:

Список сайтов мультисети в меню Мои сайты

Кнопка «Консоль» переводит в обычную админку выбранного сайта, ту же самую панель, что и у одиночной установки WordPress. Переключение между сайтами происходит мгновенно, без повторного входа.

Шаг 6: Добавление первого сайта и администрирование

Сеть создана. Добавим первый дочерний сайт.

В панели администратора сети перейдите в Сайты → Добавить новый. Заполните поля:

  • Адрес сайта, часть URL: имя поддомена или название подкаталога (только латиница и дефисы).
  • Название сайта, отображаемое имя, которое видит владелец сайта в админке.
  • Email администратора, пользователь с таким email станет администратором нового сайта. Если пользователя с таким email ещё нет в сети, WordPress создаст учётную запись автоматически.

Нажмите Добавить сайт, готово. WordPress создаст новый сайт с дефолтной темой, чистой базой данных и назначенным администратором. Владелец сайта получает стандартную админку WordPress без доступа к настройкам сети. При необходимости суперадминистратор может в любой момент зайти в консоль любого сайта сети через панель администратора.

Несколько важных моментов администрирования:

  • Обновления ядра, тем и плагинов применяются один раз, сразу для всей сети. Экономия времени по сравнению с N отдельными установками растёт линейно с каждым новым сайтом.
  • Пользователь может быть зарегистрирован на одном сайте сети или на нескольких. Права на каждом сайте назначаются отдельно.
  • Темы и плагины устанавливаются суперадминистратором. Отдельные сайты видят только то, что суперадминистратор разрешил в масштабе сети.
  • Резервное копирование делается на уровне всей установки, одна база данных, одна файловая система. Восстановление тоже одно на всех.
  • Лимиты загрузок задаются глобально в Настройках сети: максимальный размер файла и допустимые типы файлов. По умолчанию WordPress мультисайт ограничивает загрузку 1500 КБ на сайт, это значение стоит увеличить под конкретные нужды.
  • Доменное mapping (плагин WordPress MU Domain Mapping или встроенный функционал современных версий) позволяет привязать отдельный домен к любому сайту сети. Сайт с адресом network.com/site5 может открываться по собственному домену site5.com, сохраняя управление внутри мультисайта.

При удалении сайта из сети его контент (страницы, записи, медиафайлы) удаляется безвозвратно. WordPress показывает предупреждение, но не создаёт автоматический бэкап. Перед удалением любого сайта делайте экспорт его данных через стандартный инструмент экспорта, это займёт минуту, но сохранит контент для возможного восстановления.

Также учитывайте, что wp-cron в мультисайте работает иначе: запланированные задачи выполняются при посещении любого сайта сети, а не каждого по отдельности. Если на одном из сайтов сети низкая посещаемость, его cron-задачи всё равно выполнятся при заходе на активный сайт.

Рабочий стол с кодом WordPress на экране

⁉️🤔 Частые вопросы

Можно ли превратить существующий сайт с контентом в мультисайт?

Да, именно этот сценарий описан в шагах выше. Деактивируйте плагины, добавьте WP_ALLOW_MULTISITE в wp-config.php и пройдите настройку сети. Существующий контент станет главным сайтом сети с ID 1. Обратной дороги нет: отключить мультисайт и вернуть обычный режим сложнее, чем включить. Сделайте полный бэкап базы данных и файлов перед стартом.

Поддомены или подкаталоги, что реально лучше?

Поддомены выглядят как отдельные сайты и не имеют проблемы «а что если плагин создаст страницу с таким же slug как у дочернего сайта». Но для поддоменов нужен wildcard DNS и поддержка хостера. Подкаталоги проще: работают сразу, без DNS. Минус подкаталогов, конфликт slug. Если плагин на главном сайте создаст страницу /contact, а у вас есть дочерний сайт yourdomain.com/contact, дочерний сайт перестанет открываться. Для старта берите подкаталоги, а при росте сети переезжайте на поддомены через смену конфигурации.

Сколько сайтов реально выдерживает один мультисайт?

Технических ограничений нет, известны инсталляции с тысячами сайтов. Узкое место, не WordPress, а сервер: каждый сайт сети обслуживается одним PHP-процессом и одной базой данных. На обычном VPS с 2 ГБ RAM комфортно работает 20-50 средних сайтов. При росте нагрузки добавляют RAM, ставят объектное кэширование (Redis) и переходят на выделенный сервер базы данных.

Можно ли дать разным сайтам разные темы и плагины?

Да, именно так и работает мультисайт. Суперадминистратор устанавливает темы и плагины на уровне сети, а администратор каждого сайта активирует нужные ему из списка разрешённых. Можно настроить принудительную активацию плагина для всех сайтов сети, это удобно для средств безопасности и резервного копирования.

Что будет с SEO при переходе на мультисайт?

Адреса существующего контента главного сайта не меняются, SEO сохраняется. Для новых сайтов сети поддомены воспринимаются поисковиками как отдельные домены (с отдельным авторитетом), а подкаталоги наследуют авторитет основного домена. Выбор между ними зависит от того, хотите ли вы растить авторитет одного домена или развивать независимые площадки.

Что выбрать: готовый план действий

Мультисайт WordPress не нужен владельцу одного сайта. Он становится оправданным, когда сайтов больше трёх и администрирование каждого по отдельности съедает время, которое лучше потратить на контент. Решение о внедрении принимайте не по количеству сайтов, а по совокупным затратам на их поддержку: если суммарное время на обновления, бэкапы и мониторинг превышает два-три часа в неделю, мультисайт окупается за первый месяц работы.

  • Один-два сайта, оставьте раздельные установки. Накладные расходы мультисайта (общая база, общая файловая система, невозможность отключить режим) не окупаются.
  • Три-десять сайтов, берите мультисайт на подкаталогах. Простая настройка, меньше движущихся частей.
  • Десять и больше, особенно под клиентов или разные бренды, поддомены с объектным кэшированием и регулярным мониторингом.

Перед запуском боевой сети потренируйтесь на локальной установке, тот же MAMP или Local by Flywheel за 15 минут дают песочницу, в которой можно пройти все шаги без риска уронить рабочий сайт. Возьмите за правило: меняете что-то в wp-config.php или.htaccess, сначала бэкап, потом правка. Настроив сеть один раз, вы сможете запускать новые сайты за пару минут, не повторяя рутину установки и настройки с нуля.