Skip to main content

Guide

IndexNow on Webflow

Webflow cannot serve a plain-text file at your domain's root, and IndexNow needs one. The reliable fix is a tiny Cloudflare Worker that answers that one path while Webflow keeps serving everything else.

Protocol facts last checked 2026-10-19.

Why Webflow needs a workaround

IndexNow engines check that you own a host by fetching a key file from that host: by default https://www.example.com/<key>.txt, containing exactly the key. The IndexNow FAQ asks for the file in the root directory or another public folder on the same host.

Webflow serves the pages and assets it manages. You cannot upload a text file to your root, uploaded assets live on Webflow's asset CDN under another host, and a static page with the key in an embed is HTML, not the key. Webflow's 301 redirects cannot fix that either: AutoIndexNow refuses a key file that redirects to another host, because the IndexNow documentation does not say engines follow one.

01RequestAn IndexNow engine or AutoIndexNow asks for /3f9a2c….txt on your domain.
02Cloudflare, your zoneA Worker route matches exactly that path and answers with the key as plain text.
03WebflowEvery other path passes through to Webflow unchanged.
Only the key file path is answered by your Worker; every other request goes on to Webflow.

Before you start

  • A Webflow site plan with your custom domain connected. The webflow.io staging domain cannot be used.
  • Your domain's DNS on Cloudflare (the Free plan is enough). If it is elsewhere, you can move only the nameservers; Webflow keeps hosting the site.
  • Webflow's sitemap switched on: Site settings → SEO → Auto-generate sitemap. AutoIndexNow discovers your pages from it.
  • An AutoIndexNow account. The host you add must be the one in your sitemap: www.example.com and example.com are different hosts to IndexNow.

Set it up

  1. Add the site in AutoIndexNow and copy the key. On the site's page, the panel Verify ownership with your IndexNow key file shows the Key location (for example https://www.example.com/3f9a2c7e0b1d4e8fa6c5b4d3e2f1a0b9.txt) and the File content, the key itself. Copy both.
  2. Put Webflow behind Cloudflare's proxy. Webflow supports this as Cloudflare Orange-to-Orange (O2O). Follow Webflow's article Using Cloudflare Orange-to-Orange (O2O) with Webflow. In short: the site's records point at cdn.webflow.com and are proxied (orange cloud), the _webflow verification record stays DNS only, and SSL/TLS is set to Full (strict). Confirm your site still loads over HTTPS before you continue.
  3. Create the Worker. In Cloudflare, go to Workers & Pages → Create → start from the Hello World template, name it (for example indexnow-key), deploy, then replace its code with the snippet below using your own key and deploy again.
    // Route: <your host>/3f9a2c7e0b1d4e8fa6c5b4d3e2f1a0b9.txt  (only this path)
    const KEY = "3f9a2c7e0b1d4e8fa6c5b4d3e2f1a0b9";
    
    export default {
      async fetch() {
        return new Response(KEY, {
          headers: {
            "content-type": "text/plain; charset=utf-8",
            "cache-control": "public, max-age=3600",
          },
        });
      },
    };
  4. Route only the key file to it. Open the Worker, then Settings → Domains & Routes → Add → Route. Select your domain's zone and enter the exact pattern www.example.com/3f9a2c7e0b1d4e8fa6c5b4d3e2f1a0b9.txt with your host and key. Do not use a wildcard: the Worker must not answer any other path.
  5. Check it. Open the key location in a private window: you should see the key and nothing else. Then click Check key file on the site page in AutoIndexNow. The first successful check verifies the site, switches monitoring on and starts the initial check, which records your existing pages without submitting them.

After you publish in Webflow

You do not have to do anything: scheduled checks re-read your sitemap, render each page and submit only pages whose content or indexability really changed. That is usually better for CMS-heavy sites than submitting every collection item on every publish.

To start a check right after publishing, use a deploy hook. Webflow's site_publish webhook sends a POST and cannot add your own Authorization header, so relay it: an automation tool (or a Worker of your own) receives Webflow's webhook and makes this call. Hook calls count toward your plan's daily hook limit.

GET https://autoindexnow.com/api/hooks/{hookId}
Authorization: Bearer ain_hook_…

Troubleshooting

  • Error 525 or a redirect loop after enabling the proxy. The O2O setup or SSL mode is incomplete. Recheck Webflow's O2O article; Flexible SSL causes loops because Webflow redirects HTTP to HTTPS.
  • Webflow shows "Update needed" for the domain. With the proxy on, Webflow cannot see your records. Its O2O article says the warning can persist while the site works.
  • The key URL shows Webflow's 404 page. The route did not match: check the host (www or not), the exact key, and that the record for that host is proxied.
  • Check key file reports "redirect off host". A Webflow 301 redirect for the key path is still active. Remove it in Site settings → Publishing → 301 redirects and publish.
  • "mismatch". The response is not exactly the key: a different key, an HTML page, or extra text. The Worker must return only the key.
  • No pages found on the first check. Turn on Webflow's sitemap and publish, or set the sitemap URL in the site's settings in AutoIndexNow.
  • A rotating component makes every page look changed. Add its CSS selector to the site's ignore rules.

What this does not do

The Worker only proves ownership; it does not change how Webflow serves or caches your pages. Pages that are noindex in Webflow from the start are never submitted; an indexable page you later mark noindex is reported once, after the change has held for 12 hours. Sources checked on 2026-10-19: the IndexNow FAQ, Cloudflare's Workers routes and O2O compatibility documentation, and Webflow's O2O article.

A 200 or 202 from an IndexNow endpoint means the request was accepted, not that the URL is indexed. Google does not participate in IndexNow.