- A plumber emergency click costs CHF 37.44 in Zürich — versus CHF 8.72 in Solothurn. Same search, 4× the price.
- CPCs are not fixed. They change hourly depending on competitor budgets, quality scores and time of day.
- Google Ads Agentur is cheaper in Zürich (CHF 54.39) than in Bern (CHF 63.77) — smaller markets can have higher CPCs when few bidders go aggressive.
- Rural regions offer lower entry costs, but volumes are thin. Works best when job value per client is high.
- Data: DataForSEO / Google Keyword Planner, April 2026. 30-day averages.
A snapshot, not a fixed price list
Before the numbers: these are averages. Google Ads works as an auction, and every auction is different. A competitor raising their daily budget at 8am on a Monday changes the price you pay at 8:01am. A business pausing a campaign on a Friday afternoon drops competition for every remaining bidder.
What this data shows is the structural pattern — which regions consistently cost more, which industries attract aggressive bidding, and where the relative differences lie. Those patterns are stable even when the exact figures shift. The 30-day averages below come from DataForSEO in April 2026, pulling directly from Google's Keyword Planner API.
The data: 13 industries, four regions
Key finding: Zürich is the most expensive region in 10 of 13 industries tested. The average CPC gap between Zürich and Solothurn across all categories is 47%. For emergency plumbing, it reaches 329%.
We pulled CPC and volume data for 13 service categories across Zürich, Bern, Luzern and Solothurn. Luzern data uses the district-level location code rather than the city code, which returns more complete auction data for mid-size markets.
| Industry | Zürich | Bern | Luzern | Solothurn |
|---|---|---|---|---|
| Sanitär Notfall | CHF 37.44 | CHF 10.87 | — | CHF 8.72 |
| Google Ads Agentur | CHF 54.39 | CHF 63.77 | CHF 61.46 | CHF 62.79 |
| Umzugsunternehmen | CHF 14.14 | CHF 10.48 | CHF 10.30 | CHF 8.36 |
| Elektriker | CHF 4.55 | CHF 1.93 | CHF 2.39 | CHF 2.45 |
| Immobilienmakler | CHF 5.74 | CHF 3.41 | CHF 6.11 | CHF 4.31 |
| Steuerberatung | CHF 6.15 | CHF 3.97 | CHF 3.99 | CHF 3.63 |
| Webdesign Agentur | CHF 9.41 | CHF 13.64 | CHF 9.60 | CHF 9.56 |
| Anwalt | CHF 6.42 | CHF 3.84 | CHF 4.01 | CHF 3.77 |
| Fenster kaufen | CHF 5.83 | CHF 4.71 | CHF 5.61 | CHF 4.70 |
| Elektriker | CHF 4.55 | CHF 1.93 | CHF 2.39 | CHF 2.45 |
| Maler | CHF 3.66 | CHF 3.13 | CHF 2.05 | CHF 3.36 |
| Dachdecker | CHF 2.08 | CHF 3.97 | CHF 1.29 | CHF 3.62 |
| Schreiner | CHF 1.51 | CHF 1.93 | CHF 1.21 | CHF 1.92 |
⚠ These are 30-day averages from April 2026 (DataForSEO, April 2026). Actual CPCs shift daily and even hourly. Use these as directional benchmarks, not fixed rates.
What stands out
Biggest regional CPC gaps (April 2026)
- Emergency plumbing: CHF 37.44 (Zürich) vs. CHF 8.72 (Solothurn) — 4.3× difference
- Electrician: CHF 4.55 (Zürich) vs. CHF 1.93 (Bern) — 2.4× difference
- Google Ads agency: CHF 54.39 (Zürich) vs. CHF 63.77 (Bern) — Zürich is cheaper
- Carpenter: CHF 1.21–1.93 — smallest regional gap of all 13 industries
Sanitär Notfall is the starkest gap. Zürich (CHF 37.44) costs 4.3× more than Solothurn (CHF 8.72). Both searches come from someone whose pipes are already flooding. The service is identical. The difference is how many plumbing businesses are competing for that moment of panic in each market.
Elektriker follows the same pattern. Zürich at CHF 4.55 versus Bern at CHF 1.93. More than double. Both cities are urban, both have strong purchasing power, but Zürich's density of electrical contractors bidding on the same keywords pushes every auction higher.
Umzugsunternehmen shows a clean staircase. Zürich CHF 14.14, Luzern CHF 10.30, Solothurn CHF 8.36. This is the clearest example of the city-size gradient — volume and competition decrease together as population drops.
The counterintuitive result
Not every big city costs more. Google Ads agency keywords are cheaper in Zürich than in all three comparison regions — evidence that CPC follows bidder aggression, not city size.
Google Ads Agentur is cheaper in Zürich (CHF 54.39) than in Bern (CHF 63.77), Luzern (CHF 61.46) or Solothurn (CHF 62.79).
That looks wrong. But it makes sense once you understand auction mechanics. In Zürich, dozens of agencies compete — budgets are spread across many bidders, and the competition normalises prices. In Bern or Solothurn, a handful of aggressive agencies bid with high maximum CPCs on thin volume. A small number of determined bidders in a low-volume market can push CPCs higher than a crowded one.
This is why "more competition = higher CPC" is an oversimplification. What actually matters is how aggressive the bidders are relative to the volume available.
Why location drives CPC
Short answer: the more active, well-funded bidders competing in a given region and industry, the higher the auction prices. Purchasing power, ad quality and competitor budgets all play a role — but bidder density is the strongest driver.
Google Ads runs a real-time auction for every search. The winner is not the highest bidder — it is the business with the best combination of bid and Quality Score. Quality Score captures ad relevance, expected click-through rate and landing page experience.
In Zürich, more businesses with professional campaign management compete for the same clicks. Budgets are larger. Quality Scores are often higher because accounts are better maintained. All of this pushes winning auction prices up, even for businesses with strong quality scores of their own.
Population density is a contributing factor but not the whole story. What really drives CPCs is the density of active, well-funded bidders in a given category and geography. A single determined competitor with a high-converting landing page and a large budget can meaningfully move CPCs for everyone else in a local market.
This is also why the same keyword can cost completely different amounts on the same day depending on the time. More on that below.
What moves prices hour to hour
Four factors shift CPCs daily: competitor daily budgets, Quality Score adjustments, seasonal demand and time of day. Monday mornings between 9 and 11am are consistently the most expensive window in local service industries.
Every click triggers a separate auction. Between two auctions for the same keyword, several things can change:
Competitor daily budgets. A business spending CHF 500/day may hit its budget cap by noon and drop out of auctions entirely. Anyone still bidding that afternoon faces less competition and pays lower CPCs. This pattern is common in local service industries — Monday and Tuesday mornings tend to have the most active bidding, Friday afternoons the least.
Quality Score adjustments. Google re-evaluates the relationship between your ad, keyword and landing page continuously. Two businesses bidding the same amount can pay meaningfully different CPCs if one has a higher Quality Score. A business that improves its landing page this week starts winning auctions cheaper next week.
Seasonal demand spikes. Moving companies pay more in April and May when demand peaks. Roofers pay more after storm events when the search volume spikes overnight. Tax advisors see CPC increases in the weeks before filing deadlines. Demand pulls more advertisers into auctions — prices follow.
Device and time-of-day patterns. Mobile searches and desktop searches often produce different CPCs for the same keyword. Many businesses apply bid adjustments by device and hour — a plumber might increase bids during work hours when commercial clients search, and reduce them at midnight.
The data in this article reflects 30-day averages. On any given day, a specific business might pay 20% more or less. What the averages show is the structural difference between markets — and that structural difference is real and persistent.
Three strategies, three regions
The right strategy depends on the market, not just the budget. Zürich demands precision. Bern and Luzern offer strong value. Rural regions are underrated when job value is high.
The regional CPC gap changes what a well-run campaign looks like.
Zürich requires precision over reach. At CHF 14–37 per click depending on industry, broad match keywords and loose targeting burn through budget fast. Exact and phrase match, tight negative keyword lists, and tightly themed ad groups are the baseline. Every irrelevant click at CHF 37 is a real cost. The upside: purchasing power is higher, and a well-converting campaign can sustain higher CPCs profitably. Improving your Quality Score is the fastest way to pay less per click without cutting budget. See our Swiss Google Ads benchmarks for what conversion rates look like at these price points.
Bern and Luzern offer a better starting point for most SMEs. Lower CPCs mean more clicks per CHF spent. Volume is lower than Zürich, but often that is fine — a local tradesperson does not need 200 leads a month, they need 10 good ones. The lower-competition environment also means that a well-structured campaign without professional management can still perform adequately, though the ceiling is lower too.
Rural regions are undervalued when job value is high. CHF 8 per click sounds small until you do the arithmetic: CHF 500/month buys around 60 clicks. If 10% convert and each job is worth CHF 2,000, that is CHF 12,000 in revenue from CHF 500 in ad spend. The volume will not scale, but for a single-person trades business with limited capacity, that may be exactly right. The risk is that search volume is thin enough that some months produce fewer leads than expected. Budget accordingly.
If you are unsure which approach fits your business, a free account audit will show you what the data actually looks like for your specific industry and region. For a full overview of what Google Ads management in Switzerland involves, visit our Google Ads services page.
CPC and search volume: DataForSEO / Google Keyword Planner, April 2026. Location codes: Zürich city (1003854), Bern city/district (20228), Luzern district (20227), Solothurn district (20229). Language: German (de). All values are 30-day averages and change continuously.
Quality Score methodology: Google Ads Help Center.

