Сайт для малого бизнеса: сайт, который приносит заявки, а не только посещения
Малому бизнесу мало красивого сайта. Нужен сайт, который превращает визит в сообщение, звонок или запрос цены. Вот блоки, которые мы переносим из проекта в проект ради этого: от форм, защищённых от спама, до записи через WhatsApp и разметки для местного поиска.
Задача
Мастер на час, прокат автомобилей, барбершоп, юридическая фирма - разные занятия, одна потребность. Сайт должен находиться в местном поиске, за несколько секунд объяснять предложение и давать простой способ связаться.
Мы делаем такие сайты быстрыми статическими страницами из блоков, которые уже работают в других проектах. У FixItFast, Gandia Renta Car и Obsidian есть свои отдельные кейсы, а этот - про общий набор инструментов.
Формы без спама и без капчи
Капча останавливает ботов, но заодно и часть людей. Наши формы опираются на признаки, которых человек даже не замечает:
- В форме есть скрытое поле, и оно не прячется через
display: none, а уводится за пределы экрана: продвинутые боты пропускают поля, скрытые первым способом. - Есть и минимальное время заполнения: форму, отправленную меньше чем через три секунды после появления, заполнял не человек.
- Между отправками нужна пауза: из одного браузера нельзя отправить вторую заявку раньше чем через минуту.
- Галочка согласия, которую всё равно требует закон.
Бот может обойти скрипты сайта, поэтому платформа, принимающая заявку, проверяет скрытое поле и время ещё раз. Если что-то не так, бот получает тот же ответ “спасибо”, что и человек, и ничего не узнаёт. Кроме того, платформа принимает не больше пяти заявок в час от одного посетителя и ста в день на одну компанию и пересылает их только на адреса, одобренные компанией, - через форму нельзя отправить письмо кому-то постороннему.
Каждая принятая заявка приходит компании на почту и сохраняется карточкой в её CRM. Если с CRM что-то случится, письмо всё равно уйдёт.
Запись через WhatsApp с уже написанным сообщением
Многие небольшие компании и так работают в WhatsApp, поэтому каждая кнопка открывает чат с первым сообщением на языке посетителя, составленным под конкретную страницу. На странице машины у Gandia Renta Car в сообщении указаны модель и год, оставлены пропуски для дат, а в конце стоит “Мой язык: русский”. У FixItFast панель, закреплённая внизу экрана, держит кнопку под рукой на любой странице, а сообщение говорит, что посетитель хочет узнать цену работы.
Посетителю остаётся нажать “Отправить”, а владелец сразу понимает, о чём запрос и на каком языке отвечать.
Калькулятор цен для сезонной аренды
Цена аренды зависит от сезона и от того, на сколько дней берут машину. У Gandia Renta Car для каждой машины заданы цены на четыре сезона и восемь сроков аренды - от одного дня до месяца и больше. На странице машины посетитель двигает ползунок от 1 до 31 дня и видит цену за день и итог.
Сайт собирается заранее, а сезон зависит от сегодняшней даты. Поэтому сезон определяется в браузере, и цена верна в тот же день, когда сезон меняется, без пересборки. Тот же расчёт формирует и цены в статическом HTML, так что калькулятор и таблица цен всегда совпадают.
Карты без Google и без cookie
Встроенная карта Google ставит cookie Google ещё до того, как посетитель что-то выбрал в баннере. Мы заменяем её картой OpenStreetMap, которая ничего не сохраняет на устройстве посетителя. У Gandia Renta Car карта подгружает фрагменты, только когда появляется на экране, так что посетитель, не дошедший до раздела контактов, вообще не обращается к серверам карты.
Если компания выезжает к клиентам, карта показывает зону работ. У FixItFast зоны построены по официальным границам районов, которые она обслуживает, и нарисованы двумя стилями: обычная зона и та, куда компания выезжает только на крупные заказы. Карта обещает не больше, чем текст. Контуры упрощаются один раз, при подготовке данных, - со 165 КБ исходной детализации до нескольких килобайт. Они взяты из тех же данных, что и подложка карты, поэтому совпадают с береговой линией и дорогами при приближении.
Для первого экрана есть вариант полегче: готовая SVG-карта региона с выделенными провинциями компании и отмеченными городами, так что браузер загружает картинку, а не картографическую библиотеку.
Чтобы Google и ИИ-ассистенты правильно понимали бизнес
Каждый сайт описывает компанию разметкой schema.org подходящего типа - AutoRental для проката, HomeAndConstructionBusiness для мастера на час. Все страницы ссылаются на компанию по одному идентификатору, поэтому поисковик видит одну компанию, а не копию на каждой странице. Данные в разметке берутся из тех же файлов, что и видимая страница, и не могут ей противоречить. Звёзды рейтинга намеренно не размечаются: правила Google не позволяют компании размечать собственную оценку. Страницы с вопросами и ответами получают разметку FAQ.
Для ИИ-ассистентов каждый сайт публикует llms.txt и llms-full.txt - краткий путеводитель по компании и полный текст сайта. У Gandia Renta Car они строятся из тех же данных, что и страницы, а у каждой страницы есть ещё и копия в Markdown. У FixItFast они собираются из готового HTML в конце каждой сборки. В обоих случаях они не отстают от сайта.
Рейтинг Google, который не устаревает
Рейтинг, вписанный в страницу вручную, со временем устаревает. У Obsidian оценка в Google и число отзывов запрашиваются через Google Places API при каждой сборке, так что цифра на странице актуальна на момент последней сборки. Если Google не ответит, используется сохранённое значение, и сборка не падает.
Переезд с WordPress без потери ссылок
У старого сайта есть ссылки с других сайтов и история в Google. Перед переездом мы составляем список всех страниц, которые публиковал старый WordPress, по его карте сайта и списку страниц. Затем каждый адрес постоянным 301-редиректом ведёт на новый аналог. У FixItFast это старые страницы, те же адреса без косой черты в конце, RSS-ленты, на которые ссылалась каждая старая страница, и страница с адресом на кириллице. Cloudflare не распознаёт кириллические адреса, поэтому для неё понадобилось правило по шаблону.
Лендинг для юридических услуг
Те же блоки подходят и для одностраничного сайта. Наш лендинг для юриста по иммиграционным делам написан на языке своей аудитории. Он ведёт читателя через процедуру в шесть шагов, соединённых пунктирной линией, - от выбора подходящего пути до получения новой карточки резидента. Каждый шаг завершается одним ключевым фактом: например, сколько существует путей или какая норма применяется. Дальше идут ответы на 14 частых вопросов со ссылками на действующие нормы, размеченные как FAQ для поисковиков. Каждая кнопка открывает WhatsApp с сообщением, в котором уже описана ситуация читателя и есть просьба о бесплатной первой консультации. В подвале прямо сказано, что информация на сайте не является юридической консультацией. Цифры вроде числа одобренных дел остаются незаполненными, пока фирма не даст настоящие.
Технологии
- Генератор: Astro (статическая сборка) + @yatoday/astro-ui
- Интерактивные части: Svelte 5 (калькулятор), Leaflet + OpenStreetMap (карты)
- Стили: Tailwind CSS 4
- Заявки, CRM и учёт согласий: API платформы Yatoday
- Поиск и ИИ: schema.org JSON-LD, llms.txt и llms-full.txt при сборке
- Рейтинги: Google Places API, запрос при сборке
- Хостинг и редиректы: Cloudflare Pages (_redirects)
- CI/CD: GitLab CI → Cloudflare PagesРезультат
Каждый новый сайт для малого бизнеса начинается с уже проверенных блоков. Формы отсекают ботов без капчи. Каждая страница ведёт к заявке или к чату в WhatsApp, где сообщение уже готово к отправке. Цены и рейтинги актуальны, карты показывают зону работ без cookie, а поисковики и ИИ-ассистенты получают точное описание компании. Когда клиент уходит с WordPress, старые ссылки продолжают работать. Эти же блоки используются на сайтах, которые мы ведём по подписке Web.Yatoday.




