Docs
Install the Visitorly tracker on your website
You do not need to be a developer. Pick the option that matches how your website is built, then follow the numbered steps. When it works, Real-Time in Visitorly shows a visitor within a few seconds.
Which option should I use?
- WordPress — download the plugin from Sites. Best if you (or your agency) already log into WordPress.
- Google Tag Manager — download the GTM file and paste it as a Custom HTML tag. Best if a marketing person already manages tags.
- Squarespace, Webflow, Wix, Shopify, or a simple HTML site — copy the HTML snippet into the site header. Details below.
- Next.js or another app built by developers — use the Next.js snippet or the npm helper. If you are not the developer, send them the Install tracker page and your Sites card.
You only need one of these. Do not install the snippet twice on the same pages. Never paste code into the browser console — that does not stay on your website.
Find your site in Visitorly
- Sign in at /login.
- Open Sites in the left sidebar (under Manage).
- If you have not added the website yet: type the domain exactly as people type it in the browser (for example
example.com, withouthttps://), then click Add Site. - On that website’s card you will see the HTML snippet, WordPress Plugin, GTM Custom HTML, npm Snippet File, and Export Events (JSON). JSON is a download of your visitor history for your records — it is not something you put on the website. See export your data.
Setup Guide (sidebar) also shows a filled snippet for the website you currently have selected.
WordPress Plugin
This is the easiest path if your site runs on WordPress. The file Visitorly gives you is a tiny plugin that loads the tracker on every public page. You do not edit theme files.
- In Visitorly, open Sites and find the matching website.
- Click WordPress Plugin. Your browser downloads a file named like
visitorly-example.com.php. - WordPress only accepts a zip when you upload a plugin. Compress that one file:
- Mac: right-click the .php file → Compress.
- Windows: right-click → Send to → Compressed folder.
- Sign in to WordPress (usually
yoursite.com/wp-admin). - Go to Plugins → Add Plugin → Upload Plugin.
- Choose the zip, click Install Now, then Activate.
- Open your public website in a new tab and click two or three pages.
- In Visitorly, open Real-Time. You should see a hit within a few seconds.
If Upload Plugin is blocked by your host, ask whoever manages hosting to place the .php file in wp-content/plugins/visitorly/ and activate it from Plugins. The plugin is unique to that Visitorly site — do not reuse one file on a different domain.
Google Tag Manager
Use this if GTM is already on the site. You paste Visitorly as one extra tag so it runs on every page.
- In Visitorly → Sites, click GTM Custom HTML. Open the downloaded file in a text editor and copy everything.
- Sign in at tagmanager.google.com and open the container for this website.
- Click Tags → New. Name it “Visitorly”.
- Tag type: Custom HTML. Paste the copied code.
- Trigger: All Pages (or Initialization – All Pages if your container uses that).
- Save, then click Submit and publish. GTM changes are not live until you publish.
- Browse the live site, then check Visitorly → Real-Time.
HTML, Squarespace, Webflow, Wix, or Shopify
In Visitorly → Sites, leave the tab on HTML / <head> and click Copy HTML snippet. Then paste it where your website lets you add header code:
- A file you edit yourself: paste just before
</head>on every page (or in a shared layout). - Squarespace: Settings → Developer tools / Advanced → Code injection → Header.
- Webflow: Site settings → Custom code → Head code.
- Wix: Settings → Custom code → Add code → Head, load on all pages.
- Shopify: Online store → Themes → Edit code →
theme.liquid→ paste before</head>.
Menu names vary slightly by plan. If you cannot find “header” or “custom code”, send the copied snippet to whoever built the site and ask them to put it in the global head.
<script async src="https://YOUR_VISITORLY_HOST/t.js?key=YOUR_SITE_PUBLIC_KEY" data-key="YOUR_SITE_PUBLIC_KEY"></script>
Sites already fills in your real host and key. Prefer the copy button over typing this by hand.
Next.js, React, or npm
If a developer maintains the app, have them open Sites and use the Next.js / SPA tab, or download npm Snippet File. The in-repo package is visitorly-tracker (copy packages/visitorly-tracker from the Visitorly project, or paste the generated snippet).
Paste the loader in the root layout so it runs on every page (for example app/layout.tsx). Then deploy. Non-developers should use WordPress, GTM, or HTML instead.
import { loadVisitorly } from "visitorly-tracker";
loadVisitorly({
key: "YOUR_SITE_PUBLIC_KEY",
host: "https://YOUR_VISITORLY_HOST",
});Optional: first-party CNAME (fewer ad blockers)
By default the tracker loads from Visitorly’s host. Some ad blockers hide third-party analytics. A CNAME makes the script look like it belongs to your own domain (for example stats.yourdomain.com). Skip this until the basic install works.
- Ask whoever manages DNS (GoDaddy, Cloudflare, Namecheap, Google Domains, and similar) to add a record:
- Type: CNAME
- Name / host:
stats(or another short name you like) - Target / value: your Visitorly hostname only — the part after
https://shown on the Sites card (nohttps://, no slash)
- Wait until the new name resolves (often a few minutes, sometimes longer).
- In Visitorly → Sites, type that hostname (for example
stats.yourdomain.com) under First-party CNAME and click Save Host. - Copy the snippet again (it now uses your hostname) and update WordPress / GTM / HTML if you already installed the old one. Re-download the WordPress or GTM file after you save the host.
Check that it worked
- Publish or deploy the website if your platform has a publish button.
- Open the live site in a private/incognito window (extensions off if you use an ad blocker).
- Click a few pages.
- In Visitorly, confirm the same website is selected, then open Real-Time.
- On Sites, the line under the domain should change from “Tracker not seen yet” to a live or recently seen status.
Events are automatic
After the tracker is live you do not add extra JavaScript for conversions. Form submits become signup, subscribe, contact, or purchase when the form, page, or button looks like those actions. Thank-you and success pages count as thank-you. Outbound links, file downloads, mailto/tel, and 404s are captured the same way. Optional named goals live under Events in the dashboard.
If you see no visitors
- The domain in Sites must match the site you are browsing (www vs non-www matters).
- You installed the snippet for that site’s key, not a different website’s card.
- GTM was published. WordPress Plugin is activated.
- Try without an ad blocker. A CNAME (above) helps if blockers are the cause.
- Public status for the tracker is at /status.
Next: Using the dashboard →
If you are stuck, pick the matching guide
These pages use the same names as the dashboard sidebar. Open Setup Guide while signed in for the interactive checklist.
Start here
- What is Visitorly?
Plans, who does what, data isolation
- Getting started
Choose a plan, add a site, first install
- In-app Setup Guide
Signed-in checklist (same steps, inside the dashboard)
- FAQ
Empty charts, WordPress zip, JSON export, refunds
Put Visitorly on the website
- Install the tracker
WordPress, GTM, HTML, Shopify, Next.js, CNAME
- Connect Google
Optional GA4 and Search Console
- Paid Ads Hub
Meta, Google, TikTok Ads, Blended CAC & Guardrails
- Connect Clarity
Optional Microsoft Clarity project
Read the numbers
- Overview
KPIs, Traffic Growth notes
- Real-Time
Live visitors after install
- Events
Automatic conversions and named goals
- Audience
Map, new vs returning
- Acquisition
Sources, AI traffic, Search Console
- Paid Ads
Multi-channel ROAS, Blended CAC & Fatigue Guardrails
- AI Insights
Written digest of your metrics
- Portfolio
All websites in one table
- Reports and share links
PDF, CSV, Client Snapshot URL
Manage the account
- Sites
Add a domain, snippets, JSON export
- Team and alerts
Invites, roles, pulse, tracker-down
- Profile, password, 2FA, billing
Join date, period end, last-4, auto-renewal
- API and webhooks
Keys for Zapier / Make — optional
Legal
- Privacy Policy
Accounts, tracker events, retention, export
- Terms of Service
Plans, Whop checkout, acceptable use
- Cookie Policy
Session, share-link, tracker IDs
- Refund Policy
Whop or offline billing, cancellations