Blog

Fixing Yoast SEO Missing on ACF Custom Post Types

The metabox is missing because of one argument in a function that has nothing to do with the SEO plugin. Ivan Sp traces a specific, recurring WordPress fault: Yoast’s SEO metabox not appearing on a custom post type built through Advanced Custom Fields. The cause almost never sits inside Yoast itself, and the real fix requires tracing a specific settings chain instead.

The Symptom

A custom post type, such as testimonials, portfolio items, or service listings, shows no Yoast metabox at all when editing an entry. Standard posts and pages carry the metabox normally. Only the custom type is affected.

Why the Fault Is Not in Yoast

The chain to trace starts at the ACF field group’s own location rules, then moves to the actual underlying post type those rules attach to. From there, three specific settings on that post type decide whether Yoast can see it at all: public, show_ui, and publicly_queryable.

A custom post type registered with any of these three set incorrectly stays invisible to Yoast’s controls, regardless of how the plugin itself is configured.

Tracing the Chain Step by Step

Start at the field group’s location rules to confirm which post type it actually targets. Then check that post type’s registration, either in a theme’s functions file or in the plugin that registered it. Confirm public and publicly_queryable are both set true, and that show_ui is not disabled.

Fixing any one of the three restores the metabox immediately, without touching Yoast’s own settings at all.

Why This Matters Beyond One Plugin

Every page type on a site, not just standard posts and pages, needs proper meta titles and descriptions in search results. A post type silently falling back to a generic default produces exactly the kind of gap a standard SEO audit can miss, since the page looks fine in the editor and only shows the fault in the actual search snippet.

Where This Fits Into a Broader Audit

This specific fault is one example of the platform-level configuration work covered under WordPress SEO, where custom post types and field plugins interact in ways a generic checklist does not anticipate.

The Arguments That Decide Visibility

The function
register_post_type, which is where every custom post type is declared.
public
The parent argument. Setting it true is what makes a type visible to SEO plugins.
publicly_queryable
Inherits from public. A type not queryable is not a page a search engine can reach.
show_ui
Controls whether an admin interface appears at all for the type.
show_in_menu
Controls the admin menu entry, and is inherited from show_ui.
has_archive
Controls whether a listing page exists for the type.
Where ACF fits
Advanced Custom Fields can register types, and its UI exposes the same arguments.
Downstream effect
A private type is also excluded from the core WordPress sitemap.

Tracing the Chain, Step by Step

I check from the platform outward rather than starting inside the plugin.

  1. Confirm the symptom, noting which post type is affected and whether others are fine.
  2. Open your SEO plugin’s content types settings and check whether the type is listed there.
  3. Check whether the type appears in the WordPress admin menu, which confirms show_ui.
  4. Open your sitemap at the site root and check whether any URL of that type appears.
  5. Locate the register_post_type call, in the theme, a plugin, or the ACF post type screen.
  6. Read the public argument, then publicly_queryable, then show_ui.
  7. Set public to true where the type is genuinely meant to be a public URL.
  8. Reload the admin screen and confirm the metabox now appears.
  9. Re-check the sitemap and confirm the type is now included.
  10. Request indexing on a sample URL, since those pages were never submitted before.

Where the Standard Troubleshooting Advice Breaks Down

Has anyone checked how that post type was actually registered?

The usual advice
Reinstall or reconfigure the SEO plugin, since the metabox is a plugin feature that is not appearing.
What holds up in practice
The plugin builds its list from post type registration. Reinstalling changes nothing, because the plugin is correctly declining to show a box for a type WordPress has declared private.

Consider a developer reinstalling Yoast, clearing caches, and disabling every other plugin in turn. The metabox stays missing throughout.

The post type was registered with public set to false. The plugin was behaving exactly as designed, and nothing inside it was ever going to change that.

Ivan Sp reads the registration arguments first. One boolean explains the symptom completely, and it is not in the plugin’s settings.

