Webflow keeps site-wide scripts in one place, and the whole installation is pasting the snippet there and pressing publish. The second half is where this goes wrong more often than the first.

Get the snippet from your dashboard first. It looks like this, with your own site ID in the path:

<script src="https://t.skomi.com/s/YOUR-SITE-ID.js" defer></script>

Where it goes

  1. Site settings → Custom code
  2. Paste it into Footer code
  3. Save changes
  4. Publish the site

Footer code puts it before the closing </body> tag on every page. Head code works too, because the snippet carries defer, so it will not block rendering from either position, but the footer is the one Webflow recommends for load speed and there is no reason to argue with that here.

Custom code appears in preview and does not go live until you publish. This is Webflow's own note and it accounts for most "I installed it and Skomi shows nothing" messages. Saving is not publishing. If the dashboard is empty ten minutes after you saved, check that the site has been published since.

Include the <script> tags exactly as given. Webflow pastes your code in verbatim, so a snippet without its tags is inert text in the page. Never add <html>, <head> or <body> tags of your own. Webflow's own documentation warns that those break the layout.

Before the field will be there at all

Site-wide custom code needs a paid Site plan on that site, or a Core, Growth, Agency or Freelancer Workspace. On a free plan the Custom code tab will not accept site-wide code, and no snippet from us changes that. If you are evaluating Skomi on a Webflow site that is not on a plan yet, that is the thing to sort out first, because everything below depends on it.

There is a 50,000-character limit on each code section. The snippet is one line, so this only matters if you are sharing the field with something large already.

Per-page rather than site-wide

Page settings → Custom code → Before </body> tag takes the same snippet for one page only. It is the wrong place for analytics, since you would be measuring the pages you remembered to edit, but it is worth knowing the field exists, because code there loads after the site-wide code and is a good place to look when something on one page behaves differently from everywhere else.

What you get without doing anything else

Webflow serves ordinary pages, so every navigation is a real page load and each one is counted. There is no router to hook into and no per-page call to make.

Interactions, form submissions and Webflow's own animations happen inside the page and are not page views. If you want those measured, they are events or one of the automatic captures, not something the platform reports for you.

If nothing arrives

  • Published since saving? The commonest cause, and worth checking twice.
  • Is the site ID right? It is in the path of the script URL, not an attribute.
  • Ad blocker on your own browser? Test in a private window, or from a phone on mobile data. Your own visit is the one most likely to be blocked.
  • Webflow staging vs custom domain. A .webflow.io staging address and your live domain are two hostnames. Both report to the same site ID unless you have excluded one, so check you are looking at the traffic you think you are.

See the snippet for what it does on the page, and excluding traffic if you want your own visits out of the numbers.