All posts
Gutenberg and Blocks

ACF vs Native Block Bindings in 2026: What to Use on Client Builds

Native block bindings removed the need for custom blocks in simple cases, but not the need for field management. A scoping-stage comparison for agency builds.

mb3techs Team Sep 12, 2026 5 min read

You are scoping a client build and someone on the team asks whether the custom fields still need ACF, now that WordPress has native block bindings. It is a fair question and the honest answer is not a slogan. Choose wrong and you either pay a licence you did not need, or you spend three days rebuilding a repeater that the core API does not support yet.

This post is a practical comparison of ACF vs block bindings for client work: what each actually does, where the native API is genuinely ready, where it is not, and a decision table you can apply during scoping rather than halfway through the build.

They are not the same kind of thing

Most of the confusion in this debate comes from comparing two tools that solve different halves of the same problem.

  • Advanced Custom Fields is a field management layer. It defines what data a post type holds, builds the editing interface for it, validates input, and gives you a retrieval API. It also happens to render blocks.
  • Block bindings is a connection layer, introduced in WordPress 6.5 and extended since. It binds a core block’s attribute to a source of data, so a paragraph or image block can display a post meta value instead of hardcoded content.

In other words, bindings answer “how does this value get onto the page” and ACF answers “where does this value come from and how does an editor enter it”. You can use both together, and on plenty of builds that is the right call: ACF registers and manages the fields, bindings display them through core blocks with no custom block code at all.

What block bindings do well

The native API has real advantages, and they compound over a portfolio of sites.

  • No custom block to maintain. You use core paragraph, heading, image and button blocks. When core improves them, your site inherits the improvement.
  • Markup you did not write. Fewer bespoke templates means fewer places for a future developer to get lost.
  • Editing in place. With a registered source that supports it, editors change the value directly in the canvas rather than in a sidebar panel.
  • Nothing to license. It is core. There is no renewal, no vendor risk, no per-site key.
  • Portable output. The block markup stays valid even if the binding source is removed, degrading to the fallback content rather than to a broken block.

For a marketing site where a handful of fields drive hero text, a phone number, a price or a featured image, bindings plus a small custom field registration is a clean, lightweight solution that will still make sense in five years.

Where ACF still wins

Being honest about this matters more than being fashionable. ACF carries a decade of solutions to problems that core has not addressed yet.

  • Repeaters and flexible content. Variable-length, structured, nested data with an editor interface. There is no native equivalent, and building one is not a weekend job.
  • Relationship and taxonomy fields. Linking posts to posts with a usable picker, filtered by type and status.
  • Conditional logic. Fields that appear based on other fields, which is what makes complex editing screens tolerable for non-technical clients.
  • Options pages. Global settings that are not attached to any post, with the same field UI.
  • ACF blocks. Rendering a full custom block from a PHP template, which remains the fastest route to a bespoke component for a PHP-first team.
  • Team familiarity. Most WordPress developers can be productive in ACF on day one. That has a real cost value.

ACF also supports bindings itself, so the choice is often not either-or. If you want the field-management depth without hand-writing block code, see our tutorials on mastering ACF custom fields and blocks for the mechanics.

Head to head

RequirementNative block bindingsACF
Simple text, image or URL meta on a templateStrongWorks, heavier than needed
Repeatable or nested content structuresNot supported nativelyStrong
Conditional editing interfaceNot supportedStrong
Global site-wide optionsRequires custom workBuilt in
Bespoke component with custom markupNeeds a custom blockACF block with a PHP template
Long-term maintenance exposureCore onlyPlugin dependency to keep current
Cost across a portfolioNonePer-site or agency licence
Developer ramp-up timeModerate; newer API, thinner examplesLow; widely known

Read the table as a scoping tool. If two or more rows in the middle section apply to your build, ACF is doing work you would otherwise have to write yourself, and writing it yourself is only sensible when the client is paying for a system rather than a site.

A decision process for client builds

  1. List the content structures, not the pages. Write down every distinct data shape the site needs. Repeating structures are the deciding factor.
  2. Check who edits and how often. A client publishing weekly needs a comfortable editing interface far more than they need a lean dependency list.
  3. Decide the block strategy. Core blocks with bindings, custom blocks in JavaScript, or ACF blocks in PHP. Pick one primary approach and stick to it across the build.
  4. Check the exit path. If the plugin licence lapsed in three years, what breaks? Fields registered in code survive better than fields registered through an admin UI.
  5. Register field definitions in code either way. Whichever tool you choose, the definitions belong in version control so they deploy with the theme.
  6. Write it into the technical handover. The next developer needs to know which layer owns which data, and why.

Step five is the one that quietly separates professional builds from fragile ones. Field groups configured only in the admin UI will not travel through your release process, which is exactly the failure mode described in our post on the staging to production deployment workflow.

Practical patterns that hold up

Three combinations cover most agency work.

  • Lean marketing site. Register a small set of meta fields in code, expose them with a custom binding source, display through core blocks. No plugin dependency, minimal surface area.
  • Content-heavy site with a real editorial team. ACF for field management and repeaters, bindings where a core block can do the job, custom ACF blocks for the two or three components that need bespoke markup.
  • Product or directory site. Custom post types and fields registered in a site-specific plugin, so the data survives a future theme replacement. This is a plugin-development decision as much as a theme one.

That last pattern is worth defending to clients. Data registered in the theme disappears when the theme is replaced, and themes get replaced roughly every four years. Registering content structures through a site-specific plugin is the kind of choice that separates a build from a rebuild, and it belongs in the scope of any serious WordPress theme development or WordPress plugin development engagement rather than being decided by whoever opens the editor first.

Whichever route you take, keep the editing experience constrained so the client cannot dismantle it. We cover that discipline in building reusable Gutenberg blocks clients cannot break, and the broader case for handing this class of work to a partner is in our white label WordPress development guide for agencies.

Frequently asked questions

Will block bindings replace ACF?

Not in the near term. Bindings remove the need for custom blocks in simple cases, but they do not provide field management, conditional logic or repeatable structures. The realistic outcome is that ACF gets used for fewer things, not for nothing.

Should we migrate existing ACF sites to bindings?

Only where there is a reason. A working site with ACF blocks is not a problem to be solved. Consider it during a redesign, or if licence cost across a large portfolio has become material, and treat it as a scoped project rather than a background cleanup.

Do bindings work with page builders?

They apply to the block editor. If a client site is built in a non-block page builder, that builder’s own dynamic data feature is the equivalent mechanism, and this comparison largely does not apply. Choose the data layer that matches the editing layer you are actually shipping.

Is there a performance difference?

At typical site scale, the difference is negligible compared with images, third-party scripts and hosting. Do not choose on performance grounds. Choose on editing experience, maintenance exposure and whether the data structures fit.

What should we tell the client?

Frame it as ownership. Explain which parts of their site depend on a paid plugin, what happens if that licence lapses, and what it would cost to move. Clients accept dependencies they understand and resent ones they discover later.

If you are weighing this decision on a live project and would rather have a second opinion from a team that builds these structures weekly, get in touch through our contact page and we will scope it with you.

If you want the commercial side of this mapped out, the dedicated developer plans show what a fixed monthly block of hours costs and what it covers.