Цель: создание сайта для сети франчайзинговых представительств с возможностью добавления нового сайта для каждого нового города в один клик.
Для специалистов студии SiteUp это вроде тривиальная задача, ведь мы ранее уже создавали сайты для франчайзинговых сетей, как для нашей, так и для клиентов (например, туристический оператор РусКрымТур), однако далее, в процессе обслуживания таких проектов, мы столкнулись с рядом проблем, которые нам захотелось решить раз и навсегда:
- Для добавления каждого нового сайта нужно довольно много времени — создать субдомен, сделать дубликат базы и файлов, актуализировать контактную информацию, подключить формы из CRM, установить аналитику и т.д. Есть варианты проще, но речь конечно же идет о полноценном инструменте для каждого франчайзи, способного составить качественную конкуренцию в своей нише и в своем регионе.
- Актуализация контента. При изменении контента на основном сайте — синхронизация с остальными сайтами или требует написания дополнительного громоздкого функционала или проводится вручную.
- Лимиты хостинга. Большое количество субдоменов, баз данных и, в последствии рост размеров загруженных файлов, приводит к удорожанию услуг хостинга, если речь идет хотя бы о сотне сайтов — это превращается в дополнительную ощутимую регулярную статью расходов для бизнеса.
- Скорость. Мы обычно сопровождаем проекты, которые создаем, в том числе в плане SEO. Быстрая загрузка страниц — один из важнейших факторов и достичь нужных показателей с наличием всяких синхронизаций и отсутствием контроля за загружаемыми медиа и т.д. — задача практически не подъемная.
Итак, как мы решили поступить?
Сначала протестировать нашу гипотезу на сайте, написанном на чистом PHP, без админки и базы данных. Затем перенести готовое решение в собственный плагин для WordPress.
По этапам:
- Реализовали на хостинге возможность добавления субдоменов в автоматическом режиме. Написали функцию на PHP для этой цели.
- Вывели все контактные данные (адрес, телефон, e-mail и т.д.) в массив с переменными
- Написали функцию подстановки нужных значений в переменные из текстового файла, в зависимости от домена
- Переписали важные для дальнейшего продвижения модули robots.txt, sitemap.xml с подстановкой нужных переменных в зависимости от домена.
Результат: фактически у нас остался все тот же один сайт, с тем же контентом, только в зависимости от домена, по которому перешел посетитель, подтягивается нужная информация. При размере всего сайта всего 2.5 мб — мы получили неограниченное количество субдоменов с возможностью их добавления около одной минуты и моментально загружающихся страниц. Получилось простое решение для создания любого количества сайтов с автоматической подстановкой котнактных данных, указанием регионов и частичной уникализацией контента.
Пример: plastik-crimea.ru, smf.plastik-crimea.ru, sev.plastik-crimea.ru и т.д.
Второй этап — перенос функционала в плагин WP (заказчикам безусловно нужна админка для работы с сайтом). Конечно, кто-то, кто уже пробовал реализовать подобный функционал с этой CMS, может заметить, что у нее есть опция мультисайт. Но это дефолтное решение крайне топорное, громоздское и если уже выбирать — лучше создавать дубликаты сайтов, чем использовать эту опцию, т.к. в любом случае она создает дубли и в файловой системе и базе данных для каждого сайта, а контент не дублирует, его необходимо переносить отдельно. Да и дальнейшей синхронизации между сайтами после этого практически нет. Единственное преимущество — возможность контроля всей сети сайтов из одной админки и разграничение доступа рамках сайтов, созданных на субдоменах.
Первая проблема, которая у нас возникла — WP хранит все ссылки в базе данных и они абсолютные. Поэтому, при всем желании, наше готовое решение не работает — с любого субдомена происходит редирект на основной домен. Поэтому первое, что пришлось «допилить» — функционал подмены домена в WP, чтобы не плодить дополнительные таблицы в базе для каждого нового сайта.
Следующий этап: т.к. в WP контент и метатеги необходимо править из админки — добавили в плагин функцию создания шорткодов для этой цели. Заодно реализовали опцию проверки на наличие субдомена при добавлении, ранее это не было реализовано.
Ну и в итоге — вишенка на торте — реализация добавления городов в список меню фронтенда сразу после добавления в плагине. Планируемые доработки на ближайшее время: подключение собственной Яндекс.Метрики с настройкой целей и формы из CRM для каждого домена и изменение карты на странице контакты в зависимости от адреса для каждого домена.
Результат: заказчику необходимо в плагине в необходимые поля ввести контактные данные франчайзи в нужном городе, указать субдомен и нажать одну кнопку. Сайт для франчайзи готов. Посмотреть, как это работает, можно тут: https://cut-trees.ru
Планируете развивать свой бизнес в нескольких регионах? Обращайтесь — доработаем наш плагин под вашу CMS или ваши задачи. Заявку можно оставить на нашем сайте: https://siteup.ru