Genesis migration guide
Genesis to Next.js: Moving a Framework Site and Every Post It Carries
Somewhere in your child theme's functions.php is a line that moved the menu above the header. Someone wrote it years ago, and nobody has read it since. Moving a Genesis site to Next.js starts by reading lines like that one, because that is where a Genesis site keeps its personality.
October 8, 2026 · 11 min read
The short answer
To migrate a Genesis Framework site to Next.js, export posts and pages, read the child theme's functions.php for every genesis_ hook and filter, list widget areas used as page sections, map Genesis Blocks and Genesis Pro content to components, carry over In-Post SEO titles and descriptions, then keep or redirect every URL, including old category and date archives.
On this page
- A Genesis site is three things wearing one name
- Reading functions.php like a ship's log
- Genesis Blocks, Genesis Pro and the Atomic Blocks fossils
- Home pages built out of widgets
- Nine steps from child theme to launch day
- Ten years of posts and the archive pages Google already knows
- What decides the size of a Genesis migration
- Who should leave the framework where it is
- Editing a former Genesis site without opening a file
A Genesis site is three things wearing one name
Owners say "my Genesis site" the way people say "my car", meaning the whole machine. A migration has to take it apart. The framework is the engine: StudioPress's parent theme, free to download, last released as 3.6.2 on March 31, 2026. The child theme is the body: the design, the stylesheet and a functions.php that rearranges the framework through hooks. The content is the cargo: posts, pages, images and the settings that tell Genesis how to show them.
Only the cargo moves. The engine and the body are replaced by one Next.js codebase. That sounds drastic until you see where each piece of a typical Genesis install actually lives, and how little of it is hard to carry.
| Where it lives | What happens to it | |
|---|---|---|
| Posts and pages | The WordPress database, as HTML or block markup | Exported and mapped to clean fields; the easy part |
| Child theme hooks | functions.php, as add_action and remove_action calls on genesis_ hooks | Read one by one; each becomes a component or is dropped |
| Genesis Simple Hooks | A settings screen holding HTML, shortcodes and PHP | Easy to miss, since it sits in no theme file |
| Widget-built home page | Widget areas the child theme registered, filled in Appearance > Widgets | Rebuilt as page sections with editable fields |
| Genesis Blocks and Genesis Pro | Blocks inside post content, named genesis-blocks/gb-cta and so on | Each block type mapped to a React component |
| In-Post SEO | Genesis's own title, description and indexing fields on each post | Exported and written into the new page metadata |
| Layout settings | A per-post choice such as content-sidebar or full width | Turned into a small set of page templates |
Genesis itself is tidy PHP, and tidy PHP is easy to read. The tricky parts are the ones added later by plugins and by whoever edited functions.php in a hurry.
Reading functions.php like a ship's log
Genesis prints a page through a chain of action hooks: genesis_before_header, genesis_after_header, genesis_entry_content, genesis_after_entry, genesis_footer and dozens more. A child theme customizes the site by unhooking the framework's default output and hooking in its own. So the child theme's functions.php is not a settings file. It is a record of every design decision anyone made, written as code.
- Moved navigation. A remove_action on genesis_do_nav followed by an add_action somewhere else. In Next.js this is simply where the menu sits in the layout component.
- A newsletter box after every post. Usually a widget area hooked to genesis_after_entry, often holding a Genesis eNews Extended form. It becomes one signup component, wired straight to your mail service.
- Rewritten post info and footer credits. Filters such as genesis_post_info and genesis_footer_creds_text. These turn into a line of template code and a footer field you can edit.
- Custom image sizes. add_image_size calls that cut thumbnails for a grid. next/image makes sizes on demand, so these disappear.
- Custom loops on the home page. A front-page.php that queries featured posts. The new site does the same with a query written once and tested in the build.
Check the Genesis Simple Hooks screen as well, if the plugin is installed. It lets anyone paste HTML, shortcodes and PHP into the framework's 50+ hooks from the dashboard, which means some of your site's behavior may live in a database setting rather than a file. Tracking scripts and ad code turn up there often.
Genesis Blocks, Genesis Pro and the Atomic Blocks fossils
Newer Genesis sites carry content made with blocks rather than hooks. Genesis Blocks, the free plugin, adds buttons, calls to action, post grids, pricing tables, testimonials, accordions, notices and a Section and Layout block for whole page sections. Genesis Pro, $360 a year direct or $30 a month as a WP Engine add-on as of October 2026, adds more blocks, sections, full-page layouts and the premium child themes.
Each block is stored in the post as a named comment with its settings, for example genesis-blocks/gb-cta. That is good news for a migration: the content is structured, so a script can find every call to action on the site, read its heading, text and button link, and hand them to a matching React component. We count how many block types you actually use before quoting, because twenty pages using four block types is far less work than twenty pages using fourteen.
Two older layers deserve a look. Sites that began before the rename may still hold Atomic Blocks markup. Genesis Blocks added a migration path, and one of its changelog entries mentions cases where that migration did not finish, so we search the database for both names. Genesis Custom Blocks is the other: blocks a developer built for your site, each with its own fields and a template. Those are rebuilt from their field list and template, one at a time.
Once the site is live on Next.js, none of these plugins is needed. The license stops mattering the day the new site launches, which is worth a line in the budget if you are paying for Genesis Pro.
Home pages built out of widgets
A great many StudioPress-style child themes build the front page from widget areas. The child theme registers them with genesis_register_sidebar, names them front-page-1, front-page-2 and onward, and the owner fills each with a text widget, an image, a Genesis Featured Posts widget or a signup form. It was a clever way to give owners a configurable home page before the block editor existed.
For a migration it means your home page is not a page. Export your pages and the home page arrives empty, because its words live in widget settings stored in the options table. We pull those settings out, list each widget with its title, text and links, and rebuild the home page as named sections: a hero, a services strip, recent posts, a signup box. In Athena CMS each section gets plain fields, so the next edit happens in a form rather than in Appearance > Widgets.
Sidebars get the same treatment. An author bio, a category list and an ad become one sidebar component with editable parts. Widgets nobody has looked at in years can finally go.
Nine steps from child theme to launch day
- 1
Back up and freeze
Take a full copy of the database, uploads folder, child theme and plugins. Agree a date after which new posts are logged so nothing written during the build goes missing.
- 2
Crawl every URL
Crawl the live site and pull Search Console's top pages. Record each URL with its title, description and status code, including category, tag, author and date archives.
- 3
Read the child theme
Go through functions.php, front-page.php and any template files. List every hook, filter, widget area and custom image size, and note what each one does on screen.
- 4
Check the database for hidden code
Look at Genesis Simple Hooks, Genesis theme settings, header and footer script fields and widget text for tracking codes, ad tags and shortcodes.
- 5
Export content and SEO data
Export posts, pages, categories, tags and authors. Pull In-Post SEO titles and descriptions, or the SEO plugin's fields if one replaced Genesis SEO.
- 6
Map blocks and shortcodes
Count every Genesis Blocks type, Atomic Blocks leftover and shortcode in post content. Write a converter for each so the text and links survive and the wrappers do not.
- 7
Build the design in Next.js
Recreate the child theme's look in code: fonts through next/font, images through next/image, layouts as components. Compare page by page against the live site on a private preview address.
- 8
Write the redirect map
Keep every URL that can be kept. Send each one that changes to its new home with a permanent redirect written into the Next.js config.
- 9
Switch and watch
Move DNS, confirm redirects, submit the new sitemap and watch Search Console for crawl errors in the weeks after launch.
The third option
Athena CMS, with AI agents on staff.
Not a theme and not a blank Next.js repo. The content system we put behind every custom site: plain fields, a real preview, every version kept, and AI agents that handle the chores a plugin only nags you about.
- PicassoImages
- ApolloSite analysis
- AresCompetitor watch
- PrometheusContent holes
- AtlasPage depth and structure
- DelphiAI search visibility
and 12 more agents. Two come with Athena; the rest are monthly add-ons.

