---
title: "Framer SEO: The Complete Guide to Ranking a Framer Site in 2026"
description: "Everything you need to rank a Framer site in 2026. Meta settings, semantic HTML, CMS slugs, redirects, structured data, and the honest answer on whether Framer is good for SEO."
canonical_url: "https://framerhub.io/blog/framer-seo-guide"
last_updated: "2026-06-09T00:00:00.000Z"
---

You built the site in Framer. Now you need it to rank.

The honest answer to whether Framer is good for SEO: yes, for most sites. But the platform does not rank pages for you. The fundamentals still fall on you. And there are a handful of caveats that most guides skip entirely.

This guide covers all of it. Meta settings, semantic HTML, image optimization, CMS SEO, sitemap and robots.txt, what actually happens to your rankings when you migrate to Framer, structured data, the mistakes I see over and over, and a pre-launch checklist you can run through before every site goes live.

If you want the short version, we have a [Framer SEO checklist for templates](/blog/seo-checklist-for-framer-templates). For performance specifically, Core Web Vitals and Framer-specific speed fixes are covered in detail at [Framer site performance optimization](/blog/optimize-framer-site-performance). And if you are using Framer CMS for blog or collection pages, the full CMS setup guide is at [Framer CMS complete guide](/blog/framer-cms-complete-guide).

This article is the pillar. The others go deeper on specific topics.

---

## Is Framer good for SEO?

Short answer: yes, for most client and agency projects.

Here is what Framer gets right without any configuration:

- **Clean semantic HTML output.** Framer renders standard HTML. Not JavaScript-dependent content that crawlers struggle to process.
- **Auto-generated sitemap and robots.txt.** Every published site gets a `sitemap.xml` automatically. No plugin needed.
- **Global CDN hosting.** Fast TTFB by default. Framer serves from edge locations worldwide.
- **Free SSL.** HTTPS on every custom domain. No configuration required.
- **Mobile-responsive layouts.** Framer's breakpoint system produces mobile-ready pages. This matters for Google's mobile-first indexing.

Where Framer has real limitations:

- **Custom canonical URLs** require the Enterprise plan. On Basic and Pro, Framer sets canonicals automatically. This works for most sites but removes control when you need it.
- **hreflang tags** for multilingual sites need custom code injection.
- **robots.txt customization** is limited. You cannot fully control crawl directives at a granular level.
- **Structured data** has no built-in UI. You add JSON-LD via custom code.

For freelancers and agencies building client sites, the foundation is solid. You are not fighting the platform. The gaps matter at enterprise scale or for specific multilingual use cases. For a standard business site, portfolio, or CMS-driven blog, none of the limitations above will stop you from ranking.

---

## Framer SEO settings: meta titles, descriptions, and OG tags

Every Framer site has two levels of SEO settings: site-wide and per-page. Most builders set the site-wide defaults and never come back to per-page settings. That is a mistake.

### Site-wide settings

Go to **Site Settings > SEO**. Set:

- **Site title.** Used as a fallback for pages without their own title. Also used for OG title on shared links if no per-page OG is set.
- **Meta description.** Default description for pages without custom descriptions.
- **Open Graph image.** The image shown when your site is shared on social. Ideal size: 1200x630px.

These are fallbacks. Do not rely on them for pages that matter.

### Per-page settings

Click anywhere on the canvas to deselect everything, then open the right panel and go to the **SEO tab**. Set:

- **Page title.** Keep under 60 characters. Include the primary keyword naturally. One keyword, not five.
- **Meta description.** Under 155 characters. Summarize the page, include the keyword, give a reason to click.
- **Indexing toggle.** Must be ON for every page you want indexed. A common mistake is leaving key pages set to noindex after design iteration.
- **Custom OG image.** Override the site-level OG for specific pages.

### What to avoid

Do not duplicate meta titles across pages. Do not leave pages at Framer's "Untitled" default. Do not write meta descriptions over 160 characters; they get truncated in search results.

Check the [official Framer SEO documentation](https://www.framer.com/help/seo/) before publishing. Framer updates their settings panel regularly and UI locations shift.

---

## Semantic HTML and headings in Framer

Google reads page structure to understand what the page is about. A page built from nested divs tells Google nothing. Semantic HTML tells Google what is a heading, what is navigation, what is the main content.

In Framer, every frame can be assigned an HTML tag. Most designers leave everything as `<div>`. This is one of the most impactful and most overlooked parts of framer seo optimization.

### How to set HTML tags

Select any frame in the canvas, open the right panel, and find **HTML Tag** in the element settings. Assign tags based on function:

<table>
<thead>
  <tr>
    <th>
      Element
    </th>
    
    <th>
      Tag to Use
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Navigation wrapper
    </td>
    
    <td>
      <code>
        <nav>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Main page heading
    </td>
    
    <td>
      <code>
        <h1>
      </code>
      
      , one per page only
    </td>
  </tr>
  
  <tr>
    <td>
      Section headings
    </td>
    
    <td>
      <code>
        <h2>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Sub-headings inside sections
    </td>
    
    <td>
      <code>
        <h3>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Footer wrapper
    </td>
    
    <td>
      <code>
        <footer>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Main content area
    </td>
    
    <td>
      <code>
        <main>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Blog post or article content
    </td>
    
    <td>
      <code>
        <article>
      </code>
    </td>
  </tr>
</tbody>
</table>

### Heading hierarchy

One `<h1>` per page. It should contain your primary keyword. Do not use `<h1>` on multiple elements for visual styling. Even if it looks correct visually, it breaks the structure for crawlers.

`<h2>` covers the main topics of the page. `<h3>` goes inside `<h2>` sections. Never skip levels. Do not jump from `<h1>` directly to `<h3>`.

If you are building templates and selling them, correct heading structure is especially important. Buyers inherit your structure. We cover this in the [Framer SEO checklist for templates](/blog/seo-checklist-for-framer-templates), it is item one for a reason.

---

## Image optimization and performance

Site speed is a Google ranking factor. Framer sites can be fast or slow depending on how you handle images and animations.

### Image best practices

- **Use WebP.** Framer accepts WebP. Significantly smaller file sizes than PNG or JPEG at comparable quality.
- **Compress before uploading.** Target under 200KB per image. Hero images can go up to 400 to 500KB if needed.
- **Set explicit dimensions.** Undefined image dimensions cause layout shifts (CLS). Google penalizes high CLS. Set fixed width and height on every image frame.
- **Write descriptive alt text.** Every content image needs alt text. Include the keyword naturally where it fits. Do not stuff keywords into every alt tag.
- **Name files before uploading.** `framer-seo-settings-panel.webp` ranks better than `image-1.webp`.

### Animations and performance

Entrance animations on above-the-fold content push up your Largest Contentful Paint (LCP). An LCP over 4 seconds is a failing score. Keep scroll-triggered animations and heavy effects below the fold.

Heavy blur effects, large embedded videos, custom fonts loading multiple weights, and deeply nested frames all add to render time. Target: LCP under 2.5 seconds, CLS below 0.1.

For the full performance breakdown, lazy loading, font subsetting, and Framer-specific speed fixes, read the dedicated guide: [Framer site performance optimization](/blog/optimize-framer-site-performance).

---

## CMS page SEO: slugs, collection pages, and sitemaps

If your Framer site uses the CMS for blog posts, product listings, or any collection-based content, there are specific things to get right.

### CMS slugs

Each CMS item has a slug field. This becomes the URL: `yourdomain.com/blog/your-slug`. Slugs should be:

- Lowercase, hyphenated, no spaces or special characters
- Keyword-rich but short: `/blog/framer-seo-guide` not `/blog/post-12345-june-2026`
- Evergreen: avoid dates in slugs. URLs with dates look stale in search results.
- Set correctly at creation. Changing slugs later breaks existing URLs and loses link equity unless you redirect.

### CMS collection page indexing

In Framer's CMS settings, each collection template has an indexing toggle. Verify it is enabled. Check that the collection template pulls a unique `<title>` and meta description dynamically from CMS fields.

Add a dedicated SEO title field and SEO description field to your CMS collection. This lets you control what appears in search results without changing what displays on the page itself.

### Sitemaps and CMS

Framer automatically includes CMS pages in the sitemap. After publishing new CMS content, submit the sitemap URL manually in Google Search Console. New CMS pages can take days to weeks to crawl without that push.

### Pagination and infinite scroll

If your CMS collection has pagination, use Framer's built-in numbered pagination. Infinite scroll pages are largely invisible to search engines. Crawlers do not simulate scrolling. Numbered pagination creates discrete, indexable URLs.

### Filtered listing pages and crawlability

If you are building a directory site, job board, or real estate listing with advanced filtering, the filters you show users do not automatically create indexable URLs. For basic discovery, that is fine. For sites where category combinations have real search volume, you need filtered pages to be accessible via URL.

Framer's native Dynamic Filters (added in early 2026) cover simple cases. For multi-field filtering, range filters, and multi-reference field filtering on larger catalogs, [FramerHub CMS Filter](https://framerhub.io/plugins) handles the advanced cases. Trusted by 1,500+ Framer pros. One-time pricing.

---

## Does migrating to Framer hurt SEO?

This is the question everyone asks before switching platforms. The honest answer: migration does not hurt SEO. Poor execution does.

Sites that handle migration correctly stabilize within 2 to 4 weeks. Sites that get it wrong can take 6 to 12 months to recover. The difference comes down to three things.

### 1. Redirects are non-negotiable

Every URL that changes needs a 301 redirect from the old URL to the new one. Without redirects, you lose the link equity every backlink to that URL had built up. Rankings tied to those URLs drop.

Before migrating:

1. Export all current URLs. Use Screaming Frog or pull the URL report from Google Search Console.
2. Identify which pages have backlinks. Check Google Search Console or Ahrefs.
3. Map old URLs to new URLs. Match slugs exactly where possible.
4. Set up 301 redirects in Framer at **Site Settings > Redirects** (requires Pro plan or higher).

WordPress URLs with dates (`/2023/04/post-name/`) and query-based URLs (`? p=123`) cannot be replicated in Framer's clean URL structure. These need explicit redirect mapping before you launch.

If you skip this step and your old site goes offline first, you have no recovery path. The backlinks point to 404 errors. Rankings drop. Building them back up takes months.

### 2. Metadata does not transfer automatically

When you rebuild in Framer, your meta titles and descriptions do not come with you. Launch without setting them and Framer will use default or blank values. Missing titles are a crawl quality issue Google flags directly.

Before launch, verify every key page has a unique title under 60 characters and a description under 155 characters. Check the indexing toggle is ON for all pages. A page accidentally set to noindex goes invisible to search engines immediately.

### 3. Do not gut your content for aesthetics

Design-minded rebuilds often trim copy to make pages look cleaner. If you remove content that contained keywords your site was ranking for, you lose the topical coverage Google was rewarding.

Redesign the presentation. Keep the substance. If a section needs to be shorter, tighten the writing. Do not delete the topic coverage.

<table>
<thead>
  <tr>
    <th>
      Risk
    </th>
    
    <th>
      What Happens Without It
    </th>
    
    <th>
      Fix in Framer
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Missing 301 redirects
    </td>
    
    <td>
      Link equity lost, rankings drop
    </td>
    
    <td>
      Site Settings > Redirects (Pro+)
    </td>
  </tr>
  
  <tr>
    <td>
      No metadata on rebuilt pages
    </td>
    
    <td>
      Duplicate or blank titles, crawl issues
    </td>
    
    <td>
      Set per-page SEO tab before launch
    </td>
  </tr>
  
  <tr>
    <td>
      Content removed for design
    </td>
    
    <td>
      Lost keyword coverage, ranking drops
    </td>
    
    <td>
      Keep topical depth, tighten writing
    </td>
  </tr>
  
  <tr>
    <td>
      Pages set to noindex
    </td>
    
    <td>
      Pages invisible to Google
    </td>
    
    <td>
      Check indexing toggle on every page
    </td>
  </tr>
  
  <tr>
    <td>
      Accidental URL changes
    </td>
    
    <td>
      404 errors, broken backlinks
    </td>
    
    <td>
      Match slugs exactly, redirect anything that changes
    </td>
  </tr>
</tbody>
</table>

---

## Structured data (schema markup) in Framer

Structured data helps Google understand your content. It can unlock rich results in search: FAQ dropdowns, article bylines, breadcrumbs, product ratings. Framer does not have a built-in schema UI, but adding it is straightforward.

### How to add JSON-LD schema

Go to **Site Settings > Custom Code**. Add schema in the `<head>` section. For per-page schema, use the page-level custom code inject: click on the page in the pages panel, then open Custom Code.

Example for a blog post:

```json
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"Your Article Title","author":{"@type":"Person","name":"Author Name"},"datePublished":"2026-06-09","dateModified":"2026-06-09"}</script>
```

### Which schema types to use

<table>
<thead>
  <tr>
    <th>
      Page Type
    </th>
    
    <th>
      Schema Type
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Blog posts
    </td>
    
    <td>
      Article or BlogPosting
    </td>
  </tr>
  
  <tr>
    <td>
      FAQ sections
    </td>
    
    <td>
      FAQPage
    </td>
  </tr>
  
  <tr>
    <td>
      Local business
    </td>
    
    <td>
      LocalBusiness
    </td>
  </tr>
  
  <tr>
    <td>
      Product pages
    </td>
    
    <td>
      Product
    </td>
  </tr>
  
  <tr>
    <td>
      Site navigation
    </td>
    
    <td>
      BreadcrumbList
    </td>
  </tr>
  
  <tr>
    <td>
      How-to guides
    </td>
    
    <td>
      HowTo
    </td>
  </tr>
</tbody>
</table>

### FAQ schema is worth the effort

FAQ schema adds expandable question-and-answer dropdowns directly in search results. It increases click-through rate. For any page with a FAQ section, add FAQPage schema.

Test your schema at [Google's Rich Results Test](https://search.google.com/test/rich-results) before publishing. If the schema is malformed, it will not show in search results and you will not know unless you test.

For a deeper reference on implementing schema, see [Google's structured data documentation](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data).

---

## Common Framer SEO mistakes

These come up constantly across Framer sites, from small portfolios to high-traffic client builds.

**Multiple H1 tags.** Designers use `<h1>` on several elements because they look prominent. One H1 per page. Make the others H2 or lower, regardless of visual size.

**Leaving noindex on published pages.** Pages duplicated during design iteration often stay noindex after launch. Check every page before publishing.

**No alt text on images.** Fast to add, skipped constantly. Every content image should have a description. Decorative images can have an empty alt attribute (`alt=""`).

**No meta descriptions.** Framer will not add these for you. Without a custom description, Google writes its own, often poorly, and the click-through rate suffers.

**Duplicate meta titles on CMS collection pages.** If your CMS template uses a static title rather than pulling from a dynamic field, every collection page gets the same title tag. Google flags this as a crawl quality issue in Search Console.

**Heavy above-the-fold animations.** Entrance animations on hero sections push up LCP. Keep complex animations below the scroll threshold.

**Infinite scroll on CMS collections.** Crawlers see page one. Everything after the initial load is invisible. Use numbered pagination.

**Sitemap not submitted to Search Console.** Framer generates it automatically. You still need to submit `yourdomain.com/sitemap.xml` in Google Search Console for timely crawling.

---

## Framer SEO checklist

Run this before every site launch. For a version specifically for templates, see the [Framer SEO checklist for templates](/blog/seo-checklist-for-framer-templates).

**Technical foundation**

- [ ] Sitemap submitted to Google Search Console
- [ ] SSL active (automatic in Framer)
- [ ] All pages set to indexable (check each page's SEO tab)
- [ ] robots.txt accessible at `yourdomain.com/robots.txt`
- [ ] 301 redirects set for any changed URLs

**On-page SEO**

- [ ] One H1 per page containing the primary keyword
- [ ] H2/H3 hierarchy follows logical order, no skipped levels
- [ ] Nav tagged as `<nav>`, footer as `<footer>`, main content as `<main>`
- [ ] Meta title under 60 characters, unique per page
- [ ] Meta description under 155 characters, unique per page
- [ ] OG image set at site level and overridden for key pages

**Images and performance**

- [ ] All images under 500KB, WebP preferred
- [ ] Explicit dimensions set on all image frames
- [ ] Alt text on every content image
- [ ] Heavy animations placed below the fold
- [ ] LCP under 2.5 seconds (test with PageSpeed Insights)

**CMS (if using)**

- [ ] CMS slugs are keyword-rich, lowercase, no dates
- [ ] CMS template pulls dynamic title and description from CMS fields
- [ ] Collection pages set to indexable
- [ ] Numbered pagination (not infinite scroll)

**Schema and structured data**

- [ ] JSON-LD schema injected for primary page types
- [ ] FAQPage schema on any page with a FAQ section
- [ ] Tested with Google's Rich Results Test

---

## Summary

Framer is a solid SEO platform. Clean HTML output, automatic sitemaps, CDN hosting, and SSL give you a strong foundation without any setup work.

The gaps matter only at enterprise scale or for multilingual builds. For freelancers and agencies building client sites, the foundation is enough.

What actually moves rankings is the basics done consistently. Semantic HTML, unique meta titles and descriptions, correct heading structure, image alt text, and page speed. None of it is complicated in Framer. It just requires intentional setup rather than treating SEO as something to fix after design is done.

For migration: plan your redirects before launch day. That single step is the difference between a smooth transition and months of ranking recovery.

If you are building CMS-heavy sites with filtering, blog publishing schedules, or content management at scale, [FramerHub's plugin catalog](https://framerhub.io/plugins) covers the gaps Framer leaves. Trusted by 1,500+ Framer professionals. One-time pricing.

---

## FAQ

**Is Framer good for SEO?**

Yes, for most sites. Framer outputs clean semantic HTML, auto-generates sitemaps and robots.txt, serves over a global CDN, and includes free SSL. Where it falls short: custom canonical URLs require an Enterprise plan, hreflang tags need workarounds, and robots.txt customization is limited. For freelancers and agencies, the built-in foundation is solid.

**Does migrating to Framer hurt SEO?**

Migration does not hurt SEO. Poor execution does. The two biggest risks are URL changes without 301 redirects and missing metadata after migration. Sites that set up redirects, preserve metadata, and keep content depth typically stabilize within 2 to 4 weeks. Sites that skip redirects can take 6 to 12 months to recover.

**Where do I set meta titles and descriptions in Framer?**

Open Site Settings > SEO for site-wide defaults. For per-page settings, click the page canvas, open the right panel, and navigate to the SEO tab. Set a unique title under 60 characters and a description under 155 characters for each page.

**Does Framer auto-generate a sitemap?**

Yes. Framer automatically generates a sitemap.xml and robots.txt for every published site. Submit the sitemap URL (`yourdomain.com/sitemap.xml`) to Google Search Console after publishing.

**Can I add structured data (schema markup) to a Framer site?**

Yes, via custom code injection. Add JSON-LD schema to the page `<head>` through Framer's custom code panel at Site Settings > Custom Code, or use per-page code inject. Works for Article, FAQPage, LocalBusiness, BreadcrumbList, and other schema types.
