Free SEO check
How we score
Everything the free checker looks at, how many points each item is worth, where the data comes from and what we never do. No sign up, no email and no phone number, for everyone.
How the grade works
- Your online health grade is out of 100: Search readiness (40 points), Guest experience (40 points) and Local listings (20 points, from OpenStreetMap and your website).
- Each check is Passed (full points), Needs work (partial points), Problem (no points), Not measured (a source wasn't available) or Does not apply.
- A category score is the points you earned divided by the points we could measure, scaled to the category's maximum and rounded (halves round up). Items we couldn't measure never count against you. When some items in a category couldn't be measured, it shows "Partly measured".
- When more than half of a category's points couldn't be measured, we don't show a score or band for it. It shows "Not enough data" with how many of its points could be checked, and the report still lists everything we did find.
- The overall grade needs at least 60 of the 100 points measured. Otherwise the report says "Not enough data for a full grade" and lists the categories we could score. A category without enough data is left out of the overall grade, never scaled up on its own.
- Bands: under 50% Poor, 50% to 79% Fair, 80% to 89% Good, 90% or more Excellent.
- Severity: Critical for a homepage that can't be indexed, no working HTTPS, or any big check (4 points or more) with no points. Important when 2 or more points are at stake. Minor otherwise. The OpenStreetMap listing checks (L01 and L02) are never Critical, and neither is Reviews shown on your site (G15).
- "Fixing them could add up to N points" is the sum of the points you missed, on the same scale as your grade. The points at stake for one item are never more than that item's own points. We don't estimate money: we can't measure that honestly.
- Who built your website never changes your score. Ordering through Owner.com, Toast, ChowNow, Square or your own page all count the same.
Search readiness: 40 points
| Check | Points | Full points when | Partial credit | Source |
|---|---|---|---|---|
| S01 Secure connection (HTTPS) | 3 | Your site opens with https:// and http:// addresses redirect to it. Browsers mark sites without HTTPS as "Not secure", and search engines prefer secure pages. Guests also hesitate to order or call from a page that looks unsafe. | 1.5 points: HTTPS works but http:// doesn't redirect, or the certificate expires within 14 days. | Your website |
| S02 Search engines can index your homepage | 4 | Your homepage answers normally (status 200) and nothing tells search engines to skip it: no noindex tag and no "Disallow: /" in robots.txt. If search engines can't index your homepage, it can't show up in search results at all. This is the most important check. | No partial credit. Not measured when robots.txt blocks only our checker (then we read robots.txt alone). | Your website |
| S03 Page title | 4 | One title of 15 to 65 characters that includes your name, what you offer or your city, and isn't generic like "Home". The title is the headline people see in search results and the name on the browser tab. A clear title tells people and search engines what you are before they click. | 2 points: a title that is too short, too long, generic or missing your name, offer and city. | Your website |
| S04 Meta description | 2 | A description of 50 to 160 characters that is different from your title. Search engines often show this text under your title. A clear description of what you offer and where gets more clicks. | 1 point: a description outside 50 to 160 characters, or one that repeats the title. | Your website |
| S05 Main heading (H1) | 2 | Exactly one main heading (H1) with at least 2 words of real text. The main heading tells visitors and search engines what the page is about. A logo image alone doesn't say anything they can read. | 1 point: several H1s, an H1 that is only an image or logo, or a one-word heading. | Your website |
| S06 Local business structured data | 4 | Structured data (JSON-LD or microdata) that marks your page as a local business, such as Restaurant, Plumber or LocalBusiness. Structured data tells search engines and AI assistants your exact name, address, hours and type in a format they read reliably. It helps your details show up correctly. | 2 points: only Organization or WebSite data. | Your website |
| S07 Structured data is complete | 3 | Your business structured data has at least 7 of 8 key fields: name, street, city, phone, hours, website address, map coordinates, and menu or cuisine (services or area served for other businesses). Missing fields mean search engines and AI assistants have to guess, or show nothing. Complete data keeps your hours, phone and address right everywhere. | 1.5 points: 4 to 6 of the 8 fields. | Your website |
| S08 Your location is in your text | 3 | Your city or neighborhood appears in your title or main heading, and in your page text. People search with places, like "tacos in Southtown". If your page never says where you are, search engines have less reason to show you for local searches. | 1.5 points: only in your title or heading, or only in your text. Not measured when we don't know your city. | Your website |
| S09 Enough useful text on your homepage | 2 | At least 250 words of readable text on your homepage, not counting the menu bar and footer. Search engines read text, not pictures of text. A very short page gives them little to understand what you offer. | 1 point: 100 to 249 words. | Your website |
| S10 Menu as readable text | 3 | Your menu is on your website as text with items and prices, not only as a PDF, a photo or a link to another site. Services as readable text: Your services are listed as text (at least 3), ideally with one page per service. Most guests check the menu before they choose. Text menus load fast on phones, can be searched, and help search engines match you to the dishes people look for. | 1 point: menu only as a PDF (services: 1 or 2 found). No points for a menu only in images, only on another site, or none. | Your website |
| S11 XML sitemap | 2 | A sitemap.xml (or one listed in robots.txt) that lists at least one page of your site. A sitemap helps search engines find all your pages, including new ones, faster. | 1 point: a sitemap that is invalid, empty or for another site. | Your website |
| S12 Canonical address | 1 | A canonical tag that points to your own https page. The canonical tag tells search engines which address is the main one, so www, non www and tracking links don't split your results. | 0.5 points: no canonical tag. No points when it points to another domain or a broken page. | Your website |
| S13 Social sharing preview | 1 | An Open Graph title and image, so shared links show a picture and a name. When someone shares your site in a text message or on social media, a good preview gets more clicks than a bare link. | 0.5 points: only a title or only an image. | Your website |
| S14 Key pages are one click away | 2 | Your menu (or services) and your contact or location details are one click from your homepage. Guests on phones want the menu, hours and directions fast. If they have to hunt for them, many leave. | 1 point: only one of the two. | Your website |
| S15 Lighthouse SEO score (mobile) | 4 | A Google Lighthouse SEO score of 90 or more on mobile, from PageSpeed Insights. Lighthouse checks basic search engine rules like readable fonts, tap targets, link text and crawlable links. | 2 points: a score of 70 to 89. Not measured when PageSpeed Insights isn't available. | Google PageSpeed Insights |
Guest experience: 40 points
| Check | Points | Full points when | Partial credit | Source |
|---|---|---|---|---|
| G01 Mobile speed | 6 | A Lighthouse performance score of 90 or more on mobile. Most local searches happen on phones. Slow pages lose guests before they see your menu or phone number. | 3 points: a score of 50 to 89. | Google PageSpeed Insights |
| G02 Main content loads fast (LCP) | 2 | The biggest thing on screen (usually your top photo) appears within 2.5 seconds in the lab test. Guests judge a site in a few seconds. A slow first photo makes the page feel broken. | 1 point: up to 4 seconds. | Google PageSpeed Insights |
| G03 Page stays still while loading (CLS) | 1 | A layout shift score of 0.1 or less: the page doesn't jump while it loads. When content jumps, people tap the wrong thing, like a delivery link instead of your phone number. | 0.5 points: up to 0.25. | Google PageSpeed Insights |
| G04 Responds quickly to taps (TBT) | 1 | Total blocking time of 200 ms or less in the lab test. Heavy scripts freeze the page, so taps on Menu or Call do nothing for a moment. | 0.5 points: up to 600 ms. | Google PageSpeed Insights |
| G05 Built for phones | 2 | A viewport tag that fits the page to the phone screen and lets people zoom. Without it, phones show a tiny desktop page. Blocking zoom makes it hard to read for people who need larger text. | 1 point: a viewport that blocks zooming. | Your website |
| G06 Tap to call | 3 | Your phone number is a tap to call link (tel:) on the homepage. Many guests want to call right away. A tappable number turns a visit into a call with one tap. | 1 point: a phone number in the text that isn't tappable. | Your website |
| G07 Hours on your site | 2 | Your opening hours appear as text on your site. "Are they open now?" is one of the first questions guests have. Hours in text can be read by phones, search engines and AI assistants. | 1 point: hours only in structured data or in an image. | Your website |
| G08 Address and directions | 2 | Your street address as text plus a map or "Get directions" link. Service area businesses: the areas you serve plus a phone number. Guests need to find you. A text address lets phones open maps with one tap and confirms your location to search engines. | 1 point: only the address or only the map link. | Your website |
| G09 Order or book online | 3 | A direct link to order online or reserve, using your own ordering page or any provider you choose. Delivery app links alone count halfway. Book, reserve or order online: A link to reserve, book an event, buy tickets or order online. Request a quote or book online: A quote request form or an online booking link. A phone number or email alone counts halfway. Guests who can order or book right from your site are more likely to follow through, and direct orders usually keep more of each sale with you than marketplace apps. | 1.5 points: only delivery app links (DoorDash, Uber Eats, Grubhub and similar), or for other businesses only a phone number or email. Any ordering or booking provider you choose counts as direct. | Your website |
| G10 Photo quantity | 3 | At least 8 real photos on your site, larger than 200 pixels, not counting logos and icons. Photos are one of the first things people look at. More real photos build trust before the first visit. | 1.5 points: 4 to 7 photos. | Your website |
| G11 Photo sharpness | 2 | At least 80% of your photos are 600 pixels wide or more (1200 or more for the big top photo). Small photos look blurry on modern phones and large screens, which makes your food or work look worse than it is. | 1 point: at least 50%. No points when we find no photos at all (having none never scores better than having some). | Your website |
| G12 Photo weight and format | 2 | Lighthouse finds less than 150 KB of possible image savings in total. Without Lighthouse: no image over 500 KB. Heavy photos are one of the most common reasons local business sites are slow on phones. | 1 point: savings under 1 MB (without Lighthouse: 1 or 2 images over 500 KB). | Google PageSpeed Insights |
| G13 Lazy loading and image sizes | 1 | Photos further down the page load only when needed (loading="lazy"), and images have width and height set. Loading every photo at once slows down the first screen, and images without sizes make the page jump. | 0.5 points: only one of the two. | Your website |
| G14 Strong first photo | 1 | A large photo (1000 pixels wide or more) at the top of your homepage. The first screen sets the mood. A great large photo shows people what to expect at a glance. | No partial credit. | Your website |
| G15 Reviews shown on your site | 4 | At least 2 reviews or testimonials as text on your site, or a review widget. People trust other customers. Showing real reviews on your own site answers "is it good?" before they leave to check elsewhere. | 2 points: only links to review profiles. | Your website |
| G16 Accessibility basics | 2 | A Lighthouse accessibility score of 90 or more. Without Lighthouse: page language set, 80% of images described and every form field labelled. Many people use larger text, screen readers or high contrast. An accessible site works for everyone and is easier for search engines to read. | 1 point: a score of 70 to 89 (without Lighthouse: 2 of the 3 basics). | Google PageSpeed Insights |
| G17 Image descriptions (alt text) | 1 | At least 80% of your photos have a text description (alt text). Alt text is read aloud by screen readers and helps search engines understand your photos. | 0.5 points: at least 50%. No points when we find no photos at all. Does not apply when your only photos are page backgrounds. | Your website |
| G18 Lighthouse best practices | 1 | A Lighthouse best practices score of 90 or more. This covers basics like secure resources, no browser errors and up to date libraries. Problems here can make the site break on some phones. | 0.5 points: a score of 70 to 89. | Google PageSpeed Insights |
| G19 Social profiles linked | 1 | At least one link to your social profiles (Instagram, Facebook, TikTok, X, YouTube or Threads). People use social profiles to see recent photos and news. Links also help search engines connect your profiles to your business. | No partial credit. | Your website |
Local listings: 20 points (OpenStreetMap and your website)
| Check | Points | Full points when | Partial credit | Source |
|---|---|---|---|---|
| L01 Found on OpenStreetMap | 4 | Your business is on OpenStreetMap near your location. OpenStreetMap is a free, open map that many apps, websites and navigation tools build on. Being on it with correct details helps people find you there. | No partial credit. Not measured when we can't find your location. | OpenStreetMap |
| L02 Listing details complete | 5 | Your OpenStreetMap listing has all 6 details: name, full address, phone, hours, website, and cuisine (email or social for other businesses). Apps that use OpenStreetMap show what's in your listing. Missing hours or phone means people can't see when you're open or call you. | 5/6 of a point for each detail when 3 to 5 are there. No points with 2 or fewer. Does not apply when your business isn't on OpenStreetMap: L01 already counts that, so a missing listing only costs points once. | OpenStreetMap |
| L03 Name, address and phone match | 3 | The name, street address and phone on your website match your OpenStreetMap listing. Matching details everywhere tell search engines and map apps they are looking at the same business. Mismatches cause wrong information to show up. | Points are shared across the details we could compare on both sides (for example 3 of 3 when the name and address match and your listing has no phone; a detail missing from your listing is counted in L02 instead). Not measured without a listing. Not scored when you check without a website, because the listing was found by the name you typed. | Your website and OpenStreetMap |
| L04 One consistent phone and address on your site | 3 | One main phone number and one address format across your homepage, contact page and structured data. Different numbers or addresses on your own site confuse people and search engines about which one is right. | 1.5 points: one of the two issues. A second number labelled as catering, fax, events or similar isn't counted as another main number. | Your website |
| L05 Review and listing profiles linked | 3 | Links from your site to at least 2 review or listing profiles (Google, Yelp, Tripadvisor, Facebook, OpenTable, BBB and others). Links to your profiles help people find your reviews and help search engines connect your listings to your website. | 1.5 points: one profile. | Your website |
| L06 Map location agrees | 2 | Coordinates on your site (structured data or a map link) are within 150 meters (about 500 feet) of your listing or geocoded address. A wrong pin sends people to the wrong place. Matching coordinates confirm your exact location. | 1 point: 150 to 1000 meters apart, or no coordinates on your site. | Your website and OpenStreetMap |
| L07 Service area clearly stated | 5 | The cities or neighborhoods you serve are listed as text in a service area section and in your structured data (areaServed). Businesses that go to the customer don't need a storefront on maps, but people and search engines need to know where you work. | 2.5 points: only one of the two. Applies only to service area businesses with no storefront and no listing; then L01, L02, L03 and L06 don't apply and Local listings is scored from L04, L05 and L07. | Your website |
Shown in your report, not part of the grade
Competitor comparison
We find nearby places of the same type on OpenStreetMap (within about 1.5 km for food and drink, wider for trades). For up to 3 of the nearest that list a website, we run the same public checks on their homepage and map listing as on yours, 10 points each, scored out of 100. Your row uses your homepage only, like theirs. We compare only on checks we could measure on your site, and a competitor is included only when every one of those checks could be measured on theirs too. If we could read fewer than 5 of them on your site (for example a firewall blocked our checker), we don't give you a comparison score. "Below N" counts the competitors that scored strictly higher than you. Mobile speed is left out for everyone when it wasn't measured for everyone. This is not a Google ranking.
The comparison checks
- C1 Secure connection (HTTPS)
- C2 Homepage can be indexed
- C3 Clear page title
- C4 Local business structured data
- C5 Tap to call link
- C6 Hours shown as text
- C7 Menu or services as text
- C8 Built for phones (viewport)
- C9 OpenStreetMap listing completeness
- C10 Mobile speed (Lighthouse)
How ready you are for searches
We build the searches people likely use to find a business like yours (for example "sushi restaurant in San Antonio", "sushi near me", "best sushi in San Antonio", your name) and score from 0 to 100 how ready your site is for each one: the search term and your place in your title, headings and text, matching structured data, your map listing, a page about it, and mobile speed. "Near me" searches look at your address, tap to call and hours instead; "best" searches look at reviews on your site. 75 or more is Ready, 45 to 74 Partly ready, under 45 Not ready. If your homepage can't be indexed, every search scores 0. This is readiness, not your position in Google: we never read Google results.
AI visibility (x of 7)
AI assistants answer from public text and structured data. We check:
- Main content readable without JavaScript. Many AI crawlers don't run JavaScript, so content built only by scripts is invisible to them.
- llms.txt file. A short plain text summary at /llms.txt that tells AI tools what your business is and where to find key pages.
- AI crawlers allowed in robots.txt. Blocking AI crawlers in robots.txt keeps your details out of AI answers.
- Complete business structured data. Name, address, phone, hours and more in structured data that AI tools can read reliably.
- FAQ or questions and answers. Questions and answers (parking, reservations, gluten free options) are easy for AI assistants to quote.
- Name, address and phone in text. Your name, address and phone written as text, not only in images.
- Menu or services in text. Your menu or services written as text so AI tools can answer "do they have..." questions.
Google self check
Buttons that open your own Google Maps listing, your Google reviews and Google Business Profile in your browser, plus a checklist you can tick (saved only in your browser). We never read, fetch or store any Google data.
Tone of testimonials on your site
When your website shows reviews or testimonials, a simple word list (English and Spanish, with negations like "not good") marks each one positive, neutral or negative and finds common themes like food, service or price. It reads only your own website, never Google reviews. We don't store reviewer names, emails or phone numbers.
More checks we show
Hours on your site compared with your map listing, a Spanish version of your site, broken links among the pages we read, an old copyright year, a site icon, and days left on your security certificate.
Data sources and the rules we follow
- Your website
- Read by our crawler (user agent ServIndyGrader) only when someone asks for a check. It respects robots.txt and Crawl-delay, reads your homepage and up to 7 more pages, and measures up to 30 images by reading only their first 64 KB. Your site's security settings are never bypassed.
- OpenStreetMap
- Your map listing and nearby businesses, through Nominatim (location search) and the Overpass API. We follow their usage policies: at most one Nominatim request per second for the whole service, an identifying user agent, results cached for 30 days (Overpass for 7 days), only on request, never in bulk. © OpenStreetMap contributors, available under the Open Database License.
- Map tiles
- OpenFreeMap (© OpenMapTiles, data from OpenStreetMap), loaded in your browser with attribution. If that map can't load, a basic OpenStreetMap map or a plain list is shown instead.
- Google PageSpeed Insights
- Google's free API runs Lighthouse on a simulated phone and returns the scores and the mobile screenshot. We show them as a snapshot with its date and keep them for 24 hours only. After that a saved report shows "Run a new scan to see current speed results", and the points that used them stay as scored on the scan date. A result is reused for up to 12 hours, so a second check soon after shows the same numbers.
- What we never use
- No Google Business Profile data, no Google reviews, no Google search results, no paid map or search services, and no AI writing tools. Every number in a report comes from one of the sources above and says which.
For website owners
To keep our checker off your site, add these two lines to your robots.txt:
User-agent: ServIndyGrader
Disallow: /
Privacy
- No sign up, no email, no phone number.
- Reports are kept for 30 days and then deleted. Anyone with the link can view a report, so share it only with people you choose.
- To limit abuse we keep a keyed hash of your connection's IP address for 48 hours, never the address itself, and a short proof of work runs in your browser instead of a puzzle.
- Google PageSpeed Insights scores and the mobile screenshot are deleted 24 hours after the test.
- Photos in a report load directly from the business's own website, so that website's server can see the viewer's IP address, like any visit.
- These pages use Google Analytics to count visits (no Google signals, no ad personalization, and report links are never sent). We don't send the website, business name or city you enter.
- To ask us to remove a report, use "Report this page" at the bottom of the report or email support@servindy.app.
Want these fixed for you?
ServIndy websites come with these checks built in. Joining ServIndy is free.