A practice-level measurement system that keeps discovery, enquiry, booking, completion, optical retail, and finance events in their proper lanes.
An optometry dashboard can look healthy while the appointment book tells another story. The usual cause is not a missing chart. It is a broken event dictionary: call clicks become calls, forms become patients, and booked appointments become completed visits before anyone reconciles the records.
Definition: Optometry marketing KPIs are decision-linked measures that preserve each stage from discovery through completed visit. Every measure needs a written rule, timestamp, source system, owner, exclusions, evidence window, and privacy gate. Practice operations may explain movement, but marketing data alone does not prove clinical quality, patient outcomes, revenue, or growth.
Scope and review notice: This is general marketing operations information, not medical or legal advice. It does not diagnose, determine urgency, establish clinical eligibility, or confirm that any privacy law applies or is satisfied. Have a qualified US optometrist or optometry practice administrator and a privacy/compliance reviewer approve the dictionary. Confirm state-sensitive service, practitioner, facility, and advertising claims with the applicable current board before use.
You will leave with:
- an optometry-specific intent and exclusion model;
- eight separate acquisition events with accountable owners;
- five approved formulas that retain their evidence fields;
- a privacy-gated reconciliation map; and
- a monthly keep, change, or stop review.
What an Optometry Marketing KPI Is and Is Not
An optometry marketing KPI is a measure tied to a specific decision, such as changing a non-brand exam page or fixing intake classification. A raw count becomes useful only after the practice defines its stage, cohort, source, owner, exclusions, and threshold. It is not a proxy for clinical quality, productivity, profit, or optical performance.
Start with the question, not the chart. “Should we keep this contact-lens exam campaign?” can lead to a declared cohort and a completed-visit cost. “How is marketing doing?” invites a collage of incompatible counts. A practice with two locations may see more clicks while one location has no suitable appointment capacity. The count rose; the decision context worsened.
| Measure family | What it can answer | What it cannot establish |
|---|---|---|
| Discovery | Whether a defined query, page, or campaign earned impressions and clicks | Patient need, eligibility, enquiry quality, or appointment availability |
| Response | Whether a visitor triggered a call action or submitted a form | A connected conversation, a qualified request, or a booking |
| Intake | Whether a unique contact matched a written non-clinical rule | Diagnosis, urgency, clinical suitability, or completed care |
| Scheduling | Whether a qualified new-patient enquiry received a confirmed booking | Attendance, completion, an optical purchase, or collected payment |
Keep generic definitions of rankings, organic engagement, and technical measures in the SEO KPI guide. Keep generic content-funnel selection in the content marketing KPI guide. This page begins where those models meet optometry intake, scheduling, completion, and optical boundaries.
Freeze the Practice Truth Before Choosing Metrics
Write a dated practice-truth sheet before selecting any optometry marketing metrics. It must identify the legal practice and locations, licensed optometrists, verified appointment types, optical boundary, hours, current capacity, intake owner, clinical escalation path, source systems, privacy reviewer, and applicable state source. Unknown economics and market conditions stay marked unavailable.
This sheet prevents a campaign label from becoming a service claim. “Myopia management,” for example, belongs in marketing classification only if the practice has verified that service, practitioner scope, location, and booking path. The marketer can tag a request against that written truth. The marketer cannot decide whether a person is clinically eligible.
Practice-truth checklist
- Identity: legal name, public name, each staffed address, phone route, and location owner.
- People and scope: licensed optometrists, credentials allowed in copy, verified services, and effective dates.
- Inventory: routine comprehensive exams, contact-lens exams or fittings, optical-only handling, approved specialty services, and new-versus-existing-patient rules.
- Capacity: provider and front-desk coverage by location and appointment type, recorded as dated internal inventory rather than a public promise.
- Escalation: one clinical owner for symptom-led or urgent messages and one non-clinical intake owner.
- Governance: source-system owners, privacy reviewer, retention decision, and board source from the ARBO directory.
Fees, ticket sizes, payer and cash mix, net collected value, observed seasonality, and local competitive density are unavailable until the practice supplies dated, auditable records. Do not fill blanks with industry averages. A back-to-school pattern observed at one multi-location practice is not evidence for another practice with different providers, hours, or appointment inventory.
Build the Full Optometry Funnel Dictionary
Define one row for every event from impression through completed visit, with no shared labels or overwritten timestamps. The dictionary must also classify routine, contact-lens, optical-only, specialty, existing-patient, symptom-led, wrong-profession, career, vendor, spam, duplicate, and unreachable contacts. Marketing qualification stops at written non-clinical service, location, and capacity fit.
Optometry intent and routing table
| Audience or intent | Verified request | Non-clinical fit owner | Clinical escalation owner | Stage treatment and exclusion |
|---|---|---|---|---|
| Adult or guardian, routine | Comprehensive exam at a named location | Front desk or intake owner | Licensed clinical owner if symptoms appear | Eligible for marketing qualification only after service, location, and capacity match |
| Adult or guardian, contact lens | Contact-lens exam or fitting explicitly offered there | Intake owner using the verified appointment menu | Clinical owner for suitability or symptom questions | Keep separate from routine exam; exclude unsupported service or location |
| Optical-only | Frames, lenses, adjustment, pickup, or another practice-defined retail task | Optical owner | Clinical owner only when the message becomes clinical | Separate retail event; never relabel as an exam, new patient, or completed visit |
| Verified specialty service | Only a service present on the dated truth sheet | Named specialty intake owner | Qualified optometrist | Marketing may match stated request; clinical eligibility remains unclassified |
| Existing patient | Recall, prescription, records, billing, reschedule, or care question | Existing-patient service owner | Clinical owner where required | Exclude from new-patient acquisition cohort; retain in its proper service queue |
| Symptom-led or urgent | Any message describing symptoms or asking urgency | Intake owner routes without interpretation | Practice's licensed clinical pathway | Exclude from marketing qualification until clinical handling is complete and approved |
| Wrong profession | Request appears intended for an ophthalmologist, optician, retailer, or another provider type | Intake owner | Clinical owner only under written routing policy | Classify separately; do not assume equivalence or count as qualified |
| Career, vendor, spam, duplicate, unreachable | Non-patient or non-unique contact | Intake owner | None unless content triggers the clinical route | Exclude under the exact reason; preserve audit status and original event |
Eight-stage funnel dictionary
| Stage | Exact rule and timestamp | Source system | Owner | Exclusions | Privacy gate | Allowable conclusion |
|---|---|---|---|---|---|---|
| Impression | Platform records one eligible display; keep platform timestamp and declared filters | Search or ad platform | Search or campaign owner | Mismatched location, device, country, query, campaign, or partial-day filters | Aggregate reporting approved for the purpose | The defined asset was displayed under those filters |
| Click | Platform records a visit action; retain click timestamp and landing asset | Search/ad platform plus site analytics | Search or campaign owner | Invalid traffic and filter mismatches under the written rule | No sensitive audience inference | A click occurred, not an enquiry |
| Call click | Site or profile records activation of a call control | Site analytics or profile event source | Marketing owner | Test events and documented invalid traffic | Do not attach clinical message content | A call action was attempted, not connected |
| Form | Form system accepts one submission at its recorded timestamp | Form system | Form owner | Tests and technically rejected submissions | Approved fields, consent, access, and retention | A form arrived, not a unique enquiry |
| Unique enquiry | Intake owner deduplicates an attributable call or form under the written identity rule | Phone/form records plus intake log | Intake owner | Duplicates and spam; keep other states separately classified | Minimum necessary record and approved join key | One distinct contact entered intake |
| Qualified enquiry | Unique enquiry matches verified service, location, and current capacity without a clinical decision | Intake log or approved CRM | Intake owner with clinical escalation owner | Jobs, vendors, existing-patient tasks, wrong profession, unsupported scope, symptom-led records | Reviewer-approved classification fields | The stated request met the written non-clinical rule |
| Booked visit | Scheduling system confirms one new-patient appointment; preserve booking timestamp | Scheduling or practice-management system | Scheduling owner | Duplicates, pre-existing patients, unqualified records; reschedules counted once | Approved pseudonymous link where permitted | A booking exists, not attendance or completion |
| Completed visit | Practice-management system applies the written completion status after the service and late-entry lag | Practice-management system | Practice administrator | Reschedules counted once, cancellations, no-shows, duplicates, immature records | Role-based access and audit review | That booked cohort contains a recorded completed visit |
Google Analytics documents recommended events such as generate_lead, qualify_lead, working_lead, and close_convert_lead. Those names do not define the practice's rules. Use the GA4 event documentation as implementation vocabulary only after owners approve the local dictionary.
Bring your event dictionary to the strategy call. We can help separate the content and local-search questions from the intake and practice-system work your team must own.
Choose Discovery KPIs Without Calling Visibility Demand
Use impressions and clicks to judge a declared search or campaign surface, never to claim patient demand or appointment potential. Preserve channel, query group, page, location, device, country, brand rule, and identical date windows. A discovery KPI supports a discovery decision; it cannot establish intent quality, capacity fit, bookings, or completed visits.
For organic search, define brand before exporting. A query containing the practice name, an optometrist's name, or a distinctive product name may need branded classification. Document the rule, then compare identical query, page, country, device, and search-type filters across complete windows.
Search Console's performance report supplies clicks and impressions with query and page filtering. Retain the exact filter set and note omitted or anonymized queries. Do not combine a location page's non-brand impressions with branded home-page clicks and call the result an exam conversion funnel.
| Discovery question | Valid cut | Bad shortcut | Next decision |
|---|---|---|---|
| Is the routine exam page earning relevant organic attention? | Non-brand optometry query group, exact page, location, device, country, 28 complete days | All site impressions versus all calls | Keep, revise, or stop the page/query treatment |
| Did a contact-lens campaign attract clicks? | Named campaign and landing page during the frozen campaign window | Blending optical retail and exam campaigns | Change creative or landing-page match |
| Did local presence change? | Declared local rank or profile dataset with location ownership | Assuming profile activity equals enquiries | Inspect the local-search workflow, then reconcile downstream stages separately |
Where teams go wrong is denominator drift. They exclude branded queries from clicks but leave them inside impressions, or compare 28 days containing a closure with 28 fully staffed days. Save the export, freeze date, filters, and capacity note before discussing movement.
Measure Response and Qualification Without Making Clinical Decisions
Record call clicks, connected calls, form submissions, unique enquiries, and qualified enquiries as separate events. The intake owner may apply a written non-clinical match for verified service, location, and current capacity. Any symptom, urgency, diagnosis, or clinical-eligibility question must leave the marketing workflow and enter the practice's approved clinical escalation path.
A call click is useful for finding broken tap-to-call placement. It says nothing about whether a call connected. A connected call may be an existing patient asking about records, an optical pickup, a vendor, or a person seeking an ophthalmologist. Preserve the call event, then classify its outcome without copying clinical details into marketing tools.
KPI selection card
| Business question | Should the practice keep the declared routine-exam campaign for Location A? |
|---|---|
| Metric | Qualified-enquiry rate for the named 28-day cohort |
| Numerator | Unique enquiries qualified under the written non-clinical service, location, and current-capacity rule |
| Denominator | All unique attributable enquiries received in that same window |
| Evidence window | One declared 28-day intake cohort plus the stated qualification lag |
| Source system and owner | Phone/form records reconciled to the practice intake log; intake owner with clinical escalation owner |
| Exclusions | Duplicates, spam, jobs/vendors, existing-patient administration, wrong profession, unsupported service/location, and symptom-led records routed for clinical review |
| Decision threshold | Derived from the practice's own comparable, mature cohorts; unavailable until those records exist |
| Action | Keep, change, or stop the campaign with a named owner and review date |
TheStacc's Compliance Profiles apply required disclosures during planning, including license details, responsible-firm language, and not-advice wording where configured. They steer drafts away from prohibited claims and send each draft to a human verdict of None, Hold, or Block. Automated and agent-key callers cannot override that verdict; the licensed professional remains responsible.
That content control does not turn theStacc into a CRM, call tracker, scheduler, clinical triage service, finance system, or legal adviser. The Content SEO module handles keyword and search-result research, drafting, scoring and queuing, and CMS publishing. The practice must still own intake classification and professional review.
Connect Booked and Completed Visits Without Exposing Sensitive Data
Reconcile marketing response to booking and completion with the minimum fields approved for the stated purpose. Use a stable pseudonymous join key only where reviewers permit it, restrict access by role, preserve each event timestamp, and keep a mismatch queue. Cohorts remain open through declared booking, service, and late-entry lags before completion is judged.
Source-reconciliation map
| System | Event supplied | Approved join key | Data minimization | Mismatch queue | Access owner | Retention/review gate |
|---|---|---|---|---|---|---|
| Search or ad platform | Impression, click, campaign context | Aggregate campaign/session reference where approved | No patient or symptom detail | Unknown campaign or filter | Marketing owner | Campaign-purpose review |
| Site analytics | Page visit, call click, form event | Approved session/event reference | Exclude form payload and sensitive traits | Missing landing source | Analytics owner | Tracking and consent review |
| Phone system | Connected-call record and allowed outcome | Pseudonymous enquiry ID where approved | No recording or clinical content in marketing export | Call click without connected outcome | Phone/intake owner | Access and retention review |
| Form system | Submission and allowed routing status | Pseudonymous enquiry ID where approved | Only fields needed for routing | Form without intake disposition | Form/intake owner | Consent, access, and retention review |
| Scheduling or practice management | Booked, rescheduled, cancelled, no-show, completed | Approved pseudonymous appointment ID | No clinical notes in marketing view | Enquiry without booking or unmatched booking | Practice administrator | Privacy and audit gate |
| Finance record | Approved collected-amount event, if in scope | Approved cohort reference | Only the minimum amount and status fields | Unmatched or immature payment | Finance owner | Finance and privacy sign-off |
No particular integration is assumed here. A weekly CSV reconciliation, controlled report, or approved system connection may all be workable; the practice and reviewers choose. What actually breaks is the join: staff overwrite a booking date after a reschedule, or marketing exports patient-identifying form fields because the dashboard accepts them. Keep immutable event timestamps and limit the marketing view.
Do not treat an unreconciled record as zero. Put it in the mismatch queue with a reason, owner, due date, and access rule. A booking cohort that has not passed the service and late-entry lag is pending. This is especially important when routine exams, contact-lens fittings, and verified specialty services have different scheduling horizons.
Add Capacity and Economics Only From Practice Records
Add appointment capacity, direct channel cost, fees, payer and cash timing, net collected amounts, or optical events only after the practice supplies dated records and reviewers approve their use. Segment by verified appointment type and location only when sample size and privacy allow. These inputs explain decisions locally; they never become portable optometry benchmarks.
Capacity changes what a rate means. Ten qualified routine-exam enquiries may be welcome when Location A has matching provider inventory and a problem when the next available suitable slot is outside the practice's current intake rule. Marketing should receive a dated capacity status, not infer availability from an online calendar or promise access in copy.
Approved formula sheet
| Formula | Numerator | Denominator | Evidence window | Source and owner | Exclusions |
|---|---|---|---|---|---|
| Non-brand organic click-through rate | Organic clicks for the declared non-brand optometry query/page/location/device group | Organic impressions for identical filters | One named 28-day Search Console window versus a like-for-like window | Search Console; search owner | Branded queries, mismatched filters, omitted/anonymized queries, partial days, and consistently irrelevant countries/devices |
| Qualified-enquiry rate | Unique enquiries marked qualified under the written non-clinical service, location, and current-capacity rule | All unique attributable enquiries received in the same window | One declared 28-day intake cohort plus stated qualification lag | Phone/form records plus intake log; intake owner with clinical escalation owner | Duplicates, spam, jobs/vendors, existing-patient tasks, wrong profession, unsupported scope, and symptom-led clinical routes |
| Booked-visit rate | Unique qualified enquiries with a confirmed new-patient booking | All unique qualified enquiries created in the same cohort | One declared 28-day enquiry cohort plus the stated booking lag | Scheduling system joined to intake source; scheduling owner | Reschedules counted once, duplicates, pre-existing patients, unqualified or clinically escalated records |
| Completed-visit rate | Unique booked new-patient visits marked completed under the written rule | All unique booked new-patient visits from the same cohort | One declared booking cohort plus stated service and late-entry lag | Practice-management system; practice administrator | Reschedules counted once, cancellations, no-shows, duplicates, and visits not past the completion lag |
| Cost per completed new-patient visit | Direct channel spend attributable to the declared cohort | Unique attributable new-patient visits from that cohort marked completed | One declared 28-day acquisition cohort plus booking and completion lag | Spend export plus completion record; marketing owner with finance/practice sign-off | Uncosted owner labor, unallocated agency overhead, existing patients, cancellations/no-shows, unmatched visits, and optical-only purchases unless scoped |
Show call-click and form counts as their own raw rows before any rate. If the practice lacks fees, payer mix, observed seasonality, local-density records, or net collected values, write “unavailable.” Do not enter zero. Zero is a measured value; unavailable is an evidence condition.
Run a Monthly KPI Review With Keep, Change, or Stop Decisions
Hold one formal monthly review after freezing the reporting range and recording each source's extraction date. For every KPI, show completeness, capacity context, observed seasonality, local-density context, variance, exclusions, and cohort maturity. End with one keep, change, or stop decision, a named action owner, due date, and next review date.
Monthly review sheet
| Frozen date range | One declared period; use a 28-day cohort where the approved formula requires it |
|---|---|
| Source freeze date | Extraction date and time for each contributing system |
| Data completeness | Missing events, unmatched joins, immature bookings/completions, and late entries |
| Capacity context | Appointment type, staffed location, provider/front-desk coverage, and dated availability state |
| Observed seasonality note | Practice evidence for this period or “unavailable”; no industry assumption |
| Local-density note | Dated practice evidence or “unavailable”; no inferred competitive score |
| Variance explanation | What changed in filters, capacity, routing, creative, page ownership, or source collection |
| Decision | Keep, change, or stop, tied to the original business question and practice-derived threshold |
| Accountability | Action owner, due date, evidence expected, and next review date |
A clean meeting starts with discovery and moves forward one stage at a time. If non-brand clicks changed, inspect the identical filter set. If unique enquiries changed, inspect deduplication and intake coverage. If bookings changed, inspect capacity and cohort maturity. Do not jump from impressions to completed visits and invent the missing causal steps.
Use a practice-derived threshold only after enough comparable, mature records exist for a defensible decision. Tiny specialty-service segments may need a longer review window or qualitative record audit. The right action can be “continue collecting under the same definition,” provided an owner and next review date are explicit.
Turn the review sheet into an accountable content and local-search plan. theStacc supports research, content drafting and publishing, GBP posting, review-reply workflows, citations, and rank tracking while your practice owns intake and completion records.
Common Optometry KPI Failure States
Most optometry KPI failures come from altered definitions, missing ownership, or unsafe joins rather than bad arithmetic. Audit stage collapse first, then classification, cohort maturity, privacy, and practice context. A polished dashboard should be held when it mixes adult and guardian records, clinical messages, locations, services, or timestamps without explicit rules.
Failure-state checklist
- Impression, click, call click, form, enquiry, booking, and completion appear in one “lead” row.
- Duplicate enquiry or spam remains in the attributable intake denominator.
- Wrong-profession intent combines optometrist, ophthalmologist, optician, and optical-retail requests.
- An existing-patient request enters the new-patient acquisition cohort.
- A clinical or urgent message sits in a marketing tool instead of the approved clinical route.
- An unsupported service, outside-catchment request, or no-capacity state is marked qualified.
- Adult and guardian records produce duplicate or mismatched contacts.
- A connected-call outcome is missing, but the call click is relabeled an enquiry.
- A reschedule creates a second booking instead of preserving one booking lineage.
- A cancellation, no-show, or incomplete visit appears as completed.
- A late completion or unmatched payment is treated as zero before the lag closes.
- Brand and non-brand search groups use different filters or incomplete days.
- Appointment type or location ownership is unmatched.
- Observed seasonality and local density are assumed without dated practice evidence.
- A tiny segment receives a rate without a sample-size and privacy review.
- A review, testimonial, photo, or patient story lacks the required consent and compliance review.
Google allows businesses to ask genuine customers for reviews, but prohibits incentives tied to posting, changing, or removing a review. Follow the Business Profile review policy, require patient consent before using reviews, testimonials, or photos in marketing, and keep sensitive or outcome-specific detail out unless qualified reviewers approve it.
One practical stop rule covers several failures: if the source, definition, owner, exclusion rule, or reviewer is missing, do not promote the number into a KPI decision. Preserve the raw event, route sensitive records correctly, repair the dictionary, and re-run the frozen cohort.
Frequently Asked Questions and the 30-Day Optometry KPI Plan
These answers resolve scorecard, phone, form, delayed-completion, optical-retail, cadence, and benchmark decisions after the funnel dictionary is approved. The closing 30-day plan then puts definitions, review gates, collection, reconciliation, and ownership in order. Neither section changes the practice's clinical routing, professional responsibility, or privacy-review duties.
What marketing KPIs should an optometry practice track?
Track separate discovery, response, qualification, booking, and completion measures that answer a named practice decision. At minimum, preserve impressions, clicks, call clicks, forms, unique enquiries, qualified enquiries, booked visits, and completed visits as distinct events. Add cost or optical measures only when practice records, scope, ownership, privacy review, and reconciliation rules support them.
What is the difference between a call click, a form, an enquiry, and a booked visit?
A call click records an attempt to open a calling action. A form records a submitted payload. An enquiry is a deduplicated contact accepted under the practice's written intake rule. A booked visit exists only after the scheduling system confirms an appointment. Each event has a different timestamp, source, owner, and allowable conclusion.
Does a booked optometry appointment count as a completed visit?
No. A booked appointment remains a booking until the practice-management system records completion under a written rule. Reschedules stay attached to one booking, while cancellations, no-shows, duplicates, and visits still inside the late-entry window remain separate. This distinction prevents a full schedule from being reported as delivered patient care.
How should an optometry practice track phone calls and forms separately?
Give phone and form events separate source fields, timestamps, deduplication rules, and owners. Record a call click separately from a connected call and retain form submission as its own event. Only create a unique enquiry after the intake owner applies the same written rules for duplicates, existing-patient tasks, wrong-profession intent, spam, and clinical escalation.
How do you measure marketing when appointments are completed weeks later?
Use a fixed acquisition cohort and keep it open through the practice's declared booking, service, and late-entry lags. Report immature cohorts as pending instead of treating them as failures. Reconcile again after the lag, preserve original enquiry and booking timestamps, and document how reschedules or delayed record entry affect the completion count.
Should optical purchases and eye-exam appointments use the same KPI?
No. An eye-exam appointment and an optical purchase are different events with different owners, systems, privacy questions, and economic meanings. Keep optical-only requests separate from comprehensive exams, contact-lens exams or fittings, and practice-verified specialty services. Join downstream optical data only when the practice explicitly defines the purpose and reviewers approve the minimum necessary fields.
How often should an optometry practice review marketing KPIs?
Run one formal review each month using a frozen date range, then monitor collection defects more frequently when intake can fix them. Monthly review gives booked and completed visits time to mature while keeping actions accountable. Record the source freeze date, capacity context, exclusions, decision, action owner, due date, and next review every time.
Can an optometry practice use a universal conversion-rate benchmark?
No universal rate is reliable for practice decisions. Appointment mix, licensed scope, locations, provider capacity, front-desk coverage, payer and cash timing, local competition, seasonality, and classification rules change the numerator and denominator. Build an internal baseline from dated, auditable cohorts, then set a decision threshold that the practice owner and data owner can defend.
A 30-Day Optometry KPI Setup Plan
Use the next 30 days to define and test the system while unknown economics remain unavailable.
- Days 1–5: assign reviewers and freeze truth. Name the optometry-practice reviewer, privacy/compliance reviewer, state source, location owners, appointment menu, optical boundary, capacity feed, intake owner, and clinical escalation owner.
- Days 6–10: approve the event dictionary. Write eight separate stage rules, timestamps, sources, owners, exclusions, and allowable conclusions. Test routine exam, contact-lens, optical-only, existing-patient, symptom-led, and wrong-profession examples.
- Days 11–15: configure collection safely. Remove unneeded form fields, select approved join keys, restrict access, set mismatch queues, and document retention and review gates.
- Days 16–23: reconcile a sample cohort. Trace calls and forms through unique enquiry, qualification, booking, and completion. Keep immature, unmatched, rescheduled, cancelled, and no-show records in their true states.
- Days 24–30: run the review. Freeze sources, record capacity and available practice context, explain variance, then choose keep, change, stop, or continue collection. Assign one owner and due date.
For broader medical-search context, use the healthcare SEO guide, then bring only approved content and local-search actions into this operating system. The final scorecard should make every number traceable without exposing patient detail or pretending marketing activity proves a clinical, financial, or growth outcome.
Build a compliant publishing plan around the measurement system your practice approves. Keep licensed professionals responsible for claims and clinical boundaries while your team gives every marketing stage a clear definition and owner.
Sources & references
Blog SEO, Local SEO, and Social Media — one dashboard, no headaches.
Weekly local SEO teardowns
One practical email a week. Map Pack, GBP, AI Overviews — no fluff. Unsubscribe anytime.