---
title: "SEO за сайтове с инвентар: какво се променя, когато AI роботите не изпълняват JavaScript"
description: "Автомобилните платформи живеят от органично търсене, а SPA показва на роботите празна страница. Какво да пререндерирате и какво четат AI роботите."
slug: seo-for-data-driven-sites
canonical: https://thecarapi.com/bg/blog/seo-for-data-driven-sites
category: Ръководства
author: Инженерен екип на Авто Данни
published: 2026-08-05
updated: 2026-08-07
tags: [SEO, пререндериране, структурирани данни, AI роботи]
---

# SEO за сайтове с инвентар: какво се променя, когато AI роботите не изпълняват JavaScript

Google изпълнява JavaScript — в крайна сметка. GPTBot, ClaudeBot и PerplexityBot изобщо не го изпълняват — което променя сметката за всеки сайт, чието съдържание е инвентарът му.

Сайтовете, движени от инвентар — автомобилни платформи, имотни портали, всичко, при което каталогът е съдържанието — получават по-голямата част от трафика си от органично търсене. Те също така непропорционално често са изградени като едностранични приложения, рендерирани в браузъра, защото това улесняват инструментите за фронтенд.

Тези два факта са в пряк конфликт и конфликтът се изостри, когато AI роботите станаха значим канал за откриване. Ето как реално изглежда проблемът и какво да направите.

## Какво вижда роботът

Едностранично приложение, рендерирано в браузъра, сервира един и същ HTML документ на всеки адрес:

```html
<!doctype html>
<html lang="en">
  <head>
    <title>Cars — Marketplace</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/assets/index.js"></script>
  </body>
</html>
```

Еднакъв за началната страница, за всяка страница с категория и за всичките 200 000 адреса на обяви. Едно и също заглавие, без описание, без canonical, без съдържание.

Google ще изпълни JavaScript и в крайна сметка ще види истинската страница. Но рендерирането става във втори етап, на отделна опашка, а бюджетът за обхождане се разпределя от първия. Това, което Googlebot вижда на първия етап, е голям брой адреси с еднакво заглавие и без текст — което структурно е профилът на нискокачествен автоматично генериран сайт. За сайт, чието цяло предложение се основава на доверие, това е лошо първо впечатление в голям мащаб.

> **AI роботите изобщо не рендерират** — Роботите зад AI отговорите и цитатите обикновено изтеглят HTML и го четат. Те не изпълняват пакета ви. Сайт, рендериран в браузъра, не им е частично видим — за тях той е празна страница. Ако за вас има стойност да сте източникът, който AI отговорът цитира, губите целия канал.

## Решението, по ред на ефекта

### 1. Истински адреси и истински връзки

Предпоставка за всичко останало и често липсващото парче. Ако навигацията е `<button onClick={setPage}>`, няма какво да се обхожда и няма към какво да се свързва — никаква работа по мета таговете не помага на сайт с един адрес.

Всяка страница се нуждае от собствен път и всеки навигационен елемент трябва да е `<a href>`, който роботът може да последва, а потребителят да отвори със среден бутон. Прихващайте клика за клиентска навигация, ако искате усещането на SPA; запазете връзката.

### 2. Пререндерирайте страниците, които можете да изброите

Маркетингови страници, документация, статии, страници с категории — всичко с известен, ограничен списък от адреси — трябва да се рендерира в статичен HTML при изграждането. За React приложение това не е пренаписване: рендерирайте всеки маршрут с `renderToString`, вмъкнете резултата и head за страницата в изградения HTML шаблон и хидратирайте в браузъра.

Получавате пълен HTML за роботите, по-бързо първо изобразяване за потребителите и без миграция на фреймуърк.

### 3. Рендерирайте head на сървъра за страниците, които не можете да изброите

Отделните страници на обяви са трудният случай: може да са стотици хиляди, постоянно се променят и пререндерирането на всички при изграждането не е реалистично. Прагматичният отговор е head да се вмъква на сървъра при всяка заявка — заглавие, описание, canonical, OG тагове и структурирани данни — от една заявка към базата, като тялото остава за браузъра.

Това са може би шестдесет реда заместване на низове в HTML шаблона и превръщат маса от еднакви обвивки в индивидуално описани страници.

```html
<title>2021 Kia Niro 1.6 GDi HEV, 77 205 км — лот от търг | Пример</title>
<meta name="description" content="2021 Kia Niro хибрид, 77 205 км, автоматик, от търг в Нидерландия. Текуща цена €9800. Пълна спецификация и 34 снимки.">
<link rel="canonical" href="https://example.com/vehicle/openlane/11125938">
```

