Oleg Katrichuk
Назад к работам
Главная PetZone — платформа усыновления животных, лента объявлений на шести языках на getpetzone.com

PetZone — платформа помощи животным · 2025

Платформа усыновления животных, которую наконец-то может читать поиск

Полностековая платформа усыновления: бэкенд на .NET с clean architecture, React SPA на шести языках и prerender-pipeline, чтобы single-page app ранжировался в Google.

SPA, которую наконец-то могут сканировать поисковики — страницы животных читаются сервером на шести языках

.NETClean ArchitectureReactTypeScriptVitei18nextPostgreSQL
Перейти на сайт

Проблема

PetZone помогает животным найти дом — но усыновление случается только тогда, когда люди могут найти объявления. Приложение было сделано как client-rendered React SPA: отлично для UX и ужасно для SEO — поисковикам отдавалась пустая HTML-оболочка, поэтому страницы животных почти не ранжировались. Плюс аудитория мультиязычная (платформа на 6 языках), что умножает SEO-площадь и шанс ошибиться.

Подход

Разделил на две отдельные задачи — надёжный бэкенд и поисковая видимость поверх SPA — и поставлял слоями:

  1. Бэкенд .NET в clean architecture — слои Domain, Use Cases, Infrastructure, Contracts и API, отдельный нотификационный микросервис. Доменные и интеграционные тесты — поведение зафиксировано, а не «надеемся».
  2. SEO-лендинги — страницы по видам (собаки, кошки…) и обогащённые DTO животных (название вида/породы), чтобы в каждом объявлении был реальный индексируемый контент, а не только ID.
  3. Prerender-pipeline — шаг сборки, рендерящий ключевые маршруты в статический HTML и генерирующий sitemap, чтобы краулеры получали полноценные страницы, а пользователи — быстрый SPA.
Страница объявления PetZone — фото животного, вид, порода и контакт волонтёра, индексируется на шести языках

Стек и почему

  • Clean architecture в .NET — в домене (животные, объявления, волонтёры) есть реальные правила; изоляция от инфраструктуры держала их тестируемыми, а API — тонким.
  • React + Vite SPA с i18next — быстрый app-like UX на 6 локалях без тяжёлого фреймворка.
  • Prerender + sitemap вместо полного SSR-переписывания — получил SEO-выгоду без выбрасывания рабочего SPA и удвоения сложности хостинга. Прагматичное решение победило «правильное».
  • In-memory кэш вместо Redis — убрал целый кусок инфраструктуры, когда профайл показал, что внешний кэш на этом масштабе не окупает себя.

Результат

  • Страницы животных и видов теперь читаются сервером на всех поддерживаемых языках — краулеры видят контент, а не пустую оболочку.
  • Бэкенд покрыт тестами на доменном и интеграционном уровне — изменения доезжают в прод уверенно.
  • Инфраструктура со временем упростилась (убрали Redis), а не усложнилась.
Дашборд волонтёра PetZone — управление объявлениями, заявками на усыновление и профилями животных на 6 локалях

Что было сложно

SEO на client-rendered SPA — классическая ловушка: «правильное» решение — полное переписывание на SSR, что здесь означало бы месяцы и более рискованный деплой. Сложное было в том, чтобы не поддаться этому и вместо этого сделать prerender-шаг, дающий краулерам статический HTML для каждого маршрута на каждом языке, без разветвления кодовой базы на «SSR-режим» и «SPA-режим». Правильно сделать мультиязычные sitemap и canonical URL было кропотливой частью — сделаешь не так, и Google видит шесть копий одной страницы.

Другие проекты

Татьяна — колорист в Одессе, студия Zvezdochka, портфолио балаяж и airtouch

Сайт-портфолио, который приводит клиентов колористу

2026

Zvezdochka — студия окрашивания волос, Одесса

Образ-тяжёлый мультиязычный сайт-портфолио и запись для профессионального колориста — быстрые галереи из объектного хранилища, отзывы, курсы и прямые каналы записи.

Собственный мультиязычный дом, превращающий Instagram-трафик в записи

Next.jsTypeScripti18nCloudflare R2
Читать кейс
Оксана Рудак — психолог в Одессе, главный экран сайта oksanarudak.com с заголовком о помощи разобраться в себе, партнёре и отношениях

Сайт, который вызывает доверие и превращает подписчиков в первые сессии

2026

Оксана Рудак — психолог, Одесса

Тёплый, журнальный сайт практики психолога, которая помогает женщинам с токсичными отношениями, абьюзом и восстановлением самооценки — создан, чтобы вызывать доверие на чувствительной теме и мягко превратить сомнения посетителя в запись на консультацию, без давления.

Собственный двуязычный дом, превращающий подписчиков из Instagram в приватные первые обращения

Next.jsTypeScripti18nSEO
Читать кейс

Нужно что-то подобное?

Беру небольшое число проектов одновременно. Если это похоже на вашу задачу — напишите.