PPCleaner

Performance Max Cannibalizing Search? Compare the Terms

Published October 17, 202612 min read
An online retailer reviewing product advertising beside merchandise and shipping packaging.
The short answer

Probably a little, and that alone is not a problem. The way to know for sure is to put the search terms from your Performance Max and Search campaigns side by side for the same dates and look at the ones that appear in both. That overlap list tells you where PMax is winning auctions you meant for Search, and how each campaign does on those terms.

Most overlap comes from the Search side: a budget that runs out, low ad rank or a keyword that isn't serving. Adding those terms as negatives in PMax doesn't send the traffic to Search. It often just loses it. Fix why Search lost first. Keep PMax negatives for a short list of terms you truly want only Search to handle.

Is Performance Max actually cannibalizing your Search campaigns?

You can check by comparing search terms. Pull the terms both campaign types paid for over the same date range and look at the ones that show up in both. If that shared list is short, or PMax converts those terms as well as Search does, you don't have a cannibalization problem. You have two campaigns sharing the work. If the list is long and PMax does worse on it, you have a real problem, and the cause is usually in your Search setup, not in PMax.

"Cannibalization" makes it sound like your campaigns are bidding against each other and pushing your CPCs up. In practice Google picks one ad per advertiser for each auction, so your Search campaign and your PMax campaign don't bid against each other for the same click. What you actually lose is control. A query you wrote a specific ad for, sent to a specific landing page, with a bid you chose, gets answered by a campaign that decides all of that for you. Its reporting also tells you less afterwards.

That is a real cost. But it isn't the same as "PMax is stealing my conversions", and the fix is different too.

Why the usual advice is incomplete

The pages that rank for this question mostly give the same three tips: add brand exclusions to PMax, add negative keywords to PMax, and check the Insights tab. Each of those is fine on its own terms. Together they rest on an assumption nobody checks: that every query PMax picks up from Search is a loss.

Two things are missing.

First, nobody asks why Search lost the auction. Google documents a priority rule: when a search query is identical to a keyword in an eligible Search campaign, the Search campaign is preferred over Performance Max. So if PMax is serving on "emergency plumber" while you have [emergency plumber] in a Search campaign, the question is why that Search keyword wasn't eligible or didn't win. Usual answers: the campaign had hit its daily budget, the keyword was limited or paused, the ad was disapproved, the ad schedule had ended, or the location targeting didn't match. Blocking the term in PMax fixes none of these.

Second, nobody compares performance on the shared terms. If PMax gets "emergency plumber near me" at a $9 CPA and your Search campaign gets it at a $14 CPA, pushing that traffic back to Search costs you money. Your control is worth something, but put a price on it before you pay it.

Brand is the one place where the common advice holds up best. Even there, brand exclusions have gaps, which we cover in Performance Max Brand Exclusions and What They Miss. This article covers non-brand overlap, where most of the money is and where the stock advice fits worst.

Use the same date range for both, normalize the terms, and match them. Ten minutes in a spreadsheet will do it. A script or the API makes it repeatable.

Step 1: pull both sets of terms

Search terms for Search, Shopping and Performance Max are all reported in campaign_search_term_view in the Google Ads API. That gives you one place to pull from, with the campaign attached to each row. In the interface you can export the search terms report for your Search campaigns and the PMax search terms report, then stack them.

For each row, keep: the campaign, the campaign type, the search term, impressions, clicks, cost, conversions and conversion value.

Use at least 30 days. With less, a single afternoon's budget cap can make a term look like it moved to PMax when that was a one-off.

Step 2: normalize before matching

Lowercase everything and trim spaces. Leave misspellings and word order alone at this stage. "plumber emergency" and "emergency plumber" are different terms in the report, and if you merge them now you'll hide the close-variant behaviour you're trying to see. The way Google treats those as the same is covered in Close Variants in Google Ads and Why Exact Isn't Exact.

Step 3: build the overlap table

Make one row per search term that appears in both a PMax campaign and a Search campaign. Columns:

