Как я увлёкся программированием и забыл о SEO: история ручной настройки сайта без плагинов

Константин Милютин настраивает SEO вручную в WordPress: дочерняя тема, код functions.php и проверка индексации в Яндекс.Вебмастере.

Последние месяцы я жил в режиме непрерывного кодинга. Плагин для ВК, Python-скрипты, ревью в WordPress.org — и вот однажды я заглянул в Яндекс. Вебмастер и понял, что моего сайта там нет. Совсем.

milyutin-codes.ru не индексировался. Ни одной страницы в поиске. Блог, в который я вложил месяцы работы, был невидим.

И это стало отправной точкой для новой эпопеи. Я решил отказаться от SEO-плагинов и написать всё вручную. Если уж я пишу код, то пусть он будет полностью моим.

Как я увлёкся и что упустил

Всё началось с того, что я погрузился в разработку. Каждый день я что-то писал: то плагин для ВК, то Python-скрипт для автопостинга, то пытался починить очередной баг. Мне нравилось создавать. Мне нравилось решать задачи. Мне нравилось чувствовать себя разработчиком.

Но в этой гонке я перестал думать о том, для чего всё это делается. Я создавал статьи, публиковал их, но не задумывался: а увидят ли их люди? Найдут ли их поисковые системы? Будут ли они приносить трафик?

Ответ был неутешительным. Нет. Не найдут. Не будут.

Я запустил поиск по своему сайту в Яндексе и Google. Ноль результатов. Сайт не индексировался. Мой блог, в который я вложил столько сил, был невидим для поисковиков.

Забыл о SEO: ручная настройка WordPress без плагинов
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Это был удар. Я осознал, что всё это время строил дом без фундамента. Красивый, с хорошей отделкой, но без фундамента.

Решение: отказаться от SEO-плагинов

SEO-плагин
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Когда я понял масштаб проблемы, первая мысль была: «Поставлю Yoast SEO или Rank Math, и всё наладится». Это логично. Тысячи сайтов используют эти плагины. Они генерируют sitemap, настраивают мета-теги, добавляют Schema.org, управляют robots.txt.

Но я остановился. Потому что вспомнил, зачем я вообще начал этот путь.

Я начал его, чтобы учиться. Чтобы понимать, как всё работает изнутри. Чтобы не зависеть от готовых решений, которые я не контролирую.

И я принял решение: никаких SEO-плагинов. Всё вручную.

Это было сложнее. Это заняло больше времени. Но это дало мне полный контроль. И, что важнее, понимание.

Борьба с кодом: как я настраивал SEO вручную

Борьба с кодом
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Я начал с создания дочерней темы для Twenty Twenty-Five. Это базовый шаг, который позволяет вносить изменения, не трогая родительскую тему. Я создал папку `twentytwentyfive-child`, файлы `style.css` и `functions.php`.

Дальше началась настоящая работа.

**Мета-теги и заголовки**

Я добавил в `functions.php` код, который:
— Позволяет задавать SEO-заголовок и SEO-описание для каждого поста через мета-боксы.
— Автоматически формирует заголовок страницы через фильтр `pre_get_document_title`.
— Выводит мета-тег description в `<head>`.

Это было непросто. Пришлось разбираться с nonce, санитизацией и экранированием. Но я справился.

Robots.txt

Я создал файл `robots.txt` в корне сайта. Он закрывает служебные разделы (`/wp-admin/`, `/wp-includes/`), но открывает рубрики (`/category/`) для индексации.

Это был важный шаг. Раньше я закрывал всё подряд, не понимая, что лишаю свой сайт трафика.

**Управление индексацией архивов**

Я добавил мета-тег `noindex, follow` для всех архивных страниц: рубрик, меток, дат, авторов. Это позволяет не плодить дубли и сконцентрировать вес на постах.

Open Graph и Twitter Cards

Я добавил код, который автоматически генерирует теги Open Graph и Twitter Cards для каждой страницы. Теперь, когда кто-то делится ссылкой на мою статью в Telegram или ВКонтакте, там отображается красивое превью с заголовком, описанием и картинкой.

Schema.org

Я добавил JSON-LD разметку для статей (тип BlogPosting) и для страницы блога (тип Blog). Это помогает поисковикам лучше понимать, что на странице — статья или архив.

Sitemap

Я создал XML-карту сайта. Правда, с ней были проблемы: сначала она была недоступна, потом все даты `lastmod` были одинаковыми. Но я исправил это.

