D

Poor for AI agents

Speed: Fail (real visitors, last 28 days)

100

Find

Does your site let search engines and assistants read and list your pages?

25% of your grade · 9 of 9 goals pass

  • Search engines and AI assistants are allowed to read your sitePass

    Every AI search crawler and agent we grade is allowed. Training crawlers are allowed. A crawler is a robot that reads sites for a search engine or assistant, and one that is blocked cannot recommend you. Bing lists blocking Bingbot among the things to avoid, because content it cannot crawl may not be indexed or used in Copilot's answers.

    Overview of OpenAI crawlers, OpenAI
  • Search engines may list each pagePass

    Page isn’t blocked from indexing Google leaves out a page marked noindex, and a page its crawler cannot read cannot be listed or used as a supporting link in its AI features.

    AI features and your website, Google
  • Search results can show your pages' wordsPass

    All 2 audits in this goal pass. A page whose text is kept out of results leaves a search engine or assistant nothing to quote. Google's AI features follow nosnippet and max-snippet, and Bing keeps content marked noarchive out of Copilot and limits nocache pages to their address, title and snippet.

    Robots.txt Introduction and Guide, Google
  • Your pages are listed in a sitemapPass

    https://livesolasu.com/sitemap_index.xml is a sitemap. Google and Bing use an XML sitemap named in robots.txt to find your pages, and neither promises to index every page in it. A page must be indexed to appear in Google's AI answers.

    Build and submit a sitemap, Google
  • Pages that do not exist say soPass

    A page that does not exist answers 404. Google treats content behind a 404 or 410 as gone, and flags empty pages that answer 200 (success) as soft 404s.

    How Google Search handles HTTP status codes, Google
  • Every page has its own titlePass

    Document has a <title> element Google builds the title link in search results from the page's title, and may change one that is missing, vague, boilerplate or repeated. A title keeps your wording in front of searchers.

    Influencing Title Links in Google Search, Google
  • Each page has one clear addressPass

    All 2 audits in this goal pass. Google uses one canonical address per page, and uses hreflang to send searchers to the version of the page in their language.

    How to Specify a Canonical with rel="canonical" and Other Methods, Google
  • Pages open without detoursPass

    All 2 audits in this goal pass. Chrome says each extra redirect is another trip across the network that can delay the page by hundreds of milliseconds.

    Avoid multiple page redirects, Chrome
62

Understand

Do they understand who you are and what you offer?

25% of your grade · 4 of 7 goals pass

  • Headings give each page an outlineFail

    Heading elements are not in a sequentially-descending order Google's guide to AI features says headings give a page a clear structure.

    • Fix any of the following: Heading order invalid: <h3 class="content-image__subtitle">: https://livesolasu.com/
    • Fix any of the following: Heading order invalid: <h4 class="widget__title">: https://livesolasu.com/

    What to do Ask the people who run your site to give each page one main heading and to put the headings under it in order.

    For your web team: Use h1 once, then h2 to h6 without skipping a level, and remove or fill any heading element that has no text.

    Optimizing your website for generative AI features on Google Search, Google
  • Images describe themselvesFail

    Image elements do not have [alt] attributes Alt text is a short written description of an image. Google calls it the most important attribute for adding metadata about an image, and it also uses computer vision on the picture.

    • Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation": <img width="512" height="512" src="https://livesolasu.com/wp-content/uploads/2025/01/chevron-up-solid.svg">: https://livesolasu.com/
    • Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation": <img width="900" height="600" src="https://livesolasu.com/wp-content/uploads/2026/10/SoL-1.png" data-lazy-src="http://livesolasu.com/wp-content/uploads/2026/10/SoL-1.png" data-ll-status="loaded" class="entered lazyloaded">: https://livesolasu.com/
    • Fix any of the following: Element does not have an alt attribute aria-label attribute does not exist or is empty aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty Element has no title attribute Element's default semantics were not overridden with role="none" or role="presentation": <img width="900" height="600" src="https://livesolasu.com/wp-content/uploads/2026/10/SoL-2.png" data-lazy-src="http://livesolasu.com/wp-content/uploads/2026/10/SoL-2.png" data-ll-status="loaded" class="entered lazyloaded">: https://livesolasu.com/

    What to do Ask the people who run your site to describe every meaningful image.

    For your web team: Give each meaningful img an alt attribute that says what it shows, an empty alt="" to decorative images, and a text name to image buttons, svg graphics and objects.

    Image SEO Best Practices, Google
  • Lists and tables are built as lists and tablesPartial

    1 of the 2 audits in this goal falls short: Lists do not contain only <li> elements and script supporting elements (<script> and <template>). WCAG, the web accessibility standard most laws point to, requires the structure a page shows on screen to be in its markup as well, and the axe rules check lists and tables for it.

    • Fix all of the following: List element has direct children that are not allowed: br: <ul class="featured-floor-plans__item item is-active has-availability" data-id="719">: https://livesolasu.com/

    What to do Ask the people who run your site to build price lists and schedules as real lists and tables.

    For your web team: Use ul, ol and dl with li, dt and dd children, and table markup with th header cells for tabular data, rather than line breaks and styled divs.

    Rule list: <ul> and <ol> must only directly contain <li>, <script> or <template> elements, Deque axe
  • Your key facts are in the page itselfPass

    The page as your server sends it holds its text; scripts add 16 pieces of text. Claude's web fetch tool does not support pages that fill in their text with JavaScript, and Google reads such a page only after its first HTML, once it reaches the rendering queue. A page whose first response is empty waits or looks empty.

    Understand JavaScript SEO basics, Google Search Central
  • Your business is described in structured dataPass

    The home page's structured data names WebPage, ReadAction, BreadcrumbList, ListItem, WebSite, SearchAction, EntryPoint, PropertyValueSpecification, Organization, ImageObject, ApartmentComplex, and PostalAddress. Structured data spares an assistant from guessing what a page means. Google says it gives explicit clues about a page; Bing says it may support clearer grounding and promises nothing.

    Intro to structured data, Google
  • Every page has its own summary for search resultsPass

    Document has a meta description Google can show a page's meta description as its snippet and asks for a different one on every page. It is less likely to show a list of keywords, so a specific summary has the best chance of being used.

    How to Write Meta Descriptions, Google
  • Pages say which language they are inPass

    All 2 audits in this goal pass. WCAG requires the language of each page to be set in its code, so software reads it with the right rules and voice.

    Rule html-has-lang: <html> element must have a lang attribute, Deque axe
