Поиск для статических сайтов на Astro

В прошлом месяце я добавил поиск на три сайта-каталога ИИ.

Перед тем как выбрать Pagefind, я сравнил четыре основных варианта. Вот почему я остановился на нем.

Претенденты

• Pagefind: библиотека на базе Rust. Она работает во время сборки и отдает всё в виде статических файлов. • Algolia DocSearch: хостинговый сервис. Он быстрый и отточенный, но платный для коммерческих сайтов. • Lunr.js: клиентская библиотека. Она работает офлайн, но увеличивает вес начальной загрузки страницы. • FlexSearch: более быстрая альтернатива Lunr, но она всё равно требует передачи всего индекса в браузер.

Почему я выбрал Pagefind

  1. Размер индекса На моих сайтах 1 000 записей. Индекс Lunr добавил бы 4 МБ к каждой загрузке страницы. Pagefind использует шарды (shards). Он загружает небольшие фрагменты по мере того, как пользователь вводит текст. Начальная загрузка остается в пределах 30 КБ.

  2. Стоимость Algolia стоит 49 долларов в месяц для коммерческих сайтов. Мой общий бюджет на все три сайта — 25 долларов в месяц. Pagefind бесплатен.

  3. Развертывание Pagefind создает статические файлы. Cloudflare Pages автоматически кэширует их на edge-серверах. Вам не нужно управлять API-ключами или беспокоиться об ограничениях частоты запросов (rate limits).

Компромиссы

Pagefind не идеален. Вам стоит знать о двух его недостатках:

• Отсутствие логирования запросов: Pagefind работает в браузере. Он не сообщает вам, что именно ищут пользователи. Algolia делает это автоматически. Для Pagefind вам придется создать собственный слой логирования. • Базовая устойчивость к опечаткам: Pagefind использует простейший стемминг (stemming). Ему трудно справляться с серьезными опечатками. Algolia работает с опечатками гораздо лучше.

Сводное сравнение

• Pagefind: бесплатно, использует статические файлы, хорошо масштабируется благодаря ленивой загрузке (lazy loading), базовая устойчивость к опечаткам. • Algolia: $49/мес., использует облачную инфраструктуру, хорошо масштабируется, высокая устойчивость к опечаткам. • Lunr.js: бесплатно, передает индекс вместе со страницей, плохо масштабируется, слабая устойчивость к опечаткам.

Мой вердикт

Если вы ведете статический сайт с небольшим бюджетом и от 500 до 1 000 записей, используйте Pagefind. Если вам нужна продвинутая аналитика и идеальная устойчивость к опечаткам, платите за Algolia.

Источник: https://dev.to/morinaga/static-site-search-for-astro-in-2026-why-i-picked-pagefind-over-algolia-and-lunr-3891