Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.siteline.ai/llms.txt

Use this file to discover all available pages before exploring further.

Run Siteline on closed website builders — including Webflow, Framer, HubSpot and similar hosted platforms — by routing traffic through Cloudflare and deploying the Siteline Cloudflare Worker on the edge.

Why this approach?

Hosted website builders don’t expose server logs or let you deploy custom middleware. A frontend JavaScript snippet won’t capture AI traffic because most AI bots and agents don’t execute JavaScript, measurement has to happen server-side. Putting Cloudflare in front of your builder inserts a server-side measurement layer that these platforms don’t natively provide. The Worker runs at the edge, forwards every request to your builder’s origin with zero added latency, and asynchronously logs request metadata to Siteline. You also get bot management, WAF rules, and easy subdomain hosting as bonus benefits.

How it works

Visitors and AI bots & agents now pass through Cloudflare before reaching your site, exactly as before. On the side, the Siteline Worker logs each request to Siteline asynchronously, your site’s response is never delayed or modified.

Prerequisites

  • A Siteline website key
  • A Cloudflare account (free tier is sufficient)
  • Admin access to your website builder and to your domain’s DNS

Setup

1. Add your domain to Cloudflare

1

Add the site in Cloudflare

In the Cloudflare Dashboard, click Add a domain and enter your domain (e.g. example.com). Choose the Free plan.
2

Update nameservers at your registrar

Cloudflare will display two nameservers (e.g. ari.ns.cloudflare.com). Replace your domain’s existing nameservers with these at your registrar (GoDaddy, Namecheap, Google Domains, etc.). Propagation typically takes a few minutes to a few hours.
3

Set SSL/TLS mode to Full

In Cloudflare go to SSL/TLS > Overview and set the encryption mode to Full (or Full (strict)). This ensures the connection from Cloudflare to your builder’s origin uses HTTPS, which is required by Webflow, Framer, and HubSpot.

2. Configure your website builder

Add your custom domain inside your website builder’s dashboard, then create matching DNS records in Cloudflare with the proxy enabled (orange cloud).
1

Add the domain in Webflow

In Webflow, open your project and go to Site settings > Publishing > Production. Click Add a custom domain and enter your domain. Webflow will display the exact A record IP(s) and CNAME target you need.
2

Add the records in Cloudflare

In Cloudflare go to DNS > Records and add the records Webflow gave you:
  • A record on @ pointing to Webflow’s published IP
  • CNAME record on www pointing to cdn.webflow.com
  • Set Proxy status to Proxied (orange cloud) on both
3

Publish in Webflow

Back in Webflow, click Check status next to your domain, then publish your site. SSL is provisioned automatically.
Always copy the IP and CNAME values directly from Webflow’s dashboard — Webflow updates these periodically (most recently in 2026 as part of their Cloudflare migration). Hard-coded values from older guides may be stale.
Reference: Webflow — Manually connect a custom domain.

3. Deploy the Siteline Worker in Cloudflare

Both Cloudflare’s DNS proxy and Workers run on Cloudflare’s free tier (100K Worker requests/day), which covers most sites.If you have higher traffic and wish to stay on the free tier you can scope your Worker routes to only the subdomains or paths that matter (e.g. your marketing site and blog, not your app dashboard). See Cloudflare Workers pricing for details.
1

Clone and install

git clone https://github.com/siteline-ai/siteline-cloudflare-worker.git
cd siteline-cloudflare-worker
npm install
2

Log in to Cloudflare via Wrangler (official CLI tool)

  • Trigger the login page
npx wrangler login
  • Allow Wrangler (Cloudflare’s official command-line tool) to access your account
3

Set your website key

  • Create an encrypted secret for your Siteline website key
npx wrangler secret put SITELINE_WEBSITE_KEY
  • Paste your key when prompted and press Enter
  • Enter Y when prompted if you want to create a new Worker with name siteline-cloudflare-worker
4

Deploy

npm run deploy
5

Configure routes

  • In the Cloudflare Dashboard, navigate to Compute & AI > Workers & Pages
  • Select siteline-cloudflare-worker > Settings > Domain & Routes > Add > Route
  • Select your project as the Zone and enter a route for the domains you’d like to track:
    • example.com/* — tracks all pages for your domain
    • *example.com/* — tracks all pages & subdomains
    We recommend tracking all content pages. If your blog is configured as a subdomain, use *example.com/* to capture both subdomains and root pages.
  • Set Failure Mode to Fail Open
  • Save

4. Verify

After the Worker is deployed and routes are configured, visit your site (or curl it) and check Agent Analytics in your Siteline workspace. You should see traffic appear within a few seconds. AI bot visits will be classified automatically.

Bonus benefits

Putting Cloudflare in front of your builder unlocks several useful capabilities:
  • Bot management & WAF rules — block or rate-limit unwanted crawlers without changing your builder configuration
  • Subdomain hosting — route blog.example.com, docs.example.com, etc. to different origins via Cloudflare
  • Edge caching — cache static assets at Cloudflare’s edge for faster page loads
  • Analytics — see request volume, cache hit rate, and threat data in the Cloudflare dashboard

Troubleshooting

Set Cloudflare’s SSL/TLS mode to Full under SSL/TLS > Overview. The default (“Flexible”) doesn’t work with Webflow, Framer, or HubSpot because they require HTTPS on the origin connection.
Double-check that the DNS record values in Cloudflare exactly match what your builder asked for. Then wait 15–80 minutes for propagation. You can verify propagation at dnschecker.org.
In Cloudflare, go to Workers & Pages > siteline-cloudflare-worker > Settings > Domain & Routes and confirm a route like example.com/* or *example.com/* is configured. Then run npx wrangler tail from the cloned repo to stream real-time logs from the Worker.
This usually means Cloudflare’s SSL mode is set to Flexible while your builder is forcing HTTPS. Switch to Full in SSL/TLS > Overview.
Run npx wrangler secret put SITELINE_WEBSITE_KEY from the cloned repo and paste the new key when prompted. No redeploy required.
Need help? Book a setup call and we’ll walk you through it for your specific builder.