_Генерирано от полета, които вече имате. Разликата между това и едно общо заглавие за 200 хил. адреса не е пренебрежима._

## Проблемът с броя адреси

Сайтовете с инвентар създават адреси по-бързо, отколкото създават стойност, и подаването на всички е активно вредно. Три филтъра, които си струва да приложите, преди нещо да стигне до картата на сайта:

1. **Индексирайте само обяви, на които си струва да се попадне.** Активни, със снимки, с разпознати марка и модел. Лот без снимки и с неразчетено заглавие не е страница, на която искате търсещият да попадне.
2. **Обработвайте мъртвите съзнателно.** Продаден лот трябва да връща `noindex, follow` или да пренасочва към категорията на модела, а не да стои в картата на сайта безкрайно. Никога не оставяйте soft 404, който връща HTTP 200 с празна обвивка.
3. **Задайте минимален праг за страниците с категории.** Страница с категория с два резултата е тънко съдържание. Изберете праг — три, пет — и задайте noindex под него. Критично важно е картата на сайта да ползва същия праг като мета тага robots, иначе подавате адреси, които едновременно казвате на Google да игнорира.

Комбинациите от филтри са другият умножител. `?fuel=diesel&sort=price_low&page=3` не бива да се конкурира с чистия адрес на категорията. Задавайте `noindex, follow` на филтрираните варианти и canonical към основния.

> **По-малко, но по-добри адреси** — Намаляването на картата на сайта от 600 000 адреса до 250 000 добре оформени е подобрение, а не загуба. Бюджетът за обхождане, похарчен за празни обвивки, е бюджет, който не отива за страници, способни да се класират.

## Структурирани данни, които си заслужават мястото

JSON-LD е едно от малкото места, където една и съща работа служи и на търсачките, и на AI системите, защото и двете го четат директно, вместо да извличат от оформлението. Струва си да имате:

- `Organization` на началната страница — с юридическо име и адрес, ако ги имате. За всеки, който иска клиентите да му превеждат пари, машинно четимата идентичност е половината от аргумента за доверие.
- `BreadcrumbList` на всяка вложена страница. Евтино и се показва в резултатите.
- `FAQPage` там, където имате истински въпроси и отговори. Това е форматът, от който AI отговорите цитират най-охотно.
- `Article` с `datePublished` и `dateModified` за редакционното съдържание. Датите са по-важни за сигналите за актуалност, отколкото хората очакват.
- `Product` или `Vehicle` на страниците с обяви, където данните за автомобила го позволяват честно.

Едно правило: структурираните данни трябва да съответстват на видимата страница. Маркирането на цена, която не е показана, или на FAQ, който го няма на страницата, е риск от ръчна санкция, а не хитър пряк път.

## Писане и за машини, и за хора

AI системите, които четат страниците ви, извличат информация, а не прелистват. Няколко неща помагат измеримо и нито едно не вреди на човешките читатели:

- **Отговорете на въпроса в първия абзац.** Извличането предпочита пряк отговор близо до заглавието пред такъв, заровен след осемстотин думи увод.
- **Използвайте истинска йерархия на заглавията.** Един `<h1>`, `<h2>` за разделите, по ред. Заглавия, оформени с div и размер на шрифта, са невидими като структура.
- **Поставяйте сравнителните данни в таблици.** Истинска `<table>` се извлича чисто; решетка от div — не.
- **Посочвайте датите и числата изрично.** „Към август 2026 г.“ е използваемо; „наскоро“ — не.
- **Бъдете конкретни за несигурността.** „Условията варират по държави — проверете с платформата“ е по-полезно за система за извличане от фалшива увереност и е по-честно към читателите ви.

### Машинно четими копия

Нововъзникваща конвенция, която си струва да приемете: публикувайте `/llms.txt` — текстова карта на сайта за езикови модели — и сервирайте Markdown версии на статиите си заедно с HTML. Почти нищо не струва, ако съдържанието ви е структурирано, а не съхранено като HTML низове, и премахва всяка неяснота какво казват страниците ви.

## Решете въпроса с AI роботите съзнателно

Много сайтове вече блокират AI роботите, често като приемат настройката по подразбиране на CDN, а не като вземат решение. Разликата, която има значение, е между два различни вида ботове:

