C

Hard for AI agents to use

Capped at C: your site gives assistants nothing to act with: no tool on the page and no MCP server they can discover. Your checks earned 81.

See the goal behind it

Speed: Fail (real visitors, last 28 days)Core Web Vitals, Google

Start here.

These hold your letter down the most
  1. Fail·Act

    Your site offers tools to AI assistants

    Your home page offers no tools to AI assistants and No WebMCP tools detected on page load.

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

    Your web team · about a daySee the check

  2. Fail·Act

    Agents can discover your MCP server

    Your site has no ARD catalog at /.well-known/ard.json, so an agent cannot discover an MCP server from it.

    What to do Run an MCP server for your main actions and list it in the site's ARD catalog.

    Your web team · a few daysSee the check

  3. Fail·Performance

    The page does not jump around while it loads

    Cumulative Layout Shift is 0.47 for real visitors of this page, last 28 days, which Google rates poor.

    What to do Stop content from moving as images and fonts load.

    Your web team · about a daySee the check

Fix it,

or see it rebuilt

These 13 fixes add up to about four weeks of your web team's time.

  • Send to your agency

    An email with what is wrong and a link to this report, so whoever runs the site has every fix and its line for the web team.

    Send to your agency
  • Explore with your AI

    Your own AI reads the report and tells you how to fix each issue and the effort each takes. It gets this, and nothing else:

    Read this report on our website: clutch.io/grade/trianglesquareapartments-com. Tell me how to fix each issue and the level of effort each fix takes.

  • See your site rebuilt

    Clutch rebuilds trianglesquareapartments.com from its address, and the new site doesn't have these issues. Free to preview, $39 a month once it goes live.

    See your site rebuilt
100

Find

Can AI agents and search engines reach and list your pages?

25% of your grade · 10 of 10 goals pass

Read

25% of your grade · 7 of 11 goals pass

  • A short guide to your site for AI assistantsImportantFail

    Your site does not publish /llms.txt. llmstxt.org proposes the file so assistants find what they need and follow its links. Lighthouse audits it as an emerging convention, and the grade counts a standard that is likely to be adopted.

    • Lighthouse found no /llms.txt: https://trianglesquareapartments.com/

    What to do Publish /llms.txt with your business name as its title and links to your most important pages.

    For your web team: Serve a Markdown file at /llms.txt with a 200, and keep it out of the way of any rule that routes unknown paths to the home page or answers them with a firewall page. Start it with an H1 naming the site, then sections of Markdown links to key pages, as llmstxt.org describes.

    Your web team · about an hour · Important

    llms.txt audit, ChromeReport an issue with this check

  • Your AI tools are listed in an AI catalogImportantFail

    Your site does not publish an ARD catalog at /.well-known/ard.json. The Agentic Resource Discovery (ARD) draft is a format that helps assistants discover what a site offers, such as tools and agents. Lighthouse audits the catalog, and the grade counts a standard that is likely to be adopted.

    • Lighthouse found no ARD catalog at /.well-known/ard.json: https://trianglesquareapartments.com/

    What to do 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/ard.json with an entries list that follows the ARD schema: each entry carries a urn:air: identifier, a displayName, a type and a url. An MCP server's entry has the type application/mcp-server-card+json and points at its server card, at /mcp/server-card. Name the catalog from every page with <link rel="ard" href="/.well-known/ard.json">. Lighthouse reads that path and warns about a catalog it finds only at the older /.well-known/ai-catalog.json.

    Your web team · about a day · Important

    Lighthouse agentic browsing scoring, ChromeReport an issue with this check

  • Your pages answer in Markdown when an agent asksImportantFail

    Site does not support Markdown for Agents. Cloudflare calls Markdown the common language of agents: its explicit structure gives better results and wastes fewer tokens, and an agent asks for it with an Accept header.

    • Site does not support Markdown for Agents: https://trianglesquareapartments.com/

    What to do Serve each page as Markdown to agents that ask for it.

    For your web team: Answer a request whose Accept header names text/markdown with the page's content as Markdown and Content-Type: text/markdown. Cloudflare can convert pages at its edge, or the server can render the Markdown itself.

    Your web team · about a day · Important

    Markdown for Agents, CloudflareReport an issue with this check

  • Your site says how AI may use its contentImportantFail

    No Content Signals found in robots.txt. Content Signals follow AI Preferences, a proposal at the IETF for a way for a publisher to say how automated systems may use its content.

    • No Content Signals found in robots.txt: https://trianglesquareapartments.com/

    What to do Decide whether your content may be used for search, AI answers and AI training, and ask the people who run your site to say so in robots.txt.

    For your web team: Add a Content-Signal line to robots.txt under the user agents it covers, such as Content-Signal: search=yes, ai-input=yes, ai-train=no.

    Your web team · about an hour · Important

    Content Signals, Content SignalsReport an issue with this check

  • Your key facts are in the page itselfCriticalPass

    Your home page holds 325 words before any script runs. 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 CentralReport an issue with this check

  • Your business is described in structured dataImportantPass

    The home page's structured data names ApartmentComplex, LocalBusiness, PostalAddress, GeoCoordinates, Place, FloorPlan, QuantitativeValue, PriceSpecification, LocationFeatureSpecification, OpeningHoursSpecification, ReserveAction, EntryPoint, CommunicateAction, FindAction, PropertyValue, WebPage, ImageObject, and Action. 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, GoogleReport an issue with this check

  • Headings give each page an outlineImportantPass

    Heading elements appear in a sequentially-descending order Headings give a page a clear structure.

    Optimizing your website for generative AI features on Google Search, GoogleReport an issue with this check

  • Images describe themselvesImportantPass

    All 2 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.

    Image SEO Best Practices, GoogleReport an issue with this check

  • Lists and tables are built as lists and tablesImportantPass

    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 axeReport an issue with this check

  • Every page has its own summary for search resultsImportantPass

    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, GoogleReport an issue with this check

  • Pages say which language they are inImportantPass

    All 3 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 axeReport an issue with this check

