<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Celestia Studio</title>
    <description>The latest articles on DEV Community by Celestia Studio (@celestia_studio).</description>
    <link>https://dev.to/celestia_studio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3970400%2F238bce5e-6809-4fa1-a6dd-8546822b8a9f.png</url>
      <title>DEV Community: Celestia Studio</title>
      <link>https://dev.to/celestia_studio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/celestia_studio"/>
    <language>en</language>
    <item>
      <title>A Cleaning Company Was Stuck at €1,000/Month. 24 Months Later: €10,000/Month.</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Sat, 27 Jun 2026 14:01:05 +0000</pubDate>
      <link>https://dev.to/celestia_studio/a-cleaning-company-was-stuck-at-eu1000month-24-months-later-eu10000month-32e3</link>
      <guid>https://dev.to/celestia_studio/a-cleaning-company-was-stuck-at-eu1000month-24-months-later-eu10000month-32e3</guid>
      <description>&lt;p&gt;A cleaning company in the south of France contacted us with no website, no Google Business Profile, and exactly one source of clients: word of mouth.&lt;/p&gt;

&lt;p&gt;Their monthly revenue: about €1,000.&lt;/p&gt;

&lt;p&gt;Twenty-four months later, that number is €10,000. Same owner, same services, same local market. The only thing that changed is that people who are already searching for what they sell can now find them.&lt;/p&gt;

&lt;p&gt;Here's exactly what we did, in order, with nothing left out.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Starting Point
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Quick answer:&lt;/strong&gt; Multi Services Nettoyage is a home services company based in Agde, France, offering cleaning for short-term rental properties (Airbnb-style turnover cleaning), pool maintenance, garden upkeep, and office cleaning. When they reached out, they had zero online presence and depended entirely on personal referrals. Monthly revenue: roughly €1,000.&lt;/p&gt;

&lt;p&gt;The demand for these services wasn't the problem. Short-term rental cleaning, in particular, is a growing market as Airbnb-style properties multiply along the coast. The problem was visibility. The business was invisible to anyone who didn't already know the owner personally.&lt;/p&gt;

&lt;p&gt;The goal was simple to state and hard to execute: build a digital presence that generates clients on its own, predictably, in a local market where roughly 80% of these searches happen on Google.&lt;/p&gt;




&lt;h3&gt;
  
  
  What We Actually Built
&lt;/h3&gt;

&lt;p&gt;We didn't start with design. We started with research: what do people in and around Agde actually type into Google when they need this kind of service? "Pool cleaning Agde." "Airbnb cleaning service Agde." Real queries, not assumptions.&lt;/p&gt;

&lt;p&gt;From there, we built the site with one dedicated page per service, each with titles and meta descriptions optimized for those exact queries, plus a fully completed Google Business Profile.&lt;/p&gt;

&lt;p&gt;In parallel, we launched geo-targeted Google Ads campaigns. This combination is deliberate: SEO builds durable, free visibility over time but takes weeks to ramp up. Ads generate leads immediately while SEO catches up. We also used local print flyers, a reminder that digital visibility doesn't exclude traditional channels when they fit the sector and the geography.&lt;/p&gt;




&lt;h3&gt;
  
  
  Three Phases Over 24 Months
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Phase 1 Building the site.&lt;/strong&gt; Design, development, conversion-focused copywriting. Someone searching "pool cleaning Agde" lands on a page about pool cleaning, not a generic homepage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2 SEO rollout.&lt;/strong&gt; On-page optimization for every page, content built around the local queries we'd identified, internal linking between service pages, local citations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3 Google Ads management.&lt;/strong&gt; Campaign setup, ad A/B testing, monthly bid and geo-targeting optimization, ongoing.&lt;/p&gt;

&lt;p&gt;Performance was reviewed regularly throughout, and the strategy was adjusted month by month rather than locked in from day one.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Numbers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;€1,000/month&lt;/strong&gt; starting revenue, 100% word-of-mouth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;€10,000/month&lt;/strong&gt; revenue after 24 months&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;+900%&lt;/strong&gt; growth in monthly revenue&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24 months&lt;/strong&gt; total duration of the engagement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 channels combined&lt;/strong&gt; optimized website, local SEO by service page, geo-targeted Google Ads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No inflated claims, no cherry-picked week. This is the trajectory over two full years.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Word of Mouth Has a Ceiling
&lt;/h3&gt;

&lt;p&gt;Word of mouth has a structural limit: it can't grow faster than the owner's personal network. Once that network is saturated, revenue plateaus. That's exactly where this business was before we started.&lt;/p&gt;

&lt;p&gt;Google works differently. It captures demand that already exists and is actively looking for a solution. Someone typing "Airbnb cleaning Agde" has an immediate need, not idle curiosity. Showing up on that search turns existing demand into a client, without depending on who happens to know whom. That shift, from a closed network to an open one, is the entire explanation for the jump from €1,000 to €10,000.&lt;/p&gt;




&lt;h3&gt;
  
  
  This Isn't Specific to Cleaning Companies
&lt;/h3&gt;

&lt;p&gt;We've worked with dozens of small French businesses since 2021, and the pattern repeats: the market potential is already there, only the visibility is missing.&lt;/p&gt;

&lt;p&gt;The three levers used here, a conversion-focused website, service-based local SEO, and Google Ads to bridge the SEO ramp-up time, apply to any local business currently dependent on word of mouth: tradespeople, independent professionals, neighborhood shops.&lt;/p&gt;




&lt;h3&gt;
  
  
  Three Takeaways
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Visibility comes before growth, not the other way around.&lt;/strong&gt; This business didn't need to lower prices or expand its offer to multiply revenue by 10. It needed to be found by the clients already looking for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. SEO and paid ads complement each other.&lt;/strong&gt; Ads generated leads while SEO ramped up. Without that combination, the business would have waited months before seeing any result at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. This was built over 24 months, not 24 days.&lt;/strong&gt; This isn't a promise of instant results. It's a gradual, durable build that still produces clients today, with zero dependency on word of mouth.&lt;/p&gt;




