# Framer SEO: the settings, the staging trap, and what to check

You can rank with a Framer site if you set the basics and avoid the staging trap. This guide gives you the exact settings to check, what to ship on each page, and what to verify in Search Console once you publish.

Updated 2026-09-14 · Source: https://porteur.ai/guides/framer-seo

## The setup you should complete before you launch

Do this once per site. It prevents crawl issues and the common launch mistakes on Framer.

- Connect your custom domain and set one canonical host: either www or non-www. Redirect the other to the main host.
- Open Site settings in Framer. Set the default title format and a site description used as a fallback.
- Upload a default social image that works at 1200 by 630 for pages without their own.
- Check the automatic sitemap is enabled. Note the URL: yourdomain.com/sitemap.xml.
- Open robots.txt in Site settings. Allow crawling. Add rules you need for admin or preview paths only.
- Create 301 redirects for any legacy paths you have changed, for example /old-pricing to /pricing.
- Create a passworded or private staging environment. Make sure it stays noindex, not just disallowed in robots.txt.
- Verify the property in Google Search Console for the exact host you use. Submit the sitemap there.

## Per-page SEO in Framer: titles, descriptions, and slugs

Framer gives you per-page SEO fields: title, description and a social image. You control these in the page settings.

1. **Write a specific title under 60 characters** Put the core query first. Example for /pricing: “Acme Pricing, Plans, and FAQs”. Avoid adding the brand twice if Framer adds it sitewide.
2. **Write a clear description that earns the click** About 120 to 155 characters. Example: “See Acme’s pricing, what each plan includes, and answers to billing questions.”
3. **Set a clean URL slug** Short and readable. Use /pricing, /features, /blog/how-to-do-x. Avoid dates in slugs unless it is news.
4. **Set the social image** Use a template with the page title. Test in Framer’s social preview and with a public preview URL before launch.

On a finished page, the head should show one title, one meta description, and a self-referencing canonical. If you see duplicates, check your theme settings and Framer’s current defaults.

## Collections and CMS templates: map SEO fields once

If you use Framer CMS, set SEO fields on the collection template. Pull values from the item fields to avoid empty tags and duplicate titles.

- Add fields on the collection for seo_title, seo_description, and social_image. Fall back to the item title and a short summary if blank.
- In the collection template, bind the title tag to seo_title or item.title. Bind the meta description to seo_description.
- Build a slug pattern that stays stable, for example /blog/{slug}. Do not include the date unless you need it.
- Add internal links in the template: next article, category links, or a related posts module to avoid orphan pages.

Check a sample published item. View source to confirm the title and description are populated from the right fields. Fix the template before you add 50 items with the wrong tags.

## Sitemap and robots.txt in Framer

Framer ships an automatic sitemap and an editable robots.txt in Site settings. Use both. They are the two files Google first requests on a new site.

1. **Find your sitemap** It is usually at /sitemap.xml. Open it in a browser to confirm your key pages are listed. If you see preview or test paths, fix visibility.
2. **Submit the sitemap in Search Console** Open the Sitemaps report. Enter https://yourdomain.com/sitemap.xml. You should see “Success” once Google fetches it.
3. **Edit robots.txt with care** Allow crawling of /. Disallow only private paths. Add the sitemap line: Sitemap: https://yourdomain.com/sitemap.xml.
4. **Do not use robots.txt to hide staging** Robots.txt does not stop indexing of URLs found elsewhere. Use noindex and, ideally, password protection for staging hosts.

If your site has multiple locales or subpaths, check whether Framer emits one sitemap or many. As of 2026 the platform moves fast, so check the docs for current behaviour.

## Redirects and safe URL changes

Framer supports redirects. Use 301 redirects for permanent moves. Set these before you publish a structure change.

- Map old to new before you change slugs. Example: /guides/getting-started to /guide/getting-started.
- Create one hop, not chains. Old URL to current URL only. Remove any temporary redirects once you are done.
- Keep the trailing slash style consistent. Choose either always with or always without. Redirect the other style sitewide.
- After a domain change, redirect page to page, not to the homepage. Use a full redirect map and publish it the same day you switch.

