Webflow · Visual web platform

Webflow SEO audit: the issues built into Webflow — and how to fix them

A Webflow SEO audit checks your store across search, AI visibility, accessibility and security — with a fix for each issue we find.

A visual development platform that outputs clean, semantic HTML — strong SEO foundations, but its CMS Collections and designer-driven assets create their own gotchas.

How does Webflow's architecture shape your SEO?

Webflow is hosted, but unlike most builders it generates clean, standards-based HTML/CSS you'd be happy to ship by hand, and gives you full control over meta tags, canonicals, redirects, and robots. The SEO issues are therefore less about platform limits and more about how the site is built: CMS Collection lists paginate and filter into duplicate URLs, structured data isn't emitted automatically (you add it via custom code embeds), and designer-heavy pages with large interactions can drag performance. There's no server-side logic, so anything dynamic is client-rendered.

Reference: Webflow SEO docs →

What issues show up most on Webflow sites?

Why these happen on Webflow

Specific to how Webflow is built — not generic checklist advice.

AEO

No automatic structured data

Webflow won't emit Product, Article, or FAQ JSON-LD for you. You add it through custom code embeds, often pulling CMS field values into a script. Many Webflow sites ship with zero structured data — invisible to rich results and AI answers. Add JSON-LD embeds bound to your CMS fields.

Full fix guide →
SEO

CMS Collection pagination and filtering

Collection List pagination and filter states generate additional URLs of the same content. Without canonicals pointing back to the primary collection URL, these compete for ranking. Set canonicals and keep paginated/filtered variants out of the index.

SEO

Interaction and asset weight

Webflow's designer makes it easy to stack interactions, video backgrounds, and large images that inflate page weight and hurt LCP/INP on mobile. Compress and lazy-load assets, limit heavy interactions above the fold, and audit what's loading on every page.

Fixes written for Webflow

We catalog 182 Webflow fixes — exact steps for Webflow's admin and theme, each with a link to the official docs.

Catalog coverageSEO

Audit your XML sitemap and internal linking so that every product and category page is discoverable and crawlable by Google — not hidden behind JavaScript, pagination, or missing links.

