ENPL Log in Start free
// Integrations / Framer

Visitant on Framer

Framer keeps a dedicated place for scripts that run on every page. Paste one line there, publish, and your site is counted - without cookies and without a consent banner.

Time: 4 minCode: 1 lineCookies: 0

What you need

  • A Framer site on a paid site plan. Framer's help pages we checked do not list custom code in the plan table, but in our experience site-wide custom code publishes only on a paid plan (Basic or Pro); the Free plan also cannot use a custom domain.
  • Editor access to the project.
  • A free Visitant account with your domain added, for example yoursite.com.

Setup in 5 steps

  1. 01 Open the site settings

    In the Framer editor click the settings (gear) icon at the top of the canvas to open the project settings. Framer's help calls this Project Settings; older versions and many tutorials say Site Settings. The exact wording may differ in your version.

  2. 02 Go to Custom Code

    Select the Custom Code tab in the left sidebar. If you have never added code, click Add Script; otherwise click the + icon. Give the script a name you will recognise later, for example Visitant.

    Framer offers four positions: start or end of <head>, start or end of <body>. Pick End of <head> tag.

  3. 03 Paste the Visitant line

    Paste the line below into the script field and replace yoursite.com with your domain. Framer's own performance advice is to use defer for site-wide scripts - the line already does.

    <script defer data-domain="yoursite.com" src="https://annuora.com/v.js"></script>
  4. 04 Publish

    Click Publish in the top right corner. Framer does not run custom code in the canvas or the editor preview - it only works on the published site, so there is nothing to see until you publish.

    Publishing to a framer.app address as well as your domain? Visits from both are recorded under the domain written in the tag. Add the Framer address as a second site in Visitant if you want them apart (the Free plan includes 2 sites).

  5. 05 Open the live site and navigate

    Open your published domain in a normal browser tab and click between a few pages. Framer sites navigate like a single-page app: the page does not reload, the address changes through history.pushState. Visitant's tracker wraps pushState and listens for popstate, so every in-site navigation is recorded as a pageview without any extra code.

Is it working? Check in 60 seconds

Keep the Visitant dashboard in a second tab. Everything below should happen within a minute of publishing.

  • The current visitors counter at the top of the dashboard shows 1 while you are on the site.
  • Navigate to a second page inside the site (without reloading): both paths appear in the Pages table, which confirms SPA navigation is tracked.
  • Press the browser Back button: the previous path gets one more pageview.
  • Open the site from a link in a chat or a social post: the Sources table shows that source instead of Direct.
  • Right-click the live page, View page source, and search for v.js: the line is inside <head>, once.

Common problems

Nothing in the dashboard after publishingCheck the domain inside the tag against the site in Visitant - they must match exactly, without www. Then open the live site in a private window to rule out a cached copy.
The counter goes up on the first page but not when I click aroundHard-reload the page once: the tracker needs to load before it can wrap pushState. If the problem stays, check whether another script on the site replaces history.pushState after ours loaded.
Code works on the framer.app address but not on my domainThe domain is published separately. Click Publish and make sure your custom domain is selected in the publish dialog.
I only see my own visitsExclude yourself: on your site, open the browser console and run localStorage.setItem("visitant_ignore","1") once. Nothing else changes.

Questions

Does Visitant need a cookie banner on Framer?

No. The script sets no cookies and stores no IP addresses, so there is nothing to ask consent for. Framer's own cookie settings do not need to know about it.

Is the Framer Free plan enough?

In our experience, no: site-wide custom code needs a paid site plan, and the Free plan cannot connect a custom domain either. Visitant itself stays free for 5,000 events a month with 2 sites.

Can Visitant count AI crawlers on a Framer site?

Only crawlers that hit the tracker. Framer hosts your pages, so our server snippet has nowhere to run; if your domain sits behind Cloudflare, the Cloudflare Workers snippet from the dashboard counts every crawler hit.

Create a free account - the dashboard shows these steps with your own domain and key filled in.

Start free →