AI Search for Specialty Coffee in Marseille (2026):Marseille breaks the entity-engine pattern
TL;DR: Across our four prior cross-vertical studies (Paris yoga, Berlin yoga, Amsterdam bikes, Tokyo bookstores) ChatGPT cited shop or studio websites about 32% of the time. For Marseille specialty coffee, it’s only 10%. Instead, 77% of ChatGPT’s Marseille citations go to third parties — 31% Reddit, 32% review-aggregators, 14% French local blogs. The entity-engine assumption inverts here. Instagram returns 237 cites — the highest social-platform signal in any cross-vertical study so far. By the “does the engine actually say the brand name in the answer” metric, Deep is the consensus winner — named in 61.5% of ChatGPT captures and across all five engines. Marseille is the city where the local-blog and Instagram ecosystem is the AI search ecosystem.
Executive Summary
For the first time across four cross-vertical replications, the entity-engine assumption breaks. Marseille specialty coffee runs on third-party sources — not shop websites.
We’ve now run the same AI-search playbook across four cities and verticals: Paris yoga, Berlin yoga, Amsterdam bikes and Tokyo bookstores. In all four, ChatGPT cited the entity’s own website roughly 32% of the time — the consistent ChatGPT-as-entity-engine baseline. For Marseille specialty coffee, that number collapses to 10%. The missing 22 points don’t go to a single source — they go to a trio: 31% Reddit, 32% review-aggregators (Wanderlog, Mapstr), 14% French local blogs (marseille.love-spots.com, marseillesecrete.com, tarpin-bien.com, lescachotteriesdemarseille.com). That’s 77% of ChatGPT’s Marseille answers grounded in third-party content.
The mechanism is the same one Berlin showed: source mix bends toward the local commercial and editorial infrastructure of a city. Marseille just has an unusual infrastructure — a small specialty-coffee scene with a weak digital footprint (only 114 of 280 shops have a website at all), a heavy Instagram-native discovery layer (237 cites, our highest social signal anywhere), and a dense thicket of French micro-guides covering the city. AI engines mirror what’s out there. Where the documentation lives, the citations follow.
Source mix by platform
For every cited URL we bucketed the source into one of ten categories. The mix per engine is the cleanest way to see why Marseille breaks the pattern — especially compared to the consistent shop/studio-website share we measured in three earlier cities.
Still entity-engine — but at 83%
The 95–97% Copilot norm we measured in yoga and bikes drops to 83% in Marseille. Even the engine that goes hardest on shop websites loses 12 points here. The weak digital footprint of Marseille specialty coffee — most shops without a website — forces Copilot to spend the rest of its citations on the long tail it usually ignores.
Swings to global trade press: 34%
With no Marseille-specific specialty-coffee press to lean on, Gemini reaches for the global trade press instead. baristamagazine.com alone returned 95 citations — more than any shop website on Gemini, and roughly 34% of Gemini’s Marseille citations.
Leads with local editorial: 27%
Perplexity leans on the French local-guide ecosystem more than any other engine — 27% of its Marseille citations go to marseille.love-spots.com, marseillesecrete.com, tarpin-bien.com and similar French micro-guides. Where Marseille is documented in French, Perplexity finds it.
The ChatGPT inversion
One number tells the whole story of this article. ChatGPT’s shop-website citation share for Marseille specialty coffee is the lowest we’ve measured in five cross-vertical replications — and the gap to the other “city + scene” cases is what makes it interesting.
| City + vertical | ChatGPT shop-site % | Signature non-shop source |
|---|---|---|
| Paris yoga | 32% | Reddit (16% of all ChatGPT URLs) |
| Berlin yoga | 32% | Urban Sports Club blog |
| Amsterdam bikes | 42% | |
| Tokyo bookstores | 8% | whenin.tokyo + Tokyo Weekender |
| Marseille coffee | 10% | Reddit + Instagram + FR local blogs |
The Instagram signal
One domain stands out so far above the rest of the social layer that it deserves its own section.
No other city/vertical pushes Instagram this hard.
In Paris yoga, Berlin yoga, Amsterdam bikes and Tokyo bookstores, the dominant social signal was Reddit — Instagram barely registered (single digits to low double digits at most). For Marseille specialty coffee, Instagram joins Reddit as a co-equal source: Reddit at 175 cites, Instagram at 237.
Marseille specialty coffee is an Instagram-native scene. Many of the top shops document themselves there in preference to a website — Nua is the cleanest example: no website, only an Instagram account, and ChatGPT’s answers cite that Instagram URL as the primary source. AI engines reflect this by surfacing Instagram URLs as primary citations rather than social-proof addenda. If you’re ranking a Marseille café for AI visibility, “own your Instagram” is closer to truth than “own your website.”
Gemini’s substitute
When the local layer Gemini usually leans on doesn’t exist, it reaches one rung up.
baristamagazine.com citations on GeminiThe generalisable lesson
Gemini’s source preference is consistent across our studies, but it’s a shape more than a fixed set: “an authoritative editorial outlet for this domain.” The identity of that outlet is locale-dependent.
- ·Berlin yoga → the Urban Sports Club blog filled the slot.
- ·Tokyo bookstores → the local-guide web (whenin.tokyo, Tokyo Weekender) filled it.
- ·Marseille coffee → with neither a deep local-guide layer nor a Marseille-specific specialty-coffee press, Gemini reaches for the global specialty trade press.
For a domain-aware editorial outlet, the strategic implication is the inverse of the local-blog story: in cities where no local equivalent exists, a global trade publication can become the single largest Gemini citation source for that locale. Barista Magazine isn’t “about” Marseille — but on Gemini, for Marseille, it’s the source.
The Marseille Specialty Coffee AI Leaderboard
Aggregating shop mentions across the engines (chain locations merged), these are the most-cited Marseille specialty cafés. “Plats” is the number of platforms that surfaced the shop at all — a breadth signal.
| Rank | Shop | Text mentions | Cite score | Engines |
|---|---|---|---|---|
| #1 | Deep | 216 | 131 | 5 / 5 |
| #2 | 7VB Café | 147 | 66 | 5 / 5 |
| #3 | Café Lauca | 116 | 101 | 5 / 5 |
| #4 | Boujou Coffee | 105 | 54 | 5 / 5 |
| #5 | La Brûlerie MÖKA | 91 | 38 | 5 / 5 |
| #6 | The Coffee | 50 | 34 | 5 / 5 |
The same leaderboard, split by engine
Reading across a row: the share of each engine’s prompt-captures whose visible answer text names the brand (raw count in parentheses). Because each engine answered a different number of prompts (ChatGPT 91, Gemini / Copilot / Perplexity 92, AI Mode 46 — AI Mode × FR failed at the Bright Data trigger), raw counts aren’t comparable across columns, so we render them as rates.
Deep dominates the heatmap: named in 61.5% of ChatGPT’s captures, 57.6% of Gemini, 48.9% of Copilot, 46.7% of Perplexity and 41.3% of AI Mode — universal recommendation. 7VB Café and Boujou Coffee are similar broad winners. The two rows at the bottom (Nua, Le grand Duc by Jacks) are empty — they have the high citation-counted scores in the table above but engines almost never name them in answer text. Both have generic platform brand_keys (Nua → instagram.com, Le grand Duc → facebook.com), so the citation count inherits every cite to those platforms and inflates. By the “does the engine actually say the name” metric, Deep is Marseille’s real cross-engine consensus winner.
| # | Shop | AI Mode46 prompts | ChatGPT91 prompts | Perplexity92 prompts | Gemini92 prompts | Copilot92 prompts |
|---|---|---|---|---|---|---|
| 1 | Deep | 41.3%(19) | 61.5%(56) | 46.7%(43) | 57.6%(53) | 48.9%(45) |
| 2 | 7VB Café | 39.1%(18) | 34.1%(31) | 28.3%(26) | 45.7%(42) | 32.6%(30) |
| 3 | Café Lauca | 30.4%(14) | 46.2%(42) | 12%(11) | 5.4%(5) | 47.8%(44) |
| 4 | Boujou Coffee | 39.1%(18) | 41.8%(38) | 15.2%(14) | 14.1%(13) | 23.9%(22) |
| 5 | La Brûlerie MÖKA | 17.4%(8) | 22%(20) | 20.7%(19) | 38%(35) | 9.8%(9) |
| 6 | The Coffee | 8.7%(4) | 13.2%(12) | 8.7%(8) | 9.8%(9) | 18.5%(17) |
| 7 | Tarlata Café | 4.3%(2) | 11%(10) | 19.6%(18) | 1.1%(1) | 10.9%(10) |
| 8 | Café Barbotyne | 8.7%(4) | 6.6%(6) | 7.6%(7) | 0(0) | 16.3%(15) |
| 9 | Cali Kitchen | 17.4%(8) | 6.6%(6) | 2.2%(2) | 1.1%(1) | 14.1%(13) |
| 10 | Maison Nosh | 4.3%(2) | 5.5%(5) | 5.4%(5) | 3.3%(3) | 13%(12) |
| 11 | Nua | 0(0) | 0(0) | 0(0) | 1.1%(1) | 0(0) |
| 12 | Le grand Duc by Jacks | 0(0) | 0(0) | 0(0) | 0(0) | 0(0) |
Cell = % of that engine’s captures in which the brand was named in the visible answer text; raw count in parentheses. Rows ordered by total text mentions (matching the leaderboard above). Colour scales with the table maximum (Deep on ChatGPT). Zeros greyed. Hover a cell for the underlying counts.
Where the winners are
The 12 leaderboard brands plotted on the map — chains show all their locations (Café Lauca, Boujou and La Brûlerie MÖKA have two each). Click a marker for the per-engine text-mention breakdown.
Top 12 most-cited brands — locations, popups show per-engine text mentions
Top cited sources, cross-platform
Every domain cited by at least 3 of 5 platforms with 30+ cites. Read this as the working infrastructure of AI search for Marseille specialty coffee.
| Platforms | Cites | Bucket | Domain |
|---|---|---|---|
| 4 / 5 | 175 | social | reddit.com |
| 4 / 5 | 93 | editorial — local | marseille.love-spots.com |
| 4 / 5 | 76 | review aggregator | wanderlog.com |
| 4 / 5 | 54 | entity website | cafelauca.com |
| 4 / 5 | 36 | editorial — local | marseillesecrete.com |
| 3 / 5 | 237 | social | instagram.com |
instagram.com at 237 cites is the row to notice. It shows up on 3 of 5 platforms with the highest single-domain count outside AI Mode’s Google self-citations — and no prior city or vertical in this series has surfaced Instagram even close to that volume. Reddit (175 cites, 4 platforms) is the more “expected” social signal; Instagram is the Marseille-specific one.
EN vs FR — the sharpest split we’ve seen
Same intent, different language, different shops. For Marseille the divergence is the largest in the cross-vertical series so far.
| Template | EN vs FR top-5 overlap |
|---|---|
| dist_cours_julien | 67% |
| price_cheap | 43% |
| dist_panier | 43% |
| brew_pourover | 25% |
| brew_espresso | 25% |
| brew_coldbrew | 25% |
The control prompt overlaps just 11% — only 1 of the top 5 shops matches between English and French. For comparison, Berlin’s control was 25% and Paris yoga’s was 25%. Marseille is roughly half as language-stable as the previous two non-anglophone replications.
The cause is structural and follows directly from the source mix: with so little global specialty-coffee press covering Marseille, English prompts pull from a small English-language source set (Reddit threads, Wanderlog, Barista Magazine) while French prompts pull from the dense Marseille local-blog web (marseille.love-spots.com, marseillesecrete.com, tarpin-bien.com). Two languages, two largely disjoint citation universes — and two largely disjoint top-5 shop lists as the downstream consequence.
TLD bias — honestly, the sample is too thin
We’d normally render an EN vs FR split of .com vs .fr citations here. For Marseille specialty coffee, the sample doesn’t support it.
Only .com cleared the ≥5-cite threshold — and even there the directional signal (.com cited about 4× more by FR than EN prompts, n=10) sits below the noise floor we trust. Marseille specialty cafés use .fr so rarely — only ~22 of 280 shops have a website at all — that the .fr sample is too small to read cleanly. This is a measurement limitation, not a finding. We’re flagging it transparently rather than over-claiming a pattern the data can’t support.
Geography — and a null test that is a measurement story
Marseille’s specialty cafés cluster heavily in a handful of central quartiers. The visual below shows the by-district counts — but the per-district AI accuracy test reads as zero, and that zero is methodological, not behavioural.
All 280 cafés on the map
The full reference set the answers were resolved against — every verified Marseille specialty café. Hover a dot for the name and district. The density follows the central waterfront and creative-quarter neighbourhoods (Vieux-Port, Notre-Dame-du-Mont, Cours Julien) rather than the outlying arrondissements.
All 280 verified Marseille specialty cafés
The supply side: where Marseille coffee actually is
The same distribution as counts — central quartiers dominate, the outlying arrondissements barely show up.

