SEO-рефакторинг: приводим структуру KIB4D в порядок

Перестроил структуру URL, разделил публичные калькуляторы и рабочую часть проекта, вынес SEO-данные в отдельные модули и настроил 301 редиректы.

SEO-рефакторинг: приводим структуру KIB4D в порядок

На старте главной задачей было просто выкатить работающие инструменты в сеть.

Поэтому структура URL выглядела просто: все калькуляторы лежали в одной папке:

  • /calculators/dew-point
  • /calculators/floor-heating

Для первой версии этого было достаточно.

Но проект постепенно растет. Появляются новые направления, общая модель данных, рабочая часть проекта и планы на климатическую симуляцию.

Поэтому решил немного привести структуру в порядок.

Почему решил изменить URL

Сначала все калькуляторы лежали в одном разделе /calculators/.

Но сейчас уже понятно, что KIB4D будет состоять не просто из набора калькуляторов. Есть разные инженерные направления, а в будущем появится отдельная рабочая среда проекта.

Поэтому решил разделить инструменты по смыслу.

Получилась примерно такая структура:

При этом слово «калькулятор» никуда не исчезает.

Оно остается там, где действительно важно для пользователя: в Title, H1, описании страницы и самом содержании.

Например:

/hvac/floor-heating

А заголовок страницы:

Калькулятор водяного теплого пола онлайн — расчет теплоотдачи и шага трубы.

Получается, URL описывает место инструмента в общей структуре KIB4D, а сама страница уже отвечает на конкретный поисковый запрос.

Публичные инструменты и проекты

Постепенно начинает складываться разделение на две части.

Первая — публичные инструменты.

Это калькуляторы, которые человек может открыть из поиска, разобраться в задаче и получить расчет. Скажем так, самостоятельные единицы.

Вторая — рабочая часть проекта.

Например:

/project/estimate -> Ведомость материалов

Здесь уже другая логика.

Мне хочется, чтобы пользователь не вводил одни и те же данные в каждом калькуляторе заново, а мог один раз создать конструкцию и дальше использовать ее в других расчетах.

Поэтому /project/ со временем должен стать местом, где собирается уже сам проект здания.

Пока это только начало, но структура уже готовится под такую логику.

Еще одна уборка в коде

Заодно решил разобраться с SEO-данными внутри самого проекта.

Раньше заголовки, описания и другие SEO-настройки постепенно начали появляться прямо внутри .vue файлов.

Работает, но со временем это превращается в кашу.

Поэтому вынес тексты, заголовки и FAQ в отдельные TypeScript-модули в data/seo/.

Теперь страница получает SEO-данные по ID инструмента, а общий компонент <SeoContent /> занимается остальным.

Он отвечает за:

  1. Title и Description.
  2. canonical.
  3. JSON-LD для FAQ.
  4. Навигационное оглавление страницы с якорями.

В итоге в самой странице остается меньше лишнего кода.

Если появится новый калькулятор, не нужно собирать SEO-настройки по разным файлам. Добавляю данные в одном месте и подключаю их к инструменту.

Что с уже существующими страницами

Здесь была еще одна важная задача.

Старые адреса уже успели попасть в индекс поисковиков. Просто поменять URL и забыть про старые страницы нельзя.

Поэтому настроил 301 редиректы.

Например, если раньше калькулятор открывался по:

/calculators/floor-heating

а теперь находится по:

/hvac/floor-heating

то старый адрес автоматически отправляет пользователя на новый.

Так можно менять структуру сайта без того, чтобы просто выбросить старые ссылки.

Что получилось

Вроде бы обычная работа с URL и SEO, но на самом деле пришлось немного пересобрать представление о самом проекте.

Раньше были просто калькуляторы.

Теперь появляются направления, общие данные и отдельная рабочая часть проекта.

И это как раз то, к чему я постепенно шел.

Хочется, чтобы человек один раз ввел данные о своем доме, а дальше эти данные использовались в разных расчетах.

Создал конструкцию стены — используешь ее в расчете точки росы, теплопотерь и сметы.

Создал пол — используешь его в калькуляторе теплого пола.

А дальше все это можно связать с климатическими данными и почасовой симуляцией.

И удивительное рядом

Сбор семантики я откладывал в долгий ящик. Рутинная работа, которая как-то не вызывает драйва, но без нее, конечно, никуда.

Сегодня день икс настал.

Сел за код, набросал анализатор поисковых фраз и «обогатитель семантики», который подтягивает частотность запросов из Wordstat Яндекса.

И тут я немного удивился.

Первая пачка запросов, которые я считал частотными, оказалась почти нулевой по частотности.

Дальше зацепился за другую тему запросов — и вуаля. Популярными оказались совсем не те формулировки, которые я предполагал.

Вот так, шаг за шагом, собрал семантические ядра для трех инструментов.

Теперь хотя бы понятно, что именно люди действительно ищут, а не что мне кажется логичным.

Что дальше

SEO-часть пока привожу в порядок.

Следующая большая задача уже не про URL.

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

Потихоньку собираем систему из того, что изначально было просто несколькими калькуляторами.