&lt;h3&gt;
  
  
  Key Facts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;€1,000 → €10,000&lt;/strong&gt;: monthly revenue change over 24 months&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;+900%&lt;/strong&gt;: total growth in monthly revenue&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24 months&lt;/strong&gt;: full duration of the engagement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;0% → 100%&lt;/strong&gt;: shift from total word-of-mouth dependency to a Google-driven client pipeline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 combined levers&lt;/strong&gt;: optimized website, service-page local SEO, geo-targeted Google Ads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sector&lt;/strong&gt;: home cleaning services (short-term rental turnover, pools, gardens, offices), local market in Agde, France&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  FAQ
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How did this business 10x its monthly revenue?&lt;/strong&gt;&lt;br&gt;
Three combined levers over 24 months: a website with one optimized page per service, local SEO built around real local search queries, and geo-targeted Google Ads to generate leads while SEO ramped up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How long did this take?&lt;/strong&gt;&lt;br&gt;
24 months, across three phases: site build, SEO rollout, then ongoing Google Ads management with monthly adjustments. This was not an overnight result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does this only work for cleaning companies?&lt;/strong&gt;&lt;br&gt;
No. The same three levers apply to any local business relying mainly on word of mouth tradespeople, independent professionals, local shops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why combine SEO and paid ads instead of picking one?&lt;/strong&gt;&lt;br&gt;
They solve different timelines. SEO takes weeks to months to build but is durable and free once in place. Ads generate leads immediately but stop the moment you stop paying. Combining both removes the main blind spot of using either alone.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Enzo Marcelle is the founder of &lt;a href="https://www.celestia-studio.fr" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt;, a Webflow agency based in Agde, France. We build local businesses a digital presence that compounds over time instead of one that disappears the moment you stop paying for it. &lt;a href="https://www.celestia-studio.fr/contact" rel="noopener noreferrer"&gt;Get in touch for a free local visibility assessment.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>marketing</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>My client was invisible on Google and AI search. 6 weeks later: page 1, +40 new clients, $0 in ads. Here's exactly what we did.</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Fri, 12 Jun 2026 20:22:33 +0000</pubDate>
      <link>https://dev.to/celestia_studio/my-client-was-invisible-on-google-and-ai-search-6-weeks-later-page-1-40-new-clients-0-in-ads-1dml</link>
      <guid>https://dev.to/celestia_studio/my-client-was-invisible-on-google-and-ai-search-6-weeks-later-page-1-40-new-clients-0-in-ads-1dml</guid>
      <description>&lt;p&gt;A local business owner came to us 3 months ago. Entertainment agency, been around for 10 years, solid reputation locally.&lt;/p&gt;

&lt;p&gt;Problem: zero online visibility. Anyone searching for their services in their city — on Google or on ChatGPT found their competitors instead.&lt;/p&gt;

&lt;p&gt;Their site existed. It just wasn't structured for how people search in 2026.&lt;/p&gt;

&lt;p&gt;Here's the full strategy:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. We rebuilt the site on a faster platform&lt;/strong&gt;&lt;br&gt;
Their old CMS was slow, bloated with plugins, and Google was penalizing them for it. We moved to something leaner. Core Web Vitals went from red to green across the board. Speed alone moved the needle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Schema markup&lt;/strong&gt;&lt;br&gt;
Added the right structured data for their business type. This is how Google AND AI tools like ChatGPT, Perplexity and Google AI Overviews understand what you do, where you are, and who you serve. Most businesses have zero schema. It's free to implement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. FAQPage structure&lt;/strong&gt;&lt;br&gt;
We identified the 5 questions their potential clients were actually typing online. Turned them into a proper FAQ with schema. ChatGPT now pulls directly from this when someone asks for recommendations in their niche.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. A "Quick Answer block"&lt;/strong&gt;&lt;br&gt;
A short 50-word paragraph at the top of each page that directly answers the main search query. No fluff. Just the answer. AI tools extract this verbatim.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Content depth&lt;/strong&gt;&lt;br&gt;
We created dedicated pages for each service and location they operate in. Not thin pages real, structured content answering what their clients actually search for. Each page targets a specific intent. This alone multiplied their indexed surface area.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. A blog strategy built around their clients' real questions&lt;/strong&gt;&lt;br&gt;
Not generic "tips" content. Articles targeting exact queries with commercial intent. Each article internally linked back to the core service pages. Google rewards this structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Local SEO foundation&lt;/strong&gt;&lt;br&gt;
Proper title tags, meta descriptions with city names, Google Business Profile fully optimized and linked to the new site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. AI visibility layer&lt;/strong&gt;&lt;br&gt;
On top of traditional SEO, we added a layer specifically designed for AI search engines. The site now tells ChatGPT, Perplexity and Google AI Overviews exactly who they are, what they do, and who they serve in a format these tools can extract and cite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Results after 6 weeks:&lt;/strong&gt;&lt;br&gt;
→ Page 1 Google for their main keyword&lt;br&gt;
→ Appearing in ChatGPT recommendations for their city&lt;br&gt;
→ +40 new client inquiries&lt;br&gt;
→ $0 spent on ads&lt;/p&gt;

&lt;p&gt;The window is still open. Most local businesses haven't touched any of this.&lt;/p&gt;

&lt;p&gt;Happy to answer questions what's your current biggest visibility challenge?&lt;/p&gt;

&lt;p&gt;Enzo Marcelle — Founder of &lt;a href="https://www.celestia-studio.fr/" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt;, Webflow agency specialized in GEO and AI citation optimization.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>seo</category>
      <category>webflow</category>
    </item>
    <item>
      <title>How to Build SEO + GEO-Optimized Niche Service Pages with Webflow CMS in 2026</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Thu, 11 Jun 2026 21:51:59 +0000</pubDate>
      <link>https://dev.to/celestia_studio/how-to-build-seo-geo-optimized-niche-service-pages-with-webflow-cms-in-2026-1ab5</link>
      <guid>https://dev.to/celestia_studio/how-to-build-seo-geo-optimized-niche-service-pages-with-webflow-cms-in-2026-1ab5</guid>
      <description>&lt;h2&gt;
  
  
  ARTICLE
