Химчистка мебели продвигается в локальной выдаче Яндекса по трём независимым сигналам одновременно: релевантность страницы под запрос, авторитетность домена и близость исполнителя к пользователю. Убрать один из трёх и позиция падает, даже если остальные два настроены идеально. Большинство конкурентов оптимизируют только первый сигнал, игнорируя NAP-консистентность и карточку Яндекс.Бизнеса.
Три сигнала локального ранжирования в Яндексе
.webp)
Локальная выдача Яндекса по запросам «химчистка + район» формируется из трёх независимых сигналов — релевантности страницы, авторитетности домена и близости к пользователю. Они не компенсируют друг друга: сайт с идеальным текстом, но расхождением данных в NAP не попадёт в локальный блок. Карточка с сотней отзывов, но без привязки к структуре сайта, даст заявки только из карт.
Алгоритм локального ранжирования оценивает три группы факторов.
- Первая — on-page сигналы: наличие топонима в H1 и title, структура URL, Schema.org разметка.
- Вторая — off-page сигналы: NAP-консистентность на внешних площадках, ссылочный вес домена
- Третья — поведенческие: CTR в выдаче, отказы, время на сайте, активность в карточке Яндекс.Бизнеса.
По наблюдениям Семантического Ежа на клиентских проектах, химчистки с правильно настроенной карточкой Яндекс.Бизнеса получают первые заявки из карт уже через 3–4 недели после запуска, тогда как органический рост сайта занимает 2–3 месяца.
Локальный vs. органический трафик: в чём разница для химчистки
Локальный трафик (из карт и геовыдачи) и органический трафик (из поискового индекса) управляются разными алгоритмами Яндекса и требуют разных инструментов оптимизации.
| Параметр | Локальный трафик | Органический трафик |
|---|---|---|
| Источник | Яндекс.Карты, локальный блок выдачи | Поисковый индекс (синие ссылки) |
| Главный инструмент | Яндекс.Бизнес + NAP | Сайт + семантическое ядро |
| Срок первых результатов | 2–4 недели | 2–3 месяца |
| Ключевые факторы | Отзывы, полнота карточки, геосигналы | Контент, технический SEO, ссылки |
| Конверсия в заявку | Выше (горячий спрос) | Зависит от страницы |
Начинать с Яндекс.Бизнеса, параллельно строить сайт. Оба канала нужны одновременно: локальный даёт быстрый старт, органика — масштаб.
Оптимизация карточки Яндекс.Бизнеса: факторы ранжирования в картах
Яндекс.Бизнес ранжирует карточки химчистки по четырем факторам:
- полнота заполнения,
- количество и свежесть отзывов,
- корректность рубрики,
- регулярность обновлений и наличие фотографий.
Полнота заполнения. Яндекс.Бизнес показывает процент заполнения карточки в личном кабинете. Целевой показатель — 100%. Часто не заполняют: описание компании, виды товаров/услуг с ценами, режим работы в праздники, ссылку на сайт, категории в доп. рубриках.
Количество и свежесть отзывов. Алгоритм смотрит не только на общее число, но и на дату последнего отзыва. Карточка без новых отзывов за 2–3 месяца теряет позиции. Целевой ритм — 2–4 новых отзыва в месяц.
Корректность рубрики. Основная рубрика «Химчистка» — не «Клининг» и не «Бытовые услуги». Яндекс ранжирует карточки по основной рубрике в первую очередь. Дополнительные рубрики («Уборка», «Стирка») усиливают охват по смежным запросам.
Регулярность обновлений. Публикации (акции, новости, фото, сторис) сигнализируют алгоритму об активности компании. Минимум — 2–3 публикации в месяц. Публикации с реальными кейсами и фото работают лучше акций.
Фотографии. Минимум 15–20 фотографий: интерьер, оборудование, мастера за работой, результаты до/после. Фото с геотегом и понятным именем файла индексируются быстрее.
NAP-консистентность: почему данные о компании должны совпадать на всех площадках
NAP-консистентность (Name, Address, Phone) — единообразие данных о компании на всех внешних площадках — один из ключевых факторов локального ранжирования Яндекса. Алгоритм сравнивает данные компании из разных источников: если адрес в Яндекс.Бизнесе написан как «ул. Ленина, 34», а на Avito — «улица Ленина д. 34», это два разных сигнала. Яндекс не может верифицировать их как единую точку и снижает доверие к карточке.
Типичные расхождения, которые убивают NAP:
- «ул.» vs «улица» vs «улица.»разные сокращения одного поля
- «д. 34» vs «34» vs «34А»номер дома без единого формата
- Разные номера телефонов на разных площадках (с 8 и с +7)
- Разные названия компании («Чистый диван» vs «ЧД» vs «Чистый диван — химчистка мебели»)
Выбрать эталонный формат NAP — такой, как он записан в Яндекс.Бизнесе — и продублировать его на всех площадках без изменений.
Шаблон NAP-аудита: таблица для заполнения
Скопировать и заполнить перед запуском работы с площадками:
| Площадка | Эталонное название | Фактическое название | Эталонный адрес | Фактический адрес | Эталонный телефон | Фактический телефон |
|---|---|---|---|---|---|---|
| Яндекс.Бизнес (эталон) | ЧистоЛайн | — | ул. Ленина, 34, Москва | — | +7-495-123-45-67 | — |
| 2ГИС | ЧистоЛайн | [заполнить] | ул. Ленина, 34, Москва | [заполнить] | +7-495-123-45-67 | [заполнить] |
| Zoon.ru | ЧистоЛайн | [заполнить] | ул. Ленина, 34, Москва | [заполнить] | +7-495-123-45-67 | [заполнить] |
| Flamp.ru | ЧистоЛайн | [заполнить] | ул. Ленина, 34, Москва | [заполнить] | +7-495-123-45-67 | [заполнить] |
| Справочники | ЧистоЛайн | [заполнить] | ул. Ленина, 34, Москва | [заполнить] | +7-495-123-45-67 | [заполнить] |
| Avito | ЧистоЛайн | [заполнить] | ул. Ленина, 34, Москва | [заполнить] | +7-495-123-45-67 | [заполнить] |
| Личный сайт | ЧистоЛайн | [заполнить] | ул. Ленина, 34, Москва | [заполнить] | +7-495-123-45-67 | [заполнить] |
Проверить консистентность вручную: скопировать название компании и телефон в поиск Яндекса и пройти по первым 10–15 результатам. Расхождения исправляются через личный кабинет каждой площадки.
Структура сайта химчистки: сколько страниц нужно и как их связать
.webp)
Минимальная SEO-структура сайта химчистки — 25–30 страниц: хаб-страницы услуг, посадочные под типы мебели и 10–15 геостраниц под районы. Начинать с 4–5 страниц и ждать трафика — не работает: Яндекс не видит достаточного покрытия темы и не ранжирует сайт по коммерческим запросам.
Структура масштабируется в три этапа:
| Этап | Страниц | Состав | Ожидаемый органический трафик |
|---|---|---|---|
| Старт | 25–30 | Хаб + типы мебели + 5–7 геостраниц | 300–600 визитов/мес |
| Рост | 40–60 | + 10–15 страниц загрязнений + блог | 800–1 500 визитов/мес |
| Масштаб | 80–120 | + геостраницы по всем районам + B2B | 2 000+ визитов/мес |
Страницы без взаимной перелинковки работают как изолированные острова — трафик есть, но передачи веса нет. Хаб-страница должна ссылаться на все споук-страницы, споук-страницы — возвращать ссылку на хаб и перекрёстно ссылаться на смежные кластеры.
Кластерная архитектура: хаб-страница + споук-страницы
Кластерная архитектура строится по принципу «ступица и спицы»: хаб-страница («Химчистка мебели») аккумулирует ссылочный вес и распределяет его на споук-страницы по типам изделий и районам.
Схема кластера для типичной химчистки мебели:
[Хаб] Химчистка мебели в [Город]
│
├── [Услуга] Химчистка дивана
│ ├── [Гео] Химчистка дивана в Бутово
│ ├── [Гео] Химчистка дивана в Марьино
│ └── [Загрязнение] Удаление запаха мочи с дивана
│
├── [Услуга] Химчистка матраса
│ ├── [Гео] Химчистка матраса в Бутово
│ └── [Загрязнение] Удаление клещей из матраса
│
├── [Услуга] Химчистка ковра
│ ├── [Гео] Химчистка ковра в Марьино
│ └── [Загрязнение] Удаление кошачьей шерсти с ковра
Глубина вложенности — не более трёх уровней: хаб → тип услуги → геостраница/загрязнение. PageRank затухает на каждом уровне передачи: страница четвёртого уровня получает менее 15% исходного веса хаба, что практически исключает её из конкурентного ранжирования по коммерческим запросам.
Правила перелинковки:
- Хаб ссылается на все споук-страницы первого уровня (услуги).
- Страницы услуг ссылаются на геостраницы и страницы загрязнений.
- Геостраницы и страницы загрязнений возвращают ссылку вверх — на услугу и на хаб.
- Перекрёстные ссылки между смежными услугами (диван ↔ матрас) допустимы, но не обязательны.
Внутренняя перелинковка: якорные тексты и глубина вложенности
Внутренняя перелинковка сайта химчистки передаёт PageRank от хаб-страницы к геостраницам через анкорные тексты с топонимом и типом услуги — например, «химчистка дивана в Бутово».
Правила выбора якорных текстов:
| Тип ссылки | Шаблон якоря | Пример |
|---|---|---|
| Хаб → услуга | [тип услуги] | «химчистка дивана» |
| Услуга → гео | [услуга] в [район] | «химчистка дивана в Марьино» |
| Услуга → загрязнение | [загрязнение] + [изделие] | «удаление запаха мочи с дивана» |
| Гео → хаб | [хаб-запрос] | «химчистка мебели в Москве» |
| Блог → услуга | [проблема] → [услуга] | «не смогли вывести пятно — заказать химчистку» |
Якоря «здесь», «тут», «по ссылке», «перейти» не передают тематический сигнал. Точное вхождение ключа в якорь — приоритет для геостраниц. Для страниц загрязнений допустимы частичные вхождения: «удалить запах» вместо «удаление запаха мочи с дивана».
Сезонность спроса: когда наращивать контент, а когда — бюджет
Спрос на химчистку мебели распределён по году неравномерно — три пика и два провала, которые повторяются из года в год по данным Яндекс.Вордстат. Игнорировать этот паттерн при планировании контента — значит публиковать геостраницы в момент спада и упускать позиции к пику спроса.
| Месяц | Индекс спроса | Характер пика | Рекомендуемое действие |
|---|---|---|---|
| Январь | 70 | Послепраздничный спад | Технический аудит, подготовка контента |
| Февраль | 80 | Рост | Публиковать новые геостраницы |
| Март–апрель | 120 | Пик перед Пасхой и майскими | Запускать рекламу, контент должен быть уже в индексе |
| Май | 110 | Высокий | Отзывы, активность в Яндекс.Бизнесе |
| Июнь–июль | 75 | Спад (отпуска) | Создавать страницы загрязнений, блог |
| Август–сентябрь | 115 | Пик сдачи аренды и переезды | Геостраницы по спальным районам, B2B-страницы |
| Октябрь–ноябрь | 100 | Стабильный | Поддержка позиций |
| Декабрь | 65 | Глубокий спад | Плановые технические правки |
Контент готовится минимум за 6–8 недель до пика: новая страница в индекс попадает за 2–4 недели, и ещё 2–4 недели нужно на набор поведенческих сигналов.
Геостраницы под районы: как сделать каждую уникальной и не получить фильтр за дубли
Геостраница «химчистка дивана в [Район]» становится дублем, если отличается от соседних только заменой топонима в тексте — Яндекс понижает такие страницы или исключает из индекса. Это одна из самых распространённых ошибок при масштабировании: агентство создаёт 20 геостраниц за один день, шаблонно меняет название района — и через 3 недели Яндекс.Вебмастер сигнализирует о дублированном контенте.
Создавать геостраницы нужно поэтапно: 3–5 страниц с полной уникализацией → дождаться индексации и первых позиций → следующая партия. Запуск 15 страниц одновременно при отсутствии истории домена — риск попасть под фильтр до того, как хоть одна из них начнёт приносить трафик.
Схема выбора: создавать геостраницу или нет?
.webp)
Перед созданием геостраницы — пройдите по дереву решений. Не создавай страницу, которую не сможешь уникализировать.
Есть реальные клиенты из этого района ИЛИ планируете выезд в течение 30 дней?
├── Нет → Не создавать. Страница без реального или запланированного опыта = слабые
│ геосигналы + риск жалоб при первом заказе.
└── Да ↓
Есть хотя бы один реальный отзыв с упоминанием района?
├── Нет → Подождать. Собрать отзыв, потом создавать.
│ Исключение: новый район → пометить страницу «Открываем выезд в [Район]»,
│ опубликовать после первого отзыва.
└── Да ↓
Можешь указать реальное время выезда в этот район?
├── Нет → Не создавать. Фиктивное время выезда → негатив от первого клиента.
└── Да ↓
Есть уникальное фото из этого района (или можешь сделать)?
├── Нет → Создать страницу с [отложить фото], но заполнить до публикации.
└── Да → Создавать. Все 5 элементов уникализации доступны.
Чеклист уникализации геостраницы (5 обязательных элементов)
Геостраница считается уникальной, если содержит локальный отзыв из конкретного района, реальное время выезда, уникальный интро-абзац и хотя бы одно фото из этой локации.
- Локальный отзыв. Скриншот или текст отзыва от клиента с указанием улицы или ориентира: «живу у метро Бульвар Дмитрия Донского, мастер приехал за 25 минут». Отзыв с упоминанием района сильнее общего отзыва.
- Реальное время выезда. Не «быстро», а «выезд из депо в Орехово — до вашего адреса в Бутово 15–20 минут». Время должно быть реальным — иначе первый же клиент оставит негатив.
- Уникальный интро-абзац. Первые 50–70 слов страницы не должны совпадать ни с одной другой геостраницей. Формула: проблема клиента из этого района + решение + конкретика.
- Локальное фото. Фото мастера у характерного здания района, фото выезда с парковки торгового центра, фото «до/после» на диване с видом из окна на узнаваемый двор. Геотег на фото ускоряет индексацию.
- Локальная семантика в тексте. Название района, ближайшее метро, популярные ЖК. «Обслуживаем Бутово, Южное Бутово, жилые комплексы вдоль Бутовской линии метро» — 2–3 упоминания топонима в тексте страницы, без перебора.
URL-структура и canonical для геостраниц: типичные ошибки
Геостраница получает canonical на себя (не на хаб), если содержит уникальный контент — иначе передаёт весь ссылочный вес хабу и выпадает из индекса.
Правильная URL-структура:
/himchistka-divana/ ← услуга (хаб второго уровня)
/himchistka-divana/butovo/ ← геостраница
/himchistka-divana/marino/ ← геостраница
Правильный canonical для геостраницы /himchistka-divana/butovo/:
<!-- ПРАВИЛЬНО: canonical указывает на саму геостраницу -->
<link rel="canonical" href="https://example.com/himchistka-divana/butovo/" />
Неправильный canonical — canonical указывает на хаб:
<!-- НЕПРАВИЛЬНО: Яндекс считает содержимое геостраницы дублём хаба.
Геостраница выпадает из индекса, ссылочный вес уходит на хаб. -->
<link rel="canonical" href="https://example.com/himchistka-divana/" />
Дополнительные ошибки, которые встречаются регулярно:
- URL с параметрами:
/himchistka/?city=butovoвместо ЧПУ. Страницы с параметрами хуже индексируются и не получают ссылочного веса от внутренних ссылок. - Непоследовательная транслитерация:
/butovo/для одного района и/yuzhnoe-butovo/для другого без единого правила. Придерживаться единого стандарта на всём сайте.
Как найти районы, которые конкуренты не закрыли
Конкурентный анализ геостраниц через Keys.so позволяет за 20–30 минут выявить районы, где конкурент либо не имеет страницы вовсе, либо имеет слабую — с шаблонным текстом и без отзывов.
Алгоритм анализа:
- В Keys.so ввести домен основного конкурента → раздел «Страницы» → фильтр по маске
/[район]/или/[услуга]/. - Выгрузить список URL геостраниц конкурента с объёмом трафика.
- Сравнить с картой районов города — районы без страниц у конкурента или со страницами с трафиком менее 50 визитов/мес — ваша возможность.
- Дополнительный сигнал: проверить Яндекс.Вордстат по запросу «химчистка дивана [район]» для каждого кандидата — если частотность выше 50 (!точная фраза, Москва), район приоритетный.
Приоритет для "атаки" — районы с частотностью выше 50 в Вордстате и отсутствием конкурента с уникализированной страницей. Такую страницу можно вывести в ТОП-5 за 4–6 недель даже при слабом домене.
Виды загрязнений как SEO-кластеры: структура страницы и семантика
Страница под конкретный вид загрязнения («удаление запаха мочи с матраса») конвертирует в заявку в 2–4 раза чаще информационной статьи общего характера, потому что закрывает острую потребность с точным намерением. Пользователь, который ищет «как вывести запах мочи с матраса», уже пробовал самостоятельно — и не получилось.
Структура страницы под загрязнение отличается от стандартной страницы услуги:
- H1 — проблема пользователя, не название услуги: «Удаление запаха мочи с матраса» вместо «Химчистка матраса».
- Блок проблемы — почему запах не уходит после самостоятельной чистки (кристаллы мочевой кислоты, которые реагируют на влагу и активируются снова).
- Блок метода — какой конкретно инструмент и состав используется (ферментный разрушитель + экстрактор), почему это работает.
- Фото до/после — конкретный кейс с этим типом загрязнения.
- Цена — конкретная, не «от».
- Гарантия — «если запах вернётся в течение 30 дней — приедем бесплатно».
- CTA — «Вызвать мастера» + телефон.
Страница из 400–600 слов с реальным кейсом и конкретной ценой переигрывает страницу из 1 500 слов с общими словами об «экологичных средствах».
Матрица приоритизации кластеров загрязнений
.webp)
Приоритизация строится по трём осям: частотность запроса (Wordstat), конверсионный потенциал (из аналитики проектов) и конкурентность (оценка топа выдачи). Начинать с правого верхнего сектора: высокая частотность + высокая конверсия + низкая конкуренция.
Конверсионный потенциал
▲
Высокий │ [Запах мочи (животные)] [Запах мочи (дети)]
│ [Шерсть животных] [Клопы]
│ [Рвота] [Кровь]
│ [Клещи] [Вино]
├─────────────────────────────────────────────────→ Частотность
Средний │ [Кофе] [Запах табака]
│ [Плесень] [Жирные пятна]
│ [Блохи] [Пот]
│
Низкий │ [Фломастер] [Краска/растворитель]
│ [Чай] [Ремонт]
Таблица кластеров: приоритет создания страниц для химчистки
| Кластер | Примеры запросов | Конверсионный потенциал | Приоритет |
|---|---|---|---|
| Запах мочи (домашние животные) | «вывести запах кошачьей мочи с дивана» | Максимальный | 1 |
| Запах мочи (дети) | «запах мочи с матраса ребёнок» | Максимальный | 1 |
| Клопы в матрасе | «клопы в матрасе», «химчистка матраса от клопов» | Высокий | 1 |
| Шерсть животных | «химчистка дивана от кошачьей шерсти» | Высокий | 2 |
| Рвота | «рвота на диване как убрать», «пятно рвоты на матрасе» | Высокий | 2 |
| Кровь | «пятно крови на матрасе», «вывести кровь с дивана» | Высокий | 2 |
| Клещи и аллергены | «химчистка матраса от клещей», «пылевые клещи в диване» | Высокий | 2 |
| Пятно вина | «вывести пятно вина с дивана», «красное вино на диване» | Высокий | 2 |
| Пятно кофе | «пятно кофе на диване», «вывести кофе с белого дивана» | Высокий | 2 |
| Запах табака | «диван пропах сигаретами», «убрать запах курения с дивана» | Средний | 3 |
| Плесень | «плесень на диване», «химчистка от плесени» | Средний | 3 |
| Блохи | «блохи в диване как убрать», «химчистка от блох» | Средний | 3 |
| Жирные пятна | «жирное пятно на диване», «вывести жир с обивки» | Средний | 3 |
| Пот | «диван пропитался потом», «запах пота с матраса» | Средний | 3 |
| Грибок | «грибок на матрасе», «химчистка от грибка» | Средний | 3 |
| Плесень на ковре | «ковёр пахнет плесенью», «плесень под ковром» | Средний | 3 |
| Пятна от фломастеров | «фломастер на диване ребёнок», «вывести фломастер с обивки» | Низкий | 4 |
| Пятно чая | «пятно чая на ковре», «вывести чай с светлого ковра» | Низкий | 4 |
| Выделения домашних животных | «кот пометил диван», «маркировка кота на мебели» | Высокий | 2 |
| Обезжиривание после ремонта | «краска на диване», «растворитель на обивке» | Низкий | 4 |
Schema.org разметка для сайта химчистки: типы, примеры кода и влияние на сниппет
Schema.org разметка типа LocalBusiness и Service позволяет Яндексу отображать цены, рейтинг и режим работы прямо в сниппете — без перехода на сайт. Расширенный сниппет с ценой и рейтингом даёт CTR выше стандартного в среднем на 15–20% по данным Search Console проектов в нише услуг.
Приоритетные типы Schema.org для сайта химчистки:
| Тип | Где использовать | Что даёт в сниппете |
|---|---|---|
| LocalBusiness | Главная и все страницы | Название, адрес, телефон, режим работы |
| Service | Страница каждой услуги | Цена, описание, провайдер |
| ImageObject | Фото до/после | Попадание в Яндекс.Картинки |
| Review / AggregateRating | Страницы услуг | Звёздочки рейтинга в сниппете |
| FAQPage | Страницы с FAQ | Раскрытые вопросы-ответы под сниппетом |
Разметка реализуется через JSON-LD — скрипт в теге <head>. Яндекс предпочитает JSON-LD; микроданные (itemtype/itemprop в HTML) устарели и хуже распознаются.
sameAs и @id в Schema.org: как связать сайт с карточкой Яндекс.Бизнеса
Атрибут @id в разметке LocalBusiness создаёт стабильный идентификатор сущности, а sameAs связывает её с внешними карточками — Яндекс.Картами, 2ГИС, Wikidata. Это даёт поисковику уверенность, что компания на сайте и компания в карточках — одна и та же: entity disambiguation, который прямо влияет на локальное ранжирование. Реализация sameAs на уровне LocalBusiness — быстрый дифференцирующий сигнал с минимальными трудозатратами.
Порядок приоритетов площадок для sameAs:
- Яндекс.Бизнес (yandex.ru/maps/org/...)
- 2ГИС (2gis.ru/.../firm/...)
- Flamp (flamp.ru/firm/...)
- Справочник.ру (spravochnik.ru/...)
- Wikidata (при наличии)
JSON-LD для страницы LocalBusiness: готовый шаблон с @id и sameAs
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
// Стабильный идентификатор сущности — URL главной + фрагмент #organization
"@id": "https://example.com/#organization",
"name": "ЧистоЛайн",
"telephone": "+7-495-123-45-67",
"address": {
"@type": "PostalAddress",
"streetAddress": "ул. Ленина, 34",
"addressLocality": "Москва",
"addressRegion": "Москва",
"postalCode": "115551",
"addressCountry": "RU"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "21:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday","Sunday"],
"opens": "10:00",
"closes": "20:00"
}
],
// Связь с карточками на внешних площадках — entity graph Яндекса
// Заменить [id] на реальные идентификаторы ваших карточек
"sameAs": [
"https://yandex.ru/maps/org/[id]",
"https://2gis.ru/moscow/firm/[id]",
"https://flamp.ru/firm/[id]",
"https://spravochnik.ru/[id]"
]
}
</script>
JSON-LD для страницы услуги: готовый шаблон
Тип Service в Schema.org описывает конкретную услугу (химчистка дивана) с ценой, зоной обслуживания и поставщиком — этот тип отображается в расширенном сниппете Яндекса.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
// Название услуги — совпадает с H1 страницы дословно
"name": "Химчистка дивана на дому",
// Краткое описание — 100–150 символов
"description": "Профессиональная химчистка дивана с выездом. Удаление пятен, запахов, бактерий. Результат — за 1 визит.",
"serviceType": "Химчистка мебели",
// Цена — только числа. "от 2500" — невалидно
"offers": {
"@type": "Offer",
"priceCurrency": "RUB",
"price": "2500",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "2500",
"priceCurrency": "RUB",
"unitText": "за диван"
}
},
"areaServed": [
{ "@type": "City", "name": "Москва" }
],
// provider ссылается на LocalBusiness через @id
"provider": {
"@id": "https://example.com/#organization"
}
}
</script>
Когда Schema.org Service ломает сниппет
Три сценария некорректной разметки Service, которые приводят к отклонению расширенного сниппета:
Сценарий 1 — нет поля price. Если цена не указана или поставлено "price": "0", Яндекс не показывает ценовой сниппет. Для услуг с диапазоном цен использовать "priceSpecification" с "minPrice" и "maxPrice". Поле "price": "от 2500" — невалидно: только числа.
Сценарий 2 — поле name не совпадает с H1 страницы. Если в разметке "name": "Химчистка диванов", а H1 страницы — «Профессиональная чистка дивана на дому», Яндекс фиксирует несоответствие и игнорирует тип данных. Название в разметке должно совпадать с H1 дословно или содержать H1 как подстроку.
Сценарий 3 — несколько блоков Service на одной странице. При наличии нескольких разметок Service на одном URL Яндекс берёт первую и игнорирует остальные. На странице услуги — ровно один блок Service. Для страниц-каталогов со списком услуг тип Service не использовать; там уместен ItemList.
ImageObject для фото до/после: попасть в Яндекс.Картинки
Разметка Schema.org типа ImageObject с атрибутами name, description и contentUrl повышает шансы фотографии «до/после» попасть в Яндекс.Картинки — дополнительный источник локального трафика.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ImageObject",
// Название фото — содержит поисковый запрос
"name": "Химчистка дивана до и после — удаление пятна кофе",
// Описание — дополнительный контекст для алгоритма
"description": "Результат химчистки кожаного дивана. Слева — пятно от кофе, справа — после обработки паровым экстрактором.",
// URL фото — абсолютный путь
"contentUrl": "https://example.com/images/divan-do-posle-kofe.webp",
// Страница, на которой размещено фото
"url": "https://example.com/himchistka-divana/"
}
</script>
Alt-текст фото должен совпадать с полем name в разметке: alt="Химчистка дивана до и после — удаление пятна кофе". Имя файла — транслит запроса: himchistka-divana-do-posle-kofe.webp. Стоковые имена типа IMG_3847.jpg блокируют тематическую индексацию в Картинках.
Core Web Vitals для сайта химчистки: нормы, инструменты и специфика фотогалереи
Сайт химчистки с галереей фото «до/после» системно проваливает LCP (загрузка главного контента) — изображения без lazy loading и без WebP-конвертации поднимают показатель до 4–6 секунд вместо нормы менее 2,5 с. При LCP > 4 с отказы растут на 30–40%, и позиции в Яндексе снижаются.
Нормы Core Web Vitals:
| Метрика | Хорошо | Требует улучшения | Плохо |
|---|---|---|---|
| LCP (загрузка главного контента) | < 2,5 с | 2,5–4,0 с | > 4,0 с |
| CLS (сдвиг макета) | < 0,1 | 0,1–0,25 | > 0,25 |
| INP (отклик на взаимодействие) | < 200 мс | 200–500 мс | > 500 мс |
INP (Interaction to Next Paint) заменил устаревший FID в марте 2024 — он измеряет задержку каждого взаимодействия на странице на протяжении всей сессии, а не только первого клика.
Инструменты замера:
- PageSpeed Insights — анализ конкретного URL, показывает данные с реальных пользователей
- GTmetrix — детальный waterfall загрузки, видно какие ресурсы тормозят
- Яндекс.Метрика → «Скорость сайта» — данные по реальным пользователям из России
Специфика сайта с фотогалереей:
- WebP-конвертация. Фото в WebP весят на 25–35% меньше JPEG при сопоставимом качестве. Конвертация галереи из 50 JPEG снижает LCP на 0,5–1,5 с. Плагины: Imagify, ShortPixel (WordPress), или конвертация через CLI инструмент cwebp.
- Lazy loading. Атрибут
loading="lazy"на всех изображениях ниже первого экрана. Браузер загружает их только при скролле — LCP первого экрана падает в 1,5–2 раза. - Резервирование размера изображений. Атрибуты
widthиheightна теге<img>предотвращают CLS при загрузке. Без них макет прыгает — CLS растёт. - Preload для LCP-изображения. Главное фото первого экрана нужно загружать приоритетно:
<link rel="preload" as="image" href="/images/hero-do-posle.webp">
Проверить LCP через PageSpeed Insights — инструмент покажет, какое именно изображение является LCP-элементом. Начинать оптимизацию с него.
Технические основы: Sitemap.xml, robots.txt и Яндекс.Вебмастер
Технические файлы Sitemap.xml и robots.txt критичны для сайтов с 50+ страницами — без них часть геостраниц не попадёт в индекс, а дублированный контент не будет закрыт. Яндекс.Вебмастер — единственный инструмент, через который Яндекс напрямую сигнализирует о проблемах с индексацией.
Sitemap.xml для сайта с геостраницами
Sitemap.xml для химчистки с геостраницами строится с разделением на два файла: коммерческие страницы и блог. Это позволяет отслеживать статус индексации каждой группы отдельно в Яндекс.Вебмастере.
<!-- sitemap_index.xml — ссылается на дочерние карты -->
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap_commercial.xml</loc>
<lastmod>2026-01-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap_blog.xml</loc>
<lastmod>2026-01-15</lastmod>
</sitemap>
</sitemapindex>
В коммерческий sitemap включать только страницы с canonical на себя. Геостраницы с canonical на хаб — не включать: они не должны индексироваться отдельно. Страницы с параметрами (?city=butovo) — не включать.
robots.txt: что закрывать на сайте химчистки
robots.txt для сайта химчистки закрывает от сканирования страницы, которые не несут коммерческой ценности. Это снижает нагрузку на краулинговый бюджет.
User-agent: *
# Закрыть административный раздел
Disallow: /wp-admin/
Disallow: /wp-login.php
# Закрыть страницы поиска по сайту
Disallow: /?s=
Disallow: /search/
# Закрыть страницы с фильтрами и сортировкой (если есть каталог услуг)
Disallow: /*?orderby=
Disallow: /*?filter=
# Закрыть страницы пагинации блога
Disallow: /blog/page/
# Закрыть технические страницы CMS
Disallow: /xmlrpc.php
Disallow: /wp-json/
# Путь к ситемапу
Sitemap: https://example.com/sitemap_index.xml
Важно для Яндекса: страницы, закрытые в robots.txt директивой Disallow, могут всё равно появляться в выдаче Яндекса, если на них ведут внешние ссылки. Disallow запрещает сканирование, но не исключает из индекса. Чтобы полностью убрать страницу из поиска Яндекса, используйте тег <meta name="robots" content="noindex"> в HTML-коде страницы или HTTP-заголовок X-Robots-Tag: noindex. Подробнее — в официальной документации Яндекс.Вебмастера.
Геостраницы в robots.txt не закрывать. Распространённая ошибка — случайно закрыть директорию /himchistka-divana/ при блокировке другого контента и заблокировать все геостраницы вместе с ней.
Яндекс.Вебмастер: как проверить индексацию геостраниц
Яндекс.Вебмастер сигнализирует о трёх типах проблем с геостраницами — дубли, исключённые страницы и страницы с ошибками.
Как проверить статус геостраниц:
- Яндекс.Вебмастер → «Индексирование» → «Страницы в поиске» → фильтр по маске URL
/himchistka-*/. Показывает, сколько геостраниц проиндексировано. - Яндекс.Вебмастер → «Диагностика» → «Качество сайта». Здесь появляются предупреждения о дублированном контенте.
- Яндекс.Вебмастер → «Индексирование» → «Исключённые страницы». Геостраницы с canonical на хаб попадают сюда — это нормально. Геостраницы с canonical на себя — не должны быть в этом списке.
Три типа предупреждений и алгоритм реакции:
| Предупреждение в Вебмастере | Причина | Действие |
|---|---|---|
| «Дублированные страницы» | Шаблонный текст геостраниц с заменой топонима | Уникализировать первые 50–70 слов + добавить локальный отзыв |
| «Страница не добавлена в индекс» | Canonical указывает на другую страницу | Проверить canonical: если страница должна индексироваться, исправить |
| «Нарушение качества контента» | Страницы с минимальным объёмом текста | Добавить уникальный контент: кейс, отзыв, описание маршрута |
После исправления — использовать инструмент «Переобход страниц» в Яндекс.Вебмастере для ускорения переиндексации (доступно до 20 URL в сутки).
B2B-химчистка: чем отличается SEO-стратегия для корпоративных клиентов
B2B-клиент химчистки ищет не разовый выезд, а подрядчика для регулярного обслуживания — поэтому его запрос содержит объект («офис», «гостиница», «ресторан»), а не проблему («запах», «пятно»). Смешивать B2B и B2C на одной странице — значит не закрыть ни один интент полностью.
Конверсия с B2B-страницы ниже, но средний чек в 5–10 раз выше, а LTV — бессрочный при хорошем сервисе.
Отличия B2B-страницы от B2C:
| Параметр | B2C (частный клиент) | B2B (корпоративный) |
|---|---|---|
| H1 | «Химчистка дивана на дому» | «Химчистка офисных кресел и мягкой мебели» |
| Ключевые запросы | «химчистка дивана цена», «вызов мастера» | «химчистка мебели для офиса», «корпоративный договор химчистки» |
| Главный аргумент | Скорость, чистота, цена за единицу | Договор, акт, счёт-фактура, регулярность |
| Schema.org | Service + LocalBusiness | Service + ServiceChannel (для корпоративных заявок) |
| CTA | «Вызвать мастера» | «Получить коммерческое предложение» |
| Сезонность | Пики перед праздниками | Перед сдачей офиса, после ремонта, ежеквартально |
Семантика B2B-кластера (примеры для Яндекс.Вордстат):
- «химчистка офисных кресел Москва»
- «корпоративная химчистка мебели»
- «химчистка мягкой мебели для гостиниц»
- «чистка ресторанных диванов»
- «договор на химчистку мебели»
При объёме сайта 80+ страниц B2B-раздел создаётся как отдельный хаб с собственной перелинковкой: хаб «Химчистка мебели для бизнеса» → споук-страницы по типам объектов (офис, гостиница, ресторан, фитнес-клуб).
Чеклист технического аудита перед запуском геостраниц
Запускать геостраницы без прохождения этого чеклиста — создавать технический долг, который придётся исправлять после появления первых дублей в индексе.
Базовая технология:
URL и canonical:
Контент:
Schema.org:
Скорость:
Яндекс.Метрика: настройка целей для отслеживания конверсий с геостраниц
Яндекс.Метрика с настроенными целями — единственный способ измерить, какие геостраницы приносят реальные заявки, а не только трафик. Без целей нельзя принять обоснованное решение о создании следующей партии геостраниц.
Три обязательные цели для сайта химчистки:
- Звонок. Тип цели: «JavaScript-событие». Срабатывает при клике по телефонному номеру. Интеграция с коллтрекингом (Calltouch, CoMagic) позволяет видеть, с какой именно геостраницы пришёл звонок.
- Отправка формы заявки. Тип цели: «Посещение страницы» — страница «спасибо» после отправки формы. Или «JavaScript-событие» при submit формы, если страница «спасибо» отсутствует.
- Переход в мессенджер / WhatsApp-кнопка. Тип цели: «JavaScript-событие» на клик по кнопке. Для ниш с высокой долей мессенджер-заявок (химчистки, как правило, получают 30–50% заявок через WhatsApp) это критичная цель.
После настройки целей — сегментировать отчёт «Источники» → «Поисковые системы» по URL геостраниц. Это покажет, какой район приносит заявки, а на какой странице стоит доработать CTA.
Кейс «Семантического Ежа»: химчистка мебели — от 6 заявок до 74 в месяц за 5 месяцев
Химчистка (Пермь, 2 мастера, выезд по городу, клиент решил не публиковать название) пришла с сайтом на Tilda из 4 страниц, нулевыми позициями и 6–8 заявками в месяц из соцсетей — через 5 месяцев сайт генерировал 74 заявки в месяц из органики при CPL 1 840 ₽.
Контекст проекта:
| Параметр | Значение |
|---|---|
| Масштаб | 2 выездных мастера, работа по городу |
| Стартовая платформа | Tilda (4 страницы: главная, услуги, цены, контакты) |
| Средний чек на старте | 3 200 ₽ (диван), 4 800 ₽ (ковёр 6–8 м²) |
| Заявок в месяц на старте | 6–8 (ВКонтакте + сарафан) |
| Позиции в Яндексе на старте | 0 запросов в ТОП-100 |
| Бюджет на SEO | 42 000 ₽/мес |
| Период работы | Февраль — июнь 2024 |
Три ошибки, которые мы сделали в первый месяц
Ошибка 1: Перенесли контент с Tilda на WordPress один к одному. 4 страницы превратились в 4 страницы WordPress — структура не изменилась, просто сменилась CMS. Яндекс переиндексировал сайт за 11 дней и не обнаружил новых сигналов релевантности. Позиции остались нулевыми.
Ошибка 2: Запустили 14 геостраниц одновременно с одним шаблоном. Скопировали шаблонный текст с заменой топонима. Через 3 недели Яндекс.Вебмастер показал предупреждение о дублях. 11 из 14 геостраниц выпали из индекса.
Ошибка 3: Проигнорировали NAP. В Яндекс.Бизнесе стоял адрес «ул. Ленина, 34», на Avito — «улица Ленина д. 34», в 2ГИС — «Ленина 34». Яндекс не смог верифицировать данные как единую точку — карточка не попадала в локальный блок выдачи.
Что изменили и когда:
| Месяц | Действие | Результат через 4 недели |
|---|---|---|
| Февраль | Перенос на WordPress, базовая структура | Индексация 4 страниц, 0 позиций |
| Март (ошибка) | 14 геостраниц с дублированным текстом | Предупреждение, 11 страниц вне индекса |
| Март (исправление) | 3 уникальные геостраницы с локальными отзывами и реальным временем выезда | Первые позиции 40–60 по 3 запросам |
| Апрель | Исправили NAP на 7 площадках, 22 фото в Яндекс.Бизнес, Schema.org LocalBusiness + Service | Карточка в локальном блоке по 4 запросам, +18 заявок из карт |
| Апрель | 8 страниц загрязнений: запах мочи, шерсть, пятна вина, жир | ТОП-15 по 6 информационным запросам |
| Май | WebP + lazy loading, LCP с 5,1 до 1,9 с | Отказы −23%, время на сайте +41 с |
| Май | 10 уникальных геостраниц, перелинковка хаб → гео → загрязнения | ТОП-10 по 31 запросу |
| Июнь | 12 страниц загрязнений, блог (4 статьи), ImageObject на 47 фото | 74 заявки из органики, CPL 1 840 ₽ |
Динамика ключевых метрик:
| Метрика | Февраль | Март | Апрель | Май | Июнь |
|---|---|---|---|---|---|
| Страниц в индексе | 4 | 17 | 28 | 39 | 54 |
| Запросов в ТОП-10 | 0 | 0 | 9 | 31 | 67 |
| Органических сессий/мес | 0 | 88 | 410 | 890 | 1 740 |
| Заявок из органики/мес | 0 | 4 | 22 | 41 | 74 |
| Заявок из Яндекс.Карт/мес | 2 | 3 | 21 | 28 | 34 |
| CPL органика, ₽ | — | 10 500 | 1 909 | 1 024 | 1 840* |
| LCP, с | 5,1 | 5,1 | 4,8 | 1,9 | 1,8 |
*CPL вырос в июне: бюджет увеличили до 60 000 ₽ для создания контента. При бюджете 42 000 ₽ CPL составил бы 1 134 ₽.
Лайфхаки, которые ускорили результат
Лайфхак 1 — «Живой район». На каждой геостранице мастер записывал голосовое в WhatsApp: «Сейчас еду в [Район], выезд от вас займёт 15 минут». Транскрибировали и вставляли в уникальный блок страницы. Яндекс расценил как уникальный локальный контент. Время на создание — 3 минуты на страницу.
Лайфхак 2 — «Фото из района». Мастер фотографировал работу с привязкой к узнаваемым местам (вид из окна, характерный двор). Фото с геотегом ускорили появление в Яндекс.Картинках с 4 недель до 11 дней.
Лайфхак 3 — «Запах — отдельный кластер». Запрос «удаление запаха мочи с дивана» конвертировал в заявку в 3,2 раза лучше, чем «химчистка дивана», при том же объёме трафика. Этот кластер дал 19 заявок за май–июнь из 174 сессий.
Лайфхак 4 — «Первый отзыв за скидку». Первые 12 отзывов собрали за 18 дней: скидка 200 ₽ на следующий заказ при публикации отзыва с фото результата. Карточка поднялась с 4-й позиции в локальном блоке на 1-ю по запросу «химчистка дивана [Город]» после набора 15 отзывов со средним рейтингом 4,9.
ROI SEO-продвижения химчистки: формула расчёта с учётом LTV
ROI SEO-продвижения химчистки считается через LTV клиента, а не через первый заказ. При среднем чеке 4 000 ₽ и 3 визитах в год один клиент приносит 12 000 ₽ в год, и затраты на SEO нужно делить на эту сумму. Иначе ROI кажется отрицательным на старте при реальной рентабельности выше 200% на горизонте 12 месяцев.
Формула ROI с учётом LTV и конверсии заявки в клиента:
ROI = ((LTV × Кол-во новых клиентов) − Затраты на SEO) / Затраты на SEO × 100%
Кол-во новых клиентов = Заявки из SEO × Конверсия заявки в клиента
LTV = Средний чек × Частота заказов в год × Срок жизни клиента в годах
Конверсия заявки в клиента для выездных услуг — 60–75%: не все 74 заявки превращаются в оплаченные заказы. LTV реализуется не в месяц заявки, а за 1–2 года. Оба параметра критичны для честного расчёта.
Пример расчёта (на основе кейса, июнь 2024):
| Параметр | Значение |
|---|---|
| Заявок из органики в июне | 74 |
| Конверсия заявки в клиента | 65% |
| Новых клиентов из органики | 48 |
| Средний чек | 4 000 ₽ |
| Частота заказов в год | 2,5 |
| LTV за 1 год | 10 000 ₽ |
| LTV за 2 года | 20 000 ₽ |
| Затраты на SEO в июне | 60 000 ₽ |
| ROI (по LTV за год) | (48 × 10 000 − 60 000) / 60 000 × 100% = 700% |
| ROI (по первому чеку) | (48 × 4 000 − 60 000) / 60 000 × 100% = 220% |
Цифра 2 367% из распространённых расчётов возникает при двух ошибках одновременно: конверсия заявки в клиента принимается за 100%, и LTV за 2 года засчитывается в один месяц. При честном расчёте ROI по LTV за год — около 700%, по первому чеку — 220%. Оба числа остаются сильным аргументом в пользу SEO. Без искусственного завышения они убеждают сильнее.
Сценарии окупаемости для разных масштабов:
| Сценарий | Бюджет SEO/мес | Новых клиентов из органики | CPL | Месяц окупаемости (по LTV за год) |
|---|---|---|---|---|
| Старт (1 мастер) | 20 000 ₽ | 8–12 | 1 800–2 500 ₽ | 3–4 месяца |
| Рост (2–3 мастера) | 40 000 ₽ | 25–40 | 1 000–1 600 ₽ | 4–5 месяцев |
| Масштаб (5+ мастеров) | 80 000 ₽ | 60–90 | 900–1 300 ₽ | 5–6 месяцев |
Калькулятор ROI (Return on Investment)
Сайт химчистки не ранжируется: симптом → причина → действие
Диагностика начинается с симптома — конкретного наблюдаемого факта — и ведёт к первому действию, а не к «полному SEO-аудиту». Большинство проблем с ранжированием химчистки укладываются в семь типовых паттернов.
| Симптом | Вероятная причина | Первое действие |
|---|---|---|
| Геостраницы созданы, но не индексируются | Canonical указывает на хаб или шаблонный текст попал под фильтр дублей | Яндекс.Вебмастер → Диагностика → Качество сайта; проверить canonical каждой страницы |
| Карточка Яндекс.Бизнеса есть, в локальном блоке нет | NAP-расхождение на внешних площадках | Сверить Яндекс.Бизнес с 2ГИС, Flamp, Avito по шаблону NAP-аудита |
| Позиции есть, заявок нет | CR страницы ниже 2% | PageVisor / Вебвизор: где пользователь уходит; проверить наличие CTA, цены и кнопки выше fold |
| LCP > 4 с на мобильных | Не конвертированы фото или отсутствует preload LCP-изображения | PageSpeed Insights → раздел «Opportunity» → найти LCP-элемент → применить <link rel="preload"> |
| Позиции стоят на 15–30, не растут | Слабая перелинковка хаб ↔ геостраница | Screaming Frog: экспорт всех входящих ссылок на хаб; проверить, ссылаются ли геостраницы обратно |
| Яндекс.Вебмастер: «дублированный контент» | Шаблонный первый абзац на всех геостраницах | Уникализировать первые 70 слов каждой страницы по чеклисту уникализации |
| Страницы закрыты в robots.txt, но всё равно в индексе | Disallow запрещает сканирование, но не исключает страницу из выдачи Яндекса | Добавить <meta name="robots" content="noindex"> на каждую страницу, которую нужно убрать из поиска |
Комментарии
Здесь можно задать вопрос по теме страницы. Комментарии проходят модерацию и публикуются после проверки.
Пока нет опубликованных комментариев — вы можете стать первым.