Архитектурный набор
Для создания платформы, собирающей компенсации за задержки рейсов и автоматически ранжирующейся по тысячам длиннохвостых запросов, выбран простой, но мощный стек:
- Next.js 16 с App Router – отвечает за фронтенд и динамическую генерацию страниц.
- Supabase (PostgreSQL) – центральное хранилище данных, поддерживающее быстрые запросы и удобный API.
- Make.com – оркестратор ETL‑процесса, запускающий сбор и трансформацию данных каждые восемь часов.
- Claude API – генеративный ИИ, формирующий уникальный контент на основе полученных данных.
Система обслуживает пять языков (NL, EN, DE, FR, ES) и три типа страниц: детали рейса, страницы аэропортов‑хабов и обзоры авиакомпаний.
Автоматизированный конвейер данных
- Получение исходных данных. Make.com делает запрос к AviationStack API, получая сведения о задержанных и отменённых рейсах.
- Обогащение записи. Для каждого рейса добавляются:
- информация об аэропортах отправления и прибытия;
- текущие погодные условия из OpenWeather;
- расчёт великой‑окружной дистанции, используемый при расчёте компенсаций.
- Генерация текста. На основе агрегированных полей вызывается Claude API, который формирует аналитический блок на нидерландском языке: короткое резюме, список «бейджей», рекомендации пассажиру.
- Сохранение. Обогащённый объект записывается в Supabase через UPSERT, используя детерминированный шаблон слага:
flight_iata-dep-arr-date.
Таким образом, каждый цикл обновления добавляет новые рейсы и обновляет уже существующие, без необходимости ручного вмешательства.
Рендеринг страниц с ISR
Next.js использует динамические маршруты и Incremental Static Regeneration (ISR). Для каждой комбинации языка и слуга формируется путь вида:
/[locale]/vlucht/[slug] // NL
/[locale]/flight/[slug] // EN и другие
При первом запросе страница генерируется статически, а затем кэшируется на CDN. Параметр revalidate: 3600 (один час) заставляет Next.js проверять актуальность данных в Supabase и, при изменении, пересобирать страницу без полной пере‑деплойки. Это обеспечивает:
- мгновенное появление новых рейсов в поиске;
- быстрый отклик благодаря edge‑кешированию;
- экономию ресурсов, так как только изменённые страницы пересоздаются.
Стратегия слуга: уникальность и семантика
Ключевым элементом SEO‑оптимизации является структурированный slug, включающий:
- номер рейса (например,
KL1234); - IATA‑коды аэропортов отправления и прибытия (
AMS,LHR); - дату полёта (
2026-02-15).
Итоговый URL выглядит как kl1234-ams-lhr-2026-02-15. Такой слуг:
- гарантирует уникальность даже при повторяющихся номерах рейсов в разные даты;
- насыщен ключевыми словами, которые напрямую соответствуют поисковым запросам пользователей;
- облегчает парсинг Google, позволяя системе понять контекст без дополнительного анализа контента.
Многоязычное SEO
Для каждой локали используется locale‑based routing. Путь меняется в соответствии с привычными запросами пользователей:
/nl/vlucht/– нидерландский вариант;/en/flight/– английский вариант;- аналогично для немецкого, французского и испанского.
На каждой странице размещаются hreflang‑теги, связывающие версии разных языков и указывающие поисковикам, какие страницы являются альтернативами. Это предотвращает дублирование контента и улучшает индексацию в международных поисковых системах.
Преимущества подхода
- Масштабируемость – система легко расширяется до десятков тысяч страниц без роста времени сборки.
- Автоматизация – полностью автономный цикл ETL + генерация контента снижает трудозатраты.
- Качество контента – ИИ‑модель Claude генерирует уникальные тексты, адаптированные под каждый язык, что повышает шансы на индексацию.
- Быстрота доставки – ISR + edge‑кеширование обеспечивает загрузку страниц в пределах миллисекунд.
- Контроль над URL – продуманный slug повышает релевантность и кликабельность в SERP.
Сочетание современных фронтенд‑технологий, облачной базы данных и генеративного ИИ позволяет построить SEO‑движок, способный обслуживать огромный набор нишевых запросов, поддерживая при этом высокий уровень качества и скорости.