Последние месяцы я жил в режиме непрерывного кодинга. Плагин для ВК, Python-скрипты, ревью в WordPress.org — и вот однажды я заглянул в Яндекс. Вебмастер и понял, что моего сайта там нет. Совсем.
milyutin-codes.ru не индексировался. Ни одной страницы в поиске. Блог, в который я вложил месяцы работы, был невидим.
И это стало отправной точкой для новой эпопеи. Я решил отказаться от SEO-плагинов и написать всё вручную. Если уж я пишу код, то пусть он будет полностью моим.
Как я увлёкся и что упустил
Всё началось с того, что я погрузился в разработку. Каждый день я что-то писал: то плагин для ВК, то Python-скрипт для автопостинга, то пытался починить очередной баг. Мне нравилось создавать. Мне нравилось решать задачи. Мне нравилось чувствовать себя разработчиком.
Но в этой гонке я перестал думать о том, для чего всё это делается. Я создавал статьи, публиковал их, но не задумывался: а увидят ли их люди? Найдут ли их поисковые системы? Будут ли они приносить трафик?
Ответ был неутешительным. Нет. Не найдут. Не будут.
Я запустил поиск по своему сайту в Яндексе и Google. Ноль результатов. Сайт не индексировался. Мой блог, в который я вложил столько сил, был невидим для поисковиков.

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

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

Я начал с создания дочерней темы для 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` были одинаковыми. Но я исправил это.
Многократные итерации: как я проверял и перепроверял

Я не могу сказать, что всё получилось с первого раза. Это было далеко не так.
Я обращался к DeepSeek за помощью. Мы вместе анализировали код, искали ошибки, проверяли результаты. И каждый раз DeepSeek находил что-то новое.
Сначала он сказал, что sitemap недоступен. Я исправил.
Потом — что Open Graph на странице блога дублирует главную. Я исправил.
Потом — что Schema.org на странице блога описывает конкретную статью, а не архив. Я исправил.
Потом — что на странице блога нет статических ссылок на статьи. И вот тут мы застряли.
Это была самая сложная проблема. Страница `/blog/` загружала список статей через JavaScript. В HTML-коде не было ни одной ссылки на статьи. Для поискового робота это выглядело так, будто на странице нет контента.
DeepSeek предложил решение: вывести список статей через `WP_Query` или `get_posts()` прямо в шаблоне. Я попробовал. И это сработало.
Что в итоге получилось

Сегодня мой сайт — это полноценная SEO-система, написанная вручную, без единого плагина.
Что работает:
— ✅ Мета-теги, Open Graph, Twitter Cards — уникальны для каждой страницы.
— ✅ Schema.org разметка — для статей и архивов.
— ✅ Robots.txt — открывает рубрики, закрывает служебные разделы.
— ✅ Sitemap.xml — содержит список всех страниц с корректными датами.
— ✅ Canonical — для каждой страницы.
— ✅ Статические ссылки на статьи — в HTML-коде страницы блога.
— ✅ Управление индексацией архивов — через мета-теги.
Что ещё требует доработки:
— ⚠️ Sitemap иногда недоступен из-за особенностей хостинга. Работаю над этим.
— ⚠️ Индексация пока нулевая. Но это вопрос времени — сайт молодой, и поисковики не торопятся.
— ⚠️ Некоторые теги закрыты от индексации. Но это осознанное решение.
Что я понял за это время
1. Увлечение — это хорошо, но нельзя забывать о фундаменте.
Я так увлёкся программированием, что забыл: сайт — это не только код. Это ещё и контент, который должен быть найден. SEO — это фундамент, без которого всё остальное теряет смысл.
2. Плагины — это не всегда решение.
Я отказался от SEO-плагинов и не жалею. Да, было сложнее. Да, пришлось разбираться во многом. Но теперь я понимаю, как всё работает. И могу контролировать каждый аспект.
3. DeepSeek — это не просто помощник.
Он помог мне не только с кодом, но и с пониманием того, что я упустил. Иногда лучший совет — это не «как сделать», а «на что обратить внимание».
4. Многократные итерации — это нормально.
Я проверял сайт раз за разом. Каждый раз находились новые ошибки. Это не провал. Это процесс. Главное — не останавливаться.
5. Индексация — это не мгновенный процесс.
Мой сайт до сих пор не в индексе. Но это не значит, что я делаю что-то не так. Это значит, что поисковики ещё не обошли его. Я продолжаю работать, отправляю sitemap в Вебмастер и GSC, публикую контент. И верю, что результат придёт.
Что дальше?

Я продолжу улучшать SEO своего сайта. В планах:
— Добиться стабильной доступности sitemap.
— Настроить разные `lastmod` для каждой страницы.
— Добавить внутреннюю перелинковку (блок «Читайте также»).
— Улучшить скорость загрузки.
А главное — продолжать публиковать контент. Потому что SEO = 20% техники + 80% контента. Техническая часть у меня почти идеальная. Теперь важно наполнять сайт полезными материалами.
Если ты тоже увлёкся программированием и забыл о SEO — остановись на минуту. Проверь свой сайт. Посмотри, индексируется ли он. Есть ли у тебя sitemap. Правильно ли настроен robots.txt.
Это не так сложно, как кажется. Да, придётся разобраться. Да, будет не с первого раза. Но это стоит того. Потому что сайт, который не находят люди, — это сайт, который не существует.
Подписывайся на мой блог, чтобы следить за моим путём. Вместе мы строим полезные инструменты и учимся делать всё правильно.
Контакты
📧 Email: milyutinkv@gmail.com
🌐 Сайт: milyutin-codes.ru
💬 Группа ВК: vk.com/milyutin_codes
Задавай вопросы, делись идеями, тестируй плагины. Вместе мы строим полезные инструменты!
Продолжение следует. Сайт индексируется, плагины работают, SEO настроено вручную.
Константин Милютин
Автор блога «Милютин Код»

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