No Signup Unlimited Usage Real Data 100% Free Privacy First Fast Results Export Reports Mobile Friendly

Local SEO Audit for Freelance SEOs

Check one client page for name, address, phone, LocalBusiness schema, map link and hours, then turn each missed check into a fix you can show in your report.

Fetching live data…

Why Freelance SEOs need this

A local client asks why the phone is not ringing, and you cannot promise a position in the map results, because nobody can guarantee a #1 ranking on Google. What you can do is show evidence. A retainer can be lost not because the work was poor but because the monthly report listed activity instead of outcomes, and the client never saw what changed. A clean on-page local audit gives you something concrete to point at before any promise is made. The Local SEO Audit fetches one live page, such as a homepage or a contact page, and checks address, phone, LocalBusiness schema, map links, opening hours, email and social links, then returns a score with a fix for every failed check; the business name is compared only if you type it into the optional profile fields. It takes a minute, costs nothing, and fits into the unpaid hours that pitches and onboarding already consume when you are the salesperson, analyst and bookkeeper at once. Use it as the website half of a local audit section, and keep the claims about results out of the deliverable.

Freelance SEOs specific guidance

Which pages to run first

Run the homepage and the contact or location page as two separate runs, because the tool reads one URL as served and runs no JavaScript. A schema block injected by a script after load will not be seen, so if a client's theme builds it that way, view the page source with Ctrl+U and search for LocalBusiness before you report it missing. For a multi-location client, test a URL like /locations/leeds/ rather than only the root. In the next ten minutes, open the client's Google Business Profile in another tab and fill in the optional name, phone and address fields so the profile match block appears. The score does not prove the client will show up in the map results, and the tool never reads the profile itself; it only compares against what you type.

How to read the score for a client report

The score is the percentage of weight passed across three groups: NAP and identity, maps and hours, and trust and social. Treat the three summary cards, NAP complete, Local schema and Social profiles, as the headline for the client, and the issue list as the work plan. Phrase findings as a check not met with the fix beside it, not as a verdict on the business. The phone row shows the first phone-like number in the page text, so a tracking number in the header can be the one reported; compare it with the profile before calling it a mismatch. A high score does not prove that listings on Yelp or Apple Maps are consistent, because directories are outside this check. Paste the before and after scores into your report as outcome evidence.

What to fix and in which order

Start with the missing LocalBusiness JSON-LD, because it carries address, phone and geo in one place; generate it with the Schema Generator and confirm it parses with the Schema Checker. Next make the address and phone plain visible text with a tel: link, then add opening hours to the schema as well as the page text, then the Google Map embed or directions link. Email and social links come last as supporting trust signals. In WordPress, the footer is often editable through Appearance > Customize or the Site Editor, so one edit updates the details on every page. Re-run the same URL afterwards and save the new score with the date. A passing run does not prove indexing or a better position; it shows the page states its details clearly.

Example scenarios

1. Plumber's homepage with no schema

Situation
Illustrative example: a prospect's plumbing site was built from a theme years ago. The footer shows a street address and one phone number, but none of its 12 pages ever got structured data, so you run the homepage before your 30-minute pitch call.
Input
https://example-plumbing.test/
Reading the result
You would typically see passes for phone and address, a fail on LocalBusiness / Organization schema, and the Local schema card showing No, so if the map link, hours and email are also met the score would be 62 out of 100, since the schema check alone carries 28 of the 100 points. Say in the pitch that the page states its details to visitors but not in a machine-readable form, and offer the JSON-LD as the first fix.

2. Dental clinic with two locations

Situation
Illustrative example: a clinic client has one contact page listing 2 branches, and the second branch phone is the only number in a sidebar widget. You run the contact page and then a separate branch page.
Input
https://example-dental.test/locations/north-branch/
Reading the result
The phone row would show only the first of the 2 phone-like numbers found, so it may report the main line instead of the branch line. With the branch details typed into the profile fields, "Phone matches your profile" fails if the branch number is nowhere on that page and lists the numbers it did find, which justifies giving each branch its own page with its own phone.

3. Before and after for a retainer report

Situation
Illustrative example: at onboarding a café scored 40 out of 100: phone, address and email were found, but there was no schema, no map link, the hours were written as "open daily from early morning" with no times, and no social profiles were linked. After two weeks of edits you re-run the same page.
Input
https://example-cafe.test/contact/
Reading the result
Adding LocalBusiness JSON-LD, hours with times and a map embed would lift the score to 90, with only Geo coordinates and Linked social profiles left in the issue list. Report it as completed on-page work with dated scores, and state that it says nothing yet about calls or map rankings.

Common mistakes

  • Promising map pack positions. A passing score only shows that the page states its local details clearly. Selling it as a ranking promise sets the client up to judge you on factors you do not control.
  • Running only the homepage. Location and contact pages usually hold the address, hours and map link. Audit them separately or you will report signals as missing that live one click away.
  • Trusting schema that scripts inject. The tool reads the HTML as served, so markup added by JavaScript after load will not appear. Check the page source before telling a client their schema is absent.
  • Filling the profile fields from memory. The match block compares the page with what you type, not with the real profile. Copy the name, phone and address exactly from the client's Business Profile.
  • Reporting the task list as the result. A list of edits made is activity, not an outcome. Pair each fix with the dated before and after score so the client sees what changed.

Frequently asked questions

Can I use a free local SEO audit in an SEO audit report for a client?

Yes, as one section. Run the homepage and the contact page, copy the score, issue list and fixes into your own report, and label it as an on-page check of one URL on a stated date. Clients usually value a short list of unmet checks with a fix beside each far more than a long tool dump. Keep it separate from your analysis of citations, reviews and rankings, which this check does not cover. Add a before and after score once the fixes are live.

What should an SEO freelancer tell a client who wants guaranteed map pack rankings?

Say that no one can guarantee a #1 ranking, and that Google's own guidance tells clients to ask what results to expect, in what timeframe and how success is measured. Then offer measurable items you control: complete NAP on the page, valid LocalBusiness schema, a map link, published hours. The audit score gives a starting figure to compare against later. Be clear that it covers the website only, and that profile quality, reviews and citations also matter, so the number is a progress marker, not a forecast.

Does the Local SEO Audit check my client's Google Business Profile?

No, it never reads the profile. If you type the business name, phone and address into the optional fields, the tool compares those typed values with the page and shows whether name, phone and address match. Country code and spacing in phone numbers are ignored, St and Street count as the same word, and every house number must appear. So copy the details straight from the profile. Citations on directories and reviews are not checked, so verify those separately.

Why does it say no LocalBusiness schema when my client's site has it?

The tool reads the HTML as served and runs no JavaScript, so markup added by a script after load is not seen. The JSON-LD node also needs to be a LocalBusiness or Organization type, and a subtype such as Dentist or Restaurant counts only when it carries an address or geo. Open the page source with Ctrl+U and search for application/ld+json. If it is not there, ask the developer to output it in the template, then re-run the same URL.

How often should I re-run a local SEO audit for retainer clients?

Run it at onboarding, again after each batch of fixes, and after any redesign, theme change or migration, since those are the moments when footers, schema and contact details get overwritten. Keep each score with its date in a simple sheet so the monthly report shows a trend of completed work. Between those moments a weekly run adds little, because the page only changes when someone edits it. A changed score tells you the page changed, not that rankings or calls did.

Reference: Google's guidance on hiring an SEO states that no one can guarantee a #1 ranking and suggests clients ask what results to expect, in what timeframe and how success is measured.

Last updated: Türkçe sürüm