GeneratePress fix

GenerateBlocks Layout Broken After an Update? Read This First

GenerateBlocks writes the CSS for every block you build, and it has changed how it builds blocks more than once. After an update a layout can break because the stylesheet is stale, because the free and Pro plugins no longer match or because your custom CSS addresses markup that newer blocks do not produce. The pages are almost never lost. Often they are one regenerated file away.

wp-admin · generateblocks · block audit
Pages using each block
Two generations of blocks, one stylesheet
After update
Container (version 1)78%
Headline (version 1)66%
Grid (version 1)54%
Element (version 2)31%
Text (version 2)27%
Buttons wrapper (retired)19%
Illustrative — the custom CSS was written for the first three only2 markups

What you are seeing

  • Sections lost their padding, or columns stacked that used to sit side by side
  • The page looks right in the editor and wrong on the front end
  • Old pages hold together while newly built sections ignore your custom CSS
  • The editor marks a block as invalid and offers to attempt recovery
  • Blocks you used for years are missing from the block inserter

Why it happens on GeneratePress

Most common first.

  1. 1

    CSS files that describe the previous version

    GenerateBlocks can print its styles inline or write them to a file in the uploads folder. After an update that file sometimes still holds the old rules, or a cache and a CSS-combining plugin keep serving the copy they saved. The markup is new, the stylesheet is old and the two disagree about spacing.

  2. 2

    Two generations of blocks on one site

    The 2.0 release introduced a new set of blocks, built around generic Element and Text blocks and kept the earlier Container, Grid, Headline and Button blocks working for existing content. Pages built before and after now use different markup and different class names. Nothing is broken, but anything that assumed one pattern now meets two.

  3. 3

    Selectors aimed at markup that is no longer there

    Child theme CSS and Additional CSS often target classes such as gb-container, gb-grid-wrapper or gb-inside-container. Newer blocks do not output those. The rule still exists and simply finds nothing to apply to on a newly built section.

  4. 4

    GenerateBlocks and GenerateBlocks Pro out of step

    The Pro plugin extends the free one and expects a matching generation. If the free plugin updates from WordPress.org while Pro waits on a lapsed or missing license, the features Pro supplies can misbehave: global styles, effects, advanced backgrounds. The symptom looks like a design fault and is a version fault.

  5. 5

    Blocks saved in an older shape

    Containers built on early versions keep a legacy inner wrapper that newer Containers do not have, and older button groups sat inside a wrapper block that later versions retired. A page that mixes both, or a pattern copied from an old page into a new one, ends up with two spacing models side by side.

How to fix it, in order

Least invasive first. Stop at the step that fixes it.

  1. 1

    Regenerate the stylesheet before anything else

    Go to GenerateBlocks, Settings and use the option to regenerate the CSS files. Then clear your caching plugin, the host cache and the CDN before reloading the page in a private window. This cures a large share of post-update layout faults and changes no content.

  2. 2

    Switch the CSS print method as a test

    On the same settings screen, change the CSS Print Method from an external file to inline embedding and reload. If the layout returns, the server is failing to write or serve the file in the uploads folder. That is a permissions or caching problem, and the block markup is sound.

  3. 3

    Check that both plugins belong to the same generation

    On the Plugins screen, compare the versions of GenerateBlocks and GenerateBlocks Pro. If Pro is behind, its license has probably lapsed or was never entered. Bring Pro current, or on a staging copy roll the free plugin back to the release that matched it.

  4. 4

    Find out which blocks the broken section uses

    Open the page in the editor and use List View. Version 1 blocks and the newer ones carry different names. If the broken sections all belong to one generation, you know where to look, and whether the fault is in old content or in something built last week.

  5. 5

    Rewrite the selectors that stopped matching

    Inspect a broken section in the browser and read its class names, then search your child theme and Customize, Additional CSS for the old ones. Where you can, move the rule into the block's own settings or a global style, so it no longer depends on a class name the plugin controls.

  6. 6

    Leave working blocks alone

    Older blocks do not need converting for the site to stay healthy. Rebuild a section with the newer blocks only when you are redesigning it anyway. If the editor flags a block as invalid, try its recovery option on staging and compare the result before saving.

Keep it from coming back

  • Update GenerateBlocks and GenerateBlocks Pro together on a staging copy, and look at real pages before going live
  • Keep custom CSS off generated class names. Add your own class in the block's Advanced panel and style that
  • Build new sections with one generation of blocks, not a mix copied from old pages
  • Read the release notes for a major version before the update, not after

The permanent fix

A faster Next.js build, with a CMS made for your business

A layout that shifts once after a major release is routine. A layout that shifts after most updates means the design lives in the gap between a plugin's generated markup and CSS someone wrote around it, and that gap reopens with each release. In a Next.js build the markup and the styles are written together and change only when someone changes them, and the custom CMS edits content without touching either.

On GeneratePress todayOn Next.js with a custom CMS
What you keep updatedWordPress, the theme, its builder and every bundled plugin, all in stepNothing on a schedule. There is no theme or plugin stack to fall out of step
How a page is servedBuilt from the database on each visit, through the theme and its builderBuilt ahead of time and served as finished files from servers near the visitor
How you edit itA general-purpose builder with every option the theme shipsA CMS built around what your business actually changes: services, prices, photos, posts
What can break itAn update to any one of those parts, or a license that lapsesA change someone makes on purpose, tested before it goes live

Your content, your addresses and your rankings come with you: every page is moved, every old address is redirected, and you get a login to an editor that only shows what you need. A repair is still the right call for many sites, and we will say so when it is.

Free · No obligation

Want this fixed on your GeneratePress site?

Tell us what you are seeing. We look at the site, tell you plainly what is wrong and what it takes, and quote a fixed price before any work starts.

Which of these sounds like you? (pick any)

Frequently asked

No. The earlier blocks keep rendering and stay editable on the pages that use them. Converting is a design decision, not a maintenance requirement. The practical rule is to stop mixing generations inside one section.

Newer releases favor the newer block set, and the version 1 blocks can be hidden from the inserter while still working on existing pages. On current releases a setting under GenerateBlocks, Settings controls whether the older blocks stay available for new content. Existing layouts are not removed either way.

The free plugin's earlier releases remain available from its WordPress.org page, so a rollback is possible. Do it on a staging copy and keep the free and Pro plugins on matching releases. Use it to buy time while the CSS is corrected, since staying on an old release only postpones the same update.

The editor builds its styles on the spot from each block's settings. The front end reads the generated stylesheet or the inline styles, and passes through every cache on the way. When the two views differ, the stylesheet or a cache is stale. Regenerate the CSS and purge before touching the blocks.

Keep reading

CallGet a quote