&lt;/h2&gt;

&lt;p&gt;If you build websites for professional services — lawyers, physios, restaurants, accountants — here's a system that's quietly working very well in 2026.&lt;/p&gt;

&lt;p&gt;The idea: one CMS collection, one template, unlimited hyper-targeted service pages. Each page ranks for its own niche keyword and gets cited by AI engines.&lt;/p&gt;

&lt;p&gt;Here's the full technical setup.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Problem With Generic Service Pages
&lt;/h3&gt;

&lt;p&gt;Most agency websites have one &lt;code&gt;/services/seo&lt;/code&gt; or &lt;code&gt;/services/web-design&lt;/code&gt; page.&lt;/p&gt;

&lt;p&gt;That page tries to rank for every industry at once. It ends up ranking for none.&lt;/p&gt;

&lt;p&gt;The solution: &lt;strong&gt;one page per vertical&lt;/strong&gt;. &lt;code&gt;site-web-avocat&lt;/code&gt; for lawyers. &lt;code&gt;site-web-kinesitherapeute&lt;/code&gt; for physios. &lt;code&gt;agence-web-paris&lt;/code&gt; for location-based queries.&lt;/p&gt;

&lt;p&gt;Each page is a dedicated landing page with industry-specific content, stats, pricing, and FAQs. Each ranks independently.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Webflow CMS Setup
&lt;/h3&gt;

&lt;p&gt;Create a new CMS collection with these fields:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name           → Plain Text   → H1 title
slug           → Plain Text   → URL (/services/site-web-avocat)
seo-title      → Plain Text   → Meta title (max 60 chars)
seo-meta-desc  → Plain Text   → Meta description (max 160 chars)
tagline        → Plain Text   → Subtitle under H1
body           → Rich Text    → Full page content (HTML)
faq-q1–faq-q5  → Plain Text   → FAQ questions
faq-a1–faq-a5  → Plain Text   → FAQ answers (plain text — no HTML)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Keep FAQ answers as Plain Text, not Rich Text. This makes them directly usable in JSON-LD structured data without stripping HTML.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  The Body Structure (Order Matters for SEO + GEO)
&lt;/h3&gt;

