D

Poor for AI agents

Speed: Fail (Google's lab run of this page)

Capped at D: your pages load slowly on phones (Performance 59). Your checks earned 81.

81

Find

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

25% of your grade · 7 of 11 goals pass

  • Pages that do not exist say soFail

    A page that does not exist answers 200 with a normal page, so every guessed address looks real. Google treats content behind a 404 or 410 as gone, and flags empty pages that answer 200 (success) as soft 404s.

    • Status 200: https://www.thebraxtonapts.com/grader-no-such-page-8f3a1c

    What to do Ask the people who run your site to make a mistyped address show a page that says it was not found, with a 404 status behind it.

    For your web team: Return 404 (or 410 for a page that is gone) for unknown routes. A single-page app needs its server to answer unknown paths with the not-found page and a 404 status; a redirect to the home page makes every address look real.

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

    The title “Home | The Braxton” says nothing specific about this page. 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 of its own keeps your wording in front of searchers.

    • Home | The Braxton: https://www.thebraxtonapts.com/

    What to do Ask the people who run your site to give every page its own title that says what the page is and what it offers.

    For your web team: Add a <title> element to the head of every page. Describe that page in plain words as a phrase a person would read, and make it differ from every other page's title.

    Influencing Title Links in Google Search, Google
  • Key pages say what they offer in the titleFail

    The title does not say what the page offers and where. Google asks for descriptive titles. SearchPilot's test of putting the location at the start of a healthcare provider's titles predicted 8.5% more organic sessions.

    • Nothing that says what the page offers: https://www.thebraxtonapts.com/
    • Nothing that says where: https://www.thebraxtonapts.com/

    What to do Ask the people who run your site to rewrite the title of your home page and key pages to say what you offer and where.

    For your web team: Write each key page's <title> as the offer first, then the place, to fit about 560 pixels (about 60 characters of ordinary text), and end with the business name.

    Adding Location to the Start of Title Tags, SearchPilot
  • Titles and descriptions fit in a search resultPartial

    1 of the 2 audits in this goal falls short: The title is 179 pixels wide; search results have room for about 560. Google sets no length limit and cuts a title or description to the device's width. SEO tools measure a title in pixels, since 60 characters run from 267 to 1,133 pixels, and count a description in characters. A cut loses the last words.

    • 179 pixels wide: https://www.thebraxtonapts.com/

    What to do Ask the people who run your site to keep each title short enough to show in full and each description to one or two sentences, with the words that matter first.

    For your web team: Keep each <title> within about 560 pixels of Arial at 20px, which is about 60 characters of ordinary text and fewer with wide capitals, with the main words first. Keep each meta description to 70 to 155 characters.

    Influencing Title Links in Google Search, Google
  • 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

    The page answers, no tag or header keeps it out of search results, and robots.txt lets search crawlers read it. 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://www.thebraxtonapts.com/sitemap.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
  • Each page has a clear address and place in your sitePass

    All 2 audits in this goal pass. Google uses one canonical address per page, recommends readable words rather than long ID numbers, and can show a breadcrumb trail in desktop results when the page marks one up.

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

    Avoid multiple page redirects: the page has no redirect. 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
  • A shared link shows a previewPass

    The page names a title, description and image for shared links, and an icon. Open Graph tags decide the title, description and image a link shows when shared; Google shows your icon in results.

    The Open Graph protocol, ogp.me
98

Understand

Do they understand who you are and what you offer?

25% of your grade · 6 of 7 goals pass

  • Your AI tools are listed in an AI catalog

    ai-catalog.json schema is invalid The Agentic Resource Discovery (ARD) draft is a format that helps assistants discover what a site offers, such as tools and agents; the standards are still emerging.

    • ai-catalog.json schema is invalid: https://www.thebraxtonapts.com/

    What to do Ask whoever runs your site to publish an ARD catalog once your site has an MCP server or agent to list.

    For your web team: Serve a JSON file at /.well-known/ai-catalog.json with a specVersion and an entries list that follow the ARD schema. That is the path Lighthouse reads today; the ARD spec is moving to /.well-known/ard.json.

    Agentic Resource Discovery specification, agenticresourcediscovery.org
  • Your business is described in structured dataPartial

    The structured data lacks apartment on /floor-plans and offer. The page does not state the business's keywords and number of bedrooms. 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.

    • Not in the page's structured data: https://www.thebraxtonapts.com/floor-plans
    • Not in the page's structured data: https://www.thebraxtonapts.com/
    • The page does not state it: https://www.thebraxtonapts.com/

    What to do Ask whoever runs your site to mark the business up with the most specific schema.org type that fits it, to add the facts this goal lists to the structured data of the pages that show them, and to state on the page any detail this goal says the page does not state.

    For your web team: Add a JSON-LD script whose "@type" is the most specific schema.org type that fits the business, with each missing property set to the value the page shows, a node for each missing type on the page that shows it, and the value of each detail the page does not state in the text of the page. schema.org lists every type, its subtypes and the properties of each.

    About Usage Statistics, schema.org
  • Your key facts are in the page itselfPass

    Scripts add 19 pieces of text your server does not send, and none of it is what visitors come to the page for. 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
  • A short guide to your site for AI assistantsPass

    llms.txt follows recommendations llmstxt.org proposes the file so assistants find what they need and follow its links. Lighthouse calls it an emerging convention and Google Search does not use it, so it is a bonus.

    Optimizing your website for generative AI features on Google Search, Google
  • Every page has its own summary for search resultsPass

    The description is the page's own and reads as a summary. 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
  • Headings give each page an outlinePass

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

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

    All 3 audits in this goal pass. 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. It asks for descriptive file names.

    Image SEO Best Practices, 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
  • Lists and tables are built as lists and tablesPass

    All 2 audits in this goal pass. 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.

    Rule list: <ul> and <ol> must only directly contain <li>, <script> or <template> elements, Deque axe
85

Act

Can they use your site for a shopper?

25% of your grade · 6 of 8 goals pass

  • 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://www.thebraxtonapts.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
  • Text is readablePartial

    1 of the 3 audits in this goal falls short: Background and foreground colors do not have a sufficient contrast ratio. WCAG requires text to contrast with its background by at least 4.5 to 1, and the axe rule color-contrast checks for it.

    • Fix any of the following: Element has insufficient color contrast of 3.93 (foreground color: #ffffff, background color: #0b9444, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1: <p class="font-body text-sm text-[var(--vibe-color-text-on-primary)] mb-3 tracking-w…">: https://www.thebraxtonapts.com/

    What to do Ask the people who run your site to darken pale text and to underline the links inside paragraphs.

    For your web team: Reach a contrast ratio of 4.5 to 1 for normal text, mark links in text with more than color, and leave user-scalable and maximum-scale out of the viewport tag.

    Rule color-contrast: Elements must meet minimum color contrast ratio thresholds, Deque axe
  • Custom controls announce what they arePass

    Elements with role="dialog" or role="alertdialog" have accessible names. WCAG, the web accessibility standard most laws point to, requires every control to expose its name and role to assistive technology and software.

    Accessibility for agents, Chrome
  • Extra labels on controls are used correctlyPass

    All 10 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
  • Buttons and links are big enough to tapPass

    All 2 audits in this goal pass. web.dev recommends tap targets of around 48 pixels, and WCAG sets a minimum of 24 by 24 pixels.

    Accessible tap targets, Google
  • Visitors can move around the pagePass

    All 3 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
  • Assistants can read your page's controlsPass

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

    Accessibility for agents, Chrome
59

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 · 2 of 10 goals pass

  • Repeat visitors get a faster pageFail

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

    • Use efficient cache lifetimes (Est savings of 330 KiB), from Facebook: https://connect.facebook.net/en_US/fbevents.js
    • Use efficient cache lifetimes (Est savings of 330 KiB), from Facebook: https://connect.facebook.net/signals/config/724003515637386?v=2.9.427&r=stable&domain=www.thebraxtonapts.com&im=1&hme=766752a074f0cb0756dd3275a46fdecbcfe3de1ab8f573546734b619e44d384f&ex_m=118%2C241%2C171%2C27%2C82%2C83%2C162%2C78%2C77%2C11%2C181%2C102%2C20%2C153%2C141%2C46%2C85%2C90%2C149%2C176%2C183%2C8%2C4%2C5%2C7%2C6%2C3%2C103%2C115%2C32%2C17%2C31%2C18%2C33%2C34%2C35%2C37%2C55%2C163%2C87%2C126%2C22%2C24%2C51%2C47%2C49%2C48%2C95%2C104%2C108%2C124%2C160%2C164%2C53%2C125%2C29%2C26%2C133%2C79%2C43%2C166%2C165%2C167%2C157%2C155%2C30%2C42%2C66%2C123%2C178%2C80%2C21%2C128%2C93%2C76%2C23%2C97%2C98%2C130%2C96%2C151%2C150%2C154%2C109%2C177%2C180%2C41%2C56%2C127%2C54%2C161%2C72%2C185%2C110%2C184%2C210%2C255%2C84%2C274%2C273%2C272%2C14%2C25%2C28%2C40%2C62%2C117%2C68%2C10%2C73%2C111%2C112%2C113%2C119%2C144%2C38%2C36%2C146%2C147%2C148%2C143%2C142%2C172%2C86%2C175%2C173%2C174%2C57%2C69%2C67%2C137%2C19%2C179%2C52%2C324%2C325%2C326%2C323%2C340%2C362%2C248%2C237%2C70%2C238%2C236%2C365%2C356%2C59%2C249%2C121%2C145%2C92%2C135%2C61%2C134%2C140%2C139%2C65%2C74%2C168%2C88%2C89%2C129%2C44%2C39%2C60%2C63%2C114%2C182%2C1%2C138%2C16%2C136%2C12%2C2%2C64%2C105%2C15%2C75%2C71%2C132%2C101%2C100%2C187%2C188%2C106%2C107%2C9%2C116%2C186%2C58%2C158%2C99%2C91%2C81%2C131%2C120%2C169%2C50%2C159%2C0%2C94%2C152%2C156%2C170%2C45%2C122%2C13%2C189
    • Use efficient cache lifetimes (Est savings of 330 KiB), from Amazon Web Services: https://betterbot-media-files.s3.amazonaws.com/api/public/your_brand/avatars/standard_bee_bee2024.png

    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
  • The main content shows up quicklyPartial

    3 of the 3 audits in this goal fall short: Largest Contentful Paint (9.9 s), First Contentful Paint (3.8 s), and Speed Index (5.7 s). Lab test on a phone: too few real visitors to measure it. 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 (9.9 s): https://www.thebraxtonapts.com/
    • First Contentful Paint (3.8 s): https://www.thebraxtonapts.com/
    • Speed Index (5.7 s): https://www.thebraxtonapts.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
  • The page responds as soon as it appearsPartial

    Total Blocking Time (550 ms) 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 (550 ms): https://www.thebraxtonapts.com/
    • Reduce JavaScript execution time (3.2 s), from audioeye-services.com: https://wsv3cdn.audioeye-services.com/static-scripts/m/audioeye-scanner-esm/v11.2.45/audioeye-scanner-esm.js
    • Minimize main-thread work (5.3 s): https://www.thebraxtonapts.com/

    What to do Ask the people who run your site to remove scripts it does not need, which keep the page busy.

    For your web team: Split long tasks and defer scripts that are not needed to start. PageSpeed lists the costliest scripts.

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

    Cumulative Layout Shift (0.187) 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.

    • Cumulative Layout Shift (0.187): https://www.thebraxtonapts.com/
    • Layout shift culprits: https://www.thebraxtonapts.com/
    • Avoid large layout shifts (9 layout shifts found): <section class="relative w-full h-[65vh] md:h-[70vh] min-h-[420px] max-h-[780px] overflow-…">: https://www.thebraxtonapts.com/

    What to do Ask the people who run your site to stop content from moving as images and fonts load.

    For your web team: Set width and height on images and embeds, reserve space for late content, and use font-display with a matching fallback font.

    Web Vitals, Google
  • Images are the right sizePartial

    2 of the 4 audits in this goal fall short: Improve image delivery (Est savings of 701 KiB) and Image elements do not have explicit width and height. 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 701 KiB): <img src="https://media.multihub.io/cdn-cgi/image/format=auto,w=960/property/5687098…" srcset="https://media.multihub.io/cdn-cgi/image/format=auto,w=160/property/5687098…" sizes="100vw" alt="A fenced-in dog park area with green grass and palm trees, featuring a ben…" loading="lazy" fetchpriority="auto" class="absolute inset-0 w-full h-full object-cover transition-opacity duration-[6…">, from multihub.io: https://media.multihub.io/cdn-cgi/image/format=auto,w=960/property/5687098786971648/019e89ca-4857-726e-83a7-eeb92cf62cb1.webp
    • Image elements do not have explicit width and height: <img src="https://media.multihub.io/cdn-cgi/image/format=auto,w=960/property/5687098…" srcset="https://media.multihub.io/cdn-cgi/image/format=auto,w=160/property/5687098…" sizes="100vw" alt="Special offer" loading="eager" fetchpriority="high" class="alpp-image">, from multihub.io: https://media.multihub.io/cdn-cgi/image/format=auto,w=960/property/5687098786971648/019f6d50-4152-7606-adea-1e36583cfb3f.webp

    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

    7 of the 7 audits in this goal fall short: Avoid enormous network payloads (Total size was 3,141 KiB), Reduce unused JavaScript (Est savings of 453 KiB), Reduce unused CSS (Est savings of 39 KiB), Minify JavaScript (Est savings of 8 KiB), Minify CSS (Est savings of 12 KiB), Duplicated JavaScript (Est savings of 3 KiB), and Legacy JavaScript (Est savings of 29 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 3,141 KiB): https://www.thebraxtonapts.com/assets/index-g6Cf8kcC.js
    • Reduce unused JavaScript (Est savings of 453 KiB): https://www.thebraxtonapts.com/assets/index-g6Cf8kcC.js
    • Reduce unused CSS (Est savings of 39 KiB), from betterbot.com: https://thebraxton.engine.betterbot.com/style.css

    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

    1 of the 7 audits in this goal falls short: Uses deprecated APIs (1 warning found). Chrome says an error in the console means a problem on your page that you need to resolve.

    • Uses deprecated APIs (1 warning found): https://www.thebraxtonapts.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 fast from servers near your visitorsPartial

    1 of the 5 audits in this goal falls short: Your site sends no Strict-Transport-Security header. A CDN keeps copies of your site on servers close to each visitor, so pages arrive sooner. Chrome says a CDN reduces the network latency that slows a server's first response.

    • No Strict-Transport-Security header: https://www.thebraxtonapts.com/
    • Network Round Trip Times (10 ms): https://www.thebraxtonapts.com/
    • Server Backend Latencies (60 ms): https://www.thebraxtonapts.com/

    What to do Ask the people who run your site to put a CDN in front of it and to turn on compression and caching.

    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, avoid redirects, and send Strict-Transport-Security with a max-age above zero.

    Reduce server response times (TTFB), Chrome
  • Visitors are on a secure connectionPass

    Uses HTTPS web.dev says a secure connection helps prevent intruders tampering with traffic between your site and its visitors.

    Why HTTPS matters, 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

See how the sites the assistant picked grade

The assistant opened 2 other sites for this shopper. Grade them with the same checks.

  • windwoodapts.com
  • woodlakevillage.com

8th of 9 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