Миграция с 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`: ```bash 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: ```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` и проверьте результат