Ten years of posts and the archive pages Google already knows
Genesis sites are often old blogs, and old blogs have long tails. A recipe from 2014 may still bring in more visits than the home page. That is why the URL plan matters more here than the design. The safest rule is to keep your permalink structure exactly as it is, date folders and all, so most posts need no redirect at all. Our guide to WordPress URL structure in Next.js explains how routes reproduce any WordPress pattern.
Archives need a decision each. Category pages usually earn their keep and stay. Date archives, author archives for a single author, and thin tag pages are often better redirected or left out, and Genesis's own indexing settings may already have kept some of them out of search results. We check which ones Google has indexed before we decide. Anything that changes gets a line in the redirect map, and the full method is in migrating without losing SEO.
Images get the same care. A decade of uploads usually holds several cropped copies of every photo, a few files that are far larger than any screen needs, and older images with no description at all. We move the originals, keep their URLs or redirect them, and let next/image produce the sizes. The details are in moving WordPress images to Next.js, and the blog-specific questions, from comments to pagination to RSS, are covered in moving a WordPress blog to Next.js.
On an old Genesis blog, the archive is the asset and the design is the wrapping paper.
What decides the size of a Genesis migration
There is no fixed price for leaving Genesis, because no two child themes were customized the same way. We quote a fixed price after a free audit, and these are the things that move the number:
- How much functions.php does. Fifty lines of hooks is an afternoon of reading. Five hundred lines with custom loops and admin screens is a project.
- How many block types and shortcodes the posts use. Each one needs a converter and a component, written once.
- Whether the home page is built from widgets. Usually quick to rebuild, but it has to be extracted by hand from settings.
- The number of posts and their condition. A few hundred clean posts move in bulk. Thousands of posts with mixed formats need more checking.
- A shop. Stores that run WooCommerce through Genesis Connect for WooCommerce bring products, orders and customers, which have their own WooCommerce migration path.
The full breakdown is in what a WordPress to Next.js migration costs and how long it takes. If the budget is the obstacle, financing for WordPress projects spreads it out. Before any of that, our Genesis vs Next.js comparison can tell you whether moving is the right call at all.
Who should leave the framework where it is
Genesis still works. If your site is a steady blog or brochure, your child theme runs clean on current PHP, and you host on WP Engine, which includes the framework and premium StudioPress themes with its plans, there may be nothing to fix. Releases since 3.4.0 in 2022 have been patches rather than new features, but patches are what a stable site needs. A Genesis speed tune-up or help from our theme customization team may be all the money you need to spend.
Move when the site has to do more than it does: win leads, publish pages at scale, run a membership area, or simply stop breaking. If the layout has already shifted after an update, see Genesis layout broken first so you know whether you are fixing one bug or living with a pattern.
Editing a former Genesis site without opening a file
Most Genesis owners never wanted to edit functions.php. They wanted to change a headline and get back to work. On the new site they do exactly that in Athena CMS: posts and pages are plain fields with a real preview, the home page sections are forms, and every version is kept, so a bad edit on Tuesday is undone on Wednesday. Structural changes, like a new kind of page, go to a developer, which is also why they do not break the rest of the site.
The agents suit an old blog especially well. Ariadne finds and inserts internal links between ten years of posts that never pointed at each other. Atlas flags orphan and thin pages. Argus watches for links that have rotted since 2016. Picasso makes sure every image is described and sized. Calliope drafts new articles for your approval. The move itself is described at switching from WordPress, and the build is our WordPress to Next.js development service. More theme-by-theme guides live under WordPress to Next.js.
Questions people ask before they call
The look can, the code cannot. A designer recreates the child theme's layout, colors, fonts and spacing in the new build, often tidying what years of edits left uneven. The PHP templates and hooks are replaced by React components, which is the point: the new site no longer depends on a framework whose recent releases are maintenance patches.
We export them. Genesis keeps its own per-post SEO fields when no SEO plugin is active, and switches them off when one like Yoast takes over, so we check which set is live on each page. The winning title and description are written into the new page metadata, and we compare them against a crawl of the old site before launch.
Keep it active until launch, because the old site still has to render while we build and compare. After the new site is live, Genesis Pro, Genesis Blocks and the framework are no longer used. StudioPress refunds Genesis Pro within 60 days of purchase, so a recent renewal may be worth checking.
Fix first if the site earns money today. An old child theme usually fails on a handful of lines, and repairing them buys time to plan a move calmly. Our theme repair team handles that. If the same site keeps breaking, the repair bill becomes the argument for migrating.
Post count matters less than post variety. A clean blog with consistent formatting moves in bulk once the converters are written. Time goes into unusual shortcodes, widget-built pages, custom hooks and checking redirects for old archives. We give a timeline with the fixed quote after the free audit. See the migration timeline guide for the usual stages.
Keep reading
- Framework review, 2026Genesis Framework Review (2026): Is It Still Worth Building On?Genesis Framework review for 2026: who owns it, what Genesis Pro costs, how it handles speed, WooCommerce and builders, and who should still build on it.
- For Genesis site ownersGenesis Framework vs Next.js: A Steady Old Foundation, Weighed Against a RebuildGenesis Framework vs Next.js for small business sites: what patch-only releases, Genesis Pro at $360 a year and aging child themes mean for you.
- Framework successionGenesis vs GeneratePress: The Old Guard and Its Successor, for Bloggers and DevelopersGenesis vs GeneratePress for bloggers and developers: hooks, release history, speed, pricing as of October 2026, and which framework to trust with a new site.
- Genesis menu triageGenesis Mobile Menu Not Working: Find Out Which Script Owns the ButtonGenesis mobile menu not working? Check the framework's responsive menu config, old jQuery child theme scripts, breakpoints and optimizers, in that order.
- A redesign, not a copyRebuild Your WordPress Site in Next.js: A Fresh Design That Keeps Its RankingsRebuild your WordPress site in Next.js with a new design and content structure. We keep the URLs, rankings and content that earn, and rethink everything else.
- Genesis speed guideGenesis Framework Speed: Tuning the Child Theme, the Scripts and the PHP UnderneathGenesis framework speed, fixed in order: the child theme's fonts and jQuery menus, the Header Scripts box, the PHP version, and what the framework cannot fix.
- Everything in WordPress to Next.jsSee the section
Find out what your child theme is hiding
Send us your site address. We read the child theme, count the hooks, blocks and widget areas, and reply with a migration plan and a fixed quote.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.