On Webflow
  1. 1Webflow Project Settings › SEO: ensure 'Auto-generate sitemap' is enabled. The sitemap is served at yoursite.com/sitemap.xml.
  2. 2CMS Collections: every Collection (e.g., Products, Categories) used on your site must have a Collection Page template published. Open the Designer › CMS Collections and confirm each collection has a live template page.
  3. 3For each CMS Collection, open the Collection settings and confirm 'Indexable' is toggled ON — items with this off are excluded from the sitemap.
  4. 4In the Designer, confirm your Navigation component contains links to category/collection list pages using standard <a> tags (Webflow's link element), not JavaScript-only interactions.
  5. 5Webflow Ecommerce: Designer › Ecommerce › Products — ensure each product is Published (not Draft) and that the Product Template page is set to indexed.
  6. 6Submit yoursite.com/sitemap.xml in Google Search Console after publishing.
Code · Generic HTMLhtml
<!-- CORRECT: Standard crawlable link -->
<a href="/products/blue-running-shoes">Blue Running Shoes</a>

<!-- WRONG: JavaScript-only — Googlebot cannot follow this -->
<span onclick="navigate('/products/blue-running-shoes')">Blue Running Shoes</span>

Standard crawlable product link — use plain <a href> tags, never JavaScript-only click handlers, for navigation links that Google must follow.

Webflow docs →
Cwv clsSEO

Eliminate unexpected layout shifts by reserving space for every image, video, embed, and dynamically injected element so nothing jumps when the page loads.

On Webflow
  1. 1Images: In the Webflow Designer, click any image element → Element Settings (gear icon) → ensure 'Width' and 'Height' are set to explicit values (not 'auto' for both simultaneously). For CMS-bound images, set a fixed aspect ratio container: create a div wrapper with padding-top: 75% (for 4:3) and position the image absolutely inside it, or use the CSS aspect-ratio property in Webflow's Style panel.
  2. 2Lazy loading: Webflow automatically adds loading='lazy' to images below the fold. Ensure images in the hero/above-the-fold area have loading='eager' (set in Element Settings) so they load immediately without a shift.
  3. 3Fonts: In Project Settings → Fonts, Webflow inlines font-display: swap for Google Fonts automatically. For custom uploaded fonts (Project Settings → Fonts → Upload), add font-display: optional via a global CSS embed in Project Settings → Custom Code → Head code: <style>@font-face { font-display: optional; }</style>.
  4. 4Interactions / animations: In Webflow Interactions panel, review any 'Page Load' animations that move elements downward on trigger — replace with opacity-only animations that do not affect layout.
  5. 5Embeds: For any HTML Embed element (e.g. a reviews widget), wrap it in a div with a min-height style set in the Style panel to the expected rendered height.
  6. 6Verify: Publish your site and run PageSpeed Insights; check CLS < 0.1 on mobile.
Code · Generic HTMLhtml
<!-- CORRECT: explicit width and height prevent layout shift -->
<img
  src="/images/product-red-sneaker.jpg"
  alt="Red canvas sneaker, side view"
  width="800"
  height="800"
  loading="lazy"
>

Always declare width and height on every img element. The browser uses these to reserve space before the image file downloads.

Webflow docs →
Cwv inpSEO

Reduce Interaction to Next Paint (INP) to under 200 ms by breaking up long JavaScript tasks, deferring non-critical third-party scripts, and lightening event handlers so the page feels fast and responsive after every tap or click.

On Webflow
  1. 1In the Webflow Designer, go to Page Settings (the gear icon) for each page. Scroll to 'Before </body> tag' and move any third-party script embeds there if they are currently in 'Inside <head> tag', so they load after page content.
  2. 2Add `defer` or `async` as an attribute directly in your `<script>` embed code within the Custom Code panel.
  3. 3In Project Settings → Custom Code, review scripts in the 'Head Code' and 'Footer Code' sections. Move non-critical scripts to Footer and add `defer`.
  4. 4For interactions built with Webflow Interactions, audit any 'Page Load' triggers that fire heavy animations immediately — delay them or trigger them on scroll/interaction instead.
  5. 5Use Finsweet's Webflow Optimizer or a Cloudflare Worker to further defer scripts if native embed options are insufficient.
  6. 6Verify INP improvement with PageSpeed Insights and Chrome DevTools Performance panel after publishing each change.
Webflow docs →
Cwv lcpSEO

Reduce Largest Contentful Paint (LCP) to under 2.5 seconds by serving the hero image in a next-gen format (WebP/AVIF), preloading it, and eliminating render-blocking resources.

On Webflow
  1. 1IDENTIFY LCP IMAGE: Run PageSpeed Insights on your published Webflow URL. The LCP element is usually a Hero Section background image or a large <img> element at the top of the page.
  2. 2CONVERT TO WEBP/AVIF: In the Webflow Designer, select your hero image element › Asset panel › upload a WebP version of your hero image. Webflow also auto-generates WebP for images uploaded as JPEG/PNG in newer projects.
  3. 3SET LOADING PRIORITY: Select the hero <img> in the Designer › Element Settings (D key) › set Loading to 'Eager' and in the Custom Attributes panel add: Name: fetchpriority, Value: high.
  4. 4PRELOAD: Go to Project Settings › Custom Code › Head Code. Add: <link rel='preload' as='image' href='YOUR_WEBFLOW_IMAGE_CDN_URL' fetchpriority='high'>. Find the URL from the published page's source.
  5. 5DEFER JS: In Project Settings › Custom Code, move non-critical third-party <script> tags to the Footer Code section and add 'defer'. Do not defer scripts that must run before first paint.
  6. 6REMOVE INTERACTIONS FROM HERO: Webflow Interactions that trigger on page load for above-the-fold elements add JS weight. Simplify or remove entrance animations on the hero section.
  7. 7VERIFY: Publish the site and re-run PageSpeed Insights. Check Webflow's SEO settings confirm no lazy-load is applied to the hero.
Code · Webflowhtml
<!-- Webflow: Head Code injection — preload LCP hero image -->
<link
  rel="preload"
  as="image"
  href="https://uploads-ssl.webflow.com/YOUR_SITE_ID/YOUR_IMAGE_ID/hero-banner.webp"
  fetchpriority="high"
>

Paste in Project Settings › Custom Code › Head Code. Replace the href with your published Webflow image CDN URL (right-click live hero image, Copy image address).

Webflow docs →

Browse all 182 Webflow fixes →

How AI reads Webflow sites · AEO

33% of Webflow sites publish structured data

JSON-LD is the schema.org markup AI answer engines read to understand — and cite — a page. But 1.9% of Webflow sites add it only after JavaScript runs, so non-JS AI crawlers never see it. SEOLZ checks whether your structured data is present, valid, and visible to AI.

33%
publish JSON-LD
85%
have Open Graph
1.9%
JSON-LD only via JS

Source: HTTP Archive — structured-data probes on static + rendered HTML across 110,990 Webflow sites.

The typical Webflow site · HTTP Archive

How Webflow sites measure up

Performance — median

3.8 MB
page weight
61
requests
7.2s
load time

Accessibility gaps — share of sites

93%
empty image alt
37%
unlabelled fields
85%
non-semantic controls

Source: HTTP Archive lab performance + accessibility probes across 110,990 Webflow sites. SEOLZ measures your site against these.

⚠ What SEOLZ can't modify on Webflow

We still flag these issues — but the fix lives outside what Webflow lets you change.

Security headers

Webflow's hosting doesn't allow custom server-level headers. CSP, HSTS, and X-Frame-Options must be set via meta tags (limited effectiveness) or by proxying through Cloudflare.

robots.txt

Webflow allows editing robots.txt via Project Settings → SEO, but the format is restricted.

Every scan checks all six pillars

You can't rank what AI can't read. SEO, AEO, and GEO tell you where you rank; WCAG, OWASP, and Lifecycle determine whether search and AI can read and trust you at all. SEOLZ scores all six as one system.

🔍
SEO

Your catalog pages may be invisible to Google right now and you'd have no way to know. Indexability gaps, canonical conflicts, and faceted navigation issues silently kill organic traffic — we surface every one and tell you which to fix first.

Learn how to fix SEO issues →
✨
Answer Engine (AEO)

When someone asks ChatGPT to recommend a product in your category, is your store in the answer? Often it isn't. We check the structured data, page structure, and brand signals that help search and AI understand your products and describe them accurately — and we measure whether they actually cite you, or a competitor.

Learn how to fix Answer Engine (AEO) issues →
🌐
AI Visibility (GEO)

AI search is eating traditional organic traffic. We track your actual brand mentions across ChatGPT, Perplexity, and other AI engines — and tell you what's pushing you down in the results.

Learn how to fix AI Visibility (GEO) issues →
♿
Accessibility (WCAG)

Ecommerce stores are among the most frequent recipients of ADA accessibility demand letters. We run WCAG 2.1 AA checks across your catalog, surface the barriers that most often appear in demand letters, and track each one through to a verified fix.

Learn how to fix Accessibility (WCAG) issues →
🛡️
Security (OWASP)

A missing security header exposes your customers, and a compromised or flagged site loses search visibility fast. We check the server configuration, HTTPS setup, and email authentication issues that erode trust — before they become an incident.

Learn how to fix Security (OWASP) issues →
⏳
Site Lifecycle

SSL expires. Plugin versions fall behind. GTM containers go unverified. These aren't hypothetical risks — they're the operational failures that cause outages, ranking drops, and security incidents. We catch them before they happen.

Learn how to fix Site Lifecycle issues →

Start free. Upgrade when ready.

Scout
Free
1 site · 50 pages/audit · monthly audits
6-pillar welcome scan
  • ✓Composite + pillar scores
  • ✓Issue counts
  • ✓Recurring five-pillar re-scan
  • ✓Free forever
Start free
Starter
$49/mo
1 site · 500 pages/audit · weekly audits
All 6 pillars
  • ✓Every finding across all 6 pillars, with step-by-step fixes for your platform
  • ✓Template fixes: fix it once, clear it on every page built from that template
  • ✓Fix tracking: mark it fixed and the next audit confirms it
  • ✓Email alerts for score drops, new security issues, and SSL / domain expiry
  • ✓Report builder with PDF, HTML and Markdown export
  • ✓GTM & tracking audit, plus Search Console topic gaps
Choose Starter

Questions about Webflow audits

Is Webflow good for SEO?+

Technically yes — it outputs clean semantic HTML and gives you full control over meta, canonicals, redirects, and robots. The gaps we usually find are missing structured data and CMS-generated duplicate URLs, not platform limitations.

How do I add schema markup in Webflow?+

Through a custom code embed (per page or in the page settings), with CMS field values bound into the JSON-LD. We tell you exactly which schema each page type is missing.

Does SEOLZ work with Webflow?+

Yes — we crawl your published Webflow site and write fixes for the Webflow Designer, page settings, and custom-code embeds.

See what's holding back your Webflow site

Free scan, no credit card, results in minutes. We've got you.

Scan My Webflow Site Free