Website Content Updates
Content updates are a routine task that becomes problematic without the right process. Direct production edits without testing are a source of regressions. Updating through a CMS editor is the correct approach.
Content Update Process Structure
Via CMS (preferred): Editor changes content in Admin Panel → publishes → webhook triggers ISR regeneration → page updates without deployment.
Via Git (for structural changes): Change in branch → review → merge → CI/CD → deploy.
Update Types and Complexity
| Update Type | Executor | Time |
|---|---|---|
| Page text, headings | Content manager in CMS | 5–30 min |
| Replace images | Content manager | 10–20 min |
| Add new page | Content manager | 30–60 min |
| Change menu structure | Developer or CMS | 30 min – 2 hours |
| Change landing section | Developer | 2–4 hours |
| New block/component | Developer | 1–3 days |
Static Content Updates (Markdown files)
For Docusaurus/VitePress/Nextra sites, edit files directly via GitHub UI or Netlify CMS:
# Locally
git pull origin main
# Edit the file
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 automatically publishes
Netlify/Decap CMS for Git-based Sites
# 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 }
Bulk Updates via Script
// Update prices in e-commerce via CMS API
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}`);
}
}
Content Maintenance Schedule
For regularly updated sites, implement weekly or monthly content sprints: audit outdated pages, update dates, verify broken links.
# Check for broken links
npx broken-link-checker https://mysite.com --recursive --exclude-external







