Thumbnail image

Автоматизация SEO для моего блога на Hugo с помощью Codex и MCP

Mon, Nov 9, 2026 6-minute read

Table of Contents

Эта статья автоматически переведена с помощью ИИ. Читать оригинал на английском.

Это продолжение моих экспериментов с ИИ и тем, как он может помочь людям находить мой личный сайт через поиск и другие источники. На эту тему я уже написал пару статей:

В этой статье я хочу подробнее рассказать об SEO-оптимизации, которую недавно начал применять. В предыдущей статье об автоматизации блога я рассказывал, как использую ChatGPT для автоматического форматирования Hugo и Markdown. Но недавно я узнал, что OpenAI скоро собирается отказаться от персональных GPT, и это, очевидно, стало поводом перенести мой существующий GPT в отдельный плагин.

Так всё и началось: я скопировал свой промпт из веб-интерфейса и с помощью Codex превратил его в плагин с одним навыком. А затем понял, что могу автоматизировать ещё много всего.

Автоматический перевод

autotranslate-1

Прежде всего я понял, что мне не обязательно вручную переводить статьи с английского на русский, когда можно просто использовать большие языковые модели. Я ведь перевожу не философские тексты, а заметки о путешествиях, и ошибиться в них довольно сложно. Поэтому я быстро придумал навык, который изучает мой стиль по уже существующим статьям и переводит оставшиеся с английского на русский. Наконец-то в моём блоге появился паритет между русскими и английскими статьями!

Следующий вопрос: зачем ограничиваться только двумя языками? Почему бы не выбрать три или даже пять? Но какие именно? Выбрать пять самых распространённых языков в мире? Или обратиться к туристическому ведомству страны или региона, изучить статистику туристов и использовать её, чтобы перевести статью на подходящие языки?

До появления ИИ это звучало бы сложно, но теперь я могу просто написать навык! Так я и поступил. Например, интересным открытием стало то, что самая популярная серия статей в моём блоге посвящена маршруту по Чеджу, а большинство туристов на Чеджу — японцы, тайваньцы и китайцы, а не испанцы или французы. Разумеется, я добавил пометку о переводе с помощью ИИ и ссылку на оригинальную статью.

Obsidian

obsidian-1

Здесь есть важный нюанс. Изучать данные туристических ведомств, определять состав туристов и выбирать подходящие языки — сложная и трудоёмкая задача. Выполнять её каждый раз было бы непросто, поэтому очень полезно где-то хранить эти данные. База данных? Облачный бакет? Но у меня есть кое-что получше: моя личная база знаний (граф знаний), которую я тщательно веду в Obsidian. Думаю, вы уже догадались — ещё один навык!

Несколько слов в поддержку Obsidian (обратите внимание на домен их сайта!). Всего за четыре доллара в месяц вы получаете синхронизацию между устройствами, историю версий, 1 ГБ хранилища и прекрасную поддержку графа знаний, построенного из ваших заметок в Markdown! В итоге Obsidian стал для меня естественным выбором для постоянного хранения данных. Также очень советую вам попробовать этот замечательный инструмент.

Эффективность сайта и MCP

analysis-1

Следующий набор решений касался инструментов для оценки эффективности сайта. Я выбрал:

  • Ahrefs. Мне нравится простота сайта для общих SEO-задач: анализа обратных ссылок, исследования ключевых слов и так далее.
  • Google Search Console и Google Analytics. Альфа и омега отслеживания поведения пользователей и конверсий сайта.
  • Microsoft Clarity. Он позволяет быстро и бесплатно оценить, как конечные пользователи взаимодействуют с сайтом (ну, почти бесплатно!).

Эти источники данных бесценны для всех, кто пытается заниматься SEO-оптимизацией, и, конечно, их стоит использовать при принятии важных решений. Но как сделать так, чтобы мои ИИ-агенты знали об этой информации? Вы уже знаете ответ — MCP! Настроить соответствующие MCP-серверы довольно просто.

Настройка Google Analytics и Search Console

Чтобы подключить Google Analytics и Search Console к Codex, я использовал проект Google Cloud и авторизовал свой аккаунт Google. Вот как я всё настроил.

