Back to Blog
    ACF Pro / Agency workflow

    Getting ACF Pro Right for Agency Workflows

    Filippo Tinnirello

    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.

    01 — What Pro unlocks

    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.

    02 — Version control

    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.

    03 — Performance

    Common ACF Mistakes, and How to Fix Them

    Mistake 01

    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).

    Mistake 02

    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.

    Mistake 03

    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.

    04 — Editor experience

    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.
    05 — Reuse

    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.