Перейти до вмісту
SEO та краулери

llms.txt у WordPress: що це, як його додати і чи дає воно щось узагалі

Три способи опублікувати файл llms.txt на WordPress і чесний огляд того, що насправді відомо про те, чи читає його бодай одна AI-компанія.

Опубліковано

llms.txt — це звичайний markdown-файл, який ви кладете в корінь домену — https://example.com/llms.txt — і в якому перелічені ваші найкращі сторінки з однорядковим описом до кожної, щоб мовна модель знайшла корисне, не продираючись крізь усю навігацію. Це пропозиція, а не стандарт, і жоден великий постачальник AI публічно не підтвердив, що читає цей файл або якось на нього реагує.

Обидві половини цього твердження важливі. Формат реальний, добре описаний, а опублікувати його — хвилин двадцять роботи. Користь недоведена, і чимало з того, що навколо цього зараз продають, про це чесно не каже.

Як насправді виглядає цей файл

Запропонований формат — markdown із визначеною структурою: H1 із назвою сайту, необов’язкова цитата-підсумок, далі розділи H2 зі списками посилань, кожне з коротким описом після двокрапки. Розділ із назвою “Optional” позначає контент, який можна пропустити, коли контексту обмаль.

# Odie Themes

> Free WordPress tools and technically honest guides for theme
> and image configuration problems.

## Guides