1. Создайте проект Google Cloud

Откройте Google Cloud Console и создайте проект или выберите существующий. Запишите его идентификатор проекта: он понадобится при регистрации MCP-серверов.

Аккаунт Google, который вы авторизуете, должен иметь доступ к нужному ресурсу Google Analytics и сайту в Search Console.

2. Включите API

В выбранном проекте откройте APIs & Services → Library и включите:

  • Google Analytics Data API
  • Google Analytics Admin API
  • Google Search Console API

3. Настройте экран согласия OAuth

Откройте Google Auth Platform в Cloud Console и настройте экран согласия. Для личного аккаунта Google выберите аудиторию External и оставьте приложение в режиме Testing.

В разделе Audience → Test users добавьте аккаунт Google, который будете использовать для авторизации. Сначала я пропустил этот шаг и получил ошибку Error 403: access_denied.

4. Создайте OAuth-клиент для настольного приложения

В разделе Google Auth Platform → Clients создайте клиент и выберите тип приложения Desktop app. Скачайте JSON-файл и храните его в закрытом месте за пределами репозитория сайта.

5. Установите инструменты командной строки

В macOS с Homebrew установите Google Cloud CLI и uv:

brew install --cask gcloud-cli
brew install uv

Если команды доступны не сразу, откройте новое окно терминала.

6. Авторизуйте аккаунт

Выполните следующую команду, заменив PATH_TO_OAUTH_CLIENT_JSON путём к скачанному файлу клиента:

gcloud auth application-default login --client-id-file="PATH_TO_OAUTH_CLIENT_JSON" --scopes="https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/webmasters.readonly,https://www.googleapis.com/auth/cloud-platform"

Войдите в аккаунт Google, который вы добавили в тестовые пользователи, и подтвердите запрашиваемый доступ. Указывайте области доступа в команде одной строкой: я случайно вставил перенос строки в область доступа Search Console и получил ошибку invalid_scope.

Первые две области доступа предоставляют доступ к Analytics и Search Console только для чтения. Область доступа cloud-platform шире, поэтому проверьте экран согласия, прежде чем подтверждать запрос. Эта команда также заменит существующие локальные Application Default Credentials, созданные той же командой gcloud.

7. Зарегистрируйте MCP-серверы в Codex

Замените YOUR_PROJECT_ID идентификатором своего проекта Google Cloud:

codex mcp add google-analytics \
  --env GOOGLE_CLOUD_PROJECT=YOUR_PROJECT_ID \
  -- uvx --from analytics-mcp google-analytics-mcp
codex mcp add google-search-console \
  --env GOOGLE_CLOUD_PROJECT=YOUR_PROJECT_ID \
  -- uvx --from gsc-readonly-mcp gsc-mcp

Сервер Analytics опубликован Google. Сервер Search Console поддерживается сообществом и предоставляет доступ только для чтения.

8. Проверьте серверы

Выведите список зарегистрированных серверов:

codex mcp list

Затем начните новую сессию Codex и попросите его перечислить ресурсы Analytics и сайты Search Console, доступные вашему аккаунту. Если приложение OAuth остаётся в режиме тестирования, со временем может понадобиться повторная авторизация.

И всё готово!

Ahrefs тоже очень легко настроить!

Когда мне удалось настроить MCP-серверы и составить структурированные запросы к перечисленным инструментам, пришло время автоматизировать процесс. Ещё один навык! Честно говоря, я создал несколько: навык для анализа данных Google Analytics и поисковых результатов, навык для планирования ключевых слов и навык для проверки и улучшения существующего контента.

Что дальше?

Сейчас моя цель — увеличить аудиторию примерно со 150 посетителей в месяц до 500. Давайте вернёмся к этому через год!

Я планирую попробовать набор агентов, которые помогут рассказать о моём сайте: цена эксперимента теперь так низка! Также я планирую постоянно улучшать сайт и исправлять проблемы, выявленные Google Search Console, Google Analytics или поиском в Ahrefs. Ещё я думаю изучить системы управления задачами для агентов или даже создать свою, если подходящей не существует.

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

Оставайтесь на связи!