measuremy.site

Adding Analytics to a Framer Site

A person planning a software project with handwritten notes and code on a monitor in a modern workspace.
Photo by Jakub Zerdzicki on Pexels

What to track on a Framer site

A Framer site is published as pages with paths such as /pricing, /signup or /thank-you. The first measurements most small sites need are:

Start with pageviews and traffic sources. Add click events or funnels later when you have a specific question to answer, such as why signups are low.

Start with one site-wide snippet

Most external analytics tools give you a JavaScript snippet. Add it once in your Framer site settings, not on every page. A cookieless hosted tracker script may look like this:

<script defer src="https://a.measuremy.site/t.js" data-key="YOUR_KEY"></script>

Replace YOUR_KEY with the key from your analytics dashboard. The defer attribute tells the browser to load the script without blocking the page. If your analytics tool gives a different snippet, use that one and follow its own instructions.

Where to put the snippet in Framer

In your Framer project, open site settings and find the custom code or analytics section. Paste the snippet into the site-wide head or end-of-body field. Save the change, then publish the site. Framer changes its settings layout from time to time, so check Framer's own documentation if you cannot find the field.

Do not put the snippet inside a single page's HTML embed unless you only want that page tracked. A site-wide field keeps counts consistent across the whole site. If custom code is not available in your project, check Framer's documentation or plan settings.

Verify the tag is working

After publishing, open your site in a private or incognito window. Visit a page, click a link, then check your analytics dashboard for a visit. If no visit appears:

You can also open your browser's developer tools, go to the Network tab, reload the page, and look for requests to your analytics domain. This shows whether the script loaded even if the dashboard has not updated yet.

Track clicks on Framer buttons

Pageviews tell you which pages are popular. Clicks tell you whether people start the actions you care about, such as opening a pricing plan or starting a signup. Many analytics tools support click tracking with a data attribute on an element.

In Framer, adding a custom attribute depends on the component. Some components expose a custom attribute field. If not, you can use an HTML embed block for the button and add the attribute there. Check Framer's documentation for the current method. If click tracking is too fiddly, track the destination page instead. A visit to /signup or /thank-you is often enough for a small site.

Handle Framer pages that change without reloading

Some Framer interactions load content without a full page load. If your analytics tool counts full page loads, test by navigating from one page to another and checking the dashboard. If a new pageview does not appear, check your analytics tool's documentation for single-page app or history-change tracking. This matters if your site uses overlays or internal navigation that changes content without changing the URL.

Use page paths for funnels

Framer page slugs become paths in your analytics. A simple signup funnel might be:

If your analytics tool supports funnels, build one from those paths in the order visitors should take. That shows the biggest drop-off step without needing custom code on every page.

Tag campaign links

For social posts, emails or ads, add UTM parameters to the links you share. The analytics script captures them from the URL and credits the visit to that source. Keep a simple naming convention such as utm_source=newsletter, utm_medium=email and utm_campaign=launch. Do not put UTM tags on internal links between pages on your own site, because that can split the same visit into a new source.

Avoid double counting

If Framer includes its own analytics and you also add an external script, you may see two sets of numbers. That is fine if you treat them as separate tools, but do not add two external pageview snippets unless you have a reason. Double counting makes every report harder to read.

Privacy and consent

A cookieless script that does not store personal data keeps analytics simple, but privacy rules still depend on your location and your visitors. Check your own legal position before deciding what to disclose in a privacy policy.

Keep the snippet when redesigning

If you rebuild sections or change pages, keep the site-wide snippet in settings. Do not remove it while testing because gaps make data hard to compare over time. If you move to a new analytics tool, verify the new snippet first, then remove the old one.

Adding analytics to a Framer site is mostly about pasting one site-wide snippet, publishing, and then testing in a private window. Once pageviews are working, add click events or funnels only for the decisions you actually need to make. That keeps the setup small and the reports easier to act on.

See it on your own site

measuremy.site is cookieless analytics your coding agent can read. 30-day free trial, no card. Plans from $9/month.

Start free trial See the live demo

Add measuremy.site analytics to this project: connect the measuremy.site MCP server at https://a.measuremy.site/mcp for all my projects (claude mcp add --scope user; it signs in with OAuth, no key, and one sign-in covers every site), then tell me how to sign in. Details: measuremy.site/llms.txt

Free tools

All free tools

More from the blog