| Вид | Примери | Какво ви коства блокирането |
| --- | --- | --- |
| Роботи за търсене / цитиране | OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot | Сайтът ви никога не може да бъде цитиран в AI отговор. Това е реален канал за откриване. |
| Събирачи на данни за обучение | CCBot, Bytespider и подобни | В повечето случаи малко. Блокирането им е защитим избор по подразбиране. |

Блокирането на всичко премахва ползата, като запазва цялата вреда. Струва си да се отбележи и че блокирането на `Google-Extended` не засяга Google Търсене или AI Overviews, които работят на стандартния Googlebot — така че настройката е с по-нисък залог, отколкото често се смята.

Каквото и да изберете, проверете какво реално се сервира. Правилата, управлявани от CDN, често добавят директиви в началото на `robots.txt` и прилагат правила на защитната стена над него, така че файлът в хранилището ви може да не е файлът, който роботът получава. Проверете със заявка с подходящия user agent.

## Одит, който си струва да направите

Десет минути — и намира повечето проблеми:

1. `curl` към страница с категория и към страница с обява. Има ли съдържание в HTML или празен div?
2. Имат ли двете страници различни заглавия и описания?
3. Има ли canonical и сочи ли там, където очаквате?
4. Появяват ли се навигационните връзки като `<a href>` в суровия HTML?
5. Колко адреса има в картата на сайта и каква част от тях показват истинско съдържание?
6. Какво връща `robots.txt` по мрежата, а не в хранилището ви?
7. Продадените или изтеклите обяви все още ли връщат HTTP 200 с обвивка?
8. Индексируеми ли са филтрираните варианти на адресите и конкурират ли се с чистите?

Ако първият въпрос не мине, останалите още нямат значение — започнете с пререндерирането. [Изграждането на платформа](/blog/build-used-car-marketplace) описва къде стои това в по-широката архитектура.

## Frequently asked questions

### Изпълняват ли AI роботите JavaScript?

По правило не. Роботите зад AI отговорите и цитатите изтеглят HTML и го четат директно, вместо да изпълняват пакета ви. Затова едностранично приложение, рендерирано в браузъра, им изглежда като празна страница, а не като частично заредена — така целият канал за AI цитати е недостъпен, колкото и добро да е съдържанието.

### Лошо ли е рендерирането в браузъра конкретно за Google?

Google изпълнява JavaScript, но във втори етап на отделна опашка, докато бюджетът за обхождане се разпределя от първия. В голям мащаб това означава много адреси с едно заглавие и без текст при първото обхождане — което прилича на нискокачествен автоматично генериран сайт и пилее бюджет, който би отишъл за страници, способни да се класират.

### Как да добавя SEO към съществуващо React SPA, без да го пренаписвам?

Първо добавете истински адреси и истински връзки, след това пререндерирайте изброимите маршрути при изграждането, като рендерирате всеки с renderToString и вмъкнете резултата плюс head за страницата в изградения HTML шаблон, с хидратиране в браузъра. За неограничените адреси на обяви вмъквайте само head на сървъра при всяка заявка от една заявка към базата. Нито една стъпка не изисква миграция на фреймуърк.

### Трябва ли всеки адрес на обява да е в картата на сайта?

Не. Филтрирайте до обявите, на които си струва да се попадне — активни, със снимки, с разпознати марка и модел — и премахвайте продадените или изтеклите, вместо да ги оставяте безкрайно. Уверете се, че картата на сайта и мета таговете robots ползват един и същ праг, защото подаването на адреси, които едновременно казвате на Google да игнорира, е противоречие, което пилее бюджета за обхождане.

### Трябва ли да блокирам AI роботите в robots.txt?

Разграничете двата вида. Блокирането на чистите събирачи на данни за обучение е защитим избор по подразбиране. Блокирането на роботите за търсене и цитиране означава, че сайтът ви никога не може да бъде източникът, който AI отговорът цитира, а това е реален канал за откриване — така че блокирането на всичко премахва ползата, като запазва вредата. Проверете и какво реално се сервира, защото правилата на CDN често презаписват файла в хранилището ви.

### Какво е llms.txt?

Нововъзникваща конвенция: текстов файл в корена на сайта, който описва съдържанието му за езикови модели, често заедно с Markdown версии на страниците, сервирани до HTML. Евтин е за генериране, ако съдържанието ви се съхранява като структурирани данни, а не като HTML низове, и премахва неяснотата какво всъщност казват страниците ви.
