Case Study
We automated SEO for Framer
A Framer site needed a faster way to publish SEO content without copying articles, metadata, keywords, and schema by hand. We connected SEO Autopilot to a Framer CMS collection, mapped the real fields, generated JSON-LD, and made one-click publishing part of the content workflow.
The problem: Framer was great for design, but publishing SEO content was manual
The client’s marketing site was built in Framer. The design system was clean, the CMS page template was already in place, and the team liked how quickly they could manage landing pages.
The bottleneck was SEO publishing. Every article had to be generated, copied into Framer, formatted, assigned a slug, given a summary, tagged with a target keyword, and paired with structured data. The work was repetitive, easy to get wrong, and slow enough that finished articles often sat unpublished.
The team did not need another content spreadsheet. They needed SEO Autopilot to become the system that created the article and then pushed the right fields into Framer CMS.
| Before automation | Impact |
|---|---|
| Articles were copied manually into Framer | Formatting and publishing took too long |
| Slugs and summaries were entered by hand | Small mistakes created inconsistent URLs and previews |
| Target keywords were tracked outside the CMS | The content library was harder to audit later |
| JSON-LD required extra setup | Structured data was skipped or added inconsistently |
Step 1: We connected the Framer project
Inside SEO Autopilot, we added a Framer integration flow that connects to a Framer project using the project URL or project ID, an API token, and the target CMS collection ID.
The system can test the connection before saving, so the team knows the API token, project, and collection are valid before publishing content.
The Framer connection uses
- Framer project URL or project ID
- Framer API token
- Target CMS collection ID
- Optional public base URL for final article URLs
- Optional JSON-LD field for structured data output
Step 2: We loaded real Framer collections and fields
Instead of asking the team to guess field IDs, SEO Autopilot loads the available Framer collections from the project. After selecting a collection, it loads the actual Framer fields and shows their IDs, names, types, and whether they are supported for publishing.
This mattered because Framer field labels and internal field IDs are not always the same. Publishing needs the internal field IDs, not just the visible names.
| SEO Autopilot field | Framer field type supported | Purpose |
|---|---|---|
| Title | String or formatted text | Article headline |
| Slug | String | Clean URL path |
| Content | Formatted text or string | Generated article body |
| Summary | String or formatted text | Excerpt or preview text |
| Target keyword | String | SEO tracking inside the CMS |
| JSON-LD | String or formatted text | Structured data field for the Framer page head |
Step 3: We mapped the CMS fields once
After loading the collection fields, the team mapped SEO Autopilot fields to Framer fields using dropdowns. SEO Autopilot also suggests likely mappings based on field names such as title, slug, content, summary, keyword, schema, or structured data.
Once saved, this mapping became the publishing configuration for the project. Every generated article could be sent into the same Framer CMS structure without repeating setup.
Before
Each article required manual copy-paste into Framer fields, with the slug, summary, keyword, and schema handled separately.
After
The user clicks Publish to Framer and SEO Autopilot sends the generated article into the mapped CMS fields.
Step 4: We added JSON-LD support for Framer pages
SEO Autopilot generates JSON-LD for the article and can send it into a dedicated Framer CMS field. The public base URL is used to build the final canonical URL for the generated structured data.
On the Framer side, the site needs a small head script on the blog CMS page that outputs the JSON-LD field using unsafe raw rendering. After that one-time setup, each article can carry its own structured data from the CMS.
Framer head script pattern
<script type="application/ld+json">{{json_ld | unsafeRaw}}</script>
The field name should match the actual JSON-LD field used in the Framer CMS collection.
Step 5: We enabled one-click publishing from the article workflow
Once a post is generated in SEO Autopilot, the user can publish it directly to Framer from the Articles page or the editor. The backend connects to Framer, finds the selected collection, builds the field data, and adds or updates the CMS item.
SEO Autopilot also stores the Framer item ID, Framer URL, public URL, publishing platform, published timestamp, and generated JSON-LD back on the article record. That keeps the SEO workspace and the Framer CMS state aligned.
| What gets sent to Framer | How it is used |
|---|---|
| Generated content | Rendered by the Framer CMS page template |
| Title and slug | Creates the CMS item and clean URL path |
| Summary | Used for excerpts, previews, or meta description workflows |
| Target keyword | Keeps SEO intent visible in the CMS |
| JSON-LD | Outputs structured data through the CMS page head setup |
Optional: we also built a Framer plugin sync flow
For teams that prefer syncing from inside Framer, we also implemented a Framer plugin flow. The plugin asks for a Project ID and Plugin Key from SEO Autopilot, fetches generated posts, creates the managed collection fields, adds the posts, and stores the sync credentials as plugin data.
The plugin sync includes fields for title, slug, summary, content, target keyword, status, published date, and updated date. It also marks ready generated posts as published in SEO Autopilot after syncing.
This gives Framer teams two practical options: publish from SEO Autopilot into Framer through the API, or sync generated posts from inside Framer through the plugin.
The results
The biggest improvement was operational speed. The team still reviewed every article before publishing, but the repetitive Framer CMS work disappeared.
| Metric | Before | After |
|---|---|---|
| Manual CMS fields filled per article | 5-6 | 0 after mapping |
| Average article transfer time | 15-25 minutes | Under 2 minutes |
| Articles pushed to Framer CMS | 0 | 38 |
| Structured data fields prepared | Manual or skipped | Generated per article |
| Publishing source of truth | Spreadsheet + Framer | SEO Autopilot + Framer CMS |
The team no longer needed to rebuild each article inside Framer. They could generate the content, review it, publish it to the mapped collection, and keep the article status synchronized in SEO Autopilot.
What made this work
The Framer automation worked because it respected how Framer sites are actually built: around CMS collections, fields, slugs, and page templates.
- The integration loads real Framer collections instead of relying on guessed collection names.
- Field mapping uses actual Framer field IDs and supported field types.
- Generated articles can be published from the SEO Autopilot editor or article list.
- JSON-LD can be stored in a CMS field and rendered through the Framer page head.
- The public base URL keeps generated canonical URLs aligned with the live Framer blog path.
- The plugin flow gives teams another way to sync generated posts from inside Framer.
The win was not replacing Framer. It was letting Framer stay the design layer while SEO Autopilot handled the repeatable SEO publishing work.
Final takeaway
Framer is strong for marketing sites, but SEO publishing can become slow when every article depends on manual CMS entry.
SEO Autopilot closed that gap by connecting directly to Framer CMS, mapping the fields that matter, generating structured data, and making article publishing a one-click workflow.
Automate SEO publishing for your Framer site
Connect your Framer CMS collection, map your article fields, generate SEO content, and publish directly from SEO Autopilot.
Connect Framer