72

Act

Can they take the next step for a customer?

25% of your grade · 5 of 8 goals pass

  • Your site offers tools to AI assistantsMust haveImportantFail

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

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

    • PageSpeed's "WebMCP tools registered" audit lists no tool: https://trianglesquareapartments.com/
    • No WebMCP tools detected on page load: https://trianglesquareapartments.com/

    What to do 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 .

    Your web team · about a day · Important

    WebMCP for developers, ChromeReport an issue with this check

  • Agents can discover your MCP serverMust haveImportantFail

    Your site has no ARD catalog at /.well-known/ard.json, so an agent cannot discover an MCP server from it. ARD is how an agent finds what a site offers from its domain alone, and the MCP project accepted server cards so that a client can discover a server before it connects.

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

    • Status 404: https://trianglesquareapartments.com/.well-known/ard.json

    What to do Run an MCP server for your main actions and list it in the site's ARD catalog.

    For your web team: Serve the MCP server card at /mcp/server-card, as the server card extension places it, and list it in /.well-known/ard.json as an entry with a urn:air: identifier, a displayName, the type application/mcp-server-card+json and the card's URL.

    Your web team · a few days · Important

    SEP-2127: MCP Server Cards, Model Context ProtocolReport an issue with this check

  • Buttons and links are big enough to tapImportantPartial

    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 (7px by 7px, should be at least 24px by 24px) Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 10px instead of at least 24px.: <a href="#" class="homepage__gallery-active">: https://trianglesquareapartments.com/

    What to do 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.

    Your web team · about an hour · Important

    Accessible tap targets, GoogleReport an issue with this check

  • Assistants can read your page's controlsCriticalPass

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

    Accessibility for agents, ChromeReport an issue with this check

  • Extra labels on controls are used correctlyImportantPass

    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 axeReport an issue with this check

  • Visitors can move around the pageImportantPass

    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, ChromeReport an issue with this check

  • Text is readableImportantPass

    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 axeReport an issue with this check

  • Your site tells agents what else it offersImportantNot yet

    No Link headers found on target page, Agent Skills index not found, and A2A Agent Card not found. Not measured: Could not fetch API Catalog: The operation was aborted. Each is a published way for a site to tell an agent what it can call or learn there. Few sites that sell to the public need them yet, so they earn points and cost none.

    • No Link headers found on target page: https://trianglesquareapartments.com/
    • Agent Skills index not found: https://trianglesquareapartments.com/
    • A2A Agent Card not found: https://trianglesquareapartments.com/

    What to do Ask whoever runs your site which of these your business has a use for, such as an API catalog if you publish an API.

    For your web team: Publish the files that fit: an API catalog at /.well-known/api-catalog, an Agent Skills index, an A2A agent card at /.well-known/agent-card.json, and Link headers on the home page that point to them.

    Your web team · about a day · Important

    RFC 8288, Web Linking, IETFReport an issue with this check

74

Performance