Многократные итерации: как я проверял и перепроверял

Многократные итерации
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Я не могу сказать, что всё получилось с первого раза. Это было далеко не так.

Я обращался к DeepSeek за помощью. Мы вместе анализировали код, искали ошибки, проверяли результаты. И каждый раз DeepSeek находил что-то новое.

Сначала он сказал, что sitemap недоступен. Я исправил.

Потом — что Open Graph на странице блога дублирует главную. Я исправил.

Потом — что Schema.org на странице блога описывает конкретную статью, а не архив. Я исправил.

Потом — что на странице блога нет статических ссылок на статьи. И вот тут мы застряли.

Это была самая сложная проблема. Страница `/blog/` загружала список статей через JavaScript. В HTML-коде не было ни одной ссылки на статьи. Для поискового робота это выглядело так, будто на странице нет контента.

DeepSeek предложил решение: вывести список статей через `WP_Query` или `get_posts()` прямо в шаблоне. Я попробовал. И это сработало.

Что в итоге получилось

Что в итоге получилось
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Сегодня мой сайт — это полноценная SEO-система, написанная вручную, без единого плагина.

Что работает:
— ✅ Мета-теги, Open Graph, Twitter Cards — уникальны для каждой страницы.
— ✅ Schema.org разметка — для статей и архивов.
— ✅ Robots.txt — открывает рубрики, закрывает служебные разделы.
— ✅ Sitemap.xml — содержит список всех страниц с корректными датами.
— ✅ Canonical — для каждой страницы.
— ✅ Статические ссылки на статьи — в HTML-коде страницы блога.
— ✅ Управление индексацией архивов — через мета-теги.

Что ещё требует доработки:
— ⚠️ Sitemap иногда недоступен из-за особенностей хостинга. Работаю над этим.
— ⚠️ Индексация пока нулевая. Но это вопрос времени — сайт молодой, и поисковики не торопятся.
— ⚠️ Некоторые теги закрыты от индексации. Но это осознанное решение.

Что я понял за это время

1. Увлечение — это хорошо, но нельзя забывать о фундаменте.

Я так увлёкся программированием, что забыл: сайт — это не только код. Это ещё и контент, который должен быть найден. SEO — это фундамент, без которого всё остальное теряет смысл.

2. Плагины — это не всегда решение.

Я отказался от SEO-плагинов и не жалею. Да, было сложнее. Да, пришлось разбираться во многом. Но теперь я понимаю, как всё работает. И могу контролировать каждый аспект.

3. DeepSeek — это не просто помощник.

Он помог мне не только с кодом, но и с пониманием того, что я упустил. Иногда лучший совет — это не «как сделать», а «на что обратить внимание».

4. Многократные итерации — это нормально.

Я проверял сайт раз за разом. Каждый раз находились новые ошибки. Это не провал. Это процесс. Главное — не останавливаться.

5. Индексация — это не мгновенный процесс.

Мой сайт до сих пор не в индексе. Но это не значит, что я делаю что-то не так. Это значит, что поисковики ещё не обошли его. Я продолжаю работать, отправляю sitemap в Вебмастер и GSC, публикую контент. И верю, что результат придёт.

Что дальше?

Продолжение следует
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Я продолжу улучшать SEO своего сайта. В планах:
— Добиться стабильной доступности sitemap.
— Настроить разные `lastmod` для каждой страницы.
— Добавить внутреннюю перелинковку (блок «Читайте также»).
— Улучшить скорость загрузки.

А главное — продолжать публиковать контент. Потому что SEO = 20% техники + 80% контента. Техническая часть у меня почти идеальная. Теперь важно наполнять сайт полезными материалами.

Если ты тоже увлёкся программированием и забыл о SEO — остановись на минуту. Проверь свой сайт. Посмотри, индексируется ли он. Есть ли у тебя sitemap. Правильно ли настроен robots.txt.

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

Подписывайся на мой блог, чтобы следить за моим путём. Вместе мы строим полезные инструменты и учимся делать всё правильно.

Контакты

📧 Email: milyutinkv@gmail.com
🌐 Сайт: milyutin-codes.ru
💬 Группа ВК: vk.com/milyutin_codes

Задавай вопросы, делись идеями, тестируй плагины. Вместе мы строим полезные инструменты!

Продолжение следует. Сайт индексируется, плагины работают, SEO настроено вручную.

Константин Милютин
Автор блога «Милютин Код»

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *