Framer SEO
How SEO works on Framer — the design-first builder that pre-renders static HTML at publish, so Googlebot gets complete pages without running JavaScript. Per-page metadata, automatic sitemaps and robots.txt, canonical tags, redirects, custom head code, and the real limitations (no schema UI, plan-gated robots.txt, non-editable hreflang).
Framer pre-renders static HTML at publish, so Googlebot gets complete pages without executing JavaScript — that's the most important SEO fact about the platform and the thing that separates it from client-rendered builders. Out of the box you get automatic sitemaps, a default robots.txt, self-referencing canonicals, automatic HTTPS, and per-page metadata (including on CMS items). The gaps are about depth and scale: no schema markup UI (JSON-LD goes in via custom <head> code), no alt-text binding from CMS fields, custom robots.txt needs a Pro plan or higher, and hreflang is generated automatically but not editable. The redirect manager (also Pro+) now supports wildcard folder redirects and capture groups, not just one-to-one mapping — it just can't redirect across domains. Framer vs Webflow is broadly comparable at the technical level — the difference is CMS maturity and workflow, not crawlability.
Evidence for this claim The article's described framer-seo capabilities must be evaluated against the platform's current documentation rather than assumed to be search-engine behavior. Scope: Platform-specific capability documentation. Confidence: high · Verified: Framer: SEO Evidence for this claim Regardless of platform, Google needs crawlable URLs, accessible rendered content, descriptive metadata, and valid search directives. Scope: Google requirements independent of platform. Confidence: high · Verified: Google Search Central: SEO Starter GuideTL;DR — Framer is a design-first website builder, and the thing that matters most for SEO is that it publishes real, pre-rendered HTML. When Google visits a Framer page, the content is already there — Google doesn’t have to run any JavaScript to see it. That alone clears the bar that trips up a lot of “build a site with code” tools. You still have to do the actual SEO work, but the technical floor is solid.
What Framer is
Framer started life as a tool for designing and prototyping interfaces in React. Over the last few years it turned into a full website builder — you design in a canvas, hit publish, and Framer hosts the site for you. A lot of people still think of it as “just a design tool,” and that perception is out of date.
The one thing to understand
When you publish a Framer site, Framer generates static HTML pages ahead of time. So when GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. shows up, the page’s text, headings, and links are all right there in the HTML. Google does not have to execute JavaScript to find your content.
That’s a bigger deal than it sounds. Plenty of sites built with React or similar frameworks ship a nearly empty page that fills in after the browser runs a bunch of JavaScript — and that can cause discovery and indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. problems. Framer avoids that whole category of issue by renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. the HTML for you. (If you want the why, that’s the topic of JavaScript SEO.)
What you get for free
Every published Framer site automatically includes:
- A sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. at
yourdomain.com/sitemap.xml, including your CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. pages. - A default
robots.txt. - A self-referencing canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. on every page (this tells Google which URL is the “main” one — see canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.).
- HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' turned on automatically.
- Image optimization — Framer converts images to modern formats and serves them from a CDN, which helps your page speed.
What you still have to do
Framer’s own academy puts it well: it “does a lot of the heavy lifting when it comes to structure, but it still needs direction from you, the end user.” You set the page titlesThe title tag is the HTML title element in a page's head that specifies the document's title. It's the primary source for the SERP title link and a confirmed light ranking factor — but since August 2021 Google doesn't always show it verbatim. and descriptions, write good content, link your pages together, and decide what each page is trying to rank for. Framer won’t do that part.
For each page you can set the title, meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through., the social sharing image, and flip an index/noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. toggle if you want to keep a page out of search. That’s all in the Framer UI, no code required.
Want the full technical picture — what’s plan-gated, what’s missing, and how Framer stacks up against Webflow and WordPress? Switch to the Advanced tab.
Evidence for this claim The article's described framer-seo capabilities must be evaluated against the platform's current documentation rather than assumed to be search-engine behavior. Scope: Platform-specific capability documentation. Confidence: high · Verified: Framer: SEO Evidence for this claim Regardless of platform, Google needs crawlable URLs, accessible rendered content, descriptive metadata, and valid search directives. Scope: Google requirements independent of platform. Confidence: high · Verified: Google Search Central: SEO Starter GuideTL;DR — Framer pre-renders static HTML at publish, so GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. gets complete pages without running JavaScript — the single most important SEO fact about the platform. You get automatic sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., a default robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., self-referencing canonicals, automatic HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', per-page metadata (including on CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. items), a built-in redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. manager, and custom
<head>injection for the things the UI doesn’t expose. The real limits are depth and scale: no schema markupSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. UI, no alt-text binding from CMS fields, custom robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. and the redirect manager both need Pro+, redirects (though now wildcard-capable) can’t cross domains, and hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. is auto-generated but not editable. Versus Webflow it’s broadly comparable at the technical level.
The fact that matters most: it’s pre-rendered
I’ll lead with the thing everything else hangs on. Framer generates static HTML at publish time. Pages are pre-rendered, not client-side rendered, so GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. receives complete HTML without executing JavaScript to see the content.
This is the heart of why “is Framer good for SEO?” has a reassuring answer. The classic failure mode for design-tool-turned-publisher platforms is shipping a client-only React bundle where the meaningful content only appears after the browser runs JS — which pushes you into Google’s separate, queued renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. step and all the risk that comes with it. Framer sidesteps that entirely. If you’ve read my take on JavaScript SEO, this is the clean-input scenario you want.
One honest caveat: Framer is built on React, and animation-heavy pages can add interaction cost. The HTML being crawlable is settled; the thing to watch on design-heavy pages is interactivity metrics, which I’ll come back to under performance.
What Framer gives you out of the box
- Automatic
sitemap.xml. Generated on every publish atyourdomain.com/sitemap.xml, CMS collection pages included. Submit it in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. and Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility.. - Automatic
robots.txt. Framer’s docs: “Framer automatically generates arobots.txtfile for every published site.” - Self-referencing canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. on every page, set automatically. Per Framer Product Specialist Luca Da Corte: “By default, Framer automatically sets a self-referencing canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. for each page on your website.”
- Automatic HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' on all Framer-hosted sites.
- CDN + image optimization — automatic conversion to modern formats, served from a global CDN.
Per-page and CMS metadata
Per-page SEO settings — title, meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through., OG image, canonical, and an index/noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. toggle — are available on every page, including CMS collection items. On CMS pages the title and description can be driven by collection fields, so a 200-item blog or product collection can populate unique metadata from the data rather than one page at a time.
That’s genuinely useful. The honest limitation, flagged by reviewers like Hannah
Martin, is that CMS page titles lean on a default [item name] [separator] [site name] pattern, so granular per-item title templating is thinner than what a
WordPress SEOWordPress SEO is the process of configuring, optimizing, and maintaining a WordPress site so search engines can efficiently crawl, index, and rank it. WordPress gives you a solid foundation, but its defaults — ?p=123 permalinks, attachment pages, thin archives — need cleanup before a site is actually well-optimized. plugin gives you.
Custom <head> code injection
This is the escape hatch for everything the UI doesn’t expose. Framer supports
custom <head> code site-wide and per-page, which is how you add:
- JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. (there’s no schema UI — more below),
- search-engine verification tags,
- hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. or other tags you want to control by hand,
- analytics and anything else that belongs in the head.
Redirects
Framer has a built-in redirect manager (Site Settings → Redirects) for
301-style redirects, and it’s no longer a one-to-one tool. Framer added wildcard
and pattern matching: use * to match an entire folder (/blog/* catches
/blog/hello-world and every nested path under it), reference matched segments in
the destination with capture groups (:1, :2), or match specific URL segments
with named slugs (/blog/:year/:month/:day → /article/:year-:month-:day).
That covers the bulk-migration case that used to require adding redirects one by
one. The real limitation now is narrower: redirects only work within your
current domain — Framer can’t redirect an entire domain to a different domain
(www.old.com → www.new.com); that has to happen at the DNS/hosting level for
the old domain before you connect the new one in Framer. Framer’s docs: “You can
only redirect sub-paths within your current domain. To redirect an entire domain…
use your hosting provider for the old domain to set up domain-level redirects.”
One plan note: the redirect manager itself requires a Pro plan or higher — it’s
not available on Free or Basic.
Canonical tags in detail
The default behavior is already SEO-safe: self-referencing canonical on every page.
When you need a custom canonical (pointing somewhere other than the page itself),
you add a <link rel="canonical"> via the page’s <head> code. Da Corte notes
Framer is smart about this: “When Framer detects a custom canonical tag in the
<head> tag of the page, it will avoid adding the default self-referencing one, so
it won’t cause any confusion to search engines.” So you won’t end up with two
competing canonicals. The broader topic —
canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. — is
its own thing; the point here is Framer’s default is good and the override is clean.
”Dynamic Optimization”: a Framer-specific term
You’ll see Framer talk about Dynamic Optimization (also described as traffic-aware pre-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.). This is not a standard SEO term — it’s a Framer-specific feature, so let me explain it plainly. Framer’s blog: “we optimize each page the first time a user visits it. After that, the optimized version is stored in a cache until you publish a new version.” High-traffic pages get the optimized, cached version served to nearly everyone.
Why does this matter for SEO? Because Google’s Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. ranking signal uses field dataPerformance metrics captured from real users, not lab tests. from real Chrome users (CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program.), not a lab score. Framer’s own framing: “Aggregated performance scores like CrUX are not affected, since the overwhelming majority of the visitors will get the optimized page.” The practical upshot: don’t panic over a mediocre PageSpeed InsightsPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking. lab number — Framer’s own help article on the topic calls PageSpeed Insights “an imprecise tool that doesn’t impact SEO.” What Google actually ranks on is the real-user data, which Framer’s caching protects.
Structured data: no UI, use custom code
A genuine gap: Framer has no schema markup UI. Structured data must be added as
JSON-LD via custom <head> code. Arthur Lauwers of 6th Man Digital puts it
exactly right: “Structured data must be added via custom code components by pasting
JSON-LD, since there is no native UI for schema.” So Article, FAQ, BreadcrumbList,
and Organization markup are all doable — you just paste the JSON-LD yourself rather
than filling in fields. Google’s own guidance is “use JSON-LD where possible,” so
the format Framer pushes you toward is the recommended one.
Framer’s help center now documents this pattern directly for CMS pages: reference a
collection field with {{FieldName}} inside the JSON-LD you paste into a CMS
template’s custom code, and use {{FieldName | json}} when the value needs safe
JSON escaping (titles, descriptions, dates pulled from the CMS item). That’s how
you generate unique BlogPosting or Product markup per CMS item without a native
schema field — it’s still custom code, not a UI, but it is an officially documented
way to templatize it across a whole collection rather than hand-writing JSON-LD on
every item.
Paste or fetch the exact markup Framer publishes and check its syntax, vocabulary, and supported rich-result requirements. Valid markup creates eligibility; it never guarantees that Google will show a result.
Test the published code with my free Schema Markup Validator Free
- Publish the page or copy the exact JSON-LD from its custom head code.
- Validate each schema type against the properties required for that specific result.
- Fix the Framer component or CMS mapping, republish, and rerun the same example.
Localization and hreflang
Framer supports localizationLocalization is adapting content for a specific target market — not just translating the words, but adjusting currency, formats, idioms, cultural references, local search terms, and trust signals so the experience feels native. natively, and when you enable it Framer generates
the hreflang tags automatically. The catch, straight from Framer’s docs: “Both
the lang and hreflang tags are managed automatically in the backend and are not
editable via the UI.” So you can’t hand-tune them, and third-party translation
services can’t modify them either. For most localized sites the auto-generated
output is fine — but verify it matches your expectations rather than assuming. The
underlying spec (hreflang annotations for each localized URL, including
x-default) is documented by
Google.
Known limitations, collected
- No schema markup UI — JSON-LD via custom
<head>code only. - No alt-text binding from CMS fields — alt textAlt text is the value of the `alt` attribute on an HTML `<img>` element — a short text substitute chosen for the image's purpose and context, not a literal description of what it shows. It makes images accessible to screen-reader users and helps search engines understand images, mainly for image search. on CMS images is set manually (or via workarounds), not mapped from a collection field.
- Custom
robots.txtis plan-gated — editing it requires a Pro plan or higher; it’s not available on the free tier. Framer’s docs list custom robots.txt as “available on Pro, Scale, and Enterprise plans.” - Redirects only work within your current domain — Framer’s redirect manager now supports wildcards, capture groups, and slug matching for bulk folder redirects, but it can’t redirect an entire domain to a different domain (that needs DNS-level redirects on the old domain). The redirect manager itself needs a Pro plan or higher.
- hreflang not editable — auto-generated, not hand-tunable.
- CMS scale limits — per-collection item ceilings make large programmatic SEOProgrammatic SEO (pSEO) is the practice of generating many pages from a single template plus a data source to target large sets of similar queries. It's powerful when each page genuinely answers its query with unique data, and spam when it just stamps a thin template across a shallow dataset. builds (500+ pages) awkward, and there’s no first-class bulk CSV import.
- No IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. — Framer doesn’t natively ping Bing/others on publish; submit your sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. to Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. manually.
Framer vs Webflow vs WordPress
Framer vs Webflow: both generate static HTML and both offer robots.txt and redirect control. Webflow has a more mature CMS and a wider agency ecosystem; Framer has a stronger design-tool workflow. At the technical SEOTechnical SEO is the practice of making a site easy for search engines to crawl, render, index, and (now) be eligible for AI answers. It's the foundation that lets your content and links rank — not a ranking trick of its own. level the two are broadly comparable — the differences are in CMS depth and workflow, not in whether the HTML is crawlable. As Matija Golubovic of Omnius frames the scale question: “Both platforms cover the basics, but Webflow clearly is ahead in flexibility, especially for large content inventories, migrations, or international SEOInternational SEO is the practice of optimizing a site so search engines understand which countries and/or languages it targets, and serve the right version to each user. It spans URL structure, hreflang, and on-page localization..” That mostly still tracks — Framer’s CMS ceilings and non-editable hreflang are real gaps versus Webflow — though Framer’s redirect manager has closed some of the migration gap since that comparison was written: it now supports wildcard folder redirects and capture groups, not just one-to-one mapping.
Framer vs WordPress: WordPress wins on the content side — the plugin ecosystem (Yoast, Rank Math), multi-author roles, scheduled publishing, and an editorial workflow Framer doesn’t match. Framer wins on the publishing-floor side: SSR, CDN, HTTPS, and image optimization are on by default with no plugins and no hosting to manage. For a small-to-medium marketing site Framer’s technical defaults are excellent; for a large content operation, WordPress’s tooling pulls ahead.
Bottom line
Framer is technically sound for SEO because it pre-renders crawlable HTML and ships the right defaults. The limitations are about depth and scale — schema UI, CMS ceilings, editable hreflang, cross-domain redirects — not about whether Google can read your pages. For most marketing sites that trade-off is easy to live with.
AI summary
A condensed take on the Advanced version:
- The key fact: Framer pre-renders static HTML at publish — GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. gets complete pages without executing JavaScript. This is the most important SEO fact about Framer and what separates it from client-rendered builders.
- Defaults out of the box: automatic
sitemap.xml(CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. pages included), defaultrobots.txt, self-referencing canonical on every page, automatic HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', CDN + image optimization. - Metadata: per-page title, description, OG image, canonical, indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed./noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. on all pages including CMS items; CMS metadata can be driven by collection fields.
- Custom
<head>injection (site-wide + per-page) is the escape hatch for JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., verification tags, and hand-set hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others.. - RedirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.: built-in manager (Pro+) now supports wildcard folder redirects and capture groups — the old one-to-one-only limit is gone. It still can’t redirect across domains.
- Dynamic Optimization is Framer-specific (traffic-aware pre-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.): caches the optimized page so real-user CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program. isn’t hurt. PageSpeed InsightsPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking. lab score is not the SEO signal.
- Gaps: no schema UI (JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. via custom code), no CMS alt-text binding, custom robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. needs Pro+, hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. auto-generated but not editable, CMS scale limits, no IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it..
- Vs Webflow: broadly comparable technically; Webflow has the more mature CMS and agency ecosystem, Framer the stronger design workflow.
Official documentation
Framer’s own SEO documentation, plus the platform-agnostic Google guidance that applies to any Framer site.
Framer
- Framer SEO product page — the marketing overview of Framer’s SEO features.
- Guide to SEO features and tools — the feature list (sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., metadata).
- How can I access the robots.txt file? — auto-generated robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. and the Pro+ plan gating for a custom one.
- How to setup redirects to maintain SEO ranking — the redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. manager, including wildcard folder redirects, capture groups, and the single-domain limitation.
- Structured data through JSON-LD — Framer’s own walkthrough for adding JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. via custom code, including referencing CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. fields on collection pages.
- Language attribute (lang & hreflang) — how localizationLocalization is adapting content for a specific target market — not just translating the words, but adjusting currency, formats, idioms, cultural references, local search terms, and trust signals so the experience feels native. auto-generates
lang/hreflangand why they aren’t editable. - Dynamic Optimization — Framer’s traffic-aware pre-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. and its relationship to CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program..
- How to optimize the PageSpeed Insights score — Framer’s own case for ignoring the PSIPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking. lab score in favor of Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. field dataPerformance metrics captured from real users, not lab tests..
- Framer Academy: Intro to SEO & accessibility — the “needs direction from you” framing.
- Framer Help: SEO hub — the index for all of the above.
- Framer pricing — current plan tiers and which features (custom robots.txt, redirects) are Pro+ only.
Google (platform-agnostic, applies to any Framer site)
- JavaScript SEO basics — why pre-rendered HTML is the reliable path.
- Canonicalization — what Framer’s self-referencing canonicals are doing.
- Core Web Vitals — the field-data (CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program.) ranking signal, not lab scores.
- Intro to structured data — “use JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. where possible,” which is exactly how you add schema on Framer.
- International / localized versions (hreflang) — the spec Framer’s auto-generated tags implement.
Quotes from the source
On-the-record statements about how Framer handles SEO — from Framer’s own docs and from named practitioners who’ve reviewed the platform.
Framer — official docs and blog
- “Framer automatically generates a
robots.txtfile for every published site.” Custom robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. is “available on Pro, Scale, and Enterprise plans.” — Framer Help: robots.txt - “Both the
langandhreflangtags are managed automatically in the backend and are not editable via the UI.” — Framer Help: Language attribute - “We optimize each page the first time a user visits it. After that, the optimized version is stored in a cache until you publish a new version.” And: “Aggregated performance scores like CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program. are not affected, since the overwhelming majority of the visitors will get the optimized page.” — Framer Blog: Dynamic Optimization
- “[PageSpeed InsightsPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking. is] an imprecise tool that doesn’t impact SEO.” — Framer Help: How to optimize the PageSpeed Insights score
- “You can only redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. sub-paths within your current domain. To redirect an entire domain… use your hosting provider for the old domain to set up domain-level redirects.” And on bulk redirects: “you can redirect entire folders with wildcards to match multiple URLs… You can also use capture groups like
:1,:2in the new URL to reference matched groups in the old URL.” — Framer Help: How to setup redirects - “Framer does a lot of the heavy lifting when it comes to structure, but it still needs direction from you, the end user.” — Framer Academy
Luca Da Corte — Certified Framer Expert and Product Specialist at Framer
- “By default, Framer automatically sets a self-referencing canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. for each page on your website.”
- “When Framer detects a custom canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. in the
<head>tag of the page, it will avoid adding the default self-referencing one, so it won’t cause any confusion to search engines.” — How to edit the canonical tag in Framer
Arthur Lauwers — Founder, 6th Man Digital
- “Framer is technically sound for SEO but stumbles on the content side.”
- “The platform delivers good performance and server-side renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. so Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. stay healthy.”
- “Structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. must be added via custom code components by pasting JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., since there is no native UI for schema.” — Is Framer good for SEO?
Hannah Martin — SEO since 2010, agency VP, business founder
- On speed: “one of the fastest platforms I’ve built on.” On limits: “No Granular CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. Page TitleThe title tag is the HTML title element in a page's head that specifies the document's title. It's the primary source for the SERP title link and a confirmed light ranking factor — but since August 2021 Google doesn't always show it verbatim. Management.” — Honest Framer SEO Review
Matija Golubovic — Omnius (Webflow vs Framer)
- “Both platforms cover the basics, but Webflow clearly is ahead in flexibility, especially for large content inventories, migrations, or international SEOInternational SEO is the practice of optimizing a site so search engines understand which countries and/or languages it targets, and serve the right version to each user. It spans URL structure, hreflang, and on-page localization..” — Webflow vs Framer
Framer SEO setup checklist
A pass to run after you publish a new Framer site:
- Confirm your sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. loads at
yourdomain.com/sitemap.xmland lists your real pages (including CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. items). - Submit the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. and Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. — Framer has no IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it., so Bing submission is manual.
- Set a unique title and meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. on every important page (and check your CMS items aren’t all defaulting to the same pattern).
- Set an OG image for pages you expect to be shared.
- Use the per-page indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed./noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. toggle to keep thin or utility pages out of search.
- Add JSON-LD structured dataJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. via custom
<head>code for Article, FAQ, Breadcrumb, or Organization markupOrganization schema (schema.org/Organization) is structured data that describes the business or entity itself — name, logo, official URL, social profiles, contact info, and identifiers — rather than a page's content. Google says it can help disambiguate your brand and some properties can influence visual elements like Knowledge Panel/attribution; it has no required properties and doesn't guarantee a Knowledge Panel. (there’s no schema UI). - Set alt textAlt text is the value of the `alt` attribute on an HTML `<img>` element — a short text substitute chosen for the image's purpose and context, not a literal description of what it shows. It makes images accessible to screen-reader users and helps search engines understand images, mainly for image search. manually on CMS images — Framer won’t bind it from a field.
- If you’re on Pro+ and need to customize
robots.txt, upload it (the free tier can’t). - Map old → new URLs in the redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. manager before/at launch (Pro plan or
higher) — use wildcard folder redirects (
/blog/*) and capture groups for bulk moves; remember it can’t redirect across domains, so plan large migrationsA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. that involve a domain change accordingly. - If localized, verify the auto-generated hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. output matches your expectations (you can’t edit it).
- Don’t chase the PageSpeed InsightsPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking. lab score — check real-user Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. data instead.
Framer SEO at a glance — cheat sheet
What’s automatic vs. what you do
| Capability | Framer default | What you control |
|---|---|---|
| HTML renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. | Pre-rendered static HTML at publish | Nothing — it’s crawlable by default |
| SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. | Auto sitemap.xml, CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. included | Submit it to GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. + Bing |
| robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. | Auto-generated default | Custom upload on Pro+ only |
| Canonical | Self-referencing on every page | Custom via <head> code |
| HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' | Automatic | — |
| Metadata | — | Title, description, OG image per page (+ CMS) |
| IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. | Indexable by default | Per-page noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. toggle |
| RedirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. | Built-in manager, wildcards + capture groups (Pro+) | Can’t redirect across domains |
| Schema | None | JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. via custom <head> code |
| Alt textAlt text is the value of the `alt` attribute on an HTML `<img>` element — a short text substitute chosen for the image's purpose and context, not a literal description of what it shows. It makes images accessible to screen-reader users and helps search engines understand images, mainly for image search. (CMS) | Not bound from fields | Set manually per image |
| hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. | Auto-generated when localized | Not editable |
| IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. | Not supported | Manual Bing sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. submission |
Plan gates to remember
- Custom
robots.txt→ Pro / Scale / Enterprise (not free tier). - Custom
<head>code → paid plans.
Framer-specific term
- Dynamic Optimization = traffic-aware pre-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.. Caches the optimized page so real-user CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program. isn’t hurt. It’s a Framer feature name, not standard SEO jargon.
The one fast fact
- Framer publishes pre-rendered HTML — GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. sees the content without running JavaScript. That’s the whole technical foundation.
Patrick's relevant free tools
- SEO Incident Simulator — Practice thirty deterministic technical SEO incident investigations — indexability, crawl controls, redirects, sitemaps, markup, caching, DNS, bot verification, rendering, hreflang, and faceted navigation — with clearly labeled fixture evidence and Find → Fix → Verify handoffs.
- Canonicalization Checker — Audit HTML and HTTP canonical signals, test the canonical target, and identify observable conflicts that can cause Google to choose a different URL.
- Raw vs. Rendered HTML Checker — See what's in your page's initial HTML versus after JavaScript runs — headless-Chrome rendering only when the page actually needs it, a rendering-strategy verdict (SSR / prerendered / CSR / hybrid), ~15 calibrated JavaScript-SEO checks (noindex, canonicals, robots.txt blocking, links, soft 404s), a side-by-side raw-vs-rendered diff, and shareable reports.
Tools for Framer SEO
- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — submit the Framer sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., watch indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and use URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. to confirm Google sees the pre-rendered HTML.
- Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. — Framer has no IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it., so submit your sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. here manually to cover Bing.
- Framer’s built-in panels — per-page SEO settings, the redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. manager, and
custom
<head>code injection are all in the Framer editor; that’s where most of the work happens. - Rich ResultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. Test / Schema MarkupSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. Validator — after you paste JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. into
custom
<head>code, validate it (since there’s no Framer schema UI to catch errors). - A site crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. — Ahrefs Site Audit or Screaming Frog to verify titles, canonicals, redirects, and that nothing important is set to noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed..
- CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program. / PageSpeed InsightsPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking. — read the field (CrUX) data for real Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data., not just the lab score Framer warns against over-reading.
Test yourself: Framer SEO
Five quick questions on how SEO works on Framer. Pick an answer for each, then check.
Resources worth your time
My related writing
- The Beginner’s Guide to Technical SEO — where platform choice and renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. fit in the bigger picture.
- JavaScript SEO Issues & Best Practices — why pre-rendered HTML (what Framer does) is the reliable path, and what goes wrong when it isn’t.
- Robots.txt and SEO: Everything You Need to Know — context for Framer’s auto-generated and plan-gated robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere..
My speaking
- How Search Works (SlideShare) — my walkthrough of crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and ranking, which is the lens for judging any builder’s SEO. (My standing disclaimer applies: “This is my understanding of systems… not going to be 100% complete or accurate.”)
From around the industry
- Framer Help: Guide to SEO features and tools — the official feature list, straight from Framer.
- Framer Blog: Dynamic Optimization — Framer’s own explanation of traffic-aware pre-rendering and CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program..
- Is Framer good for SEO? (Arthur Lauwers, 6th Man Digital) — an honest agency take with good limitation coverage.
- Honest Framer SEO Review (Hannah Martin) — strong on speed and the CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. title-management limits.
- Webflow vs Framer (Matija Golubovic, Omnius) — the scale and flexibility comparison (read with its Webflow lean in mind).
- Is Framer good for SEO? (BRIX Templates) — a design agency’s technical walkthrough.
Framer SEO
Framer SEO is the set of built-in and configurable search optimization features in Framer, a design-first website builder. Framer publishes pre-rendered static HTML, so pages are crawlable without JavaScript execution, and it exposes per-page metadata, automatic sitemaps and robots.txt, redirects, canonical tags, and custom <head> code injection.
Related: Webflow SEO, JavaScript SEO
Framer SEO
Framer SEO refers to how search optimization works on sites built with Framer, a design-first website builder that grew out of a React prototyping tool (formerly Framer X) into a full publishing platform. The single most important technical fact: Framer pre-renders static HTML at publish time. Pages are not client-side rendered, so GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. receives complete HTML without having to execute JavaScript — a fundamental advantage over tools that ship a client-only single-page app.
Out of the box, every published Framer site gets an automatic sitemap.xml, a default robots.txt, self-referencing canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., automatic HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', and a CDN that converts images to WebP. Per-page SEO settings — title, meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through., Open GraphOpen Graph (OG) tags are `<meta>` elements in a page's head, defined by the Open Graph protocol (ogp.me, created by Facebook), that describe a page as a shareable object — its title, description, image, URL, and type. They control how a link preview card looks when the page is shared on Facebook, LinkedIn, Slack, Discord, WhatsApp, and iMessage. They are not a direct Google ranking factor, though Google reads og:title, og:image, and og:site_name as inputs to how a result appears. image, canonical, and an indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed./noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. toggle — are available on all pages, including CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. collection items, where metadata can be driven by CMS fields. Custom <head> code injection (site-wide and per-page) covers JSON-LD structured dataJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., verification tags, and anything Framer’s UI doesn’t expose directly.
The known limitations are mostly about scale and depth: there’s no schema markupSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. UI (JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. goes in via custom <head> code), no alt-text binding from CMS fields, custom robots.txt requires a Pro plan or higher, and hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. tags are generated automatically for localized sites but aren’t manually editable. Framer and Webflow are broadly comparable at the technical SEOTechnical SEO is the practice of making a site easy for search engines to crawl, render, index, and (now) be eligible for AI answers. It's the foundation that lets your content and links rank — not a ranking trick of its own. level; the differences are in CMS maturity and workflow, not in whether the HTML is crawlable.
Related: Webflow SEO, JavaScript SEO
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 19, 2026.
Editorial summary and recorded change details.Summary
Corrected a stale redirects limitation: Framer's redirect manager now supports wildcard folder redirects, capture groups, and slug matching, not just one-to-one mapping. Added the accurate remaining limit (no cross-domain redirects) and the Pro+ plan gate, fixed the PageSpeed Insights quote's source link, and added Framer's newly documented CMS-field JSON-LD templating syntax.
Change details
- Before
Redirects are effectively one-to-one — there's no wildcard or regex pattern support.AfterFramer added wildcard and pattern matching to its redirect manager (folder wildcards, capture groups, slug matching); the real remaining limit is that redirects can't cross domains, and the redirect manager itself requires a Pro plan or higher. -
Added Framer's documented `{{FieldName | json}}` custom-code syntax for templating JSON-LD structured data across CMS collection items.
-
Re-linked the 'imprecise tool' PageSpeed Insights quote to its actual source (Framer's dedicated PSI help article) instead of implying it came from the Dynamic Optimization blog post.
Full comparison unavailable — no prior snapshot was archived for this revision.