- [Why WordPress images look blurry after upload](https://example.com/guides/wordpress-image-blurry-after-upload): Why the 2560px cap creates a -scaled file and how to raise or disable it.
- [WordPress llms.txt](https://example.com/guides/wordpress-llms-txt): What the file is, how to add one, and what it does not do.

## Tools

- [Robots.txt generator](https://example.com/tools/wordpress-robots-txt-generator): Build a robots.txt with correct AI crawler rules.

## Optional

- [About](https://example.com/about): Who runs the site.

Оце і вся специфікація, яку варто знати. Посилання мають бути абсолютними. Описи — одне речення, фактичне, а не рекламний текст: уся суть у тому, що читає машина, а зайві прикметники витрачають ті самі токени, які ви намагалися заощадити.

Вам також трапиться llms-full.txt — супутня домовленість, коли повний markdown-текст усього контенту складають в один файл. Він значно важчий і доказів під ним ще менше, ніж під llms.txt. Пропустіть його, якщо не маєте конкретної причини.

Чесна частина

Жодна публічна документація OpenAI, Anthropic, Google чи Perplexity не стверджує, що їхні краулери або системи пошуку споживають llms.txt. Google публічно дав зрозуміти, що не використовує його для пошуку. Власники сайтів справді бачать у логах запити до цього файлу, але завантаження не є доказом того, що вміст на щось вплинув, — багато ботів навмання перевіряють наявність різних файлів.

Тож будьте обережні з твердженнями, які приймаєте на віру:

Твердження, яке вам трапитьсяСтатус
”llms.txt — це новий robots.txt для AI”Хибно. robots.txt задокументований і дотримується; llms.txt — пропозиція.
”Додавання llms.txt покращує позиції в Google”Доказів немає. Google не заявляв, що використовує цей файл.
”ChatGPT читає ваш llms.txt”OpenAI не підтверджувала.
”Це дешевий файл для публікації”Правда, і це єдиний вагомий аргумент на його користь.

Розумна позиція — дешева опція про запас. Статичний текстовий файл коштує вам одного завантаження, нуля часу на відкриття сторінки й жодного ризику. Якщо домовленість приживеться — у вас уже все є. Якщо ні — ви втратили двадцять хвилин. Це нормальний обмін, просто не дозволяйте нікому продавати його як стратегію видимості в AI.

Як додати це у WordPress

Варіант 1: статичний файл у корені (рекомендовано)

Напишіть файл локально, потім завантажте його через SFTP у той самий каталог, де лежать ваші wp-config.php та index.php.

WordPress не перехоплює його, бо стандартний блок перезапису в .htaccess направляє далі лише ті запити, які ще не збігаються з реальним файлом чи каталогом:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Реальний llms.txt на диску не проходить умову !-f, тож Apache віддає його напряму, і PHP навіть не запускається. Конфігурації Nginx із try_files $uri $uri/ /index.php поводяться так само.

Одна засторога: частина керованих хостингів для WordPress забороняє запис через SFTP у корінь сайту або запускає сайт із контейнера, доступного лише для читання. Якщо у вас саме так, ваш шлях — варіанти 2 і 3.

Варіант 2: плагін

Пошукайте в каталозі плагінів WordPress “llms.txt” — кілька плагінів уже генерують цей файл із ваших опублікованих записів і сторінок, а деякі SEO-плагіни додали це як окрему можливість. Це справді корисно, якщо ви публікуєте часто, бо написаний вручну список швидко застаріває.

Але й компроміс реальний. Ви додаєте плагін, сторінку налаштувань і ще одну поверхню для оновлень заради автоматизації файлу, читання якого ніхто не підтвердив. Автоматично згенеровані списки ще й схильні вивалювати геть усі записи з уривком тексту замість опису, а це дає довгий, однорідний файл — протилежність тій кураторській карті, заради якої формат і придумали. Якщо користуєтеся плагіном, підчищайте його вивід.

Варіант 3: віддавати файл із теми через фільтр

Якщо писати в корінь сайту ви не можете, але можете редагувати код, покладіть невеликий mu-plugin у wp-content/mu-plugins/llms-txt.php, який перехоплює запит і віддає файл, що лежить усередині теми:

<?php
// wp-content/mu-plugins/llms-txt.php

add_action( 'init', function () {
	$path = parse_url( $_SERVER['REQUEST_URI'] ?? '', PHP_URL_PATH );

	if ( '/llms.txt' !== $path ) {
		return;
	}

	$file = get_stylesheet_directory() . '/llms.txt';

	if ( ! is_readable( $file ) ) {
		return;
	}

	header( 'Content-Type: text/plain; charset=utf-8' );
	readfile( $file );
	exit;
} );

Тут використано саме mu-plugin, а не functions.php, щоб код пережив зміну теми й оновлення теми. Якщо все ж кладете це у functions.php, робіть це в дочірній темі.

Перевірте, що файл справді віддається

Не покладайтеся на здогад. Перевірте код відповіді й тип вмісту:

curl -sI https://example.com/llms.txt

Вам потрібні 200 і Content-Type: text/plain. Два збої трапляються найчастіше:

  • Ви отримуєте 200, але в тілі відповіді ваша сторінка 404. WordPress проковтнув запит. Файл лежить не там, де ви думаєте, або якийсь плагін перехоплює цей маршрут.
  • Ви отримуєте Content-Type: text/html. Щось віддає файл крізь тему. Спершу полагодьте заголовок, а вже потім переймайтеся вмістом.

Далі відкрийте адресу в браузері й прочитайте вміст. Якщо якесь посилання дає 404 або веде на http://, тоді як сайт працює по HTTPS, виправте — зламана карта гірша за відсутність карти.

Що насправді керує AI-краулерами сьогодні

Якщо ваша справжня мета — вплинути на те, як AI-системи поводяться з вашим сайтом, robots.txt — це той файл, який задокументовано, який шанують і який діє просто зараз. GPTBot, ClaudeBot, PerplexityBot, CCBot і Google-Extended — усе це названі user-agent із опублікованою поведінкою, і саме robots.txt вирішує, чи можуть вони взагалі завантажувати ваші сторінки.

Ось важіль, за яким стоїть реальний механізм. Складіть свій за допомогою генератора robots.txt, який дозволяє явно дозволити або заблокувати кожен AI-краулер замість вгадування синтаксису. Спочатку зробіть це правильно, а потім додайте llms.txt як дешевий гіпотетичний бонус.

Чого робити не варто

Не блокуйте AI-краулерів у robots.txt і водночас не публікуйте llms.txt. Так роблять випадково: один файл запрошує модель зайти, другий грюкає дверима перед носом. Двері перемагають.

Не кладіть llms.txt у підпапку. Домовленість передбачає лише корінь. Файл за адресою /blog/llms.txt — це файл, якого ніхто не шукатиме.

Не вставляйте туди всю мапу сайту. Чотириста посилань із загальними уривками — це звалище для сканування, а не кураторська карта, і воно нівелює єдину заявлену мету формату. Двадцять-п’ятдесят справді корисних сторінок — правильний розмір для більшості сайтів.

Не відкладайте заради нього справжню роботу. Швидкість сторінки, чистий HTML, точні структуровані дані та контент, який люди справді цитують, — усе це доведено важливо. Про llms.txt такого не відомо. Розподіляйте зусилля відповідно.

FAQ

Питання

Що таке llms.txt у WordPress?

Це звичайний markdown-файл у корені сайту, доступний за адресою yoursite.com/llms.txt, який перелічує ваші найкорисніші сторінки з однорядковим описом до кожної. Задум у тому, щоб мовна модель, прочитавши його, отримала чисту карту вашого контенту замість того, щоб продиратися крізь навігацію, рекламу та банери про куки.

Чи справді AI-компанії читають llms.txt?

Публічного підтвердження від OpenAI, Anthropic, Google чи Perplexity, що вони завантажують або використовують llms.txt, немає. У логах серверів справді видно запити до цього файлу, але запит — це не те саме, що вплив вмісту на відповідь. Будь-яку заяву про доведену користь для позицій вважайте необґрунтованим маркетингом.

Куди класти llms.txt на сайті WordPress?

У корінь домену, туди ж, де лежить robots.txt, тож адреса буде yoursite.com/llms.txt без жодної підпапки. Завантажте його через SFTP поруч із файлом index.php вашого WordPress. WordPress віддає реальні файли напряму, бо його правила перезапису пропускають далі лише ті запити, які не збігаються з наявним файлом.

llms.txt — це те саме, що robots.txt?

Ні. robots.txt — це усталена домовленість, яку AI-краулери на кшталт GPTBot, ClaudeBot і PerplexityBot документують і дотримуються, і саме вона визначає, чи можуть вони взагалі завантажувати ваші сторінки. llms.txt — незатверджена пропозиція, яка радить, що читати. Одне діє вже сьогодні, друге — гіпотеза.

Чи допомагає llms.txt для SEO чи позицій?

Доказів впливу на позиції в Google немає, і Google не заявляв, що використовує цей файл. Опублікувати його майже нічого не коштує, тож розумний аргумент на користь — дешева опція про запас, а не вимірювана вигода. Не відкладайте заради нього швидкість сторінки, структуровані дані чи якість контенту.

Плагін чи статичний файл для llms.txt?

Статичний файл — якщо ваші найкращі сторінки змінюються рідко: він не додає жодного виконання PHP і не може зламатися. Плагін — якщо ви публікуєте часто й хочете, щоб список перебудовувався автоматично. Плагін додає залежність і трохи навантаження заради файлу, читання якого ніхто не підтвердив, тож починайте зі статичного.