AEO READINESS REPORT · AEO SCORE V2
Invisible-ish

Answer engines cannot read this business from its own site. On "near me" questions they will name competitors they can read instead.

https://jrherronpainting.com/ · Checked Nov 2, 2026

Checked 1 page — 24 checks, each scored on the evidence found:

Homepage

Readiness score from on-site signals — not a measurement of live ChatGPT / Perplexity / Google AI answers.

What drove this score

Most of the 80 lost points come from schema field completeness, service + city pages, and extractable q&a content:

  • +8 pts — Schema field completeness
  • +8 pts — Service + city pages
  • +7 pts — Extractable Q&A content

The full ranked list is in the fix list below; every point traces to a check you can read in the audit.

01
The full audit. Every check, with its evidence.
Machine identity & schema 0/28
Missing JSON-LD structured data present 0/4

No JSON-LD blocks found on any of the 1 pages checked.

Why it matters: JSON-LD is the one block on a page written purely for machines. Without it, an answer engine has to guess the business’s identity from prose — and it usually names a competitor it can read cleanly instead.

Next step: Add a JSON-LD block (LocalBusiness or Organization) to the site template so every page carries the business entity.

Source: the JSON-LD blocks in the pages read · Confidence: Direct read

Missing Business type named specifically 0/6

No LocalBusiness or Organization type found in the schema on any checked page.

Why it matters: A specific type ("Plumber", "RoofingContractor") tells an engine exactly what the business is and which local questions it answers. A generic Organization label leaves the engine to infer the trade.

Next step: Add LocalBusiness-subtype schema (e.g. GeneralContractor) naming the business, its trade, and where it works.

Source: the business entity’s @type in the crawled JSON-LD · Confidence: Direct read

Missing Schema field completeness 0/8

No business schema node found, so none of the 8 key fields (name, phone, street address, URL, sameAs, hours, geo, service area) are published.

Why it matters: Each field is a question an engine can then answer without guessing — the phone for "call", the street for "near me", hours for "open now". Missing fields are questions the engine answers with someone else’s data.

Next step: Publish a business schema node carrying name, phone, street address, URL, profile links, hours, geo, and service area.

Source: the most complete business entity found in the crawled JSON-LD · Confidence: Direct read

Missing FAQPage schema 0/4

No FAQPage schema on any checked page.

Why it matters: FAQPage schema hands engines pre-formatted question-and-answer pairs they can lift word-for-word into an answer — the closest thing to writing the answer yourself.

Next step: Add FAQPage schema mirroring the visible FAQ questions and answers (the schema must match what visitors see).

Source: JSON-LD @type values across the pages read · Confidence: Direct read

Missing Service schema 0/3

No Service schema found — services are described only in page text.

Why it matters: Service schema names each service as a machine-readable fact, so "who replaces water heaters in Long Beach?" can match the business on a stated service instead of a keyword buried in a paragraph.

Next step: Add Service schema for each core service, tied to the business and its service area.

Source: JSON-LD @type values across the pages read · Confidence: Direct read

Missing Review / rating schema 0/3

No AggregateRating or Review schema found on any checked page.

Why it matters: Marked-up ratings give engines a citable proof number. A rating that exists only on Google’s own pages never reaches the answers assembled from the open web.

Next step: Once real reviews are published on the site, mark them up with Review / AggregateRating schema that matches them exactly.

Source: JSON-LD @type values across the pages read · Confidence: Direct read

Crawler & machine files 6/20
Missing robots.txt published 0/2

No robots.txt found (HTTP 404) — crawlers get no instructions at all.

Why it matters: robots.txt is the instruction sheet crawlers read first. Without one they get no guidance — no sitemap pointer, no explicit welcome — and some simply crawl less.

Next step: Publish a robots.txt that welcomes search and AI crawlers and points to the sitemap.

Source: /robots.txt · Confidence: Direct read

Pass AI crawlers allowed 5/5

