How the scan works

Every check, every weight and every formula, so you can judge the numbers for yourself.

What we read

robots.txt first. If it asks crawlers like ours to stay out, we stop. Then your homepage, the pages it links to and the pages those link to, up to 20 pages, with contact, booking and quote pages first, and a few pages from your sitemap that none of those pages link to. We read each page as your server sends it and do not run its scripts, so content that loads by script after the page arrives is not seen. We also check whether your site answers at http and at its www or non-www twin, and whether it publishes /llms.txt. About our crawler.

The checks

Severity sets how much of your search traffic a finding is assumed to put at risk. These are our published assumptions, not measurements. A robots.txt that blocks Google from the whole site uses 60% / 80% / 95%. Slow main content (E1) counts as high severity above 4 seconds.

Crawl and index

CheckRuleSeveritySearch visits at risk (low / mid / high)Minutes to fix
T1 Google is told to stay out of important pagesrobots.txt disallows Googlebot on key URLshigh10% / 20% / 40%15
T2 Important pages are marked "do not index"noindex on the homepage or a main navigation pagehigh10% / 20% / 40%15 per page
T3 Pages point Google to the wrong addressCanonical tag targets another host, a redirect or an error pagemedium2% / 4% / 8%20 per page
T4 Your site answers at more than one addressHTTP does not 301 to HTTPS, or www and non-www both return 200medium2% / 4% / 8%30
T5 Links on your site lead to error pagesInternal links return 4xx or 5xxmedium2% / 4% / 8%20 per page
T6 Some links bounce through several redirectsInternal redirect chains of 2 or more hopslow0.5% / 1% / 2%20 per page
T7 Your sitemap is missing or out of dateNo readable XML sitemap, or over 10% of checked sitemap URLs (at least 5 checked) are not live and indexablelow0.5% / 1% / 2%30
T8 Pages in your sitemap that nothing links toSitemap URLs not linked from any page readlow0.5% / 1% / 2%30 per page

T8 samples up to 5 pages from your sitemap that none of the pages we read link to, and the free report lists them. For each one, the orphan finder names a page to link it from, among the pages we reached by following links from your homepage, and the words to link it with. The Roadmap Audit includes those suggestions, and the free report shows them when T8 is the one finding whose fix it shows. A sitemap entry that lands on a page we reached by links is that page, not an orphan. An entry that redirects to another site is left out, and one that redirects within your site is listed by the page it lands on. One fixed rule picks the page, so the same scan always gives the same answer. First, the page whose address shares the most leading folders with the orphan's, the shorter address winning a tie and never a page deeper than the orphan, so /services/ comes before /services/water-heaters/ for /services/drain-cleaning/. If no page qualifies that way, the page whose title shares the most words with the orphan's title, leaving out short and common words and the site name most of your titles repeat. A page with no title of its own is left out of this step. If no title shares a word, your homepage. The words for the link are the orphan's own title without the site name, or the last part of its address when it has no title. We only know the pages we read, so a page we did not reach may already link to it.

Content

CheckRuleSeveritySearch visits at risk (low / mid / high)Minutes to fix
C1 Pages missing a title, or sharing oneMissing or duplicate <title> across pages readmedium2% / 4% / 8%10 per page
C2 Service pages say too littleService pages under 250 wordsmedium2% / 4% / 8%90 per page
C3 Your city is not in your main headlineaddressLocality absent from the homepage title and H1medium2% / 4% / 8%15
C4 Pages without a search descriptionMissing meta descriptionlow0.5% / 1% / 2%10 per page
C5 Pages with no main heading, or severalZero or multiple H1 elementslow0.5% / 1% / 2%10 per page

AI search

CheckRuleSeveritySearch visits at risk (low / mid / high)Minutes to fix
A1 AI search crawlers are blocked from your siterobots.txt disallows OAI-SearchBot, Claude-SearchBot, Claude-User or PerplexityBotmedium2% / 4% / 8%10
A1T AI training crawlers are blockedrobots.txt disallows GPTBot or ClaudeBotinfoNot counted5
A1G Google-Extended is blockedrobots.txt disallows the Google-Extended tokeninfoNot counted5
A2 Your homepage has no structured dataNo JSON-LD on the homepagemedium2% / 4% / 8%30
A3 Search engines can't confirm who your business isNo Organization or LocalBusiness entity with name, contact details and sameAsmedium2% / 4% / 8%30
A4 Service pages don't answer common questionsNo question-form headings or FAQ on service pageslow0.5% / 1% / 2%45 per page
A5 No llms.txt file/llms.txt not foundinfoNot counted15

