Is Webflow good for SEO?
Yes, with a catch. Webflow outputs clean HTML, gives you SEO fields on every page and every CMS item, hosts on a fast CDN with free SSL, and builds your sitemap for you. You do not need a plugin for any of the basics.
The catch is that Webflow hands you the switches and leaves them in a state that is fine for building, not for ranking. A new site is live on two domains. The global canonical is blank. Collection templates start with fixed text. Images default to lazy loading, including your hero. None of that is wrong on day one, and all of it costs you once the site is live. We cover the full pros and cons in Is Webflow good for SEO?.
The 8 Webflow settings to check first
These are the High priority rows that do the most damage when missed. Each takes a few minutes.
1. Block the webflow.io staging domain
Every Webflow site also lives at yoursite.webflow.io. Go to Site settings > SEO > Indexing and turn indexing of the Webflow subdomain off, then publish. Webflow then serves a robots.txt on the subdomain only. You need a Site plan or paid Workspace for this.
Then search Google for site:yoursite.webflow.io. If pages show up, blocking alone will not remove them. You need to verify the webflow.io address in Search Console and use the Removals tool. Our guide on removing webflow.io from Google walks through it.
2. Set one default domain
In Site settings > Publishing > Production, click Make default next to the version you want (www or root). Webflow's sitemap uses the default domain. If it is wrong, every URL in your sitemap answers with a redirect, which tells crawlers those pages do not live there.
3. Type the global canonical exactly
Site settings > SEO > Global canonical tag URL builds the canonical tag on every page. Enter https://www.yourdomain.com with the protocol, with www only if www is your default, and with no trailing slash. A trailing slash gives you canonicals like https://www.yourdomain.com//contact on every page.
4. Bind collection template titles to CMS fields
Open the collection template, then Page settings > SEO settings > Title tag, and click + Add Field. If the title is fixed text, every blog post shares one title tag. The best setup is a dedicated "SEO title" plain text field in the collection, with " | Brand" typed after it. Do the same for the meta description. Our guide to Webflow CMS SEO titles and descriptions shows the field setup.
5. Check robots.txt for a leftover block
Open yourdomain.com/robots.txt. If you see Disallow: / under User-agent: *, your whole site is blocked from crawling. It usually comes from a pre-launch setting nobody removed. Edit it in Site settings > SEO > Indexing.
6. Add a 301 for every URL you changed
In Site settings > Publishing > 301 redirects, add the old path (relative, like /old-page) and the new one. For a whole folder, use a wildcard: /blog/(.*) to /articles/%1. Two traps:
- Webflow runs rules oldest first, so a broad wildcard added early catches URLs before a specific rule added later.
- Importing a CSV replaces every existing redirect. Export first, add your rows, then import the combined file.
7. Fix alt text where Webflow does not check it
Alt text set in the Assets panel carries to every place the image is used. But the Audits panel skips CMS-bound images, and images inside rich text fields need their own alt. Add an "Image alt" field to collections and bind it.
8. Publish
Page settings, custom code and SEO fields are saved in the Designer, but nothing changes on the live site until you publish to your custom domain. Spot-check one page in view-source after each batch.
A sample from the checklist
Here are five rows exactly as they appear in the sheet.
| Check | Where (Webflow, 2026 UI) | Priority | SEOmatic can apply it? |
|---|---|---|---|
| The webflow.io staging subdomain is blocked from search | Site settings > SEO > Indexing | High | No |
| Global canonical tag URL matches the default domain exactly | Site settings > SEO > Global canonical tag URL | High | No |
| Collection template title is bound to CMS fields | Collection template > Page settings > SEO settings > Title tag > + Add Field | High | Yes |
| Bulk redirects are imported without wiping old ones | Site settings > Publishing > 301 redirects > Export CSV / Import CSV | High | No |
| The hero image loads eagerly, the rest lazily | Designer > select image > Element settings > Load | Medium | Yes (in CMS rich text) |
Each row in the file also has "Why it matters", "How to fix" and a status dropdown.
Webflow CMS SEO: where most sites lose clicks
Static pages get attention because people build them by hand. CMS pages are where the volume is: blog posts, case studies, locations, integrations. Three checks cover most of the risk:
- Unique titles and descriptions per item, bound to CMS fields, with character limits set in the field settings (60 and 160).
- Clean slugs before publishing. Webflow makes the slug from the item name, so "Our Complete 2023 Guide to Trail Running Shoes" becomes a long URL with a year in it. Changing it later means a 301.
- Noindex the thin ones. On paid Site plans, each item has a Sitemap indexing toggle in Item details. Turning it off adds a noindex tag and removes the item from the sitemap.
Webflow also caps a Collection list at 100 items unless you turn on pagination. Items beyond that are not in the page HTML, so make sure each one is linked from somewhere a crawler can reach.
Webflow page speed settings that move Core Web Vitals
Google's "good" thresholds are LCP of 2.5 seconds or less, INP of 200 ms or less, and CLS of 0.1 or less, measured on real visitors (web.dev). On Webflow, the usual causes are:
- A lazy-loaded hero image. New images default to Lazy. Set the first big image on each template to Eager.
- Page-load interactions that start the hero invisible. The page is not "painted" until the animation ends.
- Uncompressed images. Use the Assets panel's bulk Compress to AVIF or WebP. Keep a JPG or PNG for Open Graph images, because LinkedIn does not read WebP or AVIF there.
- Scripts in the site-wide head. Move chat, heatmap and A/B scripts to the pages that need them and load them with
defer. - Advanced publishing options. In Site settings > Publishing, turn on minify for HTML, CSS and JS, then try per page CSS and async JavaScript.
What to do after the checklist
Settings stop pages from being lost. Clicks come from titles and content that match what people search. Open Search Console > Performance > Pages, sort by impressions, and look for pages in positions 3 to 10 with a click-through rate well below the pages around them. Those are your first rewrites.
That is the part SEOmatic does for Webflow sites: it reads your Search Console data, finds those pages, and drafts new titles, descriptions and CMS content in Webflow. Nothing goes live until you approve it, and on static pages nothing goes live until you publish. The checklist marks every row it can apply with "Yes".
How to use this with an AI assistant
You can run this checklist on your own site from Claude, ChatGPT, Cursor or any assistant that supports MCP. Connect SEOmatic at https://seomatic.ai/mcp, then paste one of the prompts below.
What the assistant can and cannot do: check_site works without signing in and covers your homepage, robots.txt (including AI crawlers) and up to 10 sitemap pages. site_audit checks up to 30 pages for missing or duplicate titles, noindex leaks, stray canonicals, thin, slow and dead pages, and broken internal links. Staging a fix only creates a proposal. Nothing changes on your site until you approve it, and on Webflow static pages nothing goes live until you publish.
Copy-paste prompt
Use SEOmatic to run the Webflow SEO checklist on mysite.com.
1. Start with check_site on mysite.com (no sign-in needed). Tell me if the homepage can be indexed, what robots.txt allows (including AI crawlers), and the top fixes it finds.
2. Then connect_seomatic so you can use my Google Search Console data.
3. Run site_audit and list every duplicate or missing title and meta description, noindex leak, canonical that points elsewhere, thin page, slow page, dead page and broken internal link. Group them by the Webflow area they belong to: static page settings, CMS collection template, 301 redirects, sitemap and robots.txt.
4. Run gsc_insights (action: sitemaps) and tell me if my sitemap is submitted and read without errors.
5. Use gsc_indexing (action: batch_inspect) on my 50 most important URLs (gsc_performance (action: top_pages) first) and flag any that Google has not indexed, with the reason.
6. Run gsc_insights (action: ctr_outliers) and gsc_insights (action: cannibalization). List the pages ranking 3 to 10 with weak click-through rate, and any queries where two of my pages compete.
7. For each problem, tell me whether it is something I change in a Webflow setting myself (give me the exact Site settings or Page settings path) or something SEOmatic can draft.
8. Use task_manage (action: create) to stage proposals for the fixes SEOmatic can draft, then show_approval_cards so I can review them. Do not approve anything for me. I will decide each one.What each tool does here (and does not do)
| Tool | Used for | Limits |
|---|---|---|
| check_site | Free first look without sign-in: homepage indexability, robots.txt including AI crawlers, up to 10 sitemap pages, top fixes | Does not read Search Console |
| connect_seomatic | Signs you in so the tools below can use your Search Console data | |
| site_audit | Up to 30 pages: duplicate or missing titles and descriptions, noindex leaks, canonicals pointing elsewhere, thin, slow and dead pages, broken internal links | 30 pages per run |
| site_pages (action: analyze) | Score and issues for one URL | One URL at a time |
| gsc_insights (action: sitemaps) | Whether your sitemap is submitted and how Google read it | |
| gsc_performance (action: top_pages) | Your pages with the most clicks, to pick what to inspect | |
| gsc_indexing (action: batch_inspect) | Google's index status for many URLs | 50 URLs per call |
| gsc_indexing (action: inspect) | Index status for one URL, with Google's reason | |
| gsc_insights (action: ctr_outliers) | Pages with impressions but a click-through rate below what their position should get | |
| gsc_insights (action: cannibalization) | Queries where more than one of your pages competes | |
| task_manage (action: create) | Stages fix proposals | Proposals only. Nothing is executed |
| show_approval_cards | Shows proposals for you to review | |
| task_manage (action: decide) | Approve or dismiss one proposal | Your decision, not the assistant's |
| task_manage (action: rollback) | See and undo an applied change |
What SEOmatic can and cannot change on Webflow
- Can draft and apply after approval: CMS item SEO title and meta description (when your collection template binds them to CMS fields), CMS item name, slug and rich text body, internal links and alt text inside CMS rich text, Open Graph fields, JSON-LD, static page SEO title and description. Static page changes go live only when you publish your site. SEOmatic never publishes it for you.
- You change yourself (SEOmatic gives you the exact value): 301 redirects, robots.txt, canonical, noindex, sitemap settings, Assets panel alt text, Localization and hreflang, speed and publishing settings.
Go deeper
Sources (26)
- help.webflow.com/hc/en-us/articles/33961368603539-Disable-search-engine-indexing
- help.webflow.com/hc/en-us/articles/33961263684115-Set-canonical-tags-to-improve-SEO
- help.webflow.com/hc/en-us/articles/33961355371667-Create-a-sitemap-in-Webflow
- help.webflow.com/hc/en-us/articles/33961339571475-Set-a-default-domain
- help.webflow.com/hc/en-us/articles/33961294898835-How-do-I-set-up-redirects-in-Webflow
- help.webflow.com/hc/en-us/articles/33961211526291-Import-export-301-redirects
- webflow.com/webflow-way/seo/site-level-seo
- webflow.com/webflow-way/seo/page-level-seo
- help.webflow.com/hc/en-us/articles/33961237278611-Add-SEO-title-and-meta-description
- help.webflow.com/hc/en-us/articles/33961330170643-Include-alt-text-on-images
- help.webflow.com/hc/en-us/articles/33961311761939-Image-conversion-tool
- help.webflow.com/hc/en-us/articles/33961287288339-Advanced-publishing-options
- help.webflow.com/hc/en-us/articles/33961235675155-Localized-SEO-and-locale-routing
- help.webflow.com/hc/en-us/articles/33961370432275-Dynamic-content-limits
- help.webflow.com/hc/en-us/articles/33961362705171-Page-URLs
- sygnal.com/blog/is-webflows-pagination-an-seo-problem
- developers.google.com/search/docs/appearance/title-link
- developers.google.com/search/docs/appearance/snippet
- developers.google.com/search/docs/crawling-indexing/robots/intro
- developers.google.com/search/docs/crawling-indexing/block-indexing
- developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- developers.google.com/search/docs/specialty/international/localized-versions
- developers.google.com/search/blog/2023/08/howto-faq-changes
- web.dev/articles/vitals
- developers.google.com/search/docs/appearance/google-images
- support.google.com/webmasters/answer/9689846