&lt;p&gt;Every niche page follows this exact structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1.  Quick Answer &amp;lt;p&amp;gt;        — keyword in first 10 words, 40–60 words, no links
2.  Social Banner            — internal CTA component
3.  Intro                    — industry stat + pain point (max 2 sentences/paragraph)
4.  H2 "What is X?" (definition) — starts with "X is..." pattern for AI citation
5.  H2 "Top 5 agencies for X" — comparison table (you're #1, dark background)
6.  H2 "Why [Agency] for X?" — bulleted differentiators
7.  H2 "How to build X?"    — numbered steps
8.  H2 "How much does X cost?" — pricing table with overflow wrapper
9.  H3 E-E-A-T block        — real client case, named, with measured results
10. H2 "How to appear in ChatGPT as X?" — GEO section
11. H2 "Key Facts 2026"     — 5–7 standalone bullets (AI-citable)
12. CTA close               — WhatsApp + contact link
13. Author block             — photo + bio
14. Social Banner bottom
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three rules that affect AI citation performance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quick Answer must have no links&lt;/strong&gt; — AI engines extract clean text blocks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"X is..."&lt;/strong&gt; on the first H2 — every major AI citation study shows definitions get pulled first&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key Facts bullets&lt;/strong&gt; — each must be a complete standalone sentence, not a fragment&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Fix the One Webflow Rich Text Issue That Will Break Your Pages
&lt;/h3&gt;

&lt;p&gt;When you render CMS content in a Webflow Rich Text block, headings inherit the site's global styles — which are almost always too large for body content.&lt;/p&gt;

&lt;p&gt;Your H2s end up enormous. Your H3s look like H1s. It breaks the visual hierarchy and tanks your readability score.&lt;/p&gt;

&lt;p&gt;The fix: add this to your CMS template's &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; Custom Code. &lt;strong&gt;Use &lt;code&gt;.w-richtext&lt;/code&gt; as the selector&lt;/strong&gt; — not a custom class — because Webflow always applies this class to Rich Text elements regardless of what else is on the element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;26px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;700&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.3&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;48px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;600&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;32px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;12px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;line-height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1.75&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;ol&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;24px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;table&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-collapse&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;collapse&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;td&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.w-richtext&lt;/span&gt; &lt;span class="nt"&gt;th&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;12px&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#e0e0e0&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;left&lt;/span&gt; &lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Common mistake: using &lt;code&gt;.rich-text-block.w-richtext h2&lt;/code&gt; — this only works if your element has both classes. The safe selector is always &lt;code&gt;.w-richtext&lt;/code&gt; alone.&lt;/p&gt;

&lt;p&gt;Also: any &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt; you inject via the API will overflow on mobile. Wrap it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"overflow-x:auto;-webkit-overflow-scrolling:touch;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"min-width:600px;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- your table content --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This one wrapper saves you from every mobile layout complaint.&lt;/p&gt;




&lt;h3&gt;
  
  
  The JSON-LD Schema (3 Types in One Block)
&lt;/h3&gt;

&lt;p&gt;This is the part most agencies skip. It's also the part that drives AI citation.&lt;/p&gt;

&lt;p&gt;Place this in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; Custom Code of the CMS template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://schema.org"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"@graph"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"WebPage"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;seo-title&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;PlainText&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;seo-meta-description&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;PlainText&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;url&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;URL&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"datePublished"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;created-on&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Date&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"dateModified"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;updated-on&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Date&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Service"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;PlainText&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;seo-meta-description&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;PlainText&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"serviceType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Web Design &amp;amp; Development"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Organization"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Your Agency"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"FAQPage"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"mainEntity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Question"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;faq-q1&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;PlainText&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"acceptedAnswer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Answer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;faq-a1&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;PlainText&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;repeat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;faq-q&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;through&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;faq-q&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"BreadcrumbList"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"itemListElement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ListItem"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"position"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Home"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"item"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://youragency.com"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ListItem"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"position"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Services"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"item"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://youragency.com/services"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"@type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ListItem"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"position"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;seo-title&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;PlainText&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"item"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{wf {&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;path&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;url&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;URL&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;} }}"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;{{wf ...}}&lt;/code&gt; syntax is Webflow's variable binding — it dynamically injects the CMS field values at render time.&lt;/p&gt;

&lt;p&gt;Why this combination matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;WebPage&lt;/code&gt; → tells Google what this page is about&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Service&lt;/code&gt; → tells AI engines what service is being offered and by whom&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FAQPage&lt;/code&gt; → the single highest-impact schema for AI citation (ChatGPT pulls FAQ answers verbatim)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;BreadcrumbList&lt;/code&gt; → improves click-through rate in Google search results&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  The Publishing Flow (Via API)
&lt;/h3&gt;

&lt;p&gt;Once a page is written, it gets pushed via the Webflow API v2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 1. Create the item&lt;/span&gt;
&lt;span class="nx"&gt;POST&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;v2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;collections&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;collectionId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;/item&lt;/span&gt;&lt;span class="err"&gt;s
&lt;/span&gt;
&lt;span class="c1"&gt;// 2. Set isDraft: false (separate call for custom collections)&lt;/span&gt;
&lt;span class="nx"&gt;PATCH&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;v2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;collections&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;collectionId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;/items/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;itemId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nl"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;isDraft&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// 3. Publish the item&lt;/span&gt;
&lt;span class="nx"&gt;POST&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;v2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;collections&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;collectionId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;/items/&lt;/span&gt;&lt;span class="nx"&gt;publish&lt;/span&gt;
&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;itemIds&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;itemId&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// 4. Publish the site&lt;/span&gt;
&lt;span class="nx"&gt;POST&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;v2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;sites&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;siteId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;/publis&lt;/span&gt;&lt;span class="err"&gt;h
&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;publishToWebflowSubdomain&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Note: For custom CMS collections (not the built-in Blog collection), &lt;code&gt;_draft: false&lt;/code&gt; inside &lt;code&gt;fieldData&lt;/code&gt; doesn't work. You need a separate PATCH with &lt;code&gt;{"isDraft": false}&lt;/code&gt; at the root level.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  SEO Rules Before Publishing
&lt;/h3&gt;

&lt;p&gt;Two hard limits, no exceptions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Site web pour avocats | Celestia Studio&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 42 chars ✅&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;desc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Create your law firm website: Webflow, CNB-compliant, ...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// max 160 chars&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;OK&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;TOO LONG&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;desc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;160&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;OK&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;TOO LONG&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And for the body content:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sentences: max 20 words (split longer ones)&lt;/li&gt;
&lt;li&gt;Paragraphs: max 2 sentences per &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;Stats: min 5 bolded numbers with % or € in the body&lt;/li&gt;
&lt;li&gt;H2s: min 4 phrased as questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't style preferences. They directly affect the SEO tool scores that measure readability and keyword distribution.&lt;/p&gt;




&lt;h3&gt;
  
  
  Result After First Page Live
&lt;/h3&gt;

&lt;p&gt;First page (&lt;code&gt;site-web-avocat&lt;/code&gt;) published with this system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;7 H2 total, 6 phrased as questions ✅&lt;/li&gt;
&lt;li&gt;7 bolded stats with % or € ✅
&lt;/li&gt;
&lt;li&gt;Keyword in first 10 words of Quick Answer ✅&lt;/li&gt;
&lt;li&gt;Full &lt;code&gt;WebPage + Service + FAQPage + BreadcrumbList&lt;/code&gt; schema ✅&lt;/li&gt;
&lt;li&gt;Author block + social banners ✅&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next up: kinésithérapeutes, restaurants, coachs, artisans, and major French cities.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Compounding Effect
&lt;/h3&gt;

&lt;p&gt;This is why the system works at scale:&lt;/p&gt;

&lt;p&gt;Each page targets a keyword that a generic service page can't rank for. Each page has its own schema, its own FAQ, its own AI citation surface. Each new page adds to the internal link network.&lt;/p&gt;

&lt;p&gt;At 50 pages, every major French professional service vertical is covered. At 100 pages, geographic coverage begins. At 200+ pages, the compounding effect starts to show in GSC — consistent impressions across hundreds of long-tail queries, each with low competition.&lt;/p&gt;

&lt;p&gt;The investment per page: ~2–3 hours of content writing + 30 minutes of technical setup. The return: a permanent, crawlable, AI-citable entry point for that vertical.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Webflow CMS, Node.js for API calls, and Schema.org for structured data. All pages pushed programmatically — zero manual CMS editing after initial template setup.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Enzo Marcelle — &lt;a href="https://www.celestia-studio.fr" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt; — Webflow + SEO + GEO for professional services, France.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webflow</category>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to make your Webflow agency appear in ChatGPT results (GEO strategy, 2026)</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Thu, 11 Jun 2026 21:43:07 +0000</pubDate>
      <link>https://dev.to/celestia_studio/how-to-make-your-webflow-agency-appear-in-chatgpt-results-geo-strategy-2026-3nb8</link>
      <guid>https://dev.to/celestia_studio/how-to-make-your-webflow-agency-appear-in-chatgpt-results-geo-strategy-2026-3nb8</guid>
      <description>&lt;p&gt;In 2026, prospects searching for a Webflow agency don't always start on Google.&lt;/p&gt;

&lt;p&gt;They open ChatGPT and ask: &lt;em&gt;"what's the best Webflow agency in France?"&lt;/em&gt;. They get a list — with names, specialties, price ranges. If your agency isn't on that list, you don't exist for that prospect.&lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;GEO (Generative Engine Optimisation)&lt;/strong&gt; — the practice of making content citable by AI models. And it's already changing how agencies win clients.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why AI models cite some agencies and not others
&lt;/h2&gt;

&lt;p&gt;LLMs don't rank pages. They cite sources. The content they cite tends to share specific characteristics:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Factual structure&lt;/strong&gt;: numbers, prices, timelines, concrete case studies. A page saying "we are Webflow experts" will never be cited. A page saying "our Webflow CMS projects deliver in 6–10 weeks at €4,000–€12,000" has a real chance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;External coherence&lt;/strong&gt;: the same information appearing across multiple platforms (blog + Quora + Medium + dev.to) signals credibility to LLMs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No ambiguity&lt;/strong&gt;: conflicting information across platforms = the model avoids citing you entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I built and what happened
&lt;/h2&gt;

&lt;p&gt;I applied this framework to a comparison article: &lt;em&gt;Top 7 Webflow agencies in France — 2026&lt;/em&gt;. Each entry includes real data — specialty, price range, project type, ideal client.&lt;/p&gt;

&lt;p&gt;The article appeared in Perplexity results for "agence Webflow France" &lt;strong&gt;within 72 hours of publication&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Traditional SEO would take 3–6 months to rank for that query. GEO produced AI citations in 3 days.&lt;/p&gt;




&lt;h2&gt;
  
  
  The content structure that works
&lt;/h2&gt;

&lt;p&gt;The article uses a structure optimised for AI ingestion:&lt;/p&gt;

&lt;p&gt;H1 — Primary keyword + year&lt;br&gt;
Quick Answer block — 2-3 sentences, direct answer, numbers included&lt;br&gt;
H2 sections — one clear question per section&lt;br&gt;
Data tables — structured comparison data (agency, budget, specialty)&lt;br&gt;
FAQ block — 8-10 questions with direct answers&lt;br&gt;
Sources — 3 external citations for credibility signals&lt;br&gt;
Schema FAQPage JSON-LD — in page head&lt;/p&gt;

&lt;p&gt;This structure answers the exact format LLMs expect when generating a cited response.&lt;/p&gt;




&lt;h2&gt;
  
  
  The distribution layer
&lt;/h2&gt;

&lt;p&gt;The article alone isn't enough. GEO requires external signal reinforcement:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Quora&lt;/strong&gt; — answer the exact question your article answers, link back to it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medium&lt;/strong&gt; — publish a related article citing your data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;dev.to&lt;/strong&gt; — technical angle for developer audiences (this post)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn&lt;/strong&gt; — distribute to professional network, link in first comment&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each platform that references your data adds a credibility node. LLMs pick up on citation networks, not just individual pages.&lt;/p&gt;




&lt;h2&gt;
  
  
  For Webflow developers and agency owners
&lt;/h2&gt;

&lt;p&gt;If you're building or running a Webflow agency, the window to establish GEO authority is still open — but narrowing. The agencies that publish structured, data-rich content now will be the ones cited by default as AI search matures.&lt;/p&gt;

&lt;p&gt;Full comparison article — 7 best Webflow agencies in France: &lt;strong&gt;celestia-studio.fr/blog/meilleures-agences-webflow-france-2026&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Full GEO guide — what it is and how to implement it: &lt;strong&gt;celestia-studio.fr/blog/geo-referencement-ia-2026&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webflow</category>
      <category>seo</category>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to make your website appear in ChatGPT answers (GEO guide 2026)</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Tue, 09 Jun 2026 21:59:17 +0000</pubDate>
      <link>https://dev.to/celestia_studio/how-to-make-your-website-appear-in-chatgpt-answers-geo-guide-2026-2jdp</link>
      <guid>https://dev.to/celestia_studio/how-to-make-your-website-appear-in-chatgpt-answers-geo-guide-2026-2jdp</guid>
      <description>&lt;p&gt;Most websites are invisible to AI engines like ChatGPT, Perplexity, and Google AI Overviews.&lt;/p&gt;

&lt;p&gt;Not because of bad SEO because of bad *&lt;em&gt;GEO *&lt;/em&gt;(Generative Engine Optimization).&lt;/p&gt;

&lt;p&gt;Here's the technical checklist I use to fix that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What AI engines actually look for&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike Google (backlinks + keywords), LLMs select sources based on:&lt;/p&gt;

&lt;p&gt;Extractable content blocks (definitions, lists, tables)&lt;br&gt;
Verifiable author signals (E-E-A-T)&lt;br&gt;
Thematic domain consistency&lt;br&gt;
Structured data (Schema.org)&lt;/p&gt;

&lt;p&gt;**The technical checklist&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add llms.txt to your root**
# llms.txt
&amp;gt; [Your site name] — [one-line description]&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Priority content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[/blog/your-best-article]: Article title&lt;/li&gt;
&lt;li&gt;[/services/your-service]: Service description&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Enzo Marcelle: Webflow &amp;amp; GEO specialist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Structured data — FAQ schema&lt;/strong&gt;&lt;br&gt;
{&lt;br&gt;
  "&lt;a class="mentioned-user" href="https://dev.to/context"&gt;@context&lt;/a&gt;": "&lt;a href="https://schema.org" rel="noopener noreferrer"&gt;https://schema.org&lt;/a&gt;",&lt;br&gt;
  "@type": "FAQPage",&lt;br&gt;
  "mainEntity": [{&lt;br&gt;
    "@type": "Question",&lt;br&gt;
    "name": "What is GEO?",&lt;br&gt;
    "acceptedAnswer": {&lt;br&gt;
      "@type": "Answer",&lt;br&gt;
      "text": "GEO (Generative Engine Optimization) is..."&lt;br&gt;
    }&lt;br&gt;
  }]&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Content structure that LLMs extract&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What is X?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;X is&lt;/strong&gt; [direct definition in one sentence].&lt;br&gt;
[2-3 sentences of context]&lt;/p&gt;

&lt;p&gt;Key points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Term 1&lt;/strong&gt;: explanation (self-contained)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Term 2&lt;/strong&gt;: explanation (self-contained)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Author markup&lt;/strong&gt;&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real result&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Applied this for a client → position 1 Google in 5 days, 3 featured snippets, 0 backlinks.&lt;/p&gt;

&lt;p&gt;Full guide (FR) → &lt;a href="https://www.celestia-studio.fr/blog/geo-referencement-ia-2026" rel="noopener noreferrer"&gt;celestia-studio.fr/blog/geo-referencement-ia-2026&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webflow</category>
      <category>ai</category>
      <category>seo</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I've Fixed 30+ Invisible Websites. The Same 3 Problems Keep Showing Up.</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Sun, 07 Jun 2026 22:15:35 +0000</pubDate>
      <link>https://dev.to/celestia_studio/ive-fixed-30-invisible-websites-the-same-3-problems-keep-showing-up-1fob</link>
      <guid>https://dev.to/celestia_studio/ive-fixed-30-invisible-websites-the-same-3-problems-keep-showing-up-1fob</guid>
      <description>&lt;p&gt;90% of web pages receive zero organic traffic from Google. Not "very little." Zero.&lt;/p&gt;

&lt;p&gt;If your website is live but nobody is finding it, you are statistically in the majority. And the fix is almost always simpler than you think.&lt;/p&gt;

&lt;p&gt;I run &lt;a href="https://www.celestia-studio.fr" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt;, a Webflow agency based in the south of France. Since 2021, I've audited and rebuilt websites for small businesses across France. The same problems show up every time. Here are the three that account for roughly 80% of cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 1: Your site is telling Google to stay out
&lt;/h2&gt;

&lt;p&gt;This one sounds impossible but happens constantly.&lt;/p&gt;

&lt;p&gt;During website construction, most platforms activate a "noindex" setting to prevent Google from crawling an unfinished site. The site goes live. The setting never gets turned off. Google respects the instruction and ignores the site entirely.&lt;/p&gt;

&lt;p&gt;The fix takes 10 minutes. But some sites run this way for months without the owner knowing.&lt;/p&gt;

&lt;p&gt;Check it now: type &lt;code&gt;site:yourdomain.com&lt;/code&gt; in Google. If the result shows zero pages, your site is not in Google's index at all. Then open Google Search Console, go to URL Inspection, and check whether your main pages are indexed.&lt;/p&gt;

&lt;p&gt;In over 60% of the invisible sites I've audited, this was the cause.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 2: The content is too thin
&lt;/h2&gt;

&lt;p&gt;Google decides whether a page deserves to rank based on how well it answers a real question. A service page with 150 words and a contact button answers nothing.&lt;/p&gt;

&lt;p&gt;Thin content is not penalised in a dramatic way. It is simply ignored. Google crawls the page, finds nothing useful, and moves on. The page stays invisible.&lt;/p&gt;

&lt;p&gt;The threshold for a page that Google takes seriously is around &lt;strong&gt;600 words&lt;/strong&gt; with a clear structure: one question answered per section, concrete data, and a logical internal link to related pages. Without this, the page exists but competes with nothing and ranks for nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 3: The domain is too new
&lt;/h2&gt;

&lt;p&gt;New domains go through what is known as the Google sandbox period. For roughly &lt;strong&gt;3 to 6 months&lt;/strong&gt; after launch, Google is cautious about ranking a new domain on competitive terms, regardless of content quality.&lt;/p&gt;

&lt;p&gt;This is not a punishment. It is how the algorithm manages trust. A domain with no history and no external links is an unknown quantity.&lt;/p&gt;

&lt;p&gt;What actually helps during this period: submitting your sitemap to Google Search Console on day one, publishing at minimum one article per week, and getting a single external link from a trusted source.&lt;/p&gt;

&lt;h2&gt;
  
  
  The layer most people miss in 2026
&lt;/h2&gt;

&lt;p&gt;Even if your site is indexed and ranking on page one, there is a second visibility problem that did not exist two years ago.&lt;/p&gt;

&lt;p&gt;Google AI Overviews now appear on &lt;strong&gt;48% of searches&lt;/strong&gt;. These AI-generated summaries sit above the traditional blue links. A site that ranks position one but is not cited in the AI Overview loses up to &lt;strong&gt;61% of its usual click-through rate&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The rules for appearing in AI answers are different from classic SEO. Structured data, Schema.org markup, content written in extractable blocks, and an llms.txt file at the root of your domain all signal to AI systems that your content is citable.&lt;/p&gt;

&lt;p&gt;Most sites optimise for Google's ranking algorithm. Almost none optimise for AI citation simultaneously. That gap is where organic visibility is being lost right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fastest diagnostic you can do
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Type &lt;code&gt;site:yourdomain.com&lt;/code&gt; in Google. Count the results.&lt;/li&gt;
&lt;li&gt;Open Google Search Console. Check the Coverage section for indexed vs submitted pages.&lt;/li&gt;
&lt;li&gt;Ask ChatGPT to recommend a service like yours in your city. See if your business appears.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These three steps take under five minutes and tell you exactly where the problem is.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Enzo Marcelle is the founder of &lt;a href="https://www.celestia-studio.fr" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt;, a Webflow agency specialising in SEO and GEO for French businesses. Based in Agde, France.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>seo</category>
      <category>beginners</category>
      <category>google</category>
    </item>
    <item>
      <title>Vibe Coding Won't Replace Web Agencies. But It Will Replace Lazy Ones.</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Sat, 06 Jun 2026 20:46:40 +0000</pubDate>
      <link>https://dev.to/celestia_studio/vibe-coding-wont-replace-web-agencies-but-it-will-replace-lazy-ones-1lfd</link>
      <guid>https://dev.to/celestia_studio/vibe-coding-wont-replace-web-agencies-but-it-will-replace-lazy-ones-1lfd</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on Medium — celestia-studio.fr&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've rebuilt 4 AI-generated websites from scratch. Here's exactly what broke.&lt;/p&gt;

&lt;p&gt;In February 2025, Andrej Karpathy, OpenAI co-founder, posted on X: "There's no coding, only vibes."&lt;/p&gt;

&lt;p&gt;Vibe coding was born. Since then, thousands of entrepreneurs have tested tools like Bolt.new, Framer AI, or Durable to build their website in under 30 minutes, no developer needed.&lt;/p&gt;

&lt;p&gt;The visual results? Often impressive. The business results? Usually terrible.&lt;/p&gt;

&lt;p&gt;I run &lt;a href="https://www.celestia-studio.fr/" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt;, a Webflow agency based in the south of France. In the last 6 months, 4 clients came to us after trying AI website builders. Every single one had the same problems. Here's what I found.&lt;/p&gt;

&lt;h2&gt;
  
  
  What vibe coding actually does well
&lt;/h2&gt;

&lt;p&gt;Let's be honest. These tools are genuinely useful in specific situations.&lt;/p&gt;

&lt;p&gt;Validating an idea fast is the obvious one. Durable.co generated over &lt;strong&gt;1 million websites&lt;/strong&gt; since its 2023 launch. That's real demand for speed. Temporary landing pages work too: product launches, webinar sign-ups, event pages where SEO doesn't matter and the page disappears in two weeks. Same for personal portfolios with no conversion goals, or internal prototypes you're showing to investors before committing to a full build.&lt;/p&gt;

&lt;p&gt;For these use cases, vibe coding is a legitimate tool and a real time-saver.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it consistently fails at
&lt;/h2&gt;

&lt;p&gt;Here's where every AI-built site I've reviewed breaks down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SEO structure&lt;/strong&gt;. AI builders generate pages that look professional but are structurally broken for search engines. On 10 AI-built sites reviewed by SEO experts in 2025, &lt;strong&gt;9 had critical structural errors&lt;/strong&gt; preventing proper indexing. The pattern is always the same: multiple H1 tags on a single page, generic or duplicated meta descriptions, no alt text on images, zero internal linking, non-optimised URLs. Google sees none of what actually matters.&lt;/p&gt;

&lt;p&gt;Core Web Vitals. Google has included performance in its ranking algorithm since 2021. AI-built sites consistently score &lt;strong&gt;45 to 65 out of 100&lt;/strong&gt; on Lighthouse. A properly optimised Webflow site scores &lt;strong&gt;85 to 95&lt;/strong&gt;. A site that loads in more than 3 seconds loses &lt;strong&gt;32% of visitors&lt;/strong&gt; before they read a single line of content (Google, 2024).&lt;/p&gt;

&lt;p&gt;Conversion. The average conversion rate of a professionally optimised website sits between 2 and 5%. The average for an unoptimised AI site is &lt;strong&gt;under 1%&lt;/strong&gt;. On 1,000 monthly visitors, that's the difference between 10 and 50 leads. Forty potential clients lost every month. AI tools place buttons. A conversion expert places arguments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GEO, the layer nobody talks about&lt;/strong&gt;. This is the one costing businesses the most in 2026. &lt;a href="https://www.celestia-studio.fr/blog/geo-referencement-ia-2026" rel="noopener noreferrer"&gt;GEO (Generative Engine Optimization)&lt;/a&gt; is the practice of structuring your content so AI systems like ChatGPT, Perplexity, and Google AI Overviews can extract and cite your business in their answers. It requires Schema.org markup, structured data, and content formatted for extraction. AI website builders don't implement any of this. Sites without proper Schema.org have &lt;strong&gt;40% less chance&lt;/strong&gt; of appearing in generative AI answers (Princeton / Georgia Tech, 2023). For any local business trying to get recommended by AI in 2026, that's a structural disadvantage baked in from day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened with my 4 clients
&lt;/h2&gt;

&lt;p&gt;Each one came to us after 3 to 6 months online with an AI-built site. Zero Google indexation. No Schema.org. Lighthouse under 60. No leads.&lt;/p&gt;

&lt;p&gt;We rebuilt each site on &lt;a href="https://www.celestia-studio.fr/blog/creation-site-web-webflow-guide-complet" rel="noopener noreferrer"&gt;Webflow&lt;/a&gt;, kept the visual direction they liked, and added the strategic layer that was missing: SEO architecture, Schema.org, GEO optimisation, conversion structure.&lt;/p&gt;

&lt;p&gt;One of them went from &lt;strong&gt;0 to 3 Google Featured Snippets in 2 weeks&lt;/strong&gt; on a 3-month-old domain, with zero backlinks. The content was just structured correctly from the start&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest answer: AI or agency?
&lt;/h2&gt;

&lt;p&gt;Ask yourself one question: does my website need to generate revenue?&lt;/p&gt;

&lt;p&gt;If yes, you need a strategy, not just a visual. An AI tool builds the shape. An agency builds the engine.&lt;/p&gt;

&lt;p&gt;If your site is a test, a placeholder, or a personal portfolio with no commercial stakes, vibe coding is fine. Genuinely.&lt;/p&gt;

&lt;p&gt;But if 40 lost leads per month is a number that matters to your business, the maths on a professionally built site are straightforward.&lt;/p&gt;

&lt;p&gt;Enzo Marcelle is the founder of &lt;a href="https://www.celestia-studio.fr/" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt;, a Webflow agency specialising in SEO and GEO optimisation. Based in Agde, France&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>seo</category>
      <category>ai</category>
      <category>webflow</category>
    </item>
    <item>
      <title>How I Got 3 Google Featured Snippets in 2 Weeks With Zero Backlinks (On a 3-Month-Old Domain)</title>
      <dc:creator>Celestia Studio</dc:creator>
      <pubDate>Fri, 05 Jun 2026 20:29:56 +0000</pubDate>
      <link>https://dev.to/celestia_studio/how-i-got-3-google-featured-snippets-in-2-weeks-with-zero-backlinks-on-a-3-month-old-domain-3hep</link>
      <guid>https://dev.to/celestia_studio/how-i-got-3-google-featured-snippets-in-2-weeks-with-zero-backlinks-on-a-3-month-old-domain-3hep</guid>
      <description>&lt;p&gt;In May 2026, I published 7 articles for a client. The domain was 3 months old. No backlinks. No media partnerships. No existing authority.&lt;/p&gt;

&lt;p&gt;Two weeks later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 Google Featured Snippets at position 0&lt;/li&gt;
&lt;li&gt;Grok ranked the site #1 out of 69 crawled sources&lt;/li&gt;
&lt;li&gt;Third-party publishers cited the articles alongside Wikipedia with zero outreach&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not a theory post. Every result in this article is verifiable on Google right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Context
&lt;/h2&gt;

&lt;p&gt;My client is Cover Page Agency an event content creation agency operating in Dubai, Milan, and Lyon. In May 2026, the Monaco Grand Prix was 5 days away. We had a narrow window.&lt;/p&gt;

&lt;p&gt;We built a 7-article semantic cluster targeting the event: content creation agency, drone photography, brand activation, event staffing, hostess agency, yacht parties, after parties.&lt;/p&gt;

&lt;p&gt;The domain had launched in 2025. Zero link building. Zero authority on F1 or Monaco topics. By traditional SEO logic, we had no business ranking for any of these queries.&lt;/p&gt;

&lt;p&gt;We ranked for all of them. Three at position 0.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed: SEO vs GEO
&lt;/h2&gt;

&lt;p&gt;Traditional SEO is a race for authority. Domain Rating, backlinks, age. A 3-month-old domain can't win that race.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GEO is different.&lt;/strong&gt; Generative Engine Optimization is the practice of structuring content so that AI search engines Grok, ChatGPT Search, Perplexity, Google AI Overviews can extract and cite it directly.&lt;/p&gt;

&lt;p&gt;The key insight: &lt;strong&gt;what Google extracts for Featured Snippets in 2026 is almost identical to what AI engines look for when generating answers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Both want the same thing: clean, structured, standalone content that answers a question directly without requiring context.&lt;/p&gt;

&lt;p&gt;A well-structured article on a 3-month-old domain can beat a 10-year-old competitor — if the competitor's content isn't built for extraction. Most content isn't. That's the opportunity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 Techniques
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Key Facts Standalone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every article included a dedicated section of 5 to 7 facts. Each fact was written to be readable without any surrounding context. A number, a city, a price, a timeframe. Something an AI can pull and use in a response without needing the rest of the article.&lt;/p&gt;

&lt;p&gt;Grok doesn't read your article it extracts facts. If your facts aren't standalone, they don't get extracted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Definition Pattern on the First H2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every article's first H2 started with a direct definition of the core concept. "A content creation agency is...", "Brand activation at the Monaco Grand Prix is..."&lt;/p&gt;

&lt;p&gt;This pattern is the signal large language models look for when generating definitional answers. If your H2 gives it one, you win the citation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. FAQPage Schema : 10 Entries&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every article included a structured FAQ schema with exactly 10 question-answer pairs, pulled from real Google PAA results and tested on Grok, ChatGPT, and Perplexity.&lt;/p&gt;

&lt;p&gt;The rules: zero bold formatting, zero links, plain text only, 2–4 sentences maximum. Plain text extracts cleanly. Any formatting makes the extraction messy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Plain Text Quick Answer at the Top&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every article opened with a 2–3 sentence direct answer to the primary keyword. No bold, no links, no formatting. Pure text. This is the section Google extracts for paragraph-style Featured Snippets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Intra-Cluster Linking&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All 7 articles linked to each other not just to service pages. This creates a strong topical authority signal: Google understands these 7 pages form a structured topic, not 7 isolated pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Results Verified on Google FR, June 2026
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;"content creation agency monaco grand prix 2026" → &lt;strong&gt;Featured Snippet #0 + #1 + #5&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;"drone photography monaco grand prix 2026" → &lt;strong&gt;Featured Snippet #0 + #1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;"brand activation monaco grand prix 2026" → &lt;strong&gt;Featured Snippet #0 + #1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;"drone photography monaco" (UAE) → &lt;strong&gt;#1 organic&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;"monaco grand prix 2026 event staffing" (UAE) → &lt;strong&gt;#2 organic&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Part Nobody Expects
&lt;/h2&gt;

&lt;p&gt;Three weeks after publishing, a travel website called Pixidia published an article about Cannes 2026. In their sources section: Festival de Cannes, Wikipedia, SNCF Connect, Cannes Tourisme, and &lt;strong&gt;Cover Page Agency&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No outreach. No link request. They found the article through Google or Grok and cited it alongside the official institutions.&lt;/p&gt;

&lt;p&gt;This is the &lt;strong&gt;GEO flywheel&lt;/strong&gt;: structured content → Featured Snippet + AI citation → publishers discover the content → organic backlinks without outreach → stronger authority → easier Featured Snippets on the next cluster.&lt;/p&gt;

&lt;p&gt;The flywheel starts itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Replicate This
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; — Pick a tight cluster: 5 to 8 angles on the same subject.&lt;br&gt;
&lt;strong&gt;Step 2&lt;/strong&gt; — Extract real questions from Google PAA and test them on Grok and Perplexity.&lt;br&gt;
&lt;strong&gt;Step 3&lt;/strong&gt; — Write the Quick Answer in plain text at the top of every article.&lt;br&gt;
&lt;strong&gt;Step 4&lt;/strong&gt; — Start every first H2 with "X is..." every article, no exception.&lt;br&gt;
&lt;strong&gt;Step 5&lt;/strong&gt; — Add a Key Facts section: 5–7 standalone facts per article.&lt;br&gt;
&lt;strong&gt;Step 6&lt;/strong&gt; — FAQPage schema: 10 entries, plain text answers.&lt;br&gt;
&lt;strong&gt;Step 7&lt;/strong&gt; — Link every article to every other article in the cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Takeaway
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Structure now beats authority&lt;/strong&gt; on long-tail queries, event content, local topics, and niche expertise. A 3-month-old domain with clean GEO structure can take position 0 from a site that's been around for 10 years.&lt;/p&gt;

&lt;p&gt;We proved it in May 2026 on one of the most photographed sporting events in the world.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Enzo Marcelle — Founder of &lt;a href="https://www.celestia-studio.fr" rel="noopener noreferrer"&gt;Celestia Studio&lt;/a&gt;, Webflow agency specialized in GEO and AI citation optimization. Full case study: &lt;a href="https://www.celestia-studio.fr/blog/geo-3-featured-snippets-0-backlink-etude-de-cas-2026" rel="noopener noreferrer"&gt;celestia-studio.fr/blog/geo-3-featured-snippets-0-backlink-etude-de-cas-2026&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
