Webflow Google Indexing: Complete Guide to Getting Your Webflow Pages in Search Results
Webflow gives designers and developers unprecedented visual control over their websites, but that power comes with SEO responsibilities. This guide covers every indexing configuration point in Webflow, from per-page meta tags to CMS collection sitemaps to the critical staging subdomain issue that trips up even experienced Webflow users.
In this guide
Webflow occupies a unique position in the website builder landscape: it combines the visual design freedom of tools like Figma with the publishing and hosting capabilities of a CMS. Designers love it because they can build pixel-perfect layouts without writing code. Developers appreciate the clean HTML and CSS output. And from an SEO perspective, Webflow produces some of the cleanest, most semantic markup of any website builder.
However, Webflow's flexibility introduces complexity. Unlike Squarespace or Wix, where templates handle most SEO configuration automatically, Webflow puts the designer in charge of heading hierarchy, page structure, and semantic HTML. A beautifully designed Webflow site can have terrible SEO if the designer did not pay attention to heading levels, alt text, and page titles. Conversely, an SEO-conscious designer can build a Webflow site that rivals hand-coded HTML for search engine friendliness.
Webflow also has a unique challenge: every Webflow site has a staging subdomain at yourproject.webflow.io. This subdomain is accessible to search engines by default and can get indexed, creating duplicate content that competes with your production site. This is Webflow's most common indexing pitfall, and we will cover how to prevent and fix it.
This guide is for anyone building or managing a Webflow site who wants to ensure every page gets discovered, crawled, and indexed by Google. We cover Webflow's per-page SEO settings, the CMS collection system and how it affects sitemaps, robots.txt configuration through project settings, the 301 redirect manager, custom code injection for advanced meta tags, and the specific issues that arise from Webflow's architecture.
Webflow's SEO Architecture
Webflow generates clean, semantic HTML5 markup. Unlike many website builders that wrap content in layers of div elements with generic class names, Webflow allows designers to use semantic elements (header, main, nav, article, section, footer) and assign meaningful class names. This clean markup makes it easier for Google to understand your page structure.
Every Webflow page has per-page SEO settings accessible in the Page Settings panel. Here you can set the Title Tag, Meta Description, Open Graph Title and Description, Open Graph Image, and a custom slug. These settings are available for both static pages and CMS collection template pages.
Webflow generates an automatic XML sitemap for sites hosted on Webflow. The sitemap includes all published static pages and all published CMS collection items. The sitemap is available at yourdomain.com/sitemap.xml and updates automatically when you publish changes. Unlike Squarespace, Webflow allows you to exclude specific pages from the sitemap by toggling off the "Include in sitemap" option in each page's settings.
Webflow also gives you control over robots.txt through Project Settings > SEO > Indexing. You can toggle whether your site is indexed (this adds or removes a global noindex tag), and you can edit the robots.txt content directly. This direct robots.txt editing capability is more flexible than what Squarespace or Wix offer.
For hosting, Webflow uses a global CDN (powered by Amazon CloudFront and Fastly) that serves pages from edge locations near your visitors. This results in fast page loads and quick Time to First Byte (TTFB), which positively affects Google's crawl rate allocation. Webflow sites typically have TTFB under 200ms, which is excellent.
The Staging Subdomain Problem
This is Webflow's most significant and most common indexing issue. Every Webflow project has a staging subdomain at yourproject.webflow.io. This subdomain is used for development previews and client review. The problem is that the staging subdomain is accessible to Googlebot by default, and if Google discovers it (through external links, Webflow's own directory, or other means), it can index the entire staging site.
When both your production domain (yourdomain.com) and your staging subdomain (yourproject.webflow.io) are indexed, you have a full-site duplicate content situation. Google sees two complete copies of your website and has to decide which to treat as the canonical version. In some cases, Google chooses the webflow.io subdomain, which means your production domain's pages are treated as duplicates and may not rank.
Webflow does not automatically noindex the staging subdomain. As of 2026, Webflow has added an option to password-protect the staging subdomain (available in Project Settings > Publishing), but this must be explicitly enabled. Without it, the staging site is wide open.
To prevent this issue, enable staging password protection in Project Settings immediately after creating your project. If the staging subdomain is already indexed, password-protect it (which returns a 401 status), then use Google Search Console's Removals tool to request removal of the webflow.io URLs. You can also add the webflow.io staging subdomain as a separate property in Google Search Console to monitor whether Google is still crawling it.
Another layer of protection: verify that your production site's canonical tags point to your custom domain, not the webflow.io subdomain. Webflow handles this automatically when you connect a custom domain, but test by viewing your live site's source code and confirming the canonical URL uses your custom domain.
CMS Collections and Dynamic Content Indexing
Webflow's CMS allows you to create structured content collections — similar to custom post types in WordPress. Common collections include blog posts, team members, case studies, product listings, and FAQ entries. Each collection has a template page that defines the layout, and each collection item generates a unique page from that template.
For indexing purposes, CMS collection items behave like any other page: they have their own URL, their own title tag and meta description (which can be dynamically populated from collection fields), and they appear in the sitemap. However, there are several Webflow-specific considerations:
First, CMS items that are set to "Draft" status are not published and do not appear in the sitemap. Make sure all items you want indexed are set to "Published" status. Items in "Staging" status are only visible on the staging subdomain, not the production site.
Second, the template page's SEO settings use dynamic field bindings. For example, you might set the Title Tag to "{Name} | Your Brand" where {Name} is a CMS field. If the CMS item's Name field is empty, the title tag renders as " | Your Brand" — a broken title that hurts indexing. Always ensure required fields have validation rules or default values to prevent empty SEO tags.
Third, Webflow's CMS has a 10,000 item limit (depending on your plan). For large sites approaching this limit, the sitemap becomes very large. Google can handle sitemaps with thousands of URLs, but large sitemaps take longer to process. Prioritize your most important collection items for IndexBolt submission so they get indexed first while Google works through the rest of the sitemap.
Fourth, collection list elements on static pages (e.g., a "Latest Blog Posts" section on your homepage) generate internal links to CMS items. These internal links are a discovery mechanism for Google — they help Googlebot find your CMS pages even before processing the sitemap. Design your homepage and key landing pages to include collection lists that link to your most important CMS content.
Custom Code Injection for Advanced SEO
Webflow provides code injection at two levels: site-wide (Project Settings > Custom Code) and per-page (Page Settings > Custom Code). These injection points allow you to add custom meta tags, structured data, third-party scripts, and any HTML you need in the <head> or before </body>.
For SEO purposes, the most common custom code additions include JSON-LD structured data markup for pages where Webflow's built-in schema support is insufficient. For example, you might add FAQ schema to a FAQ page, LocalBusiness schema to a contact page, or HowTo schema to a tutorial. Adding structured data helps Google understand your content and can enable rich results in search.
You can also add custom meta robots directives through code injection. While Webflow's page settings include basic indexing controls, code injection allows more granular directives like noarchive (prevents Google from caching the page), nosnippet (prevents Google from showing a text snippet), or max-image-preview:large (allows large image previews in search results).
For Webflow CMS pages, you can use Webflow's Embed element to inject dynamic structured data that pulls from CMS fields. For example, on a blog post template, add an Embed element with a <script type="application/ld+json"> block that references collection fields for the article title, author, publish date, and featured image. This generates unique structured data for each blog post automatically.
One important note: custom code added through Webflow's code injection is only processed when the site is published. Changes to custom code in the designer are not immediately live — you must click "Publish" to push them to production. This is different from platforms like WordPress where saving a change makes it live immediately.
Webflow Redirects and Domain Configuration
Webflow's 301 redirect manager is accessible at Project Settings > Hosting > 301 Redirects. Each redirect defines an old path and a new path (or external URL). Webflow supports exact path matching and basic pattern matching with the * wildcard.
When you connect a custom domain to Webflow, the platform configuration requires specific DNS settings. For root domains, you add an A record pointing to Webflow's IP addresses. For the www subdomain, you add a CNAME record pointing to proxy-ssl.webflow.com. Webflow then handles SSL certificate provisioning automatically.
DNS propagation can take 24-48 hours, and during this window, your site may be intermittently accessible at the custom domain while the webflow.io subdomain remains the primary accessible URL. Google may crawl during this propagation window and index the webflow.io version. This is another reason to password-protect the staging subdomain.
Webflow handles www to non-www redirection automatically based on your domain settings. In Project Settings > Hosting > Custom Domain, you choose whether the www or non-www version is the primary domain. Webflow creates a 301 redirect from the non-primary version to the primary version.
For sites migrated to Webflow from another platform, create 301 redirects for every URL on the old site that maps to content on Webflow. Webflow's redirect manager does not support regex, so complex URL patterns must be handled with individual rules or wildcard patterns. For large migrations with hundreds of URLs, Webflow does not currently offer CSV import for redirects — each redirect must be added individually through the UI, though you can use the Webflow API to add redirects programmatically.
After setting up redirects, verify each one works by visiting the old URL and confirming the redirect lands on the correct new URL. Monitor Google Search Console's Pages report for 404 errors on your old URL patterns and add redirects for any you missed.
Step-by-Step Guide
Password-protect your staging subdomain
In Webflow, go to Project Settings > Publishing > Staging. Enable password protection for your staging subdomain (yourproject.webflow.io). Choose a strong password that you share only with team members who need staging access. This prevents Googlebot from crawling and indexing your staging site, which would create duplicate content competing with your production domain. Do this as the very first step, ideally before your site has any content. If your staging subdomain is already indexed, proceed to request removal from Google's index (covered in Step 3).
Configure per-page SEO settings for all pages
In the Webflow Designer, open each page's settings (click the gear icon in the Pages panel). For each page, set a unique Title Tag (under 60 characters, keyword-optimized), Meta Description (under 155 characters, compelling and relevant), and clean URL slug. For CMS collection template pages, use dynamic field bindings to generate unique titles and descriptions for each item. For example, bind the Title Tag to "{CMS Item Name} | Your Brand" and the Meta Description to "{CMS Item Summary}". Verify that no collection items have empty fields that would result in broken or generic meta tags.
Check for and remove staging subdomain from Google's index
Search Google for site:yourproject.webflow.io. If results appear, your staging subdomain has been indexed. Add the staging subdomain as a property in Google Search Console, then use the Removals tool (Indexing > Removals) to request removal of the entire subdomain. Select "Remove all URLs with this prefix" and enter the staging subdomain URL. This removal is temporary (6 months), but with password protection enabled (Step 1), Google will not be able to re-crawl and re-index the staging content.
Submit your sitemap to Google Search Console
In Google Search Console, select your production domain property and go to Sitemaps. Submit yourdomain.com/sitemap.xml. Webflow generates this automatically and includes all published static pages and CMS collection items. After submission, monitor the Sitemaps report for any errors. Check that the number of URLs discovered matches the number of published pages on your Webflow site. If the numbers do not match, check for pages excluded from the sitemap (this is configurable per page in Webflow) or draft CMS items that are not published.
Set up 301 redirects for migrated or changed URLs
Go to Project Settings > Hosting > 301 Redirects. Add redirects for any URLs that have changed, including old page slugs, migrated URLs from a previous platform, and any restructured sections. Use the format: Old Path = /old-page, New Path = /new-page. For wildcard redirects, use * at the end of the old path (e.g., /old-blog/* redirects to /blog/*). Test each redirect by visiting the old URL and confirming it arrives at the correct new page. For large migrations, consider using the Webflow API to add redirects programmatically instead of entering them one by one.
Add structured data through custom code injection
For pages that benefit from rich results (blog posts, product pages, FAQ pages, contact pages), add JSON-LD structured data through Webflow's custom code injection. Go to Page Settings > Custom Code > Head Code and add a <script type="application/ld+json"> block with the appropriate schema. For CMS collection template pages, use Webflow's Embed element within the page design to add dynamic structured data that pulls from collection fields. After publishing, validate your structured data using Google's Rich Results Test (search.google.com/test/rich-results) to ensure there are no errors.
Submit priority pages through IndexBolt
After publishing your Webflow site and completing the technical setup, identify pages that need immediate indexing. For new sites, submit all primary pages — homepage, service pages, key landing pages, and your most important CMS items. For existing sites with unindexed pages, check Google Search Console's Pages report and export URLs with "Discovered - currently not indexed" or "Crawled - currently not indexed" status. Submit these through IndexBolt to accelerate their path into Google's index. Webflow sites typically have fast page loads and clean HTML, which means once Google processes your IndexBolt submission, indexing happens quickly.
Common Issues & How to Fix Them
Staging subdomain (webflow.io) indexed instead of production domain
Cause: The Webflow staging subdomain at yourproject.webflow.io is publicly accessible by default. If external links, social media posts, or Webflow's own showcase directory link to the staging URL, Google discovers and indexes it. Since the staging site has identical content to the production site, Google sees complete duplicate content and may prefer the webflow.io version.
Fix: Enable password protection on the staging subdomain in Project Settings > Publishing > Staging. Then search Google for site:yourproject.webflow.io. If results appear, add the staging subdomain to Google Search Console and use the Removals tool to request removal of all URLs. Monitor over the following weeks to confirm the staging URLs drop out of Google's index. Verify your production site's canonical tags point to your custom domain.
CMS collection items missing from the sitemap
Cause: CMS items set to "Draft" or "Staging" status are not included in the published sitemap. Items must be in "Published" status to appear. Additionally, if the CMS collection template page has "Include in sitemap" toggled off, no items from that collection will appear in the sitemap, even if individually published.
Fix: Check the status of your CMS items in the CMS panel — all items you want indexed should be "Published." Then check the collection template page's settings and ensure "Include in sitemap" is toggled on. After fixing, publish the site and verify the items appear in yourdomain.com/sitemap.xml. If you recently added many CMS items, resubmit the sitemap in Google Search Console to prompt Google to re-process it.
Custom domain DNS propagation causing intermittent 404s
Cause: When connecting a custom domain to Webflow for the first time, DNS propagation takes 24-48 hours. During this period, some DNS resolvers point to the old server (or nowhere) while others point to Webflow. If Googlebot crawls during propagation, it may encounter errors or the webflow.io fallback, leading to inconsistent indexing signals.
Fix: Set up DNS records during a low-traffic period and allow 48 hours for full propagation before promoting your new domain publicly. During propagation, keep the webflow.io staging site password-protected to prevent Google from indexing it. After propagation completes, submit your sitemap to Google Search Console under the custom domain and monitor for any 404 errors in the Pages report. Do not change DNS records again for at least a week after the initial setup.
Empty SEO fields on CMS items generating broken meta tags
Cause: CMS collection template pages use dynamic field bindings for title tags and meta descriptions. If a CMS item's bound field is empty (e.g., the SEO Description field was not filled in), the resulting meta tag is empty or contains only the static portion of the template. Empty title tags and meta descriptions hurt indexing because Google either generates its own (often poorly) or skips the page entirely.
Fix: Add validation to your CMS collection fields so that required SEO fields (name, summary, SEO title, SEO description) cannot be left empty. For existing items with empty fields, use Webflow's CMS bulk editor to quickly populate them. In your template page's SEO settings, use field bindings that reference the most reliable fields — the item's Name field is almost always populated, so use it as a fallback for SEO title if no dedicated SEO title field exists.
Webflow's form pages and utility pages getting indexed
Cause: Webflow generates utility pages for form submissions (success and error pages), 404 error pages, and search results pages. These pages may be accessible at predictable URLs and can get indexed if discovered. They typically have thin or generic content that is not valuable in search results.
Fix: For form success/error pages and the search results page, add a noindex meta tag through the page's Custom Code > Head Code section: <meta name="robots" content="noindex">. For the 404 page, Webflow returns a 404 HTTP status code, which tells Google not to index it — no additional noindex tag is needed. Toggle off "Include in sitemap" for utility pages to prevent them from appearing in the sitemap.
Pro Tips
Webflow sites have blazing-fast page loads and clean HTML that Google loves — but even great technical SEO cannot make Google crawl on your schedule. When you launch a new Webflow site or publish a batch of CMS items, use IndexBolt to push those pages directly into Google's indexing queue. Get your design-forward content in front of searchers within hours of hitting publish.
100 free credits. No credit card required. See results in under 24 hours.
Frequently Asked Questions
Does the Webflow.io staging subdomain hurt my SEO?+
Yes, if it is indexed by Google. The staging subdomain contains a complete copy of your site, creating duplicate content that competes with your production domain. Google may choose to index the webflow.io version instead of your custom domain, or it may split ranking signals between both versions, weakening both. Always password-protect your staging subdomain to prevent this issue.
How do I exclude specific pages from Webflow's sitemap?+
In the Webflow Designer, open the page settings for the page you want to exclude. Toggle off the "Include in sitemap" option. This removes the page from the auto-generated sitemap.xml. Note that excluding a page from the sitemap does not prevent Google from finding it through internal links or external links — it only removes it from the sitemap. To prevent indexing entirely, also add a noindex meta tag through the page's custom code injection.
Can Webflow CMS collections be indexed individually?+
Yes. Each CMS collection item generates its own page with a unique URL based on the item's slug. These pages appear in the sitemap and can be crawled and indexed independently. Each item page can have its own title tag, meta description, and structured data, dynamically generated from the CMS fields. Make sure all CMS items are set to "Published" status and that the collection template page has "Include in sitemap" enabled.
How do I add a noindex tag to a Webflow page?+
Open the page settings in the Webflow Designer. Go to the Custom Code tab and in the "Inside <head> tag" field, add: <meta name="robots" content="noindex, follow">. This tells Google not to index the page while still following its links. Publish the site for the change to take effect. You can verify the tag is present by viewing the page source on your published site and searching for the robots meta tag.
Why are my Webflow pages slow even though Webflow uses a CDN?+
While Webflow's CDN delivers fast TTFB for the initial HTML, page load speed also depends on your design choices. Large hero images, unoptimized background videos, excessive custom fonts, heavy animations (Lottie files, complex interactions), and numerous third-party scripts all add to page weight and load time. Optimize images, limit custom fonts to 2-3 weights, use Webflow's lazy loading for below-the-fold content, and minimize third-party scripts. Check your page speed with Google's PageSpeed Insights tool.
Can I use IndexBolt to get my Webflow CMS items indexed faster?+
Absolutely. Webflow CMS items often face indexing delays because Google processes sitemaps sequentially and lower-authority sites get less frequent crawling. After publishing new CMS items, copy their URLs from your sitemap and submit them through IndexBolt. This is especially valuable for time-sensitive content like blog posts, event pages, or product launches where every day of delay means missed traffic.