GEO FAQ Hosting — Pick Your Setup¶
The GEO Agent generates SEO-optimized FAQ pages from real visitor questions. Three hosting setups exist for where those pages are served from. The right one depends on what tools you control and how much SEO authority your main domain already has.
Find yourself below. Each persona links straight to the recipe you need.
Quickest match — "Just tell me what to do"¶
| If this sounds like you... | Pick | Time |
|---|---|---|
| Trying GEO Agent, no DNS access yet | Rose-hosted (default) | 0 min — already live |
| You can edit DNS, that's about it | Subdomain (CNAME) | 5 min |
| You run a Next.js site on Vercel | Subdirectory via Vercel rewrites | 15 min |
| Your site is behind Cloudflare (orange cloud) | Subdirectory via Cloudflare Worker or Rules | 30 min |
| You're on Webflow / Wix / Squarespace / Shopify | Subdomain (CNAME) — easiest path. Subdirectory needs Cloudflare in front. | 5 min (or 60 min for subdirectory) |
| You manage your own Nginx / Apache origin | Subdirectory via reverse proxy block | 20 min |
| Enterprise stack on AWS CloudFront | Subdirectory via CloudFront behavior + Function | 45 min |
WordPress on a host that allows .htaccess mod_proxy |
Subdirectory via .htaccess |
15 min |
| WordPress on Kinsta / WP Engine / Pressable | Subdomain (CNAME) — managed hosts block proxy modules | 5 min |
Need detail on why? Keep reading — personas below.
Personas¶
Persona 1 — "I'm evaluating Rose and don't want to touch anything yet"¶
You: Marketing manager, growth lead, or founder running a quick GEO trial. No DNS access urgent enough to chase IT for.
Pick: Rose-hosted (default). Your pages are at faq.userose.ai/yourcompany.com/.... Nothing to do.
Trade-off: SEO authority and brand recognition land on faq.userose.ai, not your domain. Fine for trials, not for production scale-up.
Next step: Open your backoffice GEO page — your pages are already indexable. Migrate to subdomain or subdirectory once you're convinced.
Persona 2 — "I own DNS, that's about my limit"¶
You: Solo founder, marketing lead at a SaaS company, or someone who can log into Cloudflare/Route 53/Namecheap but doesn't want to touch CDN rules or web server configs.
Pick: Subdomain (CNAME) → faq.yourcompany.com.
Why: A single CNAME record (5 min) gets your brand on the URL and moves SEO authority to a domain you own. Rose provisions TLS and runs the rest.
Trade-off: Google treats subdomains as separate sites from www.yourcompany.com. Backlinks accrue to the subdomain, not your main domain. Strong setup, not the strongest.
Next step: Subdomain Setup (CNAME)
Persona 3 — "We're on Next.js / Vercel"¶
You: Modern web team running a Next.js app on Vercel (or Netlify with rewrites). You ship next.config.js changes every week.
Pick: Subdirectory via Vercel rewrites → www.yourcompany.com/faq/....
Why: Vercel rewrites are a one-line block in next.config.js. Deploys instantly. Your main-domain SEO authority directly powers the GEO content from day one — strongest possible setup with minimum effort.
The config:
// next.config.js
async rewrites() {
return [
{ source: "/faq", destination: "https://faq.userose.ai/yourcompany.com/frequently-asked-questions" },
{ source: "/faq/:path*", destination: "https://faq.userose.ai/yourcompany.com/:path*" },
];
}
Next step: Subdirectory Setup → Vercel / Next.js section
Persona 4 — "Cloudflare proxies our domain (orange cloud)"¶
You: Engineering team using Cloudflare as your CDN/WAF. You can edit Page Rules, Transform Rules, and deploy Workers.
Pick: Subdirectory via Cloudflare Worker → www.yourcompany.com/faq/....
Why: Cloudflare lets you intercept traffic before it hits your origin. Worker handles canonical guards, header injection, redirect rewrites cleanly. Dashboard rules alone can't do it: Origin Rules can only point at hostnames in your own Cloudflare account, and their overrides need an Enterprise plan.
Next step: Subdirectory Setup → Cloudflare Worker section
Persona 5 — "I'm on Webflow / Wix / Squarespace / Shopify / HubSpot CMS / Framer"¶
You: Marketing-led team running on a hosted no-code or low-code CMS. You can't SSH anywhere or edit a nginx.conf.
Default pick: Subdomain (CNAME) → faq.yourcompany.com. The CMS doesn't fight you, the setup takes 5 min, your brand is in the URL.
If you want subdirectory anyway: Put Cloudflare in front of your CMS first, then use the Cloudflare Worker recipe.
Steps for the subdirectory path:
- Move DNS for
www.yourcompany.comto Cloudflare (proxied, orange cloud). - Set Cloudflare SSL mode to Full (strict). Verify your CMS site still loads cleanly.
- Apply the Cloudflare Worker recipe on
/faq*route.
Effort: 60 min vs 5 min for subdomain. Worth it if your main www.yourcompany.com is a serious SEO asset.
Next step:
- Subdomain: Subdomain Setup (CNAME)
- Subdirectory: Subdirectory Setup → Hosted CMS section
Persona 6 — "We run our own Nginx or Apache origin"¶
You: Backend team running a classic VM or container setup. You own the web server config.
Pick: Subdirectory via reverse-proxy directive → www.yourcompany.com/faq/....
Why: Adding a location /faq/ { proxy_pass ... } block is 5 lines. Reuses your TLS cert, reuses your access logs, no new infrastructure.
Next step:
Persona 7 — "Enterprise stack on AWS CloudFront"¶
You: DevOps/platform engineering team running CloudFront in front of S3 / ALB / API Gateway. Change-managed via Terraform or CDK.
Pick: Subdirectory via CloudFront behavior → www.yourcompany.com/faq/....
Why: Add one cache behavior + a CloudFront Function. Terraform-friendly, audit-friendly, fits your existing change process.
Next step: Subdirectory Setup → AWS CloudFront section
Persona 8 — "WordPress — but which kind?"¶
Two sub-personas:
8a. Self-hosted WordPress on a VPS or cPanel host (with mod_proxy allowed):
- Pick: Subdirectory via .htaccess — 3 lines.
- Next step: Subdirectory Setup → WordPress section
8b. WordPress on managed host (Kinsta, WP Engine, Pressable, Flywheel, Bluehost):
- These hosts disable mod_proxy for safety. You can't reverse-proxy from inside WordPress.
- Pick: Subdomain (CNAME) as default. If your host offers a reverse-proxy option (Kinsta does, as a paid add-on), you can use the subdirectory setup instead; otherwise put Cloudflare in front of the host and use the Cloudflare Worker recipe.
- Next step: Subdomain Setup (CNAME), or Subdirectory Setup → Managed hosting
Persona 9 — "I'm an agency managing this for a client"¶
You: Marketing or SEO agency setting GEO up across multiple clients. You want a repeatable playbook.
Default playbook: Subdomain (CNAME) for every client. Five-minute DNS task per client, no per-client infrastructure work.
Upgrade path: For your top-tier clients with significant main-domain authority, upsell subdirectory as a higher-touch deliverable. One agency engineer can deploy a Cloudflare Worker per client in ~20 min once you have the template.
Next step:
- Playbook baseline: Subdomain Setup (CNAME)
- Upsell tier: Subdirectory Setup (Reverse Proxy)
Side-by-side comparison¶
| Rose-hosted (default) | Subdomain (CNAME) | Subdirectory (proxy) | |
|---|---|---|---|
| Example URL | faq.userose.ai/yourcompany.com/... |
faq.yourcompany.com/... |
www.yourcompany.com/faq/... |
| Setup time | 0 min | 5 min | 15–60 min |
| Who does work | Rose | You add DNS CNAME | You configure CDN/server |
| TLS certificate | Rose | Rose (auto-provisioned) | Yours (existing) |
| SEO authority lands on | faq.userose.ai |
faq.yourcompany.com |
www.yourcompany.com |
| Brand in URL | Rose | You | You |
| Works on hosted CMS | Yes | Yes | Only with Cloudflare in front |
| Failure mode if misconfigured | n/a | DNS error | Proxy / origin error |
| Switch later | Yes | Yes | Yes |
Decision tree¶
Do you have DNS access to your domain?
├── No → Rose-hosted (default). Done.
└── Yes
│
└── Is your main www.yourcompany.com a significant SEO asset?
│
├── No, or just starting out
│ → Subdomain (CNAME). 5 min. Strong setup.
│
└── Yes — established domain with backlinks and rankings
│
└── Do you have CDN / web server / Vercel access?
│
├── No → Subdomain (CNAME) for now. Upgrade later.
│
└── Yes → Subdirectory (reverse proxy). Max SEO.
│
└── Which stack?
├── Vercel/Next.js → next.config.js rewrites
├── Cloudflare-proxied → Worker or Rules
├── Nginx → location block
├── Apache → mod_proxy
├── CloudFront → behavior + Function
├── WordPress (self-hosted) → .htaccess
└── Hosted CMS → Cloudflare in front + Worker
What Rose handles in every setup¶
Regardless of which option you pick:
- FAQ HTML generation and hosting
- JSON-LD
FAQPagestructured data sitemap.xmlandrobots.txt- IndexNow submission to Bing / ChatGPT / Yandex
- Canonical URL enforcement (one indexable URL per question)
- Assets (CSS/JS/fonts) with CORS-safe headers
- TLS provisioning for custom subdomains
- 301 redirects when you change setups (your link equity is preserved)
You never write canonical tags, sitemaps, robots files, or structured-data markup yourself.
Do I need a cookie banner on the FAQ page?¶
No. The FAQ page sets no cookies and loads no analytics, ads or other third-party scripts: it holds only the page content, its structured data and the in-page search filter. Under GDPR and ePrivacy rules (CNIL guidance included), a consent banner is required only for non-essential cookies or trackers, so there is nothing to consent to.
You cannot add your own consent manager to the page: the backoffice page style editor (Config Studio → Content agent) accepts custom CSS, not scripts. This also keeps the page free of trackers you would otherwise have to declare.
Can I have one FAQ page per country or language?¶
Yes, when each market is its own Rose site (for example yourcompany.com/fr and yourcompany.com/en-gb next to yourcompany.com). Each market gets its own FAQ page and URL, written in that market's language and answered from that market's knowledge, so prices and offers stay local.
- A market's page shows the questions asked on its own pages, plus the questions asked in at least two of your markets.
- A question asked in only one market stays on that market's page.
- Pages link to each other for search engines, so Google shows each visitor the right language.
- A market needs enough visitor questions before its page is generated (20 relevant questions over the last 30 days by default, counting the shared ones).
- If your FAQ is served on your own site, each market needs its own path and its own proxy rule, for example
yourcompany.com/fr/faqoryourcompany.com/faq-frnext toyourcompany.com/faq. A market without its own path is served by Rose atfaq.userose.ai.
Ask your Rose contact to set up a market as its own site. Each market's page and its hosting are configured in the backoffice under Config Studio → Content agent, with that market selected in the site selector.
URL routes (identical across all setups)¶
| Path | Serves |
|---|---|
/frequently-asked-questions |
FAQ page (HTML + JSON-LD) |
/sitemap.xml |
Sitemap with <lastmod> from latest pipeline run |
/robots.txt |
Crawler policy + sitemap pointer |
Switching setups later¶
Not a one-way door. Tell us when you change:
- Default → Subdomain: add CNAME.
- Subdomain → Subdirectory: configure proxy. We 301 the old subdomain URLs to the new subdirectory URLs.
- Subdirectory → Subdomain: remove proxy, keep CNAME.
- Anything → Default: remove your DNS / proxy config.
In every transition Rose issues 301 redirects so existing links, bookmarks, and Google index entries follow you.
Still unsure?¶
Email your Rose contact with these three answers and we'll recommend the setup:
- What CMS / stack hosts
www.yourcompany.com? - Who has access to your DNS provider?
- Has your main domain been live for >12 months with active SEO work?
If 1 = managed CMS without infra access, 3 = no → Subdomain. If 1 = Vercel/Cloudflare/Nginx/CloudFront, 3 = yes → Subdirectory. Everything else: depends on how much SEO upside you want to chase.
Next steps¶
- Subdomain setup: FAQ Pages on Your Subdomain
- Subdirectory setup: FAQ Pages on Your Main Domain (Subdirectory)