Автоматизация SEO для моего блога на Hugo с помощью Codex и MCP
Table of Contents
Эта статья автоматически переведена с помощью ИИ. Читать оригинал на английском.
Это продолжение моих экспериментов с ИИ и тем, как он может помочь людям находить мой личный сайт через поиск и другие источники. На эту тему я уже написал пару статей:
- Как создать и разместить статический сайт за одни выходные?
- Автоматизация блога о путешествиях: голос, ИИ и Hugo за один час
В этой статье я хочу подробнее рассказать об SEO-оптимизации, которую недавно начал применять. В предыдущей статье об автоматизации блога я рассказывал, как использую ChatGPT для автоматического форматирования Hugo и Markdown. Но недавно я узнал, что OpenAI скоро собирается отказаться от персональных GPT, и это, очевидно, стало поводом перенести мой существующий GPT в отдельный плагин.
Так всё и началось: я скопировал свой промпт из веб-интерфейса и с помощью Codex превратил его в плагин с одним навыком. А затем понял, что могу автоматизировать ещё много всего.
Автоматический перевод

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

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

Следующий набор решений касался инструментов для оценки эффективности сайта. Я выбрал:
- 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. Ещё я думаю изучить системы управления задачами для агентов или даже создать свою, если подходящей не существует.
Наконец, я собираюсь использовать различные инструменты для анализа производительности, чтобы оценить, насколько хорошо работает сайт и что можно улучшить, чтобы сделать его доступнее для конечных пользователей.
Оставайтесь на связи!