Миграция с WordPress на GitHub CMS: пошаговое руководство

Миграция с WordPress на GitHub CMS даёт три главных преимущества: бесплатный хостинг (только VPS), скорость загрузки (статический HTML), и безопасность (нет базы данных для взлома). Процесс миграции состоит из экспорта, конвертации и настройки редиректов.

План миграции

Шаг Действие Инструмент
1 Экспорт контента из WordPress WordPress Export tool (XML)
2 Конвертация XML → Markdown wordpress-export-to-markdown (npm)
3 Обработка изображений PixInLink для новых, CDN для старых
4 Создание frontmatter Скрипт или ручная правка
5 Настройка редиректов nginx rewrite rules
6 Сохранение SEO 301 редиректы + sitemap
7 Деплой GitHub Actions → rsync → VPS

Экспорт из WordPress

WordPress позволяет экспортировать весь контент в XML через Tools → Export → All content. Полученный XML-файл содержит посты, страницы, категории, теги и комментарии.

Конвертация в Markdown

Используйте утилиту wordpress-export-to-markdown:

npx wordpress-export-to-markdown --input=export.xml --output=./content/blog/

Утилита создаст отдельный .md файл для каждого поста с YAML frontmatter.

Обработка изображений

WordPress хранит изображения в wp-content/uploads/. При миграции:

  1. Сохраните старые изображения на CDN или в public/images/
  2. Для новых статей используйте PixInLink URL
  3. Замените URL в Markdown-файлах с wp-content/uploads/ на новые пути

Настройка редиректов

WordPress URL обычно имеют формат /?p=123 или /%postname%/. Настройте 301 редиректы в nginx:

location / {
    try_files $uri $uri/ $uri.html =404;
}

# Редирект с WordPress RSS на новый RSS
location = /feed/ {
    return 301 /rss.xml;
}

FAQ

Q: Что делать с комментариями из WordPress? A: GitHub CMS не поддерживает комментарии из коробки. Варианты: отключить комментарии, использовать Disqus (внешний сервис), или перенести в GitHub Discussions.

Q: Как сохранить позиции в поиске после миграции? A: Настройте 301 редиректы со старых URL на новые. Обновите sitemap. Отправьте новый sitemap в Google Search Console.

Q: Сколько времени занимает миграция? A: Для сайта с 100 статьями — 2-3 часа: 30 минут на экспорт/конвертацию, 1 час на проверку frontmatter, 30 минут на редиректы и деплой.

Начните миграцию

  1. Экспортируйте контент из WordPress (Tools → Export)
  2. Клонируйте репозиторий GitHub CMS
  3. Конвертируйте XML в Markdown через wordpress-export-to-markdown
  4. Настройте frontmatter по контракту GitHub CMS
  5. Запустите npm run build и проверьте результат

Миграция с WordPress на GitHub CMS даёт три главных преимущества: бесплатный хостинг (только VPS), скорость загрузки (статический HTML), и безопасность (нет базы данных для взлома). Процесс миграции состоит из экспорта, конвертации и настройки редиректов.

План миграции

Шаг Действие Инструмент
1 Экспорт контента из WordPress WordPress Export tool (XML)
2 Конвертация XML → Markdown wordpress-export-to-markdown (npm)
3 Обработка изображений PixInLink для новых, CDN для старых
4 Создание frontmatter Скрипт или ручная правка
5 Настройка редиректов nginx rewrite rules
6 Сохранение SEO 301 редиректы + sitemap
7 Деплой GitHub Actions → rsync → VPS

Экспорт из WordPress

WordPress позволяет экспортировать весь контент в XML через Tools → Export → All content. Полученный XML-файл содержит посты, страницы, категории, теги и комментарии.

Конвертация в Markdown

Используйте утилиту wordpress-export-to-markdown:

npx wordpress-export-to-markdown --input=export.xml --output=./content/blog/

Утилита создаст отдельный .md файл для каждого поста с YAML frontmatter.

Обработка изображений

WordPress хранит изображения в wp-content/uploads/. При миграции:

  1. Сохраните старые изображения на CDN или в public/images/
  2. Для новых статей используйте PixInLink URL
  3. Замените URL в Markdown-файлах с wp-content/uploads/ на новые пути

Настройка редиректов

WordPress URL обычно имеют формат /?p=123 или /%postname%/. Настройте 301 редиректы в nginx:

location / {
    try_files $uri $uri/ $uri.html =404;
}

# Редирект с WordPress RSS на новый RSS
location = /feed/ {
    return 301 /rss.xml;
}

FAQ

Начните миграцию

  1. Экспортируйте контент из WordPress (Tools → Export)
  2. Клонируйте репозиторий GitHub CMS
  3. Конвертируйте XML в Markdown через wordpress-export-to-markdown
  4. Настройте frontmatter по контракту GitHub CMS
  5. Запустите npm run build и проверьте результат