Speak Local runs this site, speaklocal.com, and the Speak Local app at app.speaklocal.com, including the copies of the app that agencies offer under their own name and web address. This policy covers both: what we collect, why, which companies help us handle it, how long we keep it and how to have it removed.
Who this covers
- Visitors to speaklocal.com.
- People who run the free scan, with or without an account.
- Customers: the people who sign up for Speak Local and the teammates they invite.
- Visitors to our customers’ websites, and people who comment on those sites through our feedback tool, when a customer puts our code on their site.
For that last group, the business that runs the website decides what our code collects and what it is for, and we handle the data on its behalf. Questions about one of those websites are best sent to that business. We’ll help it answer them.
On speaklocal.com
Every visit. Cloudflare sits in front of this site and our web host serves it, so both receive each request: your IP address, your browser’s details and the page you asked for. Cloudflare also measures how fast pages load, without cookies. Pages load the Inter typeface from Google Fonts, which gives Google your IP address and browser details as well.
The cookie banner. UserGuard runs the cookie banner and the accessibility controls in the corner of each page. It remembers your choices, and it is told the address of each page you open, but not who you are.
Analytics. Two tools measure the site:
- Google Analytics 4, through Google Tag Manager, records the pages you visit and how you found the site. It starts only once you accept analytics cookies, and doesn’t load before.
- Speak Local’s own analytics, the same script our customers install, records the pages you view and where you came from; your device, browser, screen size, language, time zone and approximate location; how long you stay, how far you scroll and where you click. Once you accept analytics cookies it also sets its cookie and makes a recording of each visit, showing what was on the screen and how you moved through it. Anything typed into a form field is hidden in the recording. Until you accept, it counts your visit with no cookie, nothing stored in your browser and no recording. We store your full IP address with these records.
We use them to see which pages help people and where they get stuck. You can withdraw consent at any time from the cookie preferences control, and the cookie policy lists every cookie by name.
Buying from this site. The Website Tune-Up and Managed are paid through Stripe’s checkout, which collects your payment details itself. If you buy straight from a free scan report, Stripe is also told which website the report was for.
The free scan
A scan needs only a website address. We keep the address, the report and the IP address that asked for it for two days, then delete them. The IP address is how we hold each person to three scans a day.
If you have the report emailed to you, we keep your email address with the website and its score for 90 days, and our team is told the report was sent. If you also tick “keep me posted”, we keep your address until you unsubscribe and may email you about Speak Local. Every email has an unsubscribe link. If you ask us to stop all email, we keep your address on a do-not-email list from then on, so that it stays stopped.
Speak Local accounts
What you give us. Your name, email address and password, and your organization’s name. If you set them, its branding (name, colors and logos) and its web addresses. Then what you add to work with: the websites you manage, their competitors, the searches and questions you track, the people you invite, and what our tools find about all of them.
Signing in. We store a one-way hash of your password, never the password itself, and keep two-factor secrets encrypted. For each signed-in device we keep the IP address and browser it signed in from, so you can see your devices and sign them out. Failed sign-in attempts are kept for a day to stop password guessing. If you sign in with Google, Google gives us your name and email address, and we store only Google’s identifier for your account.
Activity. An activity log records the changes made in your organization and who made them, for your administrators.
Billing. Stripe takes payments. We never see or store your card number. We keep your plan, the credits you use and Stripe’s reference for your account, and Stripe receives your email address and plan.
Email. We send what you need to run your account: the welcome email, invitations, password resets, billing and usage notices, alerts about scheduled audits, and website feedback digests if you turn them on. These keep coming while you have an account. Email about Speak Local itself, such as a reminder if you sign up and don’t choose a plan, goes only to people who tick the box for it on the sign-up form, and each one has an unsubscribe link that works without signing in. Our team is told when someone signs up or buys, so we can help if something goes wrong.
AI tools you connect. If you connect an AI assistant to Speak Local through our API or MCP server, it can read what your account can see, Search Console and visitor data included, when you ask it to.
Google accounts you connect
You can connect three Google services to a project. Each asks your permission on Google’s own screen first.
- Search Console, read-only: the searches your site appeared in, with the pages, clicks, impressions, positions, countries and devices.
- Google Analytics, read-only: your list of properties, so you can choose the one that belongs to the project.
- Business Profile: your listings and their reviews. We change something on a profile only when someone on your team presses the button to do it, such as replying to a review or correcting the listing’s phone number.
The access Google grants us is stored encrypted. We use Google user data only to show it to you and your team in Speak Local and to run the features you use. We don’t sell it, use it for advertising or use it to train AI models, and our staff don’t read it unless you ask us to (for help with a problem, say), for security, or where the law requires. Speak Local’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
Disconnecting a service stops us reading anything more from it, and withdraws our access at Google too, unless another Speak Local connection still uses the same Google account. Deleting a project or an organization does the same. You can always remove Speak Local yourself from your Google account’s third-party connections. What we already imported stays in the project until you clear its history or delete the project.
Code on our customers’ websites
Customers can put three pieces of our code on their own websites. Each is off until they choose it, and each runs on their site, under their privacy notice.
Analytics. For each page view the script records the page; where the visitor came from; terms searched in the site’s own search box; the device, browser, operating system, screen size, language and time zone; approximate location (the country, and the region and city where Cloudflare provides them); time on the page, how far down it they scrolled and where they clicked. It sets one cookie, holding a random identifier, to recognize a returning visitor for up to a year. On a site with a consent banner, the script reads the visitor’s choice from it: it sets that cookie, and records the visit, only once the visitor accepts analytics, and until then counts visits without cookies or browser storage. We keep the browser’s full user-agent text, and the IP address with its last part removed, unless the site owner chooses to keep full addresses.
If the owner turns on session recording, the share of visits they choose is recorded: what was on the screen and how the visitor moved through it. Anything typed into a form field is hidden. Text on the page is recorded as it appears unless the owner marks it to be hidden. Visitors whose browsers send Do Not Track or Global Privacy Control get no cookie, no recording and no record of their mouse movements, though their page views and clicks are still counted.
The script doesn’t ask visitors for consent itself. It reads the visitor’s answer from the site’s consent banner where the banner passes it on (UserGuard does, and so does any banner that sets Google Consent Mode). A site owner who needs consent before any counting can still hold the script back until it is given, and we show them how. Visits from our own scanners and from automated browsers, and any the owner excludes, are dropped before they are stored.
Website feedback. The feedback tool appears only to people the owner sends a review link to, or on test sites the owner names. A comment stores the reviewer’s name, their email address if they give it, the comment, the page and the spot on it, the browser, operating system and device, and a copy of the page as it looked, with anything typed into forms hidden. Reviewers can edit or delete their own comments until the team replies. The tool remembers the reviewer’s name and email on their own device, so they don’t type them again. Email to reviewers is off unless the owner turns it on, and every one has an unsubscribe link.
Review widgets. These show a business’s reviews on its site. They collect nothing about visitors and only remember, on the visitor’s device, whether they closed the widget.
Companies that handle data for us
| Company | What for | What it receives |
|---|---|---|
| Cloudflare | Protects and speeds up speaklocal.com and the app, and measures page speed on this site | Every request, with its IP address and browser details |
| Linode (Akamai) | Hosts the app, its database and its backups, and this site | Everything stored in the app |
| Stripe | Payments | Your email address and plan, and the payment details you enter at checkout |
| Sign-in with Google, the Google services you connect, fonts, Google Analytics on this site (with consent), and answers from Gemini | What each one needs: your Google identity, the data you connect, page requests for fonts, visits to this site, and the questions you track | |
| OpenAI and Perplexity | Answers from ChatGPT and Perplexity to the questions you track, so we can see which businesses they name | Each question, and for OpenAI the area your business serves |
| DataForSEO | Search results, keyword figures, backlinks, reviews and map rankings | The searches, websites, business names and locations you track |
| MailChannels | Delivers our email | Each recipient’s address and the message |
| UserGuard | The cookie banner and accessibility controls on this site | Your cookie choices, and the address of each page you open |
Customer and competitor websites are also read by our own scanner, which identifies itself as SpeakLocalScanner, the way a search engine reads them.
What we don’t do
- We don’t sell personal information, or share it for advertising based on what you do on other sites.
- There are no advertising or social media trackers on speaklocal.com, and the app runs no analytics or advertising scripts at all.
- We don’t use your data, or your visitors’ data, to train AI models.
How long we keep it
| What | How long |
|---|---|
| A free scan report, and the IP address that ran it | 2 days |
| A report emailed to you, with your address | 90 days, or until you unsubscribe if you ticked “keep me posted” |
| A request to stop all email | From then on, so it keeps working |
| Failed sign-in attempts | 1 day |
| A signed-in device | Until you sign out, or 30 days |
| An invitation | Until it’s accepted, and 44 days at most |
| Your account, organization and projects, and the activity log | While your account is open |
| Website visits: page views and events | 400 days |
| Clicks, scrolling and heatmap data | 120 days |
| Session recordings | 30 days |
| Website feedback comments | Until the team or the reviewer deletes them, or the project is deleted |
| Page copies attached to resolved comments | 30, 90 or 365 days, or indefinitely, as the site owner chooses |
| Backups | 14 days |
A backup of everything is taken every six hours, so something deleted can remain in a backup for up to 14 days after it is gone from the app.
How we protect it
- Passwords are stored only as scrypt hashes, and sign-in sessions, API keys and invitation links only as hashes.
- Google access and two-factor secrets are encrypted.
- Two-factor sign-in is open to everyone, and an organization can require it.
- Every connection uses HTTPS, and sign-in, sign-up and our public endpoints are rate limited.
If a breach affects your data, we’ll tell you, as the law requires.
Seeing, changing or deleting your data
Email [email protected] to get a copy of your data, correct it, have it deleted, or stop any email. We check that the request comes from you, and we honor it wherever you live.
In the app, an administrator can delete a project, which removes its data, recordings and page copies, or clear a project’s analytics or history on their own. An organization’s owner can delete the whole organization, which ends its subscription and removes everything in it. You can delete your own account from the Profile page of your account settings. If you’re the only owner of an organization, hand it to someone else or delete it first. Or email us and we’ll do any of these for you.
If you visited, or left feedback on, a website that uses Speak Local, ask the business that runs it first, since it controls that data. You can also write to us and we’ll pass your request on.
Unsubscribe links in our emails work at once, without signing in.
Changes and contact
If this policy changes, we’ll update this page and the date at the top. Write to us at [email protected], or at Speak Local, 115 Oak Hill Dr, Oakland, ME 04963.