<!-- Generated from ru/llms-txt-vercel/index.html. The canonical document is the HTML page. -->

- [ Главная ](/ru/) 
/
- [ Как создать ](/ru/how-to-create/) 
/
- Руководство Vercel            
# `llms.txt` с Vercel

Три подхода: static-файл в public/ (без настройки), обработчик маршрута Next.js App Router или Vercel Edge Function для максимальной гибкости.

Последнее обновление: 22 апреля 2026 г.

На этой странице

- [ Подход 1: статический файл в public/ ](#approach-1)
- [ Подход 2. Обработчик маршрута App Router в Next.js ](#approach-2)
- [ Вариант 3, Vercel Edge Function ](#edge)
- [ Поведение Cache-Control и граничной сети ](#cache)
- [ Проверьте после деплоя ](#verify)            
## Подход 1. Статический файл в `public/`

Самый простой и надёжный вариант. Vercel напрямую обслуживает каждый файл в каталоге статических
ресурсов вашего фреймворка из своей глобальной Edge Network. Изменения кода и настройки не
нужны, затрат на выполнение нет.
static file, framework directory map    Копировать     

```
# Place llms.txt in your project's static assets directory.
#
# Framework    → file location
# Next.js      → public/llms.txt
# Astro        → public/llms.txt
# SvelteKit    → static/llms.txt
# Nuxt         → public/llms.txt
# Remix        → public/llms.txt
# Hugo         → static/llms.txt

# Vercel serves it at /llms.txt from their global Edge Network.
# No config changes needed. After deploy, verify:
curl -I https://your-domain.com/llms.txt
# Expected: HTTP/2 200 | Content-Type: text/plain | x-vercel-cache: HIT
```

**Когда использовать:** ваш `llms.txt` содержимое относительно стабильно,
и вы обновляете его вручную или скриптом сборки. Это правильный вариант по умолчанию для подавляющего
большинства сайтов.

Пример

Интеграция Vercel + GitHub

Vercel напрямую подключается к вашему репозиторию GitHub. Каждый push в production-ветку
запускает сборку и развёртывание. Фиксация изменений  public/llms.txt  достаточно: Vercel
автоматически выполняет инвалидацию при каждом новом развёртывании.

## Подход 2, обработчик маршрута App Router в Next.js

Если вы используете Next.js на Vercel, самый аккуратный динамический подход — обработчик Route в
App Router по адресу `app/llms.txt/route.ts`. С
`export const dynamic = 'force-static'`, Vercel предварительно создаёт его
во время сборки и кэширует результат на границе, что фактически идентично выдаче статического
файла, но файл генерируется из ваших данных.
app/llms.txt/route.ts    Копировать     

```
// app/llms.txt/route.ts  (Next.js App Router)
// Vercel detects this as a static export when dynamic = 'force-static'
// and caches the output at the edge on first request.

export const dynamic = 'force-static';

export async function GET() {
const content = [
'# My Site',
'',
'> One-sentence description of what this site is about.',
'',
'## Documentation',
'',
'- [Getting started](https://yoursite.com/docs/getting-started/): first steps.',
'- [API reference](https://yoursite.com/docs/api/): full endpoint catalog.',
'',
'## Optional',
'',
'- [Changelog](https://yoursite.com/changelog/): version history.',
].join('\n');

return new Response(content, {
headers: {
'Content-Type': 'text/plain; charset=utf-8',
'Cache-Control': 'public, max-age=3600, stale-while-revalidate=86400',
},
});
}

```

Удалить `force-static` если нужно действительно динамическое содержимое, получаемое при
каждом запросе (например, из работающей CMS). В этом случае Vercel всё равно кэширует ответ на edge-уровне
в соответствии с вашим `Cache-Control` заголовке.

Для полного руководства по Next.js, включая Pages Router и `llms-full.txt` генерации, см.
[отдельная страница Next.js](/ru/llms-txt-nextjs/).

## Подход 3, Vercel Edge Function

Для проектов не на Next.js, которым нужна динамическая генерация, используйте Vercel Edge
Function вместе с `vercel.json` перенаправление, сопоставляющее `/llms.txt` в функцию:
api/llms.ts, Edge Function    Копировать     

```
// api/llms.txt.ts, Vercel Edge Function
// Place this file in the /api directory.
// Vercel routes requests to /api/llms.txt by default,
// so use a vercel.json rewrite to map /llms.txt → /api/llms.txt

import type { VercelRequest, VercelResponse } from '@vercel/node';

export const config = {
runtime: 'edge', // Runs on Vercel's Edge Network
};

export default function handler(req: Request): Response {
const content = [
'# My Site',
'',
'> One-sentence description.',
'',
'## Core pages',
'',
'- [Getting started](https://yoursite.com/docs/getting-started/): first steps.',
].join('\n');

return new Response(content, {
headers: {
'Content-Type': 'text/plain; charset=utf-8',
'Cache-Control': 'public, max-age=3600, s-maxage=86400',
},
});
}

```
vercel.json, rewrite rule    Копировать     

```
// vercel.json, rewrite /llms.txt to your Edge Function or API Route
// Only needed if you're not using Next.js App Router (which handles routing natively)

{
"rewrites": [
{ "source": "/llms.txt", "destination": "/api/llms" }
]
}

```

Edge Functions работают в глобальной Edge Network Vercel с почти нулевым временем холодного
старта. Они идеально подходят для генерации `llms.txt` из хранилища KV или внешнего API
без полноценного сервера.

Предупреждение

Конфликт маршрута с /public/

Если одновременно присутствуют статический  public/llms.txt  и маршрут API или Edge Function
существуют для одного и того же пути, статический файл имеет приоритет в Vercel. Используйте один
подход на проект.

## Поведение Cache-Control и edge-сети

Для статических файлов в `public/`, Vercel автоматически задаёт заголовки
кеширования. Для обработчиков маршрутов и Edge Functions задайте `Cache-Control` явно:

- `public, max-age=3600, stale-while-revalidate=86400`, рекомендуется для файлов,
составленных вручную. 
- `public, s-maxage=86400, stale-while-revalidate=604800`, агрессивное кэширование на
границе, хорошо для стабильного содержимого. 
- `public, max-age=0, s-maxage=300`, 5-минутный граничный кэш для содержимого на
основе CMS.   
Vercel автоматически очищает кэш CDN при каждом новом развёртывании, поэтому вам не нужно
вручную сбрасывать его после отправки обновлённого `llms.txt`.

## Проверьте после публикации
verify    Копировать     

```
# Check headers, look for Content-Type and x-vercel-cache
curl -I https://yoursite.com/llms.txt

# Inspect content
curl https://yoursite.com/llms.txt

# Force-revalidate after a new deploy (Vercel auto-purges on deploy)
# For manual purge via Vercel REST API:
curl -X POST "https://api.vercel.com/v1/projects/{PROJECT_ID}/purge" \
-H "Authorization: Bearer {VERCEL_TOKEN}"
```

Проверив заголовки, вставьте свой рабочий URL в [валидатор](/ru/validator/)
для проверки соответствия спецификации: ровно один H1, корректный синтаксис ссылок (`- [title](https://...)`), все URL абсолютны, пустых разделов нет.

&rarr; [Полное руководство по созданию](/ru/how-to-create/) &middot;
[Руководство по Cloudflare Pages](/ru/llms-txt-cloudflare/) &middot;
[Руководство по Next.js](/ru/llms-txt-nextjs/)

## Источники

- [ llmstxt.org, предложение сообщества ](https://llmstxt.org/)
- [ Vercel, Edge Functions ](https://vercel.com/docs/functions)
- [ Vercel, статические файлы в /public/ ](https://vercel.com/docs/builds/configure-a-build#output-directory)