No rule blocks the major AI crawlers — GPTBot: allowed · PerplexityBot: allowed · ClaudeBot: allowed.

Missing Sitemap published and useful 0/6

No valid sitemap found at /sitemap.xml, /sitemap_index.xml, or /wp-sitemap.xml.

Why it matters: The sitemap is the map handed to crawlers. Pages missing from it are found late, by accident, or not at all — including the service pages that carry local questions.

Next step: Publish a sitemap.xml (or sitemap index) listing every public page, and reference it in robots.txt.

Source: the sitemap file listed in the appendix · Confidence: Direct read

Missing llms.txt published 0/3

No llms.txt found (HTTP 404).

Why it matters: llms.txt is the short, plain-text brief written for AI tools: who the business is, what it does, and which pages matter. It is the cheapest signal on this list to publish.

Next step: Publish an llms.txt at the site root: what the business does, where it works, and links to the key pages.

Source: /llms.txt · Confidence: Direct read

Missing llms.txt has substance 0/2

No llms.txt to evaluate.

Why it matters: A stub llms.txt tells an AI tool almost nothing. One that links the money pages — services, cities, guides — steers the tool to the pages worth citing.

Next step: Give llms.txt real substance — a business summary plus links to services, cities, contact, and FAQ pages.

Source: the body of /llms.txt · Confidence: Direct read

Partial Canonical tag & HTTPS 1/2

Homepage has no canonical tag; site serves clean HTTPS.

Why it matters: A canonical tag tells engines which URL is the real one, so citations and ranking signals land on one page instead of splitting across duplicates. HTTPS is table stakes for being treated as a trustworthy source.

Next step: Add a self-referencing canonical tag to every page and serve the whole site over HTTPS.

Source: the homepage <head> (canonical link) and the site’s URL scheme · Confidence: Direct read

Extractable content 9/30
Missing Extractable Q&A content 0/7

0 question-and-answer blocks found across the checked pages (0 question-style headings; no dedicated FAQ page found).

Why it matters: Homeowners ask engines whole questions. Pages that state those questions and answer them in plain text give the engine something it can lift verbatim — that is what gets cited.

Next step: Publish Q&A content: the questions customers ask, answered in plain words on an FAQ page and service pages.

Source: question-style headings and FAQ blocks across the pages read · Confidence: Limited — the crawl covered only 1 page, so this rests on a thin read of the site

Missing Service + city pages 0/8

0 service+city / city pages found (0 combined service+city, 0 dedicated city pages); 0 service pages without a city in the address.

Why it matters: Local questions need a local page to land on: "Roof Replacement in Long Beach" has to exist as a page before an engine can cite it. One generic services page answers every city weakly and none of them well.

Next step: Create dedicated pages for the core services in the core cities served (e.g. "Roof Replacement in Long Beach").

Source: the page addresses collected from the sitemap and internal links · Confidence: Limited — inferred from page addresses collected during the crawl — the audit did not open every page on the site

Partial Key-page content depth 3/5

Homepage runs 672 words; the main services page runs 0 words. Thin pages give engines little to cite.

Why it matters: Thin pages give an engine almost nothing to work with. A homepage and services page with real substance — services, areas, process, prices where published — are what answers get built from.

Next step: Deepen the homepage and services page: what you do, where, for whom, with specifics an engine can quote.

Source: the visible text of the homepage and the services page · Confidence: Limited — the crawl covered only 1 page, so this rests on a thin read of the site

Pass Heading structure 4/4

Homepage has 1 H1 heading and 5 descriptive H2 sections.

Missing Titles & meta descriptions 0/4

0 of 1 checked pages carry a clean page title and a meta description in a sane length.

Why it matters: The title is the one-line summary engines and search results quote; the meta description is the supporting sentence. Missing or bloated ones cost the click and weaken the citation.

Next step: Give every key page a unique title and a one-sentence meta description naming the service and the place.

Source: the <title> and meta description of each page read · Confidence: Limited — the crawl covered only 1 page, so this rests on a thin read of the site

