Your Squarespace website is not tracking in Google Analytics because the Measurement ID is missing from the page source, the wrong ID format was used, or a privacy tool is blocking the script. Check your page source for the gtag code. If it is not there, the data will not reach Google. This guide walks you through the specific settings in Squarespace 7.1 and 7.0 to fix the issue.
Why is google analytics not tracking my squarespace website?
You are seeing zero data or low numbers in your Google Analytics dashboard while your Squarespace internal analytics show traffic. This disconnect happens for a few specific technical reasons. The most common is that the code is not actually firing on the live site. Before you start changing settings, you need to confirm whether the code is present at all.
Use this Google Analytics checker to verify if the tag is firing on your specific URL. It tells you immediately if the script is loaded and sending data to the correct property. If it says the tag is not found, the problem is in the installation. If it says the tag is found but data is missing, the problem is in the configuration or privacy settings.
The ID format is wrong
Squarespace 7.1 and later versions use Google Analytics 4. The field in your settings expects a Measurement ID. This ID starts with the letter G followed by a dash and seven alphanumeric characters. It looks like G-ABC12345.
If you are using an older Universal Analytics ID, it starts with UA. This format is deprecated. Squarespace no longer processes data for UA IDs. If you pasted a UA ID into the field, the system will accept it, but it will not send any data.
To fix this:
- Log in to your Google Analytics account.
- Go to Admin in the bottom left corner.
- Under Property, click on Property Settings.
- Copy the Measurement ID that starts with G.
- Go to your Squarespace dashboard.
- Click Settings.
- Click Developer tools.
- Click External API keys.
- Paste the G ID into the Google Analytics field.
- Click Save.
Wait 24 hours for the data to appear in your reports. Google Analytics processes data in batches, not in real time.
The code is not in the page source
Even if you saved the ID in the settings, it might not be injected into the live site. This happens if the setting was saved while the site was in a specific state or if a template override removed the header code.
To check this, open your website in Chrome. Right click anywhere on the page and select View Page Source. A new tab will open with the HTML code. Press Control and U on your keyboard to do this faster.
In the source tab, press Control and F. Type gtag in the search box. If you see the function definition for gtag, the code is present. If you see nothing, the code is not on the page.
If the code is missing from the source, you need to add it manually. Go to Design in your Squarespace dashboard. Click on the gear icon next to your current template to access Page Settings. Click on Code Injection. In the Header box, paste the full Google Tag Manager or Google Analytics snippet. This ensures the code loads on every page regardless of the template settings.
A privacy tool is blocking the script
Many Squarespace users install cookie consent banners or privacy tools. These tools often block third-party scripts until the visitor clicks accept. If your visitor does not click accept, Google Analytics never loads.
This is a common cause of low numbers. Your internal Squarespace analytics show traffic because Squarespace counts the server request. Google Analytics only counts the browser session if the script runs.
Check your privacy tool settings. You need to whitelist the Google Analytics domain. Most tools have a list of allowed scripts. Add analytics.google.com and googletagmanager.com to the allowed list. This ensures the script loads immediately without waiting for user consent.
If you are using a custom script for your banner, check the JavaScript. Look for where it filters domains. Make sure it is not catching the gtag script. This is a code change, not a checkbox. You need to edit the script logic to allow the analytics domain.
The site is on Squarespace 7.0
Squarespace 7.0 is the older version of the platform. It handles analytics differently than 7.1. In 7.0, the native analytics field might not work the same way. Some 7.0 sites require the code to be added via Code Injection rather than the Analytics settings.
To check your version, go to Settings and look at the footer of the page. It will say Squarespace 7.0 or 7.1. If it is 7.0, do not rely on the Analytics settings field. Use the Code Injection method described above.
Go to Design, then Page Settings, then Code Injection. Paste the full GA4 snippet into the Header box. This method works on both 7.0 and 7.1. If you use it, clear the ID from the native Google Analytics field so the tag does not load twice.
Data is delayed or filtered
Google Analytics does not show data in real time. It takes up to 24 hours for data to appear in the standard reports. If you just fixed the tracking, you will not see data today.
Check the Realtime report in Google Analytics. This report shows data as it happens. If you see active users here, your tracking is working. The standard reports will catch up within 24 hours.
Also check your filters. If you have an active filter that excludes internal traffic, your own visits will not show up in any report, Realtime included. Test from a different network, or set the filter to Testing while you check.
Clear your browser cache and test the site in an incognito window. This ensures you are not seeing cached pages without the new code.
The domain is different
If your Squarespace site uses a custom domain, make sure the Google Analytics property is set up for that domain. If you created the property for www.yoursite.com but your site is live at yoursite.com without the www, the data might not match.
Google Analytics 4 is flexible, but it still needs to recognize the domain. Go to Admin in Google Analytics. Under Property, click on Data Streams. Check the web stream. Make sure the domain listed matches your live site exactly.
If you have both www and non-www versions, you should have a single stream that covers both. If you have two separate streams, your data will be split. This makes it look like tracking is broken when it is just fragmented.
When you need a developer
If you have checked the page source and the code is there, and the privacy tool allows the script, but you still see no data, you have a deeper issue. This could be a service worker caching the old page, or a conflict with another script on your site.
In this case, you need a developer to inspect the browser console for errors. Open Developer Tools in Chrome. Click on the Console tab. Load your site. Look for red error messages. If you see a CORS error or a script blocked message, that is the problem.
Fixing JavaScript conflicts is not a simple setting change. It requires editing the code that is causing the conflict. If you are not comfortable with code, this is where you need help.
You can look at how we handle server-side tracking for clients who need to bypass these browser limitations. This approach moves the tracking logic to the server, which avoids most client-side blocking issues.
Verify the fix
After you make changes, you need to verify they worked. Do not wait 24 hours. Use the Realtime report.
- Open your site in an incognito window.
- Open the Realtime report in Google Analytics in another window.
- Refresh your site.
- Watch the Realtime report.
You should see a spike in active users within 30 seconds. If you see it, the fix worked. If you do not, the code is still not firing.
Go back to the page source check. If the code is not there, your settings did not save. Try clearing your browser cache and saving again.
If the code is there but Realtime is empty, check the domain in your Google Analytics property. Make sure it matches.
Common mistakes to avoid
- Using a UA ID in a GA4 field.
- Forgetting to save the settings in Squarespace.
- Checking the standard reports instead of Realtime for immediate feedback.
- Assuming the data is wrong when it is just delayed.
- Not whitelisting the analytics domain in your cookie banner.
These mistakes account for most tracking issues. Fix them in order. Start with the ID format. Then check the page source. Then check the privacy tool.
How to prevent this in the future
Once your tracking is working, set up a reminder to check it occasionally. Browsers update, and privacy tools change their defaults. If you update your cookie banner, re-check the whitelist.
If you change your template, check the page source again. Some templates have custom code that can override the header injection.
Keep your Google Analytics account secure. If you lose access, you lose your data. Set up two-factor authentication on your Google account.
Resources for further help
If you are still stuck, look at the Squarespace Help Center for their official documentation on analytics setup. They have specific guides for 7.0 and 7.1.
You can also read about server-side tracking options to understand the difference between client-side and server-side methods. This helps you decide if you need to upgrade your setup.
If you need help with your lead generation system, check out our pricing to see what is included in our tracking packages.
Final check
Look at your Realtime report one last time. If you see your own visit, you are good. The data will populate in the standard reports within 24 hours.
If you see nothing, go back to step one. Check the ID. Check the source. Check the privacy tool. Those three are the most common causes.
Do not guess. Check the code. The code does not lie. If it is not in the source, it is not tracking. If it is in the source and allowed by the privacy tool, it should be tracking, so confirm a test visit appears in Realtime.
This is the only way to know for sure.