Механизмы RAG, ранжирование по авторитетности, сигналы цитируемости — как LLM решают, какой контент включить в ответ.
Когда вы задаёте вопрос Perplexity или ChatGPT, AI-поисковик не придумывает ответ на пустом месте. Он ищет релевантные веб-страницы, оценивает их и выбирает, какие процитировать. Понимание этого процесса — основа GEO: если вы знаете, по каким критериям нейросеть отбирает источники, вы можете оптимизировать свой контент так, чтобы он попадал в ответы.
Представьте, что AI-поисковик — это очень быстрый исследователь. Он читает десятки статей, выбирает из них самые надёжные и понятные, а потом пересказывает вам суть своими словами, указывая, откуда взял информацию. Ваша задача — стать одной из тех статей, которые он выбирает.
AI-поисковики используют механизм RAG (Retrieval-Augmented Generation) — сначала ищут релевантные документы, потом генерируют ответ на их основе. Какие источники попадут в ответ, зависит от нескольких факторов:
Релевантность — насколько ваш контент соответствует запросу
Ясность — насколько легко модели извлечь информацию
Уникальность — есть ли у вас данные, которых нет в других источниках
ПромптPerplexity
Какие языки программирования самые востребованные в 2026 году?
Ответ модели
По данным Stack Overflow Developer Survey 2025, JavaScript остаётся самым используемым языком (65.6%), за ним следуют Python (53.3%) и TypeScript (43.8%) [1]. Однако по темпам роста вакансий лидируют Rust (+34% г/г) и Go (+28% г/г) [2].
Для входа в профессию рекомендуются Python и JavaScript как наиболее универсальные [3].
Обратите внимание: Perplexity выбрал три разных источника — авторитетный опрос, аналитику рынка вакансий и образовательный ресурс. Каждый даёт уникальные данные, которые модель не может сгенерировать сама.
Модель ищет не по точному совпадению ключевых слов, а по смыслу. Запрос «как уменьшить расход токенов» найдёт статью, в которой написано «оптимизация стоимости API-вызовов к языковым моделям», даже если слово «токены» в ней не встречается.
Без техники
Наша компания предлагает услуги по оптимизации. Мы работаем с 2015 года. Свяжитесь с нами для консультации.
С техникой
Чтобы сократить расход токенов при работе с LLM API, используйте три приёма: prompt caching (экономия до 90% на повторных запросах), prompt compression (сжатие промптов без потери смысла), batch API (скидка 50% за отложенную обработку).
Исследование «Lost in the Middle» (Liu et al., 2023) показало, что языковые модели уделяют больше внимания информации в начале и конце контекста. Документы, которые оказываются «в середине» списка, цитируются реже.
Размещайте самую важную информацию в начале страницы. Первые 2-3 абзаца должны содержать ключевые факты и прямые ответы. Не заставляйте читателя (и нейросеть) прокручивать вступление из 5 абзацев, прежде чем добраться до сути.
AI-системы предпочитают источники с уникальной информацией. Если десять сайтов пересказывают одну и ту же статью, модель процитирует первоисточник или тот, который добавил собственный анализ.
Что повышает уникальность:
Собственные исследования и данные
Экспертные комментарии и мнения
Кейсы из практики с конкретными цифрами
Сравнительные таблицы, которых нет у других
Свежая информация, которую конкуренты ещё не опубликовали
from sentence_transformers import CrossEncoder
model = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-12-v2")
query = "как оптимизировать контент для AI-поисковиков"
passages = [
# Высокий скор: прямой ответ с конкретикой
"Для оптимизации контента под AI-поисковики используйте "
"структурированные данные Schema.org, добавляйте FAQ-секции "
"с прямыми ответами и включайте статистику с указанием источников.",
# Средний скор: релевантная, но размытая
"Оптимизация контента — важный процесс, который включает "
"множество факторов и зависит от конкретной ситуации.",
# Низкий скор: нерелевантная
"Наша компания занимается разработкой сайтов с 2010 года. "
"Мы создали более 500 проектов.",
]
scores = model.predict([(query, p) for p in passages])
for passage, score in sorted(zip(passages, scores), key=lambda x: -x[1]):
print(f"Score: {score:.3f} | {passage[:80]}...")
import httpx
import asyncio
QUERIES = [
"как оптимизировать контент для AI",
"что такое GEO оптимизация",
"schema.org для AI поисковиков",
]
async def monitor_citations(
domain: str,
queries: list[str],
perplexity_key: str,
) -> list[dict]:
"""Мониторит, цитируют ли AI-поисковики ваш домен."""
results = []
async with httpx.AsyncClient() as client:
for query in queries:
resp = await client.post(
"https://api.perplexity.ai/chat/completions",
headers={"Authorization": f"Bearer {perplexity_key}"},
json={
"model": "sonar",
"messages": [{"role": "user", "content": query}],
},
)
data = resp.json()
citations = data.get("citations", [])
results.append({
"query": query,
"cited": any(domain in c for c in citations),
"position": next(
(i for i, c in enumerate(citations) if domain in c),
None,
),
"total_citations": len(citations),
})
return results
results = asyncio.run(
monitor_citations("example.com", QUERIES, "pplx-xxx")
)
for r in results:
status = "Процитирован" if r["cited"] else "Не найден"
print(f"[{status}] {r['query']}")
Факторы, влияющие на цитируемость в AI-ответах (GEO, 2023)