Pass Answer-shaped content blocks 2/2

6 short factual blocks (tight paragraphs and lists) found on the homepage/services page — the shapes engines lift answers from.

Local proof & contact 5/22
Partial NAP consistency (name, address, phone) 2/6

Phone (714) 865-5731 is printed on the site but missing from the schema. No business name in schema to compare against the pages. No street address found in the schema or the pages checked.

Why it matters: Engines match a business to "near me" by reconciling its name, address, and phone everywhere they appear. When the schema, the homepage, and the contact page disagree, the match weakens — or the engine prints the wrong number.

Next step: Publish ONE name, phone, and street address (or explicit service area) — identical in the schema, footer, and contact page.

Source: compared across the schema, the homepage text, and the contact page · Confidence: Limited — the crawl covered only 1 page, so this rests on a thin read of the site

Pass Click-to-call phone links 3/3

tel: click-to-call links found — a phone tap on mobile reaches the business directly.

Missing Dedicated contact page 0/3

No contact page found among the site links or sitemap.

Why it matters: A dedicated contact page is the page engines point people to. If it is missing or bare, the citation has nowhere useful to land.

Next step: Publish a dedicated contact page with the NAP, a form, and a click-to-call number.

Source: the contact page found in the crawl, or its absence from it · Confidence: Limited — the crawl covered only 1 page, so this rests on a thin read of the site

Missing Review profile links 0/5

No links to review profiles (Google, Yelp, Houzz, BBB…) found on the checked pages.

Why it matters: Links to Google, Yelp, and the trade directories connect the site to its proof. Engines cite businesses they can corroborate — an unlinked profile is corroboration they may never find.

Next step: Link the Google and Yelp review profiles from the footer and contact page so engines can cite real proof.

Source: outbound links in the pages read · Confidence: Limited — the crawl covered only 1 page, so this rests on a thin read of the site

Missing On-page testimonials 0/3

No testimonials found on the checked pages.

Why it matters: Visible testimonials are proof in the site’s own words that an engine can quote. A star number buried in code is not proof; a named customer sentence is.

Next step: Publish real customer testimonials (name, city, job type) on the homepage and service pages.

Source: testimonial-style content in the pages read · Confidence: Limited — detected by content patterns in the pages read, not by a registry — a page the crawl did not reach could hold more

Missing Google Business Profile link 0/2

No Google Business Profile or Maps profile link found on the checked pages.

Why it matters: A published link to the Google Business Profile ties the website to the listing that powers maps and "near me" answers, closing the loop engines use to confirm the business is real and current.

Next step: Link the Google Business Profile from the footer and contact page.

Source: outbound links in the pages read · Confidence: Limited — the crawl covered only 1 page, so this rests on a thin read of the site

02
Fix list. In order of points.
#1 · +8 pts at stake Build

Schema field completeness

What we found: No business schema node found, so none of the 8 key fields (name, phone, street address, URL, sameAs, hours, geo, service area) are published.

What to do: Publish a business schema node carrying name, phone, street address, URL, profile links, hours, geo, and service area.

#2 · +8 pts at stake Build

Service + city pages

What we found: 0 service+city / city pages found (0 combined service+city, 0 dedicated city pages); 0 service pages without a city in the address.

What to do: Create dedicated pages for the core services in the core cities served (e.g. "Roof Replacement in Long Beach").

#3 · +7 pts at stake Half-day

Extractable Q&A content

What we found: 0 question-and-answer blocks found across the checked pages (0 question-style headings; no dedicated FAQ page found).

What to do: Publish Q&A content: the questions customers ask, answered in plain words on an FAQ page and service pages.

#4 · +6 pts at stake Half-day

Business type named specifically

What we found: No LocalBusiness or Organization type found in the schema on any checked page.

What to do: Add LocalBusiness-subtype schema (e.g. GeneralContractor) naming the business, its trade, and where it works.

#5 · +6 pts at stake Half-day

Sitemap published and useful

