Migratik
Migratik packs up an entire WordPress site — every article, page, service, and custom post type — into one clean JSON file, ready to migrate to a new stack (headless, Next.js, or anywhere) while keeping everything that matters for SEO.
It was built to migrate a live WPBakery site to a Next.js + Supabase stack, then generalized into a reusable tool. It is read-only: it only reads your content and hands you a file. Nothing on your site is changed.
What it captures
For every published item, Migratik records:
- Rendered
content_html(builder shortcodes and blocks executed) plus the originalcontent_raw. - Title,
document_title(the theme-rendered<title>), slug, and permalink — for building 301 redirects. - Excerpt, publish/modified dates, menu order, and parent.
- Featured image (URL, alt, dimensions) and every in-content image (src + alt).
- Image custom fields (ACF/JetEngine/Pods) resolved from attachment IDs to real media objects (URL, alt, dimensions) in a
custom_fields_mediamap. - Internal and external links with anchor text, parsed from the rendered HTML.
- Taxonomies (categories, tags, and custom taxonomies) as name + slug.
- SEO meta from Yoast, Rank Math, All in One SEO, or theme fields.
- Approved comments per item (author, date, text, threading) — commenter emails are never included.
- Navigation menus (structure, items, and theme locations) as a top-level
menuslist. - Optionally, unpublished content (drafts, pending, private, scheduled) — each item carries its
status.
Builder-agnostic
Each item is rendered with the right method and tagged with the path used, so empty renders are detectable:
- Elementor via the Elementor frontend renderer.
- Beaver Builder via
FLBuilder::render_content_by_id(). - Bricks via the Bricks frontend renderer (
\Bricks\Frontend::render_data()). - Oxygen via Oxygen’s own render pipeline (JSON elements on 4.0+, classic shortcodes otherwise).
- Gutenberg, Classic editor, WPBakery, Divi, and plain HTML via the standard
the_contentpipeline.
Configurable
Under Migratik in the admin menu you can choose which content types to export, toggle whether the raw post_content is included, and rotate the REST API key.
Automation (REST)
Two read-only endpoints back the export for automation:
GET /wp-json/migratik/v1/manifest— counts per content type.GET /wp-json/migratik/v1/all— the full export payload.
Both require a logged-in administrator or the Migratik REST key (?key=...). The one-click admin download uses a nonce and needs no key.
Migratik Pro (optional, upgrade from inside your dashboard): adds Markdown/MDX, WordPress WXR and CSV export formats, plus one-click media bundling with rewritten URLs.