Is it fast 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 · 5 of 10 goals pass

  • The page does not jump around while it loadsImportantFail

    Cumulative Layout Shift is 0.47 for real visitors of this page, last 28 days, which Google rates poor. 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 is 0.47 for real visitors of this page, last 28 days, which Google rates poor.: https://trianglesquareapartments.com/

    What to do 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.

    Your web team · about a day · Important

    Web Vitals, GoogleReport an issue with this check

  • The main content shows up quicklyImportantPartial

    Largest Contentful Paint is 3.6 s for real visitors of this page, last 28 days, which Google rates needs improvement, First Contentful Paint is 2.3 s for real visitors of this page, last 28 days, which Google rates needs improvement, and Speed Index (5.5 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 3.6 s for real visitors of this page, last 28 days, which Google rates needs improvement.: https://trianglesquareapartments.com/
    • First Contentful Paint is 2.3 s for real visitors of this page, last 28 days, which Google rates needs improvement.: https://trianglesquareapartments.com/
    • Speed Index (5.5 s): https://trianglesquareapartments.com/

    What to do 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.

    Your web team · a week or more · Important

    Web Vitals, GoogleReport an issue with this check

  • Images are the right sizeImportantPartial

    Improve image delivery (Est savings of 57 KiB) and Image elements do not have explicit width and height. Serving images larger than the version rendered on screen results in wasted bytes and slows page load.

    • Improve image delivery (Est savings of 57 KiB): <img class="themer-logo themer-logo--main themer-logo--full" fetchpriority="high" src="/themer/assets/logo/logo_main_1754403789.png" alt="Triangle Square">: https://trianglesquareapartments.com/themer/assets/logo/logo_main_1754403789.png
    • Image elements do not have explicit width and height: <img class="themer-logo themer-logo--main themer-logo--full" fetchpriority="high" src="/themer/assets/logo/logo_main_1754403789.png" alt="Triangle Square">: https://trianglesquareapartments.com/themer/assets/logo/logo_main_1754403789.png

    What to do 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.

    Your web team · about a day · Important

    Properly size images, ChromeReport an issue with this check

  • The page does not weigh muchImportantPartial

    Reduce unused CSS (Est savings of 47 KiB). Large network payloads are highly correlated with long load times and cost visitors money on mobile data.

    • Reduce unused CSS (Est savings of 47 KiB): .themer-logo{max-width:100%;} …

    What to do 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.

    Your web team · a few days · Important

    Avoid enormous network payloads, ChromeReport an issue with this check

  • Repeat visitors get a faster pageImportantPartial

    Use efficient cache lifetimes (Est savings of 39 KiB) Fetching resources over the network is both slow and expensive.

    • Use efficient cache lifetimes (Est savings of 39 KiB): https://trianglesquareapartments.com/assets/images/cache/tbRJXBpv04kNMsd1mZIhUmb9q3CPsCAY6fQEqA8i-deb281e0d7aca87c9f9f1a092b03c382.jpg
    • Use efficient cache lifetimes (Est savings of 39 KiB): https://trianglesquareapartments.com/assets/images/green_v2.png
    • Use efficient cache lifetimes (Est savings of 39 KiB): https://trianglesquareapartments.com/views/site/js/dist/scripts.min.js?v=1787230120

    What to do 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.

    Your web team · about an hour · Important

    Prevent unnecessary network requests with the HTTP Cache, GoogleReport an issue with this check

  • The page responds as soon as it appearsImportantPass

    Interaction to Next Paint is 139 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), GoogleReport an issue with this check

  • Visitors are on a secure connectionImportantPass

    Uses HTTPS A secure connection helps prevent intruders tampering with traffic between your site and its visitors.

    Why HTTPS matters, GoogleReport an issue with this check

  • Served fastImportantPass

    All 3 audits in this goal pass. A CDN (a network of servers near your visitors) reduces the network latency that slows a server's first response.

    Reduce server response times (TTFB), ChromeReport an issue with this check

  • The page loads without errorsImportantPass

    All 7 audits in this goal pass. An error in the console means a problem on your page that you need to resolve.

    Browser errors were logged to the console, ChromeReport an issue with this check

  • Visitors are not interrupted on arrivalImportantPass

    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, ChromeReport an issue with this check

See if AI chooses you

This scan graded the site on its own. Grade it again and an AI agent shops for it too, with a search your site already ranks for, and shows where it got through and where it stopped.

See trianglesquareapartments.com rebuilt, without these issues

27th of 86 residence sites graded so far. See the board.

How we grade