Getting ACF Pro Right for Agency Workflows
ACF Pro is the backbone of how I build editorial WordPress sites for agencies. Years of client projects later, I have a handful of workflows that save time, keep the editor sane and keep the front end fast. Here is what stuck — and the mistakes I see agencies repeat.
Why ACF Pro Is Worth £49/Year
The free version is solid. Pro (£49/year) adds the four things that actually change how an agency project is built:
Repeater fields
Repeatable blocks — team members, testimonials, FAQs, pricing cards. Without them you reach for a custom post type every time.
Flexible content
A page builder that does not emit ten levels of nested divs. Editors pick from layout blocks you coded with clean markup.
Gallery field
Real gallery management with drag-to-reorder, instead of the core gallery block.
Options pages
Site-wide banners, footer content, social links — edited from one admin page, not scattered across widgets.
JSON Sync: The One Setting Most Agencies Miss
By default ACF keeps field group definitions in the database. Two problems follow: groups drift between staging and production, and none of it shows up in Git.
ACF Local JSON fixes both. Add this to your theme's functions.php:
add_filter('acf/settings/save_json', function($path) {
return get_stylesheet_directory() . '/acf-json';
});
add_filter('acf/settings/load_json', function($paths) {
$paths[] = get_stylesheet_directory() . '/acf-json';
return $paths;
});Now every change writes a JSON file into the theme. Commit it, deploy it with the theme, stop syncing groups by hand. Groups load from JSON instead of the database — faster, and every change has a history.
Common ACF Mistakes, and How to Fix Them
Not caching ACF queries
Every get_field() call hits the database through get_post_meta(). A page with 30+ fields is 30+ queries. Cache the heavy, rarely-changing groups with transients or object caching (Redis).
Loading every field group everywhere
ACF loads all groups even when one post type uses one of them. Set location rules tightly — per post type, per template. Less admin overhead, fewer queries.
Over-using flexible content
Powerful, but it builds complex structures underneath. Give it the layouts the design needs and no more — six, not fifteen. Every spare layout still loads on the edit screen.
Client Editor Experience That Works
The usual complaint is that editors find ACF confusing. Nearly always that is the setup, not the tool. What makes it click:
- Label fields in the client's words. "Hero Title", not "Page H1 Heading". Their vocabulary, not yours.
- Fill in the Instructions field. Every group has one: "Shows at the top of the homepage. Keep it under 50 characters."
- Split fields into tabs. Hero, Services, CTA — not 30 fields in one scroll.
- Use conditional logic. Pick "External Link" and the "Internal Page" field disappears. Fewer wrong entries.
- Hand over a one-page cheat sheet. Screenshots of what each group controls. Give it at training; it saves the support tickets.
Reusable Field Groups Across Projects
After a few builds the patterns repeat. Every client wants testimonials. Every site has a CTA block. Every post has related posts. Stop rebuilding those from scratch — keep a starter library.
The JSON setup above makes it trivial. Hold a starter theme with the common groups configured. New project: copy the JSON files across, retitle the labels for the client, and you have a proven field architecture in minutes, not hours.
Need ACF Set Up on Your Agency Projects?
I build clean, editor-friendly ACF architectures for UK agency projects — field groups, JSON sync, performance done, and documented so your team can carry on from where I stop.