Skip to content

Fix: Performance Max search themes missing or misconfigured

finding google ads updated 2026.05.06 6 min read

A Performance Max campaign without search themes leaves the matching engine guessing — Google reverts to URL + asset signals only, starving the Search slice of intent steering. Fix this before tuning audience signals or asset groups.

Why this matters

Search themes are operator-supplied hints that tell Performance Max which queries to compete on when its own URL- and asset-derived signal is too thin. Google explicitly positions them as a way to "fill gaps in [its] understanding" of an asset group — without them, PMax leans entirely on landing-page crawl + creative parsing, which underweights newly launched products, niche B2B intent, and any vertical where landing copy lags actual offer scope.

The Whitead rule fires HIGH when an asset group has zero themes despite an active Search slice (>25% of traffic), because that combination signals abandoned configuration rather than a deliberate Shopping-only or YouTube-only setup. A separate MEDIUM branch fires when themes exist but number fewer than five on a campaign spending more than $300/month — partial coverage that under-uses the 25-theme cap Google grants per asset group.

How to verify the issue

  1. Open Campaigns → select the Performance Max campaign → Asset groups. For each asset group, click View detailsSearch themes. Count active themes.
  2. Cross-check Search slice activity in InsightsSearch terms for the campaign. If queries are flowing but theme count is 0, the matcher is operating without your steering.
  3. Open Asset groupsCombinations view. If the same asset group has >25 themes, Google has silently capped enforcement at 25 — anything beyond that is dead config (and a sign of defensive over-stuffing).
  4. Confirm the asset group has at least one final URL with crawlable copy. Search themes layer on top of the URL signal; a thin landing page plus zero themes is a compounding failure.

Steps 1-2 returning zero themes on a Search-active asset group = finding confirmed. Step 3 returning >25 = the overloaded variant (LOW severity, still worth pruning). Step 4 informs the order of fixes.

How to fix it

Plan one 30-minute working session per campaign. Group themes by intent before pasting — un-clustered themes are weaker signal than fewer well-organized ones.

  1. Cluster offers by intent. Group your asset groups' offers into commercial ("buy [product]"), informational ("how does [product] work"), and branded ("[brand] [product]") buckets. PMax weights these differently in matching.

  2. Draft 5-15 themes per asset group. Use exact-phrase intent strings, not single broad words. Example for a B2B SaaS analytics asset group: data warehouse for ecommerce, replace Looker for SQL teams, sql dashboard tool with embedded auth. Mix 1-2 branded + 3-5 commercial + 2-4 informational.

    # Bad (broad, single-token):
    analytics, dashboard, sql
    
    # Good (intent-clustered phrases):
    self-serve sql analytics platform
    replace looker for sql teams
    embedded analytics for saas
    
  3. Add themes via the UI. Asset groups → asset group → Edit search themes → paste one per line → Save. Repeat per asset group; do not paste the same theme list across all groups (defeats the per-AG signal).

  4. Add brand exclusions if cannibalization risk exists. If you also run a brand Search campaign, exclude brand terms from PMax via SettingsBrand exclusions. The Whitead rule flags >=60% token overlap between PMax themes and PHRASE/EXACT Search keywords as a separate cannibalization signal — see PMax brand cannibalization.

  5. Wait 7-10 days before judging impact. PMax matching re-equilibrates over a Smart Bidding learning phase-style window even though search themes are not a bid-strategy change.

"Search themes are a way to provide information about your customers... if there are gaps in our understanding of an asset group, search themes can help fill those in."
Google Ads Help, About search themes for Performance Max campaigns (accessed 2026-05-06)

How to confirm the fix worked

Diagnostic checklist — run all five 7-14 days post-deploy

  • Each asset group with active Search traffic has 5-15 themes (not zero, not >25).
  • Themes are intent-clustered — branded + commercial + informational represented separately, not all one bucket.
  • Search slice impressions rose week-over-week in InsightsSearch terms with conversion volume stable or up.
  • Cost-per-conversion held within ±15% of pre-change baseline (no runaway CPA from intent drift).
  • No PHRASE/EXACT Search keyword in your account shares >=60% token overlap with a PMax theme (cannibalization guard) — see related rule below.

If all five pass, re-run the audit — the pmax_search_themes rule moves from failedpassed.

Methodology note. Whitead's pmax_search_themes rule is a 5-flag composite evaluated at account scope on PMax campaigns spending >=$200/30d (FX-converted). Flag 1 (HIGH) requires search_theme_count == 0 on an asset-group-bearing campaign with search_traffic_share > 0.25 — that combination distinguishes abandoned configuration from deliberate Shopping/YouTube-only setups. Flag 2 (MEDIUM) catches search_theme_count between 1 and 4 on campaigns above $300/month, where partial steering wastes the 25-theme cap. Flag 3 (LOW) flags >25 themes (Google silently caps enforcement). Flags 4-5 (added in WAD-74) detect cannibalization with PHRASE/EXACT Search keywords using a 60% token-overlap threshold with a brand-token carve-out (>40% theme frequency = intentional defense, excluded). Flag 5 escalates to HIGH when 5+ PMax campaigns are affected — that's a structural channel-design issue, not a single misconfig. BROAD keywords are excluded from overlap comparison because PMax themes are themselves BROAD-like intent signals. Feed-only PMax campaigns are filtered out via has_asset_groups, since themes live on asset groups and don't apply to pure Shopping feeds.

Sources