Розробка порталу для нерухомості
Портал нерухомості — складний продукт, що об'єднує пошук по карті, фільтри, іпотечний калькулятор та інтеграцію з CRM. Кожен з цих модулів потребує продуктивності та масштабованості: типовий проект обробляє до 100 000 об'єктів при 500 запитах в секунду. Наш досвід — понад 20 реалізованих проектів, де ми вирішували проблеми геопошуку, дублів оголошень та автоматизації вивантаження. Нижче — технічні деталі, які допоможуть уникнути типових помилок та заощадити бюджет на розробці.
Як PostGIS прискорює геопошук?
Головна проблема геопошуку — продуктивність просторових запитів. Типовий SQL SELECT * FROM properties WHERE ... з умовою радіусу від метро при 200 000 об'єктах виконується десятки секунд. Ми використовуємо PostGIS з індексами GIST — швидкість запитів в 3 рази вище. На одному з проектів з 200 000 оголошень час відповіді API на запит радіусу не перевищував 100 мс.
Порівняння підходів до геопошуку:
| Метод | Час запиту (100k об'єктів) | Складність реалізації |
|---|---|---|
| PostGIS GIST | 50–200 мс | Середня |
| Elasticsearch geo_shape | 200–500 мс | Висока |
| Клієнтська фільтрація | 2–5 сек (завантаження всіх даних) | Низька |
PostGIS з індексами GIST швидше Elasticsearch geo_shape в 2–3 рази на типових запитах радіусу, згідно з нашими навантажувальними тестами. Для кластеризації маркерів при zoom out використовуємо supercluster (npm) на клієнті або ST_ClusterKMeans на сервері. Це знижує навантаження на відтворення та прискорює взаємодію з картою.
Чому PostGIS, а не Elasticsearch?
Elasticsearch хороший для повнотекстового пошуку, але просторові запити (радіус, polygon) в PostGIS нативніші та швидші завдяки GIST-індексам. Крім того, PostGIS — розширення PostgreSQL, тому не потребує окремої інфраструктури. Elasticsearch ми використовуємо лише для пошуку по тексту оголошень (адреса, опис) або для агрегації статистики.
Як налаштувати вивантаження оголошень в YRL?
YRL (Яндекс.Нерухомість) — стандартний XML-формат для вивантаження оголошень. Створіть XML-файл за схемою 2.0: опишіть кожен об'єкт (адреса, ціна, площа, координати, зображення). Налаштуйте cron-задачу на сервері для щоденної відправки. Ми використовуємо Laravel з пакетом для парсингу XML та відправки через HTTP. Налаштування одного стандарту — 1–2 дні. Ми також підтримуємо CIAN XML та API, Realty.mail.ru.
Навіщо потрібен імпорт через YRL?
Правильна реалізація YRL гарантує, що об'єкти відобразяться в пошуку Яндекса без помилок. Автоматизація конвертації та відправки через cron-задачі виключає ручну роботу та підвищує частоту оновлення. Це безпосередньо впливає на кількість заявок з агрегаторів.
Розширені фільтри
Пошук за:
- Тип (квартира / будинок / ділянка / комерція)
- Кімнатність (студія, 1–4+к)
- Поверх (не перший / не останній / будь-який)
- Ціна (від-до, ₽ або ₽/м²)
- Площа (загальна, житлова, кухня)
- Рік побудови / стан
- Серія будинку (панель / цегла / моноліт)
- Метро + радіус пішки/на машині
- Район / мікрорайон / житловий комплекс
Кожна комбінація фільтрів генерує унікальний URL з ЧПУ-структурою, що важливо для SEO.
Як система оповіщень про нові об'єкти збільшує конверсію?
Користувач зберігає пошуковий запит. При появі нового об'єкта — email/push-оповіщення. Реалізація: cron-задача раз на годину порівнює нові об'єкти зі збереженими пошуками. Це підвищує повернення користувачів на портал на 30–40%.
Іпотечний калькулятор
Інтерактивний розрахунок: вартість об'єкта, початковий внесок (%), строк, ставка → щомісячний платіж, переплата. Інтеграція з API банків для відображення реальних програм (Ощад, ДОМ.РФ). Налаштування займає 2–3 дні. Додавання цього модуля знижує вартість залучення ліда — користувач може одразу оцінити свої можливості.
SEO для порталу нерухомості
Сторінки лістингу з фільтрами повинні мати унікальні URL та контент: наприклад, kupit-kvartiru-moskva/chertanovo-severnoe/3-komnatnye. Програмований контент заголовків та описів з фільтрів. Розмітка RealEstateListing schema.org. Також налаштовуємо статичні сторінки для популярних районів — це покращує індексацію та залучає органічний трафік.
Що входить в нашу роботу
Ми надаємо повний цикл розробки:
- Аналітика та проєктування архітектури
- Frontend на React 18/Next.js 14 з TypeScript та Tailwind
- Backend на Laravel 11 (PHP 8.3) або Node.js (Nest.js)
- Інтеграції з CRM (AmoCRM, Бітрікс24), банками, агрегаторами
- Тестування (unit, інтеграційне, навантажувальне) та деплой на ваш хостинг
- Документація, доступи та навчання адміністраторів
- Гарантійна підтримка 1 місяць
Зв'яжіться з нами для аудиту вашого проекту — ми розрахуємо терміни та вартість. Замовте MVP порталу нерухомості та перевірте гіпотезу на реальних користувачах.
Орієнтовні терміни
| Етап | Час |
|---|---|
| MVP (каталог, фільтри, карта, форма заявки) | від 2 до 3 місяців |
| Повний портал (CRM, геопошук, оповіщення, 3D-тури, іпотека) | від 4 до 6 місяців |
Отримайте консультацію щодо вашого проекту — оцінимо обсяг робіт та запропонуємо оптимальне рішення.







