How to Use SEOmatic with Divi and ACF

Written By Minh

Last updated 1 day ago

SEOmatic lets you generate and publish hundreds of pages from a single Divi template. You design the layout once, use ACF fields for dynamic content, and SEOmatic fills each page with unique content at scale.

Minimum Requirements

  • Divi (included with Elegant Themes membership)

  • ACF (Advanced Custom Fields) by WP Engine installed and activated

  • ACF Field Key plugin by SEOmatic

  • A WordPress connection configured in SEOmatic

Step 1: Create a Custom Post Type

In your WordPress admin, go to ACF > Post Types and create a new post type (e.g. "Services"). This will store all the pages created from your template.

Leave the Advanced Settings at their default values.

Step 2: Create Your ACF Fields

Go to ACF > Field Groups and create a new group (e.g. "Service Fields"). Add a field for each dynamic element in your template.

Make sure the Field Label and Field Name are exactly the same.

Naming convention: Use sectionX_fieldtype_suffix with underscores, not hyphens. For Text fields, the suffix controls the input type in SEOmatic:

Suffix

Input type in SEOmatic

_text

Single-line text

_text_area

Multi-line text

_rich_text_editor

Rich text editor

(no suffix)

Rich text editor (default)

Supported field types: All types under the Basic and Content categories (up to oEmbed). Repeater fields and Flexible Content are not supported by Elementor's native Dynamic Tags.

For Image fields, set the return format to Image ID (not Image URL) - both Elementor and SEOmatic need this format to display images correctly.

Step 3: Configure the Field Group Settings

Still in your field group, scroll down and configure:

  • Location Rules - Set the post type to the one you just created (e.g. "Service").

  • Show in REST API - Turn this on under Group Settings. SEOmatic needs this to detect your fields.

Step 4: Build Your Divi Template

Go to Divi > Theme Builder and click "Add New Template". Under "Use On", assign it to your custom post type (e.g. "All Services").

Edit the template body using the Divi Visual Builder. For each module that needs dynamic content:

  1. Add a module (e.g. Text, Image, or Button).

  2. Click the database icon (dynamic content icon) next to the field you want to make dynamic.

  3. Select the matching ACF field from the dropdown - your fields will appear under your field group name.

  4. If the field contains HTML or links, enable Raw HTML in the dynamic content settings.

Repeat for all modules in your template, then save the template.

Step 5: Set Up Your SEOmatic Project

Your WordPress site is now set up. Head over to SEOmatic, create a new project, and select the custom post type you just created (e.g. "Service"). Your ACF fields will be automatically synced.

Notice how different input types are generated based on the suffixes used for the Text Fields.

Troubleshooting

Problem

Solution

ACF fields not appearing in SEOmatic

Make sure "Show in REST API" is enabled in your ACF field group settings, and the field group is assigned to the correct post type.

Wrong input type in SEOmatic

Check your field naming convention. Text fields without a suffix default to Rich Text Editor. Use _text for single-line or _text_area for multi-line.

ACF fields not showing in Divi's dynamic content dropdown

Divi's ACF integration is built in β€” no extra plugin needed. Make sure your field group's Location Rules are set to the correct post type. If fields still don't appear, save the field group and refresh the Divi builder.

Rich text or links not rendering correctly

Enable Raw HTML in Divi's dynamic content settings for fields that contain HTML, links, or formatted text.

Template not applying to published pages

In the Divi Theme Builder, check that your template is assigned to the correct post type under "Use On" (e.g. "All Services"), not "All Pages."

Images not displaying

ACF Image fields must be set to return Image ID, not Image URL. SEOmatic uploads images to your WordPress Media Library and sends the attachment ID automatically.