A day of plugin troubleshooting produces no fix and no understanding. The same symptom will reappear on the next custom post type somebody registers.

If the type is private, those pages are also missing from your sitemap. Google was never told they exist, and no metabox would have changed that.

Four Things Commonly Assumed About This Fault

Which of these have you tried already?

I meet these four assumptions whenever this symptom is reported.

Commonly assumedWhat actually holds
The fault is inside the SEO plugin.The plugin reads post type registration. A type declared private is correctly excluded, and no plugin setting overrides that.
Advanced Custom Fields is the cause.ACF can register the type and exposes the same arguments. The argument value is the cause, and the registration route is incidental.
It only affects the metabox.A private type is also excluded from the core sitemap, from archives, and from most SEO tooling.
Setting show_ui to true is enough.show_ui restores the admin screen. public and publicly_queryable are what make the type a public URL.
A different SEO plugin would show the box.Rank Math and others read the same registration. Switching plugins reproduces the symptom exactly.

Pages nobody can find a metabox for are usually pages Google has never been told about either. The metabox is the symptom, and the sitemap gap is the cost.

A Worked Example: Tracing the Chain

Consider a custom post type whose metabox never appears. The trace below is illustrative, written to show the order of elimination. No client engagement is described here.

CheckResultWhat it rules out
Is the type listed in the SEO plugin settingsNoA plugin configuration mistake
Is the type in the WordPress admin menuYesThe type exists and show_ui is true
Does the type appear in the core sitemapNoPoints at the public argument
Read register_post_type argumentspublic set to falseThe cause, confirmed
Set public to true and reloadMetabox appearsThe fix, confirmed
Re-check the sitemapType now includedThe larger problem, also fixed

I check the sitemap before reading any code. A type absent from the sitemap and present in the admin menu narrows the cause to one argument.

Reinstalling the plugin here is replacing the lightbulb when the switch is off. The bulb was always fine.

The final row is why this matters beyond a missing box. Those pages had never been submitted to Google at all.

How This Engagement Is Scoped

What You Need Before You Start

Time required
About fifteen minutes once the registration code is located.
Access needed
WordPress admin, plus theme or plugin file access where the type is registered in code.
Tools required
None beyond a code editor, or the ACF post type screen.
Skill level
Able to read a PHP function call and identify a boolean argument.
What can go wrong
Making a genuinely private type public, which exposes URLs that should not be indexed.
Expected result
The metabox appears, and the type joins the sitemap.
When to hire instead
Sites with many custom types, or registration spread across several plugins.

Tools and Primary Sources

The references below document the registration and the plugin behaviour. Each opens in a new tab.

Check One Post Type Yourself

I suggest a check that needs no code access at all.

  1. Open your SEO plugin’s content types or post types settings.
  2. Compare that list against the post types in your WordPress admin menu.
  3. Open your sitemap at the site root and check which types appear.
  4. Note any type present in the admin menu and absent from both other lists.

A type in the admin menu but missing from the plugin and the sitemap is registered privately. The metabox is the least of what those pages are missing.

Common Questions

Does this issue affect other SEO plugins besides Yoast?

The same underlying post type settings, public, show_ui, and publicly_queryable, affect any SEO plugin’s ability to control a custom post type, not just Yoast specifically.

Can this be fixed without editing code?

Sometimes, if the post type was registered through a plugin offering a settings interface. A post type registered directly in a theme’s code needs a code-level fix.

How do I find which post type an ACF field group targets?

Open the field group in the ACF admin screen and check its Location Rules panel, which states exactly which post type or page condition the field group attaches to.

Should every custom post type be public?

No. Types holding internal data, reusable blocks, or configuration should stay private. The fault is only a fault when a type meant to be a public page has been registered as private.

Discuss This Work

The first call is a free 30-minute consultation with no pitch attached. You receive an honest assessment of where the site stands and what can realistically be built.

Book a free 30-minute consultation

Scroll to Top