Поисковая оптимизация начинается не с ключевых слов, а с ответа на задачу пользователя. У интернет-магазина есть карточка технической книги, и её должны понять сразу трое: покупатель, который решает, стоит ли читать; поисковый робот, который извлекает из страницы смысл; и алгоритм, который сопоставляет этот смысл с чужим запросом. Title и description помогают выбрать результат в выдаче, но они не заменяют полезный материал и ясную архитектуру сайта.
Наивная модель сводит контентное SEO к разметке: набить в title ключевые фразы, написать заманчивый description, добавить структурированные данные - и позиции придут сами. Первая же проверка эту логику ломает. Title и description управляют сниппетом - тем, как результат выглядит в выдаче и захочет ли человек по нему кликнуть, - а не тем, на каком месте он окажется. Ранжирует поисковик содержимое, и если карточка книги дублирует соседнюю или не отвечает ни на один реальный вопрос, украшать нечего.
Отсюда первое правило: у каждой страницы одна уникальная цель, и она не повторяет соседнюю. Карточка книги отвечает на вопрос об этой книге, а не пересказывает общий раздел каталога. Второе правило про ссылки, и здесь SEO смыкается с доступностью: ссылка называет объект, а не прячется за нажмите здесь. Текст читать книгу онлайн полезен и экранному диктору, который зачитывает ссылки списком, и роботу, который по тексту ссылки понимает, куда она ведёт.
Структурированные данные - это отдельный слой смысла поверх видимого текста. Разметка JSON-LD (JavaScript Object Notation for Linked Data) - это блок в head, где содержимое страницы описано словарём schema.org в машиночитаемом виде: тип Book, автор, цена, наличие. Поисковик читает этот блок и может показать по нему rich result - расширенный сниппет с ценой и рейтингом прямо в выдаче. Формат JSON-LD Google рекомендует именно потому, что он живёт отдельным блоком и не переплетается с версткой: его легко сгенерировать на сервере и внедрить, не трогая разметку карточки.
Работает это только при жёстком условии: разметка описывает реально видимый на странице контент и использует поддерживаемый тип. Цена и рейтинг в JSON-LD должны совпадать с ценой и рейтингом, которые видит человек; тип обязан быть из списка, для которого поисковик умеет строить rich result. Поддерживаемых типов конечное число - товар, отзыв, хлебные крошки, статья и ещё несколько; для остального rich result не построится, сколько разметку ни добавляй. Список этот не вечен: FAQ из него выбыл, и разметка FAQPage расширенного сниппета больше не даёт - перед тем как рассчитывать на тип, его статус сверяют с документацией поисковика. Проверяют это Rich Results Test и отчёт в Search Console, а расхождение между разметкой и страницей - прямой путь к потере расширенного сниппета или ручной санкции.
Авторство, дата обновления и ссылки на источники повышают проверяемость материала. Это часть сигналов об опыте и экспертизе, по которым и человек, и алгоритм судят, можно ли доверять карточке. Но это не магический ranking factor: приписать книге громкое имя автора и свежую дату, не подкрепив их содержимым, ранжирование не обманет.
Показательный провал выглядит так. В JSON-LD карточки проставили рейтинг 4,9 и цену, которых на самой странице нет; тип указали Product вместо Book. Rich result либо не появился, либо снялся после ручной проверки, а доверие к домену просело. Дисциплина здесь та же, что и во всём SEO: разметка описывает то, что есть, каждая страница отвечает на свой вопрос, а ссылка честно называет то, куда ведёт.
<title>Паттерны проектирования на TypeScript - практическое руководство</title>
<meta name="description"
content="Как применять паттерны в реальном коде: примеры, антипаттерны и когда паттерн не нужен." /><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "Паттерны проектирования на TypeScript",
"author": { "@type": "Person", "name": "A. Ivanova" },
"offers": {
"@type": "Offer",
"price": "29.00",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
}
}
</script>