Where Marseille fits in the four-city picture
One row per city in the cross-vertical series, on the two axes that matter most for the entity-engine pattern: ChatGPT’s shop-website citation share, and the signature non-shop source the engine leans on instead.
| City + vertical | ChatGPT shop-site % | Signature non-shop source |
|---|---|---|
| Paris yoga | 32% | |
| Berlin yoga | 32% | Urban Sports Club |
| Amsterdam bikes | 42% | |
| Tokyo bookstores | 8% | whenin.tokyo + Tokyo Weekender |
| Marseille coffee | 10% | Reddit + Instagram + French local blogs |
What still generalises
- Per-engine personalities hold. Copilot is still the entity engine; Perplexity still the most diverse mix; Gemini still concentrates on one editorial vein; AI Mode still self-cites Google.
- Source mix bends to local infrastructure. Berlin (Urban Sports Club), Tokyo (local-guide web), Marseille (Reddit + Instagram + FR micro-guides) — same mechanism, different substrate.
- Language and proxy reshape the answer. EN/FR divergence widens further here, but the direction is the same as Paris and Berlin.
What Marseille adds
- The entity-engine baseline isn’t a law. The ~32% ChatGPT shop-site share we’d been treating as a constant is conditional on shops owning a digital footprint. When they don’t, it can drop to 10%.
- Instagram can be a primary AI citation source. Not just social proof — a top-3 cited domain on 3 of 5 engines.
- Gemini will substitute upward. No local specialty press → global trade press fills the slot. The shape of the source preference is fixed; the identity isn’t.
AI search behaviour — and an operational caveat
The plumbing notes for this dataset, including a reproducible Bright Data quirk that bit two of our studies in a row.
Study design
Data collection
- 22 prompt templates × 2 languages (EN/FR) × 2 proxy countries (US/FR) × 5 AI engines
- Engines: ChatGPT, Perplexity, Gemini, Copilot, Google AI Mode
- Captured 2026-05-28 via Bright Data
- 413 captures, 3,442 cited URLs, 786 distinct map entities
- 9 of 10 platform×proxy batches resolved — AI Mode × FR rejected
What we measured
- Shops named per answer (chain-aggregated leaderboard)
- Cited URLs bucketed into a 10-bucket source taxonomy
- EN vs FR top-5 overlap per prompt template
- .com vs .fr citation balance by prompt language (sample-limited)
- Per-platform social and review-aggregator share
- Cross-city comparison vs Paris yoga, Berlin yoga, Amsterdam bikes, Tokyo bookstores
How we turned answers into shops: the NER pipeline
AI answers are free text — “Nua is the obvious one, then maybe try Deep in the Vieux-Port, or Tarlata…” — not a clean list of businesses. To count anything, we first had to extract the shop mentions. Each answer (and each citation’s anchor text) ran through a named-entity-recognition (NER) pass that works in four steps:
- Span detection. A transformer NER model tags candidate spans — organisation/business names and the location phrases attached to them (quartier names, street addresses, “Vieux-Port,” “Cours Julien”). A coffee-specific gazetteer (“café,” “brûlerie,” “coffee,” “roasters”) boosts recall on names the base model would otherwise miss.
- Normalisation. Each candidate is lower-cased and stripped of boilerplate — the word “Marseille,” quartier suffixes, trademark glyphs and punctuation — so “Nua Coffee Roasters Marseille” and “Nua” collapse toward the same key.
- Entity resolution. Normalised mentions are matched to a 285-row Apify Google Maps seed of Marseille specialty cafés (280 retained after filtering bakeries, restaurants and tea houses — only 5 misclassifications). Fuzzy string similarity plus a domain match when the answer cited the shop’s own website. Ambiguous or sub-threshold spans are dropped.
- Chain aggregation. Resolved entities that belong to the same brand are merged so a multi-location shop isn’t double-counted, while per-location coordinates are retained for the map.
A taxonomy pass also tightened the source bucketing: pre-pass, “other” held 54% of Marseille citations because the French local-blog tail was unfamiliar to the default classifier. Post-pass, “other” sits at 9% — the French micro-guide ecosystem bucketed cleanly into editorial_local.
Caveats
- AI Mode × FR proxy is missing. Bright Data rejected the batch at the trigger layer (HTTP-level, no snapshot ID). The same FR-proxy block hit Paris yoga; AI Mode × DE worked in Berlin. FR-specific to AI Mode, not a one-off.
- .fr TLD sample is too thin to read. Only ~22 of 280 Marseille specialty cafés carry a website at all; .fr citation counts sit below our trust threshold. Section 8 is rendered as a measurement limitation, not a finding.
- District-targeting null is a seed-granularity artifact. The Apify seed labels every shop city = “Marseille” with no quartier field; the 0% accuracy across all six quartiers is methodological, not behavioural. Same Amsterdam/Berlin pattern.
- NER resolution is high-precision by design: mentions the pipeline can’t confidently map to the registry are dropped, so counts are conservative lower bounds.
- Google AI Mode’s heavy reliance on google.com URLs may inflate its citation count relative to other engines.
- Disclosure: no personal affiliation with any Marseille specialty coffee shop.