Оновлення вмісту сайту
Оновлення вмісту — це рутинне завдання, яке стає проблемою без правильного процесу. Прямі правки в production без тестування — це джерело регресій. Оновлення через редактор CMS — правильний підхід.
Структура процесу оновлення вмісту
Через CMS (бажаний варіант): Редактор змінює вміст в Admin Panel → публікує → webhook вирушає ISR-регенерацію → сторінка оновлюється без розгортання.
Через Git (для структурних змін): Зміна в гілці → перегляд → злиття → CI/CD → розгортання.
Типи оновлень і складність
| Тип оновлення | Виконавець | Час |
|---|---|---|
| Текст сторінки, заголовки | Менеджер контенту в CMS | 5–30 хв |
| Заміна зображень | Менеджер контенту | 10–20 хв |
| Додавання нової сторінки | Менеджер контенту | 30–60 хв |
| Зміна структури меню | Розробник або CMS | 30 хв – 2 години |
| Зміна розділу цільової сторінки | Розробник | 2–4 години |
| Новий блок/компонент | Розробник | 1–3 дні |
Оновлення статичного вмісту (файли Markdown)
Для сайтів на Docusaurus/VitePress/Nextra редагуйте файли безпосередньо через GitHub UI або Netlify CMS:
# Локально
git pull origin main
# Редагуємо файл
vim content/blog/2024-new-post.md
git add content/blog/2024-new-post.md
git commit -m "content: add blog post about X"
git push origin main
# CI/CD автоматично публікує
Netlify/Decap CMS для сайтів на основі Git
# public/admin/config.yml
backend:
name: github
repo: my-org/my-site
branch: main
media_folder: public/images
public_folder: /images
collections:
- name: blog
label: Blog Posts
folder: content/blog
create: true
fields:
- { name: title, label: Title, widget: string }
- { name: date, label: Date, widget: datetime }
- { name: body, label: Body, widget: markdown }
Масові оновлення через скрипт
// Оновлення цін в e-commerce через API CMS
async function bulkUpdatePrices(csvPath: string) {
const prices = await readCsv(csvPath); // { sku, newPrice }[]
for (const { sku, newPrice } of prices) {
const entry = await cmsClient.entries.getBy('sku', sku);
if (!entry) {
console.warn(`Not found: ${sku}`);
continue;
}
await cmsClient.entries.update(entry.id, { price: newPrice });
console.log(`Updated ${sku}: ${newPrice}`);
}
}
Розклад обслуговування вмісту
Для регулярно оновлюваних сайтів впровадьте щотижневі або щомісячні спринти вмісту: аудит застарілих сторінок, оновлення дат, перевірка розірваних посилань.
# Перевірка розірваних посилань
npx broken-link-checker https://mysite.com --recursive --exclude-external







