Кейс · Продукти
plants.place: енциклопедія, де модель не має права на факти
Енциклопедія кімнатних рослин українською та англійською і дошка оголошень про рослини — усе це я сам створив на Cloudflare. Найцікавіше тут не код, а правила, завдяки яким сторінки, написані ШІ, не вигадують фактів.
plants.place- Роль
- Усе: продукт, SEO, контентна система, код через Claude Code
- Запуск
- серпень 2026 · 211 комітів за перші 9 днів
- Стек
- Один Cloudflare Worker, без фреймворку · D1 · R2 · Turnstile
- Зараз
- 133 види · 54 оголошення · українська + англійська

Прогалина
Усе почалося вдома. Моя партнерка вирощує кімнатні рослини й не могла знайти якісної ботанічної інформації українською — навіть за латинською назвою. Я перевірив. Шукаєш латинську назву рослини українською — отримуєш магазини й Вікіпедію. Ніхто не зібрав в одному місці структуровану ботанічну інформацію українською: походження, розмір, токсичність для домашніх тварин, догляд — усе з надійних джерел.
Перш ніж написати бодай рядок коду, ми дослідили попит. Три вивантаження з Ahrefs для України дали 375 863 ключові слова. Після очищення 20,9% пошукового обсягу виявилися сміттям, а решту ми об’єднали у 345 тем — по одній на рослину, а не на кожну фразу.
Частина сміття була прикметою часу. «Гербера» і «герань 2» — це також назви військових дронів: 2 906 сміттєвих ключових слів і близько 79 000 пошуків на місяць припадали на пов’язані з війною запити. Найбільшою категорією сміття були їжа й сировина — лаванда, авокадо та розмарин без жодного зв’язку з рослинами.
З рештою попиту все було зрозуміло: близько 78% пошуків — це просто назва рослини. «Купити» й «ціна» дають близько 8%, запитання про догляд — близько 7%. Люди спочатку хочуть дізнатися про рослину.
Що українці шукають про кімнатні рослини
Лише назва рослини 78%, купити й ціна 8%, догляд 7%, усе інше 7%.
Правило: модель не має права вигадувати факти
Латинська назва, автор, родина, розмір, природний ареал, токсичність — нічого із цього модель не генерує. Ці факти надходять із Глобального інформаційного фонду біорізноманіття, Вікіпедії та бази «Рослини світу онлайн» і потрапляють у промпт як дані. Модель пише лише зв’язний текст навколо них. Немає факту — поле залишається порожнім.
Це не педантичність. У першій же генерації монстера опинилася в «тропічних лісах Амазонії», бо так написано в українській Вікіпедії. Цей вид походить із Центральної Америки. Без цього правила помилка джерела потрапила б до енциклопедії як факт — під нашим ім’ям. Тепер блок перевірених фактів має пріоритет над усім, зокрема над Вікіпедією.
Просити чемно не працює. Працює список зауважень.
Можна скільки завгодно писати в промпті «щонайменше два блоки після кожного заголовка». Модель усе одно поставить там один абзац. Працює інше: перевірити відповідь кодом, зібрати конкретний список зауважень і надіслати його моделі наступним повідомленням — разом із її попередньою відповіддю. Не більше трьох спроб.
Перевірки навмисно нудні: достатньо тексту після кожного заголовка, щонайменше чотири розділи, обмеження довжини вступу й метатегів, хоча б один список, жодних зірочок розмітки, жодних фраз на кшталт «за перевіреними даними», які для читача звучать як виправдання, адже він не бачить нашої таблиці з даними.
На перших 50 картках результат можна було виміряти: у середньому 29 блоків і 554 слова на картку, 73 таблиці, 205 списків і жодного зауваження під час останнього запуску.
| Показник | Дешевша модель | Потужніша модель |
|---|---|---|
| Слів, та сама картка (монстера) | 277 | 493 |
| Таблиці | 0 у 20 картках | 73 у 50 картках |
| Спроби пройти перевірки | 1–3 | з першої спроби |
| Вартість одного виду | $0,007 | $0,065 |
Потужніша модель коштує приблизно на $3 більше для 50 карток. Дешевша заощаджує копійки, але знижує якість, за яку потім доводиться платити під час редагування.
На 27% стокових фото була не та рослина
Фото надходять зі стокових бібліотек через їхні API, а під кожним зображенням вказано автора й ліцензію. Пошук за латинською назвою часто нічого не знаходить, а пошук за народною назвою знаходить не те. Коли ми перевірили опублікований каталог, на 122 із 447 фото — 27% — була не та рослина. На сторінці одного виду взагалі був супермаркет.
Стокові фото в живому каталозі, перевірені по одному
447 фото: на 325 правильна рослина, на 122 — ні.
Тому остання лінія захисту — не пошуковий запит, а перевірка зображення: перш ніж зберегти фото, його переглядає модель комп’ютерного зору, і будь-який сумнів означає «ні».
Називайте так, як шукають люди
Ботанічно бездоганна картка може не отримати жодного показу, якщо назвати її не тим словом. Українською «герань» шукають 32 990 разів на місяць, а «пеларгонія» — 2 980 разів. Тепер картка має назву «Пеларгонія (герань)»: правильно й легко знайти. Це також сторінка з найбільшою кількістю показів на сайті. А «грошове дерево» українською виявилося назвою чотирьох різних рослин, тоді як англійською так називають лише одну з них. Тому картки рослин, які люди плутають, тепер посилаються одна на одну.
Ринок, якого не було в пошуку
План для розділу оголошень спирався на «110 000 показів за запитами зі словом „купити“». Детальніша перевірка показала, що попит між приватними особами в пошуку мізерний — близько 3 200 показів. Решта шукає магазин. Рослини продають і купують із рук у групах у Фейсбуці й Телеграмі, куди люди заходять напряму.
Тому сторінки ринку закриті від індексації, а оголошення з’являються безпосередньо в картках видів. Був і спокусливий короткий шлях — наповнити ринок оголошеннями, зібраними з інших майданчиків. Ми цього не зробили: дубльований контент, персональні дані, порушення правил платформ і відвідувач, який пише «продавцю», а той ніколи не відповідає.
Англійська версія
Куди розвиватися далі, ми вирішили не інтуїтивно, а за допомогою проби: один запит до API на кожну країну, усього 32 країни. Англомовні ринки разом показали близько 1,07 мільйона пробних пошуків — приблизно вчетверо більше, ніж наступна мова, французька, із 272 000. Енциклопедія масштабується за мовами, ринок — за країнами.
У пробному перекладі двох карток перемогла найдешевша модель. Сліпий тест на десяти картках, де суддею була окрема модель, вибрав іншу — з рахунком 8:2. Висновки варто робити лише на достатній вибірці.
Механіка проста. Англійська версія тепер розміщена в корені, українська — у /ua/. На кожній сторінці виду вказано обидві версії та x-default, а кожна мова має власну карту сайту з тими самими посиланнями. Якщо сторінку не перекладено, для цієї мови вона повертає 404 і не потрапляє до hreflang та карти сайту. Тому Гугл ніколи не знаходить посилання без зворотного посилання. 201 стара адреса перенаправляється на нову одним редиректом 301. Важлива пастка: папка має назву /ua/, але код мови — uk, адже «ua» позначає країну.
Чи це програматичне SEO?
Так: 133 сторінки видів з одного шаблону й одного процесу. Від масового штампування їх відрізняють чотири обмеження. Факти надходять лише з ботанічних баз даних. Код перевіряє кожну відповідь і повертає список зауважень. Я налаштував промпти на картках, які прочитав сам, перш ніж процес запрацював автоматично. І кожне фото проходить перевірку до публікації — бо 27% із них були неправильними.
Результати
plants.place у пошуку Google: покази на місяць
Серпень — 1 662 покази і 9 кліків; вересень — 3 864 покази і 22 кліки.
Два ранні сигнали: за тиждень після запуску в індексі Гугла було 78 сторінок, а перші покази в пошуку з’явилися на третій день існування домену.
Що я зробив би інакше
- З першого дня зібрав би дизайн-систему як робочу сторінку. Пізніший аудит знайшов 47 розмірів шрифту замість запланованих 6, а заголовки сторінок були реалізовані дев’ятьма різними способами.
- Перевірив би історію домену до запуску. Статистика сканування в Search Console показала, що Гугл запитував адреси Вордпресу — хоча в нас ніколи не було такого сайту.
- Раніше провів би аудит логіки. Фільтр «тіньовитривалі» повертає 68 зі 103 видів, зокрема рослини, яким потрібне яскраве світло. Потрібне окреме поле тіньовитривалості, а не пошук за словом. І це виправлення досі в списку завдань.