TermSearch clicksSearch costSearch conv.PMax clicksPMax costPMax conv.

Add CPA for each side, and a column showing whether the term is identical to a keyword in your Search campaigns. That last column matters most, as the next section shows.

Step 4: accept what you can't see

You won't see every term. PMax reporting is less complete than Search, and Google hides low-volume terms on both sides for privacy. Your overlap table is a lower bound, not the full picture. What the PMax Search Terms Report Actually Shows explains the PMax gaps, and Google Ads Search Terms Hidden by Privacy, and What to Do covers the hidden rows on both sides. Draw conclusions from terms with real volume, not from a long tail of one-click rows.

Reading the overlap: four patterns and what each means

Once you have the table, most overlapping terms fall into four groups. Each one needs a different fix, and only one of them involves a PMax negative.

Pattern 1: the term is identical to a Search keyword, and PMax still got clicks

This is the most telling pattern. Google's priority rule should have sent those queries to Search, so something stopped your Search keyword from being eligible at those moments.

Check in this order:

  1. Search lost impression share (budget) on that campaign. If it's above zero, the campaign is running out of money and PMax picks up the queries for the rest of the day. This is the most common cause in the accounts we audit.
  2. Keyword status. Paused, limited, or "low search volume" keywords don't serve.
  3. Ad status. A disapproved ad group means no eligible ad.
  4. Ad schedule and location. If Search runs 8am to 6pm and PMax runs all day, PMax takes the evening by design. Same if Search targets three cities and PMax targets the whole state.

A worked example. A plumber runs a Search campaign with [emergency plumber] at a $100 daily budget and a $5 average CPC, so about 20 clicks a day. Demand on most weekdays is closer to 30 clicks, so the budget runs out mid-afternoon. For the rest of the day, PMax answers "emergency plumber" with its own ad and landing page. The overlap table shows the term in both campaigns: 600 Search clicks and around 300 PMax clicks over a month.

Add emergency plumber as an exact negative in PMax and those 300 clicks don't move to Search. Search is still out of money. They just stop. If those clicks were converting, you've cut leads to tidy up a report. The real fix is a decision about budget: raise the Search budget, split the term into its own campaign, or decide PMax answering after 3pm is acceptable. Where daily spend really goes is a topic of its own, covered in Google Ads Daily Budget Overspend and Where the Money Goes.

Pattern 2: the term is close to a Search keyword but not identical

"emergency plumber open now" when you bid on [emergency plumber] and "emergency plumber near me". Google's priority rule doesn't apply here. Ad rank decides which of your campaigns serves, along with each campaign's predicted performance. PMax winning some of these is normal.

Look at the CPA on each side. If PMax is close to or better than Search, leave it. If PMax is clearly worse, the cleanest fix is often on the Search side: add the term as an exact keyword so the priority rule covers it. This is the fix the common advice skips. You bring the query back by making Search eligible for it, not by banning it from PMax.

Pattern 3: the term only exists because PMax went somewhere Search never would

Sometimes an "overlap" term barely registers in Search, and PMax spends heavily on it because PMax's matching is looser. That isn't cannibalization. It's PMax reaching further. Judge it the way you'd judge any search term: is it a query that could ever turn into a sale? "emergency plumber salary" or "how to become an emergency plumber" fail that test whichever campaign paid for it. Those are real negatives, and they belong in every campaign that can match them.

If one asset group keeps generating this kind of term, the problem is probably in that asset group's assets and URLs rather than in any keyword list. See When One PMax Asset Group Pulls Irrelevant Traffic.

Pattern 4: brand terms

Your brand name, brand plus product, brand plus "login" or "phone number". PMax likes brand queries because they convert cheaply, and that makes its reported ROAS look better than the campaign deserves. This is the case where pushing traffic back to Search almost always pays off, because you want clean brand reporting and your own ad copy. Use brand exclusions first and patch the gaps with exact negatives.

Why negative keywords in PMax are usually the wrong fix