What we found: No valid sitemap found at /sitemap.xml, /sitemap_index.xml, or /wp-sitemap.xml.

What to do: Publish a sitemap.xml (or sitemap index) listing every public page, and reference it in robots.txt.

#6 · +5 pts at stake Half-day

Review profile links

What we found: No links to review profiles (Google, Yelp, Houzz, BBB…) found on the checked pages.

What to do: Link the Google and Yelp review profiles from the footer and contact page so engines can cite real proof.

#7 · +4 pts at stake Half-day

JSON-LD structured data present

What we found: No JSON-LD blocks found on any of the 1 pages checked.

What to do: Add a JSON-LD block (LocalBusiness or Organization) to the site template so every page carries the business entity.

#8 · +4 pts at stake Half-day

FAQPage schema

What we found: No FAQPage schema on any checked page.

What to do: Add FAQPage schema mirroring the visible FAQ questions and answers (the schema must match what visitors see).

#9 · +4 pts at stake Half-day

Titles & meta descriptions

What we found: 0 of 1 checked pages carry a clean page title and a meta description in a sane length.

What to do: Give every key page a unique title and a one-sentence meta description naming the service and the place.

#10 · +4 pts at stake Half-day

NAP consistency (name, address, phone)

What we found: Phone (714) 865-5731 is printed on the site but missing from the schema. No business name in schema to compare against the pages. No street address found in the schema or the pages checked.

What to do: Publish ONE name, phone, and street address (or explicit service area) — identical in the schema, footer, and contact page.

#11 · +3 pts at stake Quick fix

Service schema

What we found: No Service schema found — services are described only in page text.

What to do: Add Service schema for each core service, tied to the business and its service area.

#12 · +3 pts at stake Quick fix

Review / rating schema

What we found: No AggregateRating or Review schema found on any checked page.

What to do: Once real reviews are published on the site, mark them up with Review / AggregateRating schema that matches them exactly.

#13 · +3 pts at stake Quick fix

llms.txt published

What we found: No llms.txt found (HTTP 404).

What to do: Publish an llms.txt at the site root: what the business does, where it works, and links to the key pages.

#14 · +3 pts at stake Quick fix

Dedicated contact page

What we found: No contact page found among the site links or sitemap.

What to do: Publish a dedicated contact page with the NAP, a form, and a click-to-call number.

#15 · +3 pts at stake Quick fix

On-page testimonials

What we found: No testimonials found on the checked pages.

What to do: Publish real customer testimonials (name, city, job type) on the homepage and service pages.

#16 · +2 pts at stake Quick fix

robots.txt published

What we found: No robots.txt found (HTTP 404) — crawlers get no instructions at all.

What to do: Publish a robots.txt that welcomes search and AI crawlers and points to the sitemap.

#17 · +2 pts at stake Quick fix

llms.txt has substance

What we found: No llms.txt to evaluate.

What to do: Give llms.txt real substance — a business summary plus links to services, cities, contact, and FAQ pages.

#18 · +2 pts at stake Quick fix

Key-page content depth

What we found: Homepage runs 672 words; the main services page runs 0 words. Thin pages give engines little to cite.

What to do: Deepen the homepage and services page: what you do, where, for whom, with specifics an engine can quote.

#19 · +2 pts at stake Quick fix

Google Business Profile link

What we found: No Google Business Profile or Maps profile link found on the checked pages.

What to do: Link the Google Business Profile from the footer and contact page.

#20 · +1 pts at stake Quick fix

Canonical tag & HTTPS

What we found: Homepage has no canonical tag; site serves clean HTTPS.

What to do: Add a self-referencing canonical tag to every page and serve the whole site over HTTPS.

03
Keep this report.

Email me this report (PDF) + the fix checklist. Everything above stays free and visible — the email is for delivery, the checklist, and a nudge to re-check after you fix things.

04
Want it handled?

This list is the work. AltaPoint can take it from there — it starts with a free Snapshot, then the $999 Full Audit turns the fix list into a measured report with a ranked fix order.