A1 counts a robots.txt block on OAI-SearchBot, Claude-SearchBot, Claude-User or PerplexityBot: OpenAI, Anthropic and Perplexity say these crawlers feed their assistants' search answers or fetch a page when someone asks. A block on GPTBot or ClaudeBot, which collect pages for AI training, is a note (A1T). So is a block on Google-Extended, which Google says lets you manage whether your pages may be used to train future Gemini models and for grounding in Gemini Apps and Grounding with Google Search on Vertex AI, and does not affect inclusion in Google Search (A1G). Notes add nothing to the estimate. We leave out ChatGPT-User and Perplexity-User: OpenAI says robots.txt rules may not apply to ChatGPT-User, and Perplexity says Perplexity-User generally ignores them.

Experience

CheckRuleSeveritySearch visits at risk (low / mid / high)Minutes to fix
E1 Your main content loads slowlyLCP at the 75th percentile over 2.5 s (high severity over 4 s)medium2% / 4% / 8%120
E2 Your pages are slow to respond to tapsINP at the 75th percentile over 200 msmedium2% / 4% / 8%120
E3 The page jumps around while loadingCLS at the 75th percentile over 0.1low0.5% / 1% / 2%60
E4 Your server is slow to answerHomepage time to first byte over 800 msmedium2% / 4% / 8%60
E5 Your site is not set up for phonesNo viewport meta taghigh10% / 20% / 40%10
E6 Scripts hold up the page3 or more render-blocking scripts in <head>low0.5% / 1% / 2%30
E7 Images without descriptionsOver 20% of images missing alt text, once at least 5 images are readlow0.5% / 1% / 2%30
E8 No preview image when your site is sharedNo og:image on the homepagelow0.5% / 1% / 2%15

Conversion

CheckRuleSeveritySearch visits at risk (low / mid / high)Minutes to fix
V1 Phone visitors can't tap to callNo tel: link on the homepagemedium2% / 4% / 8%10
V2 No contact form or booking link foundNo form, embedded form widget or booking link in the page code of the homepage or the linked pages we readmedium2% / 4% / 8%30
V3 Your contact form asks too muchA form requires more than 6 fieldslow0.5% / 1% / 2%20
V4 No analytics foundNo analytics tag detected on the homepageinfoNot counted20

Local

CheckRuleSeveritySearch visits at risk (low / mid / high)Minutes to fix
L1 Your phone number doesn't match across the siteMore than one phone number across tel: links and structured datamedium2% / 4% / 8%20
L2 Your address in structured data doesn't appear on the pageStructured data streetAddress not found in homepage textmedium2% / 4% / 8%20

V2 reads page code: your homepage and the pages it links to that we read, with links to contact, booking and quote pages read first. It counts a form, a form or booking widget embedded from a provider we recognize, a link to one of the booking providers, a link to one of the form providers that reads as a way to get in touch, such as "Request a quote" or "Contact us" (a link to new patient paperwork does not count), and a link with booking wording such as "Book now" or "Schedule service". Form providers: LeadConnector (GoHighLevel), LeadConnector on an agency domain, HubSpot forms, Jotform, Typeform, Formstack, Cognito Forms, Wufoo, Google Forms, Microsoft Forms, Demand IQ. Booking providers: LeadConnector (GoHighLevel) calendars, LeadConnector calendars on an agency domain, HubSpot meetings, Calendly, Acuity Scheduling, Square Appointments, Setmore, Zocdoc, NexHealth, LocalMed, Weave, Solutionreach, Flex Dental, Housecall Pro, ServiceTitan Scheduling Pro, ServiceTitan Schedule Engine (legacy), Jobber, Vagaro, Boulevard, Mangomint, GlossGenius, Booksy, Schedulicity, Jane, Aesthetic Record, AestheticsPro, Moxie, Podium booking. We do not run your page's scripts, so a form embedded from a provider not on this list, a form your site's own scripts build after the page loads, or a form a tag manager adds would not show here, and V2 can fire on a site that has such a form.

