Skip to main content

Content inventory

Create a comprehensive inventory of your existing content before doing anything else:
  • Content types - Blog posts, pages, products, etc.
  • Fields per type - Text, images, dates, relationships
  • Field constraints - Required, max length, formats
  • Relationships - How content types relate to each other
  • Taxonomies - Categories, tags, hierarchies
  • Media assets - Images, documents, videos
  • Metadata - SEO fields, publication info, authors

Inventory template

Content TypeField NameField TypeRequiredNotes
Blog PosttitleTextYesMax 100 chars
Blog PostbodyHTMLYesRich content
Blog PostexcerptTextNoMax 300 chars
Blog Postfeatured_imageImageNo1200x630 recommended
Blog PostauthorReferenceYesLinks to Author
Blog PostcategoriesReferenceNoMany-to-many
Blog Postpublished_dateDateTimeYes
AuthornameTextYes
AuthorbioTextNo
AuthoravatarImageNo

Export tools by platform

WordPress export

# Using WP-CLI
wp export --dir=/path/to/exports

# Or use Dashboard: Tools → Export
WordPress exports as XML, which can be parsed and transformed.
If you’re migrating WordPress blog posts, ButterCMS can import them for you automatically — just export your content and email the file to support@buttercms.com. Note that this applies to blog posts only, not pages or custom post types. See WordPress to ButterCMS for details.

Contentful export

# Install Contentful CLI
npm install -g contentful-cli

# Export space
contentful space export \
  --space-id YOUR_SPACE_ID \
  --export-dir ./export

Drupal export

# Using Drush
drush content-export

# Or use Views Data Export module

Custom database export

-- Export to JSON-compatible format
SELECT
  JSON_OBJECT(
    'title', title,
    'slug', slug,
    'body', body,
    'published_at', published_at
  ) AS content
FROM posts
WHERE status = 'published';