Get your free Snapshot

Not sure what else is leaking? The AI visibility score is one leak of several. Get your free Snapshot — a few minutes, and it covers the operational side too.

Developers & agencies: this checker is coming as an API. Join the API waitlist — one email when it opens, nothing before.

Fixed something? Re-check in 24h — results are cached for a day so the score reflects real changes, not refresh luck.

05
Sources & limitations.

What we could not determine

  • Where a file or page could not be read at all (a missing robots.txt, a blocked fetch), the affected check is scored Partial or Missing with the reason in its evidence — a signal is never assumed present.
  • The audit reads what the site publishes. It cannot determine what any individual AI engine has indexed, cached, or chosen to cite — only whether the published signals those engines rely on are present and consistent.

Sources — what was actually read

  • Homepage — https://jrherronpainting.com/
  • robots.txt — not readable (HTTP 404)
  • Sitemap — no valid sitemap found at the standard locations
  • llms.txt — not published (HTTP 404)

Method & limitations

Rubric: AEO Score v2 — 24 checks in 4 sections, 100 points · Run date: Nov 2, 2026 · Read time: 1.2s. The audit fetches the pages and files listed above once, scores only what they contain, and shows the evidence next to every check.

This is a readiness score computed from on-site signals only — the schema, files, content, and links published on the pages listed above. It is not a measurement of live ChatGPT, Perplexity, or Google AI answers, and it does not claim the business does or does not appear in any engine’s responses. It measures whether the site publishes what those engines rely on when they choose what to cite.

20/100 · Invisible-ish Get the fixes
What is AEO?

AEO (Answer Engine Optimization) is how ready your website is for AI answer engines — ChatGPT, Perplexity, and Google AI Overviews. When someone asks an AI tool for a contractor or local service, the engine reads structured signals on business websites and cites the ones it can understand. AEO is making sure your site is one of them.

Is this score my ChatGPT ranking?

No. This is a readiness score from on-site signals — not a measurement of live ChatGPT / Perplexity / Google AI answers. It measures whether your site publishes the schema, Q&A, contact details, service pages, reviews, and machine files that answer engines rely on when they choose what to cite.

How many pages do you check?

Up to 10: your homepage plus the key pages found from your sitemap and internal links — services, contact, FAQ, about, and service/city pages. The report states exactly how many pages were checked and lists them, and every one of the 24 checks shows the evidence it was scored on.

Why is my score low?

Most low scores come down to a few fixable gaps: no LocalBusiness schema, no FAQ page engines can lift answers from, a missing street address or phone in machine-readable form, no dedicated service and city pages, or no sitemap. Your report lists every gap found, in order of points recoverable.

What is llms.txt?

llms.txt is a plain-text file at the root of your site (yoursite.com/llms.txt) written for AI tools: what the business does, where it works, and links to the key pages. Paired with a sitemap.xml, it hands crawlers and answer engines a map instead of making them guess.

Do I need a street address if I am a service-area business?

Answer engines need some machine-readable location signal to match you to a place. A published street address in your schema earns full credit. If you work from home or cover an area, publish an explicit service area in your schema instead — the check explains which signal it found, and the fix list says exactly what to publish.

How often should I re-check?

Re-check after you fix a gap, and then every few months. Results are cached for 24 hours, so a re-check inside a day shows the same report with its timestamp; after 24 hours the check fetches your site fresh.

What happens after I check?

You see the full report instantly — no signup. If you want it in your inbox, the email gate sends the report and the fix checklist. If you want the gaps fixed for you, that is the AltaPoint path: a free Snapshot, and the $999 Full Audit that turns the fix list into a measured report with a ranked fix order.


More free resources: see every free tool and guide we publish — including the Trades API Directory and the Long Beach Home Cost guides.

Curious what real checks look like? The AEO Scoreboard publishes actual scores from real runs of this checker — including our own site’s 86 and the biggest gap found in each report.