The math

For each of the low, middle and high bands, the share of your search visits at risk combines the findings rather than adding them:

share = 1 - (1 - p1) x (1 - p2) x ... x (1 - pn)

customers lost a month = visitors x search share of visitors x share x close rate

monthly cost = customers lost x value of a customer

The headline is the middle band, with the low and high bands as the range. Each finding's own amount splits the middle estimate by its weight, -ln(1 - p), so the amounts add up exactly to the headline. The business-type presets are starting assumptions: change them to your own numbers and everything recalculates in your browser.

Our ROI calculator spreads the recovery of the middle estimate over twelve months: 10% a month in months 1 to 3, 40% a month in months 4 to 6 and 80% a month in months 7 to 12. Our illustrative assumption for how fast fixed findings stop costing you, not a measurement and not a forecast. Every step can be changed in the calculator.

  1. Months 1 to 3: 10% of the estimate recovered each month
  2. Months 4 to 6: 40% of the estimate recovered each month
  3. Months 7 to 12: 80% of the estimate recovered each month

How we pick a recommendation

Effort is the sum of each finding's minutes. The first rule that matches wins:

  1. No findings that need action: no plan. Watching the site weekly is the useful next step.
  2. Up to 12 hours of work and no local or conversion findings: Fix Sprint.
  3. Not a local business and more than 12 hours of work: Roadmap Audit, then Growth.
  4. A local business with AI search findings: Growth.
  5. A local business with local findings: Local.
  6. Any business, local or not, with conversion findings (such as no tap-to-call link or no contact form), no local findings, and up to 12 hours of work: Fix Sprint.
  7. A local business with only technical, content, speed or conversion findings and more than 12 hours of work: Fix Sprint, then GBP Care.
  8. Anything else: Roadmap Audit, so the fixes happen in the right order.

If your structured data lists more than one street address, Local or Growth adds an Additional location for each extra address.

Saved results and weekly watches

A saved result is the report as it stood on the day of the scan, at a private link, for 30 days. A weekly watch runs the same checks every 7 days and compares them with the week before. It emails only when a high or medium finding appears that the week before did not show, or one the week before showed is no longer found. It leaves out server response time (E4), which changes from hour to hour, and compares real-visitor speed (E1, E2 and E3) only in a week with real-visitor data, and only against the last week that had real-visitor data. A week without it, or with only a lab test, leaves that comparison as it stood. When a scan stops early at our time or request limit, it reports nothing as fixed that week, because it did not read every page.

What the free scan does not measure

Real-visitor speed data comes from Google's Chrome UX Report when your site has enough traffic to be in it. When it does not, we show a single lab test and label it as one. That test gives no reading for responsiveness, so E2 goes unchecked in that report.

How our metro pages are made

Each metro page covers one industry in one metro area: a core-based statistical area as OMB drew them in July 2023. The metros are the 25 most populous metropolitan areas in the Census Bureau's Vintage 2025 population estimates, and every comparison on a page is with those metros, or with those of them where BLS publishes the figure.

Business counts come from County Business Patterns for 2023, which counts establishments with paid employees under an industry code: 621210 for dental offices, 621310 for chiropractic offices, and 238220, plumbing, heating and air-conditioning contractors, where the Census counts HVAC and plumbing contractors together (NAICS index). The change since 2018 adds up the same counties in both years, because some metros took in different counties then. Offices per resident divide the 2023 count by that year's population in the American Community Survey, whose 2024 1-year estimates also give each metro's population, median household income with its margin of error, and share of homes lived in by their owners. Private jobs and pay are 2024 annual averages from the Quarterly Census of Employment and Wages; BLS withholds them for some metros, and stopped publishing metro figures by industry with its third quarter 2025 data (BLS notice).

A page states its figures in order of how far the metro sits from the middle of the list, not in a fixed order, and every sentence it carries is chosen by what its figures show. We publish a page only when it passes all of these, and otherwise ask search engines not to index it: