Сайт эскорт-агентства, работающего в нескольких городах и странах
Коротко. Одногородское агентство и агентство в пяти городах — это разные системы, а не одна с другим наполнением. Расходятся они в четырёх местах: как устроены адреса, на каком языке говорит анкета и на каком интерфейс, в какой валюте названа цена и по каким правилам работает город. Ошибка в любом из четырёх не выглядит поломкой — сайт открывается, всё работает, просто города не собирают поиск, а часть заявок уходит не туда. Ниже — как эти четыре решения принимаются и что ломается, когда их принимают позже.
Страница про работу на нескольких рынках. Если агентство в одном городе и вопрос в том, из чего вообще состоит такой сайт, читайте полное руководство по разработке сайта эскорт-агентства.
Решение первое: как устроены адреса городов
Это решение принимается один раз и меняется потом дороже всего, потому что за ним тянется весь накопленный поиск.
| Устройство | Когда подходит | Чем платите |
| Отдельный домен на страну |
Страны с разными правилами и разными юрлицами; нужна полная изоляция |
Каждый домен набирает вес с нуля. Дороже всего в сопровождении |
| Один домен, папка на город |
Большинство случаев: города набирают вес на общем домене |
Один домен — одна судьба: проблема на нём касается всех городов сразу |
| Поддомен на город |
Когда города действительно автономны и управляются разными людьми |
Вес делится хуже, чем в папках, а сложность как у отдельных доменов |
| Один общий раздел с фильтром по городу |
Пока город один, а второй только обсуждается |
Городу нечего показать поиску: у него нет своего адреса |
⚠ Последняя строка — самая частая ошибка. Фильтр в выдаче кажется тем же самым, что и страница города, но у него нет собственного адреса, а значит нечего индексировать и не на что вести рекламу. Город, существующий только как значение фильтра, для поиска не существует вовсе.
Практическое следствие: страница города заводится тогда, когда в городе есть что показать. Пустой раздел под город, открытый заранее, вредит: он попадает в обход, ничего не отвечает и тянет вниз соседние.
Решение второе: язык анкеты и язык интерфейса — это разные языки
В многоязычном агентстве их постоянно путают, а они живут по разным правилам.
-
Интерфейс — кнопки, формы, подписи. Переводится один раз, полностью, и должен переводиться целиком: наполовину переведённая форма выглядит как неисправность.
-
Анкета — текст о конкретном человеке. Он не всегда существует на всех языках, и это нормально. Ненормально — показывать пустоту или подставлять чужой язык молча.
-
Служебные сообщения — письма, подтверждения, ответы формы. У них свой язык: тот, на котором обратился человек, а не тот, что стоит в настройках агентства.
Правило, которое стоит заложить сразу: отсутствующий перевод показывается как отсутствующий, а не заменяется соседним языком. Русский текст внутри ивритской страницы выглядит как «почти работает» и доезжает до посетителя незамеченным, потому что тот, кто делал сайт, на этой странице не читает.
Решение третье: цена
Как только городов больше одного, у цены появляется три отдельных вопроса, и ответы на них не связаны между собой.
| Вопрос | Почему отдельный | Обычный ответ |
| В какой валюте названа |
Цена в чужой валюте читается как «не для меня» |
Валюта города, а не валюта владельца агентства |
| В какой валюте принята |
Это вопрос к эквайеру, а не к витрине |
Обычно одна-две валюты расчёта, независимо от числа городов |
| Кем установлена |
Города различаются по уровню цен сильнее, чем кажется из центра |
Свой прайс на город, а не пересчёт по курсу |
Пересчёт единой цены по курсу — самое соблазнительное и самое неудачное решение: получаются числа вроде «317» там, где рынок мыслит сотнями, и цена перестаёт читаться как цена.
Цена на витрине = прайс города (задан вручную)
Сумма к списанию = цена × курс на момент оплаты, в валюте расчёта эквайера
Решение четвёртое: города различаются по правилам
⚠ Это место, где обобщать нельзя, и где статья в интернете не заменяет юриста. Что можно сказать безопасно: правовой режим этой деятельности различается не только между странами, но и внутри одной страны, и различия касаются не только самой услуги, но и того, что можно писать в объявлении, что показывать на фотографии и какие данные о людях хранить.
Из этого следуют вполне технические требования к сайту, которые лучше заложить заранее, чем переделывать по требованию:
- Тексты и условия — свои на город, а не один общий шаблон с подставленным названием.
- Возможность выключить город целиком, быстро и не ломая остальные.
- Разделение данных по городам, чтобы запрос по одному не поднимал всё остальное.
- Разные наборы обязательных полей в анкете, если города требуют разного.
Смежная тема разобрана отдельно: правовые вопросы разработки сайтов интим-услуг.
Что ломается, когда городов становится больше
| Что видно | Что за этим стоит |
| Заявка приходит без города |
Форма одна на весь сайт и не знает, с какой страницы отправлена |
| Города конкурируют друг с другом в выдаче |
Страницы городов отличаются только названием города: для поиска это одна страница |
| Анкета видна не в том городе |
Принадлежность к городу хранится как подпись, а не как связь |
| Письмо приходит на чужом языке |
Язык письма взят из настроек агентства, а не из обращения |
| Нельзя сказать, какой город прибылен |
Заявки и расходы не размечены по городу с самого начала |
Последняя строка важнее прочих. Разметка по городу заводится в первый день, потому что задним числом её не восстановить: заявки за прошлый год не разложатся по городам, если в них этого поля не было.
Чем страница города наполняется, чтобы не быть пустой
Страница, отличающаяся от соседней только словом в заголовке, не работает. Наполнять её приходится тем, что действительно различается:
- анкеты, доступные именно здесь, с честным количеством;
- как устроена работа в этом городе: выезд, сроки, что нужно заранее;
- районы и ориентиры, которыми пользуются местные, а не административное деление;
- цены этого города;
- условия и ограничения, если они здесь свои.
Если по этому списку про город нечего сказать, страницу заводить рано. Это честный признак: города, в котором нечего описать, ещё нет.
Что проверить прямо сейчас
- Есть ли у каждого города собственный адрес, а не значение фильтра.
- Отличается ли страница города чем-нибудь, кроме названия города.
- Знает ли форма заявки, с какой страницы она отправлена.
- На каком языке уходит письмо: на языке обращения или на языке настроек.
- Показывается ли отсутствующий перевод как отсутствующий.
- Задан ли прайс на город вручную или пересчитывается по курсу.
- Можно ли выключить один город, не задев остальные.
- Размечены ли заявки и расходы по городу.
Как это делает adults.dev
Мы начинаем с четырёх решений выше, потому что каждое из них дешевле принять до разработки, чем переделать после. Адреса городов, разделение языка анкеты и интерфейса, прайс на город, возможность выключить город целиком — всё это закладывается в основу, а не добавляется, когда появился второй город.
Практически разговор начинается с вопроса, какой город сейчас прибыльнее. Если ответа нет — а его чаще нет, чем есть, — первой работой становится разметка, и уже она обычно меняет представление о том, куда расширяться дальше.
Обсудить многогородской проект:
Telegram: @adultsdev
E-mail: info@adults.dev