Framer logo

Framer

Available · Beta

AI-led onboarding for Framer-hosted sites. SEORav inspects your project's Collections, proposes a smart routing plan ('articles → /blog, FAQ → /resources'), and you confirm before saving. Every publish from then on is instant — your articles ship into the right Collection with no further setup.

How it works

Framer organises content in CMS Collections — your blog posts in one Collection, FAQ items in another, case studies in a third. Every Framer site is laid out a little differently, so SEORav doesn’t try to force a one-size template. Instead, our onboarding wizard inspects your project once, proposes a routing plan that maps each SEORav content type to the right Framer Collection, and lets you tweak it before saving.

Once saved, the plan drives every publish: when SEORav generates an article it consults the plan, picks the right Collection, and ships the post — title, body, hero image, SEO fields and all. No further AI is invoked at publish time, so publishing stays fast and deterministic. Re-run the wizard any time your Framer setup changes.

What we support

FeatureSupportedNotes
Publish + update + unpublish YesFull CRUD. Updates are idempotent — re-publishing the same article updates the existing item, never duplicates.
Smart routing setup YesOne-time AI analysis at onboarding decides which Collection is the blog, which is FAQ, which to ignore. Editable + re-runnable from the connection detail page.
Multiple Framer projects per site YesEach Framer project has its own API key, so you can connect e.g. yourbrand.com + yourblog.com under one SEORav site.
Articles + FAQ pages YesOne Framer connection handles both. Articles route to your blog Collection; FAQ items route to your FAQs Collection.
Cluster-aware routing YesRouting rules can match on topic cluster, template, or keyword. E.g. "Customer Stories cluster → /case-studies" while everything else falls to /blog.
Markdown body YesLong-form content ships as markdown — Framer renders natively without any setup on your side.
External hero image URL YesPass an image URL and Framer ingests it on publish. Large or unusual files get re-uploaded automatically.
Native scheduling NoScheduled publishes are held in SEORav's queue and fire at the scheduled time. You won't see a "scheduled" state inside Framer.
Per-item JSON-LD injection PartialA one-time site-wide template (we provide the snippet) renders structured data on every CMS page. Per-item JSON-LD via the API is on the roadmap.
Auto-deploy to production YesToggle during onboarding. Off by default — review the post in Framer before pushing live. On — push to production on every publish.
Multi-locale fan-out Nov1 supports your project's primary locale only. Locale fan-out is on the roadmap.

Setup

  1. 1

    Open your Framer project

    Sign in at framer.com and open the project you want SEORav to publish into. Each Framer project gets its own SEORav connection — if you have multiple sites (e.g. yourbrand.com + yourblog.com), you’ll run this wizard once per project.

  2. 2

    Generate the per-project API key

    In Framer: click your avatar (top-right) → Site Settings → General → API Keys → Generate. Framer shows the key once — copy the full string.

    Framer keys are per project. If you connect several Framer sites, each will need its own key.
    Server API access requires a paid Framer plan (Basic or higher). If your project is on Free, SEORav will surface an upgrade prompt automatically.
  3. 3

    Copy your project URL

    Your browser address bar shows https://framer.com/projects/<uuid> — copy the whole URL. SEORav uses it to identify the project on publish and to keep multiple Framer sites separate.

  4. 4

    Connect inside SEORav

    In your dashboard: Publishing → Add an integration → Framer. Paste the project URL and the API key, then Analyze my Framer. The wizard verifies the key, inspects your Collections, and proposes a routing plan in 5–15 seconds.

  5. 5

    Review the routing plan

    You’ll see one row per Collection — what we think it should be used for, with a confidence badge. Override any row, pick your default article + FAQ destinations, optionally enable Auto-deploy to production, and click Save and connect.

    From this point, every published article consults the saved plan instantly. No more setup needed.

The routing plan

Once you save the wizard, SEORav stores your plan and consults it on every publish. Rules are evaluated in order (first match wins); if nothing matches, the article goes to your default destination. The plan is editable from the connection detail page at any time:

json
// Your saved routing plan. Built once at onboarding, edited
// inline, used on every publish. No further AI calls until you
// click Re-analyze.
{
  "overall_reasoning":
    "Found 4 Collections — 2 article targets, 1 FAQ target, 1 unrelated.",
  "collection_roles": [
    { "collection_id": "c-blog",  "role": "article_target",
      "reasoning": "Standard blog shape (title + body + SEO fields).",
      "confidence": 0.95 },
    { "collection_id": "c-cases", "role": "article_target",
      "reasoning": "Customer story pattern (customer field + long-form body).",
      "confidence": 0.85 },
    { "collection_id": "c-faqs",  "role": "faq_target",
      "reasoning": "Question + Answer field pair.",
      "confidence": 0.90 },
    { "collection_id": "c-team",  "role": "unrelated",
      "reasoning": "Team-member directory; not for publishing.",
      "confidence": 0.99 }
  ],
  "rules": [
    { "match": { "cluster_name": "Customer Stories" },
      "target_collection_id": "c-cases",
      "explanation": "Customer Stories cluster → /case-studies." }
  ],
  "default_article_collection_id": "c-blog",
  "default_faq_collection_id":     "c-faqs"
}

Supported match keys

PropertyTypeDescription
entity_typestringRoutes by content type — "article" or "answer_page" (FAQ pages).
cluster_namestringRoutes by topic cluster — e.g. "Customer Stories" → a dedicated case-studies Collection.
cluster_instring[]Same as cluster_name but matches against a list of clusters.
keyword_containsstringRoutes by keyword substring — e.g. articles whose keyword contains "review" go to a Reviews Collection.
template_patternstringRoutes by article template — e.g. "howto_tutorial" → /guides, "glossary_card" → /glossary.

Conditions inside a single rule are AND-ed. An empty match object is a catch-all — useful as a final rule before falling through to the entity defaults.

Re-analyze when your Framer setup changes

If you add a Collection in Framer, rename fields, or build out a new content type, the saved routing plan can go stale. From the connection detail page click Re-analyze — the same modal opens, SEORav uses your stored credentials (you never re-paste your API key), inspects the current Framer layout, and proposes an updated plan. Confirm and save to replace the previous version.

Re-analyze is the only path that runs an extra AI step after onboarding. Most customers click it once a quarter, if at all.

Security

Your Framer API key is encrypted at rest with AES-256-GCM — the same standard used by online banking. The key never leaves the SEORav server after you paste it; even when you click Re-analyze, your browser only sends the connection ID, not the key itself. You can revoke the connection from your dashboard at any time; SEORav stops publishing immediately.

Known limits

PropertyTypeDescription
Free Framer plansunsupportedServer API access requires Basic or higher. SEORav surfaces this on connect.
Native schedulingunsupportedFramer's API doesn't accept future publish dates. SEORav holds scheduled posts in its own queue and fires at T-0.
Bulk publishthrottledSEORav paces bulk pushes at 1 article / second so we don't trip rate limits on Framer's side.
Webhook callbacksnot availableFramer doesn't emit webhooks for CMS item changes today. SEORav's healthcheck cron picks up any token revocation within 24h.

References