Marketing metrics explained

What is a good CPC?

Anything below what a click earns you: how often a click turns into a sale, multiplied by the profit on that sale.

The two things that move the market price most are the intent behind the keyword and the industry bidding on it. A click from someone searching for an emergency locksmith is worth a great deal to a locksmith, and every locksmith in the auction knows it.

How it's calculated

CPC = ad spend ÷ clicks

The platform reports it, usually as an average per campaign or keyword. The CPC formula page has the Google Sheets version and a worked example.

What you can afford to pay

Break-even CPC = conversion rate × gross profit per conversion

As an illustration with made-up numbers: 2% of clicks become orders, and each order makes £50.00 of gross profit. A click is worth 0.02 × £50.00, which is £1.00. Pay £1.00 per click and 100 clicks cost £100.00, produce two orders and £100.00 of gross profit, and leave nothing. Pay £0.60 and the same 100 clicks cost £60.00 against the same £100.00, leaving £40.00. That £1.00 figure is your ceiling. In Google Sheets, with the conversion rate as a decimal in B2 and gross profit per conversion in C2:

=B2*C2

Published benchmarks

CPC benchmarks are published by agencies and ad tech vendors from the accounts they manage or host, usually by network and by industry. The figures below are US campaigns, in US dollars, as published.

ContextReported CPCSource
Google Ads search, all industries$5.42 (median, April 2025 to March 2026)LocaliQ and WordStream, Search Advertising Benchmarks, 2026
Google Ads display, all industries$0.63WordStream, Google Ads benchmarks, 2018 to 2019, the last large public display study
Search, attorneys and legal services$9.87 (median, 2026 edition, the highest industry)LocaliQ and WordStream, 2026
Search, shopping, collectibles and gifts$4.14 (median, 2026 edition)LocaliQ and WordStream, 2026

The same report's lowest industry is Arts and Entertainment at $1.63, so the published search range runs from $1.63 to $9.87 before anyone looks at a keyword.

Why benchmarks mislead

The legal row and the ecommerce row in any benchmark are far apart, and inside each industry the gap between a buying keyword and a researching keyword is just as wide. An "all industries" figure describes no keyword anyone bids on.

Brand clicks drag the average down. Clicks on your own brand name are cheap, because few others bid on it. An account that spends a quarter of its budget on brand search reports a lower average CPC than one that doesn't, for the same non-brand prices. Split brand from non-brand before comparing anything.

The same keyword costs different amounts in different countries and on different devices, and a benchmark rarely says which it averaged.

An average CPC across campaigns weighted by nothing is a different number from total spend over total clicks, and benchmarks don't always say which they used.

The accounts in the sample are the ones still paying those prices, so the prices were worth paying at their margins.

Find your own baseline

Compute total spend over total clicks for non-brand campaigns over the last quarter. With your own Brand or Non-brand label for each campaign in column A, spend in column B and clicks in column C:

=IF(SUMIF(A:A, "Non-brand", C:C)=0, "", SUMIF(A:A, "Non-brand", B:B) / SUMIF(A:A, "Non-brand", C:C))

Then put the break-even CPC from your own conversion rate and gross profit beside it. If the baseline is above the ceiling, the campaigns are losing money however they compare with the industry. If it is well below, there may be room to bid for more clicks.

Keeping it current

A scheduled Fresh Sheets report can keep cost, clicks and conversions by campaign from Google Ads in its own tab, so the baseline and the conversion rate behind the ceiling both update without an export.

Fresh Sheets replaces that tab's contents on every refresh, so keep your formulas on a separate tab. This version finds each column by its heading, so it still works if a field is added and the columns move:

=SUM(INDEX('Google Ads'!A:Z, 0, MATCH("Cost", 'Google Ads'!1:1, 0))) / SUM(INDEX('Google Ads'!A:Z, 0, MATCH("Clicks", 'Google Ads'!1:1, 0)))
Start free trial

30 days of Plus, free from sign-up. No card needed.

Sign in with Google or a work or school Microsoft account.

Add to Google Sheets

Prefer to stay in Google Sheets? Add the add-on and start from the Extensions menu.