Миграция с 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/. При миграции:
- Сохраните старые изображения на CDN или в
public/images/ - Для новых статей используйте PixInLink URL
- Замените 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 минут на редиректы и деплой.
Начните миграцию
- Экспортируйте контент из WordPress (Tools → Export)
- Клонируйте репозиторий GitHub CMS
- Конвертируйте XML в Markdown через
wordpress-export-to-markdown - Настройте frontmatter по контракту GitHub CMS
- Запустите
npm run buildи проверьте результат