53

Act

Can they use your site for a shopper?

25% of your grade · 5 of 9 goals pass

  • Assistants can read your page's controlsMust haveFail

    Accessibility tree is not well-formed Chrome says agents review the accessibility tree to find what they can click or fill in, and missing labels can block them.

    A must have. While it fails, your letter stays at C or lower.

    • Buttons must have discernible text: <button class="menu-icon" type="button">: https://livesolasu.com/
    • Links must have discernible text: <a href="https://livesolasu.com/floor-plans/" target="_blank" class="hover-container">: https://livesolasu.com/

    What to do Ask whoever runs your site to run Google's PageSpeed Insights on the home page and fix the accessibility problems it lists, which are mostly buttons and fields with no label.

    For your web team: Give every button, link and field an accessible name, associate each field with a label, and remove invalid ARIA roles and attributes. PageSpeed lists the elements that fail.

    Accessibility for agents, Chrome
  • Your site offers tools to AI assistantsMust haveFail

    Your home page offers no tools to AI assistants. WebMCP lets an assistant book or reserve through a site's own code instead of guessing its way around the screen.

    A must have. While it fails, your letter stays at B or lower.

    • PageSpeed's "WebMCP tools registered" audit lists no tool: https://livesolasu.com/

    What to do Ask whoever runs your site to expose the main action on your site, such as booking or contacting you, as a WebMCP tool.

    For your web team: Call document.modelContext.registerTool({ name, description, inputSchema, execute }) as the home page loads, or add toolname and tooldescription attributes to the form. A name is 1 to 128 letters, digits, _, - or .

    WebMCP for developers, Chrome
  • Buttons and links are big enough to tapPartial

    1 of the 2 audits in this goal falls short: Touch targets do not have sufficient size or spacing. web.dev recommends tap targets of around 48 pixels, and WCAG sets a minimum of 24 by 24 pixels.

    • Fix any of the following: Target has insufficient size (405.6px by 9.6px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 8px instead of at least 24px.: <a target="_blank" href="https://cardinalgroup.com" rel="noopener noreferrer nofollow">: https://livesolasu.com/

    What to do Ask the people who run your site to make small buttons and tightly packed links bigger on phones.

    For your web team: Make each target at least 24 by 24 CSS pixels, or leave enough space around smaller ones, and aim for around 48 pixels. Set width=device-width in the viewport tag so taps answer at once.

    Accessible tap targets, Google
  • Forms are labelledPass

    Form elements have associated labels WCAG requires every form field to have a label or instructions, and the axe rule label checks for it.

    Rule label: Form elements must have labels, Deque axe
  • Extra labels on controls are used correctlyPass

    All 11 audits in this goal pass. Wrong ARIA tells an assistant a control is something it is not. WAI-ARIA defines the roles and attributes that are valid, and the axe rules check them.

    Rule aria-roles: ARIA roles used must conform to valid values, Deque axe
  • Text is readablePass

    All 2 audits in this goal pass. WCAG requires text to contrast with its background by at least 4.5 to 1, and the axe rule color-contrast checks for it.

    Rule color-contrast: Elements must meet minimum color contrast ratio thresholds, Deque axe
  • Visitors can move around the pagePass

    All 2 audits in this goal pass. WCAG, the web accessibility standard most laws point to, requires every function of a page to work from a keyboard.

    Accessibility for agents, Chrome
  • Videos and embedded frames have textPass

    <frame> or <iframe> elements have a title WCAG, the web accessibility standard most laws point to, requires captions for the audio in prerecorded video.

    Accessibility for agents, Chrome
55

Performance

Is it fast and sound for the person who clicks through?

Speed comes from real visitors of your page over the last 28 days when Google has their numbers, and from a test on a phone when it does not.

25% of your grade · 3 of 10 goals pass

  • The main content shows up quicklyFail

    3 of the 3 audits in this goal fall short: Largest Contentful Paint is 5.0 s for real visitors of this page, last 28 days, which Google rates poor, First Contentful Paint is 4.1 s for real visitors of this page, last 28 days, which Google rates poor, and Speed Index (12.2 s). Measured from real visitors of this page, last 28 days; the rest is a lab test on a phone. LCP is how long the main picture or text takes to appear, and visitors leave slow pages. web.dev says 2.5 seconds or less is good, one of Google's three Core Web Vitals.

    • Largest Contentful Paint is 5.0 s for real visitors of this page, last 28 days, which Google rates poor.: https://livesolasu.com/
    • First Contentful Paint is 4.1 s for real visitors of this page, last 28 days, which Google rates poor.: https://livesolasu.com/
    • Speed Index (12.2 s): https://livesolasu.com/

    What to do Ask the people who run your site to make the first screen load faster on phones, starting with its biggest image.

    For your web team: Serve the largest element early: preload it, avoid render-blocking scripts and styles, and cut server response time. PageSpeed lists what holds it back.

    Web Vitals, Google
  • Repeat visitors get a faster pageFail

    Use efficient cache lifetimes (Est savings of 2,929 KiB) web.dev says fetching resources over the network is both slow and expensive.

    • Use efficient cache lifetimes (Est savings of 2,929 KiB), from Azure Web Services: https://easytourstorageprod.z19.web.core.windows.net/
    • Use efficient cache lifetimes (Est savings of 2,929 KiB), from Azure Web Services: https://easytourstorageprod.blob.core.windows.net/easytour-assets/easytour-wave.gif
    • Use efficient cache lifetimes (Est savings of 2,929 KiB), from Facebook: https://connect.facebook.net/en_US/fbevents.js

    What to do Ask the people who run your site to let browsers keep images, scripts and styles between visits.

    For your web team: Send Cache-Control with a long max-age for fingerprinted static files, and revalidate the rest with ETag.

    Prevent unnecessary network requests with the HTTP Cache, Google
  • Visitors are on a secure connectionFail

    Does not use HTTPS (4 insecure requests found) web.dev says a secure connection helps prevent intruders tampering with traffic between your site and its visitors.

    • Does not use HTTPS (4 insecure requests found): http://livesolasu.com/wp-content/uploads/2026/09/31.png
    • Does not use HTTPS (4 insecure requests found): http://livesolasu.com/wp-content/uploads/2025/01/chevron-up-solid.svg
    • Does not use HTTPS (4 insecure requests found): http://livesolasu.com/wp-content/uploads/2026/10/SoL-1.png

    What to do Ask the people who run your site to serve every page over a secure connection and to send the plain address to it.

    For your web team: Serve every page and file over a valid certificate, redirect http to https in one hop, and load no resource over plain http.

    Why HTTPS matters, Google
  • Images are the right sizePartial

    2 of the 4 audits in this goal fall short: Improve image delivery (Est savings of 1,162 KiB) and Displays images with incorrect aspect ratio. Chrome says serving images larger than the version rendered on screen results in wasted bytes and slows page load.

    • Improve image delivery (Est savings of 1,162 KiB): <img alt="Easytour Launch" src="https://easytourstorageprod.blob.core.windows.net/easytour-assets/easytour…" style="float: left;">, from Azure Web Services: https://easytourstorageprod.blob.core.windows.net/easytour-assets/easytour-wave.gif
    • Displays images with incorrect aspect ratio: <img width="900" height="600" src="https://livesolasu.com/wp-content/uploads/2026/10/SoL-1.png" data-lazy-src="http://livesolasu.com/wp-content/uploads/2026/10/SoL-1.png" data-ll-status="loaded" class="entered lazyloaded">: https://livesolasu.com/wp-content/uploads/2026/10/SoL-1.png

    What to do Ask the people who run your site to resize and compress your images before they go on the page.

    For your web team: Serve several sizes with srcset and sizes, use a modern format such as WebP or AVIF, and keep each image's width and height in the proportion it is shown.

    Properly size images, Chrome
  • The page does not weigh muchPartial

    4 of the 7 audits in this goal fall short: Avoid enormous network payloads (Total size was 12,571 KiB), Reduce unused JavaScript (Est savings of 2,201 KiB), Reduce unused CSS (Est savings of 56 KiB), and Legacy JavaScript (Est savings of 43 KiB). Chrome says large network payloads are highly correlated with long load times and cost visitors money on mobile data.

    • Avoid enormous network payloads (Total size was 12,571 KiB), from Azure Web Services: https://easytourstorageprod.blob.core.windows.net/easytour-assets/RazzleDazzleIntroVideo/63556795-c381-42a6-b1ac-f820a13046b30.ts
    • Reduce unused JavaScript (Est savings of 2,201 KiB), from Azure Web Services: https://easytourstorageprod.z19.web.core.windows.net/
    • Reduce unused CSS (Est savings of 56 KiB): https://livesolasu.com/wp-content/cache/min/1/wp-content/themes/livesolasu/assets/css/min/app.min.css?ver=1792744649

    What to do Ask the people who run your site to remove code and files the page does not use.

    For your web team: Minify scripts and styles, remove unused and duplicate code, and stop shipping legacy polyfills. PageSpeed lists the files by size.

    Avoid enormous network payloads, Chrome
  • The page loads without errorsPartial

    2 of the 7 audits in this goal fall short: Browser errors were logged to the console and Issues were logged in the Issues panel in Chrome Devtools. Chrome says an error in the console means a problem on your page that you need to resolve.

    • Access to XMLHttpRequest at 'https://consent.api.osano.com/record' from origin 'https://livesolasu.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.: https://livesolasu.com/
    • Issues were logged in the Issues panel in Chrome Devtools: https://livesolasu.com/

    What to do Ask the people who run your site to open the page in a browser's developer tools and clear the errors it lists.

    For your web team: Fix each console error and browser issue, replace deprecated APIs, publish source maps for your scripts, and start the document with a doctype and a charset.

    Browser errors were logged to the console, Chrome
  • Served fastPartial

    1 of the 3 audits in this goal falls short: Your home page is served over HTTP/1.1. Chrome says a CDN (a network of servers near your visitors) reduces the network latency that slows a server's first response.

    • Served over HTTP/1.1: https://livesolasu.com/
    • Network Round Trip Times (20 ms): https://livesolasu.com/
    • Server Backend Latencies (180 ms): https://livesolasu.com/

    What to do Ask the people who run your site to speed up its first response, for example with a CDN in front of it.

    For your web team: Serve the page through a CDN or edge network over HTTP/2 or HTTP/3, compress text with gzip or Brotli, cache the document at the edge, and avoid redirects.

    Reduce server response times (TTFB), Chrome
  • The page responds as soon as it appearsPass

    Interaction to Next Paint is 195 ms for real visitors of this page, last 28 days, which Google rates good. INP is the wait between a tap and the page responding, and under 200 milliseconds is good. Total Blocking Time, the lab test's stand-in, has the same bar.

    Total Blocking Time (TBT), Google
  • The page does not jump around while it loadsPass

    Cumulative Layout Shift is 0.01 for real visitors of this page, last 28 days, which Google rates good. CLS measures how much the page jumps while it loads, which makes people tap the wrong thing. web.dev names it one of three Core Web Vitals, and 0.1 or less is good.

    Web Vitals, Google
  • Visitors are not interrupted on arrivalPass

    All 3 audits in this goal pass. Users are mistrustful of or confused by pages that ask for their location as soon as they load.

    Requests the geolocation permission on page load, Chrome

Watch an assistant search for this site

This scan graded the site on its own. The journey sends an assistant to search the way a shopper would, then shows where it got through and where it stopped.

12th of 12 residence sites graded so far. See the board.

Get a site that keeps itself ready

Get this site rebuilt in Clutch. It grades itself as assistants change and fixes what slips, so it stays ready on its own. You approve the new site before it goes live.

How we grade