Negative keywords exist to stop traffic that will never convert. Overlap terms are, by definition, terms you want. You're using a "this query is worthless" tool to express a "this query belongs over there" preference. Sometimes that works, but there are four costs.

It doesn't route traffic, it removes it. A negative in PMax takes PMax out of the auction for that query. Whether Search then serves depends entirely on whether Search was eligible. In patterns 1 and 2, often it wasn't. The impression doesn't fall back to Search. It's simply gone.

PMax has a hard cap and no shared lists. A Performance Max campaign accepts up to 10,000 campaign-level negative keywords, and it doesn't accept shared negative keyword lists. If you manage several PMax campaigns, every overlap negative has to be added to each one separately. Unlike Search and Standard Shopping, you can't keep one "send to Search" list and attach it everywhere. The trade-offs between list levels are in Account-Level Negative Keyword Lists vs Campaign-Level.

Match type matters more than people expect. Broad, phrase and exact are the three negative match types. A phrase negative of emergency plumber in PMax blocks "emergency plumber open now", "24 hour emergency plumber cost" and every longer query containing that phrase, including ones your Search campaign has no keyword for. That isn't redirecting traffic. You've cut off a whole cluster of queries. Broad negatives behave unpredictably across match types, which makes them worse here. If you go down this road at all, use exact negatives, one at a time.

It quietly gets worse. A negative added to fix an overlap in March is still there in September, after you've paused the Search keyword it was protecting. Now nothing serves on that term. This is one of the hardest problems to spot in an account, because nothing reports an error. We list it with other symptoms in Negative Keywords Hurting Performance? Six Signs, and the conflict side is in Negative Keyword Conflicts Google Ads Won't Flag.

Search themes don't solve this either. They tell PMax where it can go, not where it can't, and they don't create the priority that a Search keyword gets. The difference is in Search Themes vs Negative Keywords in Performance Max.

When a PMax negative is the right call

A short list of exact negatives in PMax makes sense when three things are all true:

  1. Search is eligible and funded for the term. No lost impression share from budget, the keyword is active, schedules and locations match.
  2. You have a concrete reason to want Search on it. A dedicated landing page, a specific offer in the ad copy, a bid you need to cap, or brand reporting you want kept clean.
  3. Search does at least as well on it, or the gap is small enough that the control is worth it.

In that case, add the term as an exact negative in each PMax campaign that matches it. Write down why, with a date, in a spreadsheet or the change history notes. Then check the term in your Search campaign's search terms report over the next two to four weeks. You want to see Search impressions rise by roughly what PMax gave up. If they don't, the negative is just losing traffic, so remove it. How to Undo Negative Keywords in Google Ads covers how to do that cleanly.

A rough test: if your "send to Search" list of PMax exclusions is growing past a few dozen non-brand terms, you're probably using negatives to make up for a Search structure that doesn't cover your core queries. Fix the structure.

What to fix instead, in order

Most PMax and Search overlap goes away when you fix the Search side. Work through these in order:

  1. Budget. Look at Search lost impression share (budget) on the campaigns holding your core terms. If it's high, PMax getting those terms is a symptom. Fund the campaign, or narrow it so the budget lasts all day.
  2. Exact keywords for the queries that matter. For every high-value overlap term where PMax performs worse, add the term itself as a keyword in Search. An identical keyword is what triggers Google's priority. A broader keyword that happens to match doesn't.
  3. Schedules and locations. Line them up between campaigns, or accept on purpose that PMax covers the hours and places Search doesn't.
  4. Ad rank on the terms you keep losing. A low quality score or a CPC cap set too tight can lose the auction to PMax even when Search is eligible. Look at Search lost impression share (rank) on those ad groups.
  5. Brand. Brand exclusions in PMax, a properly funded brand Search campaign, and exact negatives only for what the exclusions miss.
  6. Only then, a short exact-negative list in PMax, applied under the three conditions above.

Then rebuild the overlap table a month later. If the same terms are still split between the two campaigns, the cause is still in the list above.

For the wider question of which campaign type tends to lose more money on bad queries, see Performance Max vs Search: Which Wastes More?.

Where PPCleaner fits, and where it doesn't

PPCleaner doesn't fix cannibalization, and that's on purpose. It reads the search terms your Search, Shopping and Performance Max campaigns paid for, decides which ones were never going to convert, and adds those as negatives every night. It never blocks a term that converted in the last 90 days. Most overlap terms are converting terms, so PPCleaner leaves them alone. It won't move "emergency plumber" from PMax to Search for you, because that's a routing and budget decision only you can make.

What it does handle is pattern 3: the terms that look like overlap only because both campaigns are paying for junk. "plumber salary", "plumbing course near me" and "free plumbing quote template" get blocked in each campaign that matched them. In PMax that means adding them at campaign level, within the 10,000 limit, because PMax doesn't accept shared lists. Once that noise is gone, your overlap table contains only the terms that really are contested, which makes the decisions above easier.

It never touches budgets, bids, ads or keywords, so none of the six fixes above will happen without you. Every block it adds can be undone in one click for 90 days.

Search terms reports don't show Display, Video or App traffic, so no search term comparison can tell you whether PMax's non-search inventory is pulling budget away from search. That needs a separate look at channel reporting, and it's outside what search term negatives can reach.

performance maxsearch campaignssearch termsnegative keywordscampaign overlap

Frequently asked

Do Performance Max and Search campaigns bid against each other and raise my CPCs?

No. Google picks one ad per advertiser for each auction, so your two campaigns don't compete with each other for the same click. What overlap costs you is control over which ad, landing page and bid answer the query, plus less detailed reporting when PMax wins.

If my Search campaign has an exact match keyword, why does PMax still serve on that query?

Google gives priority to a Search keyword that is identical to the query, but only while that keyword is eligible to serve. The usual reasons it isn't: the Search campaign has hit its daily budget, the keyword is paused or limited, the ad is disapproved, or the ad schedule or location targeting doesn't cover that search.

Should I add my Search keywords as negatives in Performance Max?

Not as a blanket rule. A negative in PMax removes PMax from the auction. It doesn't hand the query to Search. If Search is out of budget or losing on ad rank, that traffic disappears. Use a short list of exact negatives only for terms where Search is funded, eligible, and performs at least as well.

Can I use a shared negative keyword list to stop overlap across several PMax campaigns?

No. Performance Max doesn't accept shared negative keyword lists. Each PMax campaign takes its own campaign-level negatives, up to 10,000. Standard Shopping and Search do accept shared lists.

How do I know if PMax is doing better than Search on the overlapping terms?

Build an overlap table: one row per term that appears in both campaign types over the same 30+ days, with clicks, cost and conversions for each side. Compare CPA or ROAS term by term. If PMax wins on a term, moving that traffic to Search costs you money, so decide whether the extra control is worth it.

Will PPCleaner stop Performance Max from taking my Search traffic?

No. PPCleaner blocks terms that were never going to convert and never blocks a term that converted in the last 90 days. Most overlap terms do convert. It removes the junk that inflates your overlap list, but the budget, keyword and routing decisions stay with you.

About the author

Alain Abulafya

Founder of PPCleaner · Google Ads consultant & media buyer

Alain has worked in digital marketing for more than 15 years, over 10 of them managing and optimizing Google Ads campaigns. He has worked with more than 100 advertisers in e-commerce and lead generation, and he is a Google Partner. He built PPCleaner to automate the search term reviews he used to do by hand for his clients.

Stop the leak

Clean your search terms. Save time and money.

Every night, PPCleaner reviews the searches your campaigns actually paid for, groups them by intent, and excludes the ones that never convert. No spend threshold to wait for, nothing touched but negatives — and one click undoes any of it.

Start 7 days free

Search, Shopping and Performance Max · Cancel in one click

Related articles

Is Performance Max Cannibalizing Your Search Campaigns? — PPCleaner