After publishing redirects, test a few with curl or a redirect checker. In Search Console, the “Page with redirect” status is expected for the old URLs.

## The staging trap to avoid

Framer has staging environments. They must stay noindex. If Google finds them, you create duplicates and you split signals across hosts.

> Rule: every non-production environment needs both noindex and access control. Do not rely on robots.txt alone.

1. **Mark staging as noindex** In the environment settings, set the robots meta to noindex if available. If not, add a header-based x-robots-tag: noindex via hosting controls if supported, or keep it private.
2. **Restrict access** Use password protection or IP allowlisting if Framer supports it, or place staging behind a private URL not shared publicly. Share previews only with trusted testers.
3. **Check the staging host is not in your sitemap** Open the sitemap on staging. It should not be linked anywhere public. Never submit a staging sitemap to Search Console.
4. **Search for accidental exposure** Google “site:staging.yourdomain.com”. If you see results, fix the meta robots and take removals in Search Console for those URLs.

## Speed on Framer: what to watch and how to fix it

Framer hosts on a CDN. The risk is heavy designs, large images, and animations that delay content. Aim for good Core Web Vitals: LCP at or under 2.5 s, CLS at or under 0.1, INP at or under 200 ms.

- Pick a simple hero. The first image or text block often becomes the LCP. Use a compressed image at the displayed size.
- Optimise images before upload. Use modern formats and avoid 2x oversized assets. Crop background images to the viewport.
- Limit third-party scripts. Each widget adds network and CPU cost. Keep chat, analytics, and heatmaps to the minimum you need.
- Reduce motion and complex interactions. Prefer CSS transforms and opacity. Avoid heavy canvas effects above the fold.
- Use system fonts or host fonts efficiently. Subset and preload the main font weight only if your Framer settings allow it.
- Test on mobile first. PageSpeed Insights shows field data when available and a Lighthouse lab run for immediate clues.

Scores vary between runs. Use the trends in Search Console’s Core Web Vitals report over 28 days to confirm real-user improvements, then refine the specific pages that lag.

## Internal linking that works on a small Framer site

Your menu and footer are not enough. Add body links between related pages so Google can find and value them. This matters for new sites with few backlinks.

- From /features to /pricing with “See pricing and plans”.
- From each blog post to one related product page. Use the post context to choose the anchor.
- Add a “Most read” block on /blog to link to evergreen posts.
- Link to new pages from at least two older pages. Avoid orphan URLs that only the sitemap links.

## What to verify in Search Console after you publish

Do these checks in the first week, then weekly for a month. You are looking for crawl, indexation, and early query fit.

1. **Coverage and indexing** Open Pages in Search Console. Confirm your key URLs show “Indexed”. If any show “Excluded by ‘noindex’ tag”, fix the page settings in Framer.
2. **Sitemap status** Open Sitemaps. The status should be “Success”. If “Couldn’t fetch”, check that /sitemap.xml resolves on HTTPS and is listed once in robots.txt.
3. **URL inspection spot checks** Inspect /, /pricing, and a blog post. Use “Test live URL” to confirm Google can fetch and render. If you see blocked resources, simplify the page.
4. **Performance queries** Open Performance. Filter by Page for /pricing. Look at early queries. If you see brand only, add a few descriptive terms to the title or H1.
5. **Core Web Vitals** Check the Core Web Vitals report. If you see LCP or INP issues, fix the template that affects many pages first, then the outliers.

If you changed any URLs, watch for “Page with redirect” and “404” spikes. Fix missing redirects first. Then request reindexing of the key moved pages.

## Structured data on a Framer site

Framer does not generate rich structured data for you. Add JSON-LD for products, software, or articles where relevant, using the page settings or an embed. Keep it in sync with the visible content.

- On /pricing for a SaaS, use SoftwareApplication with offers that match the visible plans.
- On /blog/my-post, add Article with headline, author, and datePublished.
- On /, add Organization with your name, logo, and sameAs profiles.
- Validate in Google’s Rich Results Test. Fix all required fields. Do not add types you do not qualify for.

## A quick QA routine before each publish

Run this checklist when you add a new page or change a template. It catches 90 percent of avoidable issues on Framer sites.

- View source. Check one title, one meta description, and a self-referencing canonical.
- Open the live URL and the social preview. Check the OG image crops well at 1200 by 630.
- Load the page on a mid-range phone. Time to first render and scroll should feel instant. If not, reduce the hero asset size.
- Click links to and from the new page. Confirm at least two internal links point to it.
- Check the page appears in /sitemap.xml. If it is utility content like /thank-you, set it to noindex and keep it out of the sitemap.
- If on staging, confirm noindex and access control are still on. Do not remove them until you publish to production.

## Questions

### Is Framer good for SEO?

You can rank with Framer. It has per-page SEO fields, an automatic sitemap, an editable robots.txt, redirects, and CMS templates with SEO fields. The limits are in heavy designs and staging exposure, not in the platform basics. As of 2026 its settings move, so check the docs when you ship.

### Where is the sitemap on a Framer site and what should I do with it?

Your sitemap is usually at /sitemap.xml. Open it to confirm key pages are listed. Submit it in Google Search Console under Sitemaps. Keep staging sitemaps private and never submit them.

### How do I stop Google indexing my Framer staging site?

Set noindex on staging and restrict access. Do not rely on robots.txt alone. Remove any links to staging from public places, and do not submit a staging sitemap. If Google has indexed it, fix the tags and request removals in Search Console.

### Can I edit robots.txt and add redirects in Framer?

Yes. Framer lets you edit robots.txt in Site settings and create redirects. Use 301 for permanent moves, keep redirects to one hop, and add the sitemap line to robots.txt.

### What Core Web Vitals should my Framer pages hit?

Aim for an LCP of 2.5 seconds or less, CLS of 0.1 or less, and INP of 200 ms or less. Check trends in Search Console’s Core Web Vitals report. Use PageSpeed Insights for a quick lab run when you make design changes.

### Do I need structured data on a Framer site?

Add JSON-LD for what you are. Use SoftwareApplication on your product page, Article on posts, and Organization on the homepage. Keep it consistent with the page content and validate it in Google’s Rich Results Test.

## Read next

- [Technical SEO checklist for a small site](https://porteur.ai/guides/technical-seo-checklist): Run these 20 technical SEO checks, in order. Each shows how to check it free and what fixed looks like for a site under 1,000 pages.
- [How to use Google Search Console in ten minutes a week](https://porteur.ai/guides/how-to-use-google-search-console): A quick weekly routine: set four filters, compare 28 days, check pages then queries, and fix three findings, without getting lost in noise.
- [The Sitemaps report: what Success, Has errors and Couldn’t fetch mean](https://porteur.ai/guides/search-console-sitemaps-report): How to submit your sitemap URL, read Success, Has errors and Couldn’t fetch, and fix invalid XML, 404s, cross‑host URLs and missing child sitemaps.
- [Core Web Vitals for a product site: the three numbers](https://porteur.ai/guides/core-web-vitals): The product founder’s guide to LCP, CLS and INP: what Google measures, why phones decide the pass, common causes, and how to test and fix.
- [Title tag length: what fits, what Google rewrites, and how to write one](https://porteur.ai/guides/title-tag-length): About 60 characters is a safe line. Learn pixels versus characters, why Google rewrites titles, and how to write titles that earn clicks.
- [Meta description length, with examples that earn the click](https://porteur.ai/guides/meta-description-length): Keep meta descriptions around 155 characters on desktop and shorter on phones. Here is how to write snippets that earn clicks, with clear examples.
- [Ghost SEO: a publishing platform that does most of it for you](https://porteur.ai/guides/ghost-seo): What Ghost does for SEO by default, what to tweak in themes and routes, how to use tags and members, and how to run a product site on Ghost.
- [Hugo SEO: what the templates must do, since nothing is automatic](https://porteur.ai/guides/hugo-seo): Hugo does nothing automatic for SEO. This guide shows the head partial, sitemap, robots, canonicals, taxonomies and images you must template.

Paste your Framer URL into Porteur’s free check to scan your site, the searches around it and rivals in about thirty seconds, and see three full findings. Free check: https://porteur.ai/
