D

Poor for AI agents

Capped at D: assistants have trouble acting on your site (Act 46). Your checks earned 73.

See the goal behind it

Speed: Fail (Google's lab run of this page)Core Web Vitals, Google

Start here.

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

    Assistants can read your page's controls

    Accessibility tree is not well-formed

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

    Your web team · about a daySee the check

  2. Fail·Act

    Your site offers tools to AI assistants

    Your home page offers no tools to AI assistants.

    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

Fix it,

or see it rebuilt

These 11 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/loresalem-com. Tell me how to fix each issue and the level of effort each fix takes.

  • See your site rebuilt

    Clutch rebuilds loresalem.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 · 9 of 9 goals pass

62

Understand

Can they tell who you are and what you offer?

25% of your grade · 5 of 7 goals pass

  • Your key facts are in the page itselfMust haveCriticalFail

    The first page your server sends is a loading page, “One moment, please... Loader Please wait while your request ”, and the page it moves on to holds the content. An assistant that runs no script reads only that page. 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.

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

    • Only on the page the loading page moves on to: https://loresalem.com/
    • Only on the page the loading page moves on to: https://loresalem.com/
    • Only on the page the loading page moves on to: https://loresalem.com/

    What to do Make the home page send its text from the server, so it shows up with scripts turned off.

    For your web team: Render the page's content on the server or at build time, and use scripts to add to it. Fetch the page without a browser to check the text is in it.

    Your web team · a few days · Critical

    Understand JavaScript SEO basics, Google Search CentralReport an issue with this check

  • Your business is described in structured dataImportantFail

    The page has no structured data with a type. 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.

    • The page has no structured data with a type: https://loresalem.com/

    What to do Mark the business up with the most specific schema.org type that fits it.

    For your web team: Add a JSON-LD script to the home page whose "@type" is the most specific schema.org type that fits the business. schema.org lists every type and its subtypes.

    Your web team · about a day · Important

    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

46

Act

Can they take the next step for a customer?

25% of your grade · 3 of 7 goals pass

  • Assistants can read your page's controlsMust haveCriticalFail

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

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

    • Links must have discernible text: <a class="footer__banner-button" aria-label="&nbsp;" target="_self" href="/floorplans/">: https://loresalem.com/

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

    Your web team · about a day · Critical

    Accessibility for agents, ChromeReport an issue with this check

  • Your site offers tools to AI assistantsMust haveImportantFail

    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.

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

    • PageSpeed's "WebMCP tools registered" audit lists no tool: https://loresalem.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

  • 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.: <button role="button" class="owl-dot active" aria-label="Slide 1">: https://loresalem.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

  • 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

82

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 main content shows up quicklyImportantPartial

    Largest Contentful Paint (4.5 s), First Contentful Paint (2.3 s), and Speed Index (7.2 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 (4.5 s): https://loresalem.com/
    • First Contentful Paint (2.3 s): https://loresalem.com/
    • Speed Index (7.2 s): https://loresalem.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 283 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 283 KiB): <img data-jdl-action="home-hero-impression" data-jdl-data="{&quot;index&quot;:0,&quot;count&quot;:3,&quot;media_type&quot;:&quot;image&quot;,&quot;title&quot;:&quot;Curated Spaces \/\/ Mea…" data-jdl-view="" data-el="image[]" class="homepage__rotator-image" fetchpriority="high" src="https://loresalem.com/assets/images/cache/LORE_WebHeadersHome_Banner-1@4x-…" alt="The resident lounge at Lore Apartments in Salem, MA, featuring ample seati…" draggable="false" style="opacity: 1;">: https://loresalem.com/assets/images/cache/LORE_WebHeadersHome_Banner-1@4x-bf28f0aed2da16874cccda9b0389c489.jpeg
    • 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_1750692399.svg" alt="Lore">: https://loresalem.com/themer/assets/logo/logo_main_1750692399.svg

    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 92 KiB) Fetching resources over the network is both slow and expensive.

    • Use efficient cache lifetimes (Est savings of 92 KiB): https://loresalem.com/assets/images/cache/LORE_WebHeadersHome_Banner-1@4x-bf28f0aed2da16874cccda9b0389c489.jpeg
    • Use efficient cache lifetimes (Est savings of 92 KiB): https://loresalem.com/assets/images/cache/FLN_316412-04955fbc0d7419728ef7753fa8d3cdd3.jpg
    • Use efficient cache lifetimes (Est savings of 92 KiB), from mux.com: https://image.mux.com/C3RF01qoT52kWbN8ZzQuKMQqK02kR3KTjNLewb7iTW2JY/thumbnail.webp?time=0&width=1280

    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 loads without errorsImportantPartial

    Browser errors were logged to the console. An error in the console means a problem on your page that you need to resolve.

    • Failed to load resource: net::ERR_CONNECTION_FAILED: https://loresalem.com/

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

    Your web team · a few days · Important

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

  • The page responds as soon as it appearsImportantPass

    Total Blocking Time (0 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 (TBT), GoogleReport an issue with this check

  • The page does not jump around while it loadsImportantPass

    Cumulative Layout Shift (0) 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, 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

  • 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

An AI agent searched “apartments for rent in salem ma”, like 1,600 people a month.

The same rules every run: four searches, up to three sites, six pages, made-up details, and it never sends anything.

  1. Finding the search your site already ranks for on Google.

  2. Reading your site to plan the first search.4s

  3. Reviewing the search results.3s

  4. Reviewing the search results.4s

  5. Deciding the next step.9s

  6. Judging how far it got.

What it told the shopper3 of 23 sources are your site

Here are three Salem apartment communities whose own websites I opened. None of the three sites I read listed rents, so you'll need to ask each leasing office for current pricing.

1. Traders Row (45 Traders Way)

  • What I found: The community's amenities page at one and two bedroom floor plans, and it lists a resort-style pool, a fitness center, and a bark park. Pet friendly is listed, with a link to its pet policy page.
  • Why I picked it: It fits a shopper who wants a pet-friendly building with a pool and in-unit laundry, since the page lists an In-residence washer & dryer.
  • Next step: Call (351) 529-6427 or use the Apply Now link at https://www.tradersrow.com/amenities. Office hours are listed as Monday–Friday 10–6 and Saturday 10–5.
  • Not on the site: Rent amounts, and the specific pet rules beyond the link to its pet policy page.

2. Lore (266 Canal Street)

  • What I found: The homepage at https://loresalem.com/ describes newly constructed studio, one- and two-bedroom apartment homes, with a heated outdoor pool and a resident lounge. It also says Lore is a pet-friendly community!
  • Why I picked it: It's the newest building of the three, and it suits a shopper who wants a modern unit with a studio option.
  • Next step: Browse floor plans at https://loresalem.com/floorplans/, book a tour at https://loresalem.com/schedule-a-tour/, or call (978) 708-4041.
  • Not on the site: Prices, pet fees, and availability on the homepage I read.

3. Sofi at Salem Station (190 Bridge St)

  • What I found: The site at https://www.sofiatsalemstation.com/ describes one and two bedroom pet-friendly apartment homes and townhomes in downtown Salem. It mentions a resort-inspired pool and a fitness center, and says secure controlled access.
  • Why I picked it: It's the best fit for a shopper who wants a townhome-style option near the MBTA train station and downtown.
  • Next step: Go to the floor plans page at https://www.sofiatsalemstation.com/apartments/ma/salem/floor-plans, or call (978) 647-3079.
  • Not on the site: Rent amounts. A third-party listing site showed a range, but I didn't confirm it on the property's own site, so please check the current figure with the leasing team.

Other options I didn't open: Princeton Crossing (12 Heritage Dr) and Hawthorne Commons (205 Highland Ave) also appeared in the results. I couldn't open Princeton Crossing's site, so I left it off the shortlist. Hawthorne Commons has its own site at https://www.hawthornecommonsapts.com/, which lists 1- and 2-bedroom floor plans and says it is pet friendly, but I didn't open its pages.

  • Your siteloresalem.com/

    The assistant quoted your home page:

    Nestled on Canal Street, these newly constructed studio, one- and two-bedroom apartment homes offer designer finishes, upscale amenities, and an air of timeless intrigue.
    Whether you're unwinding in the speakeasy lounge, swimming under the summer sun in the heated outdoor pool, or exploring the vibrant downtown streets, our apartments in Salem, MA are more than a place to live — they're where your story takes shape.
    //www.googletagmanager.com/ns.html?id=GTM-PVW9L5HS Skip to main content × Pet Policy Lore is a pet-friendly community!
  • Your siteloresalem.com/floorplans
  • Your siteloresalem.com/schedule-a-tour

These sites are competing with you

SiteLetterFindUnderstandActPerformance
loresalem.comBuilt in ClutchAFindPassesUnderstandPassesActPassesPerformancePassesClutch rebuilds it from its address, without these issues. Free to preview.Get this site
loresalem.comDFind100Understand62Act46Performance82
tradersrow.comOpened by the AI agent
sofiatsalemstation.comOpened by the AI agent

See loresalem.com rebuilt, without these issues

112th of 132 residence sites graded so far. See the board.

How we grade