Agent View
The site as an AI agent gets it, beside the site as a person sees it. What it can read, what it has to cut away, and what it never sees.
This page is a shell a script fills in. What is below is all its HTML holds before script runs; a person sees more once script runs, and most AI crawlers do not run it.
Image: Safe Harbor
Image: Safe Harbor Image: Safe Harbor
Image: Safe Harbor
- Locations
- Membership
- Service
- Superyachts
The rest of the page is in full screen.
[](https://safeharbor.com/fund/#) [ ](https://safeharbor.com/) [](https://safeharbor.com/fund/#) - [Locations](https://safeharbor.com/locations/) - [Membership](https://safeharbor.com/membership/) - [Service](https://safeharbor.com/service/) - [Superyachts](https://safeharbor.com/superyachts/) - [About](https://safeharbor.com/about/) - [Members](https://safeharbor.com/members/) - [Concierge](https://safeharbor.com/membership-concierge/) - [Experiences](https://safeharbor.com/experiences/) - [Sustainability](https://safeharbor.com/sustainability/) - [Shop](https://safeharbor.shop/) - [Careers](https://safeharbor.com/careers/) - [News](https://safeharbor.com/news/) - English [Français](https://safeharbor.com/fr/fund/?wg-choose-original=false) [Español](https://safeharbor.com/es/fund/?wg-choose-original=false) **Menu** [ ](https://safeharbor.com/) - [EXPLORE LOCATIONS](https://safeharbor.com/locations/) - [DISCOVER MEMBERSHIP](https://safeharbor.com/membership/) [](https://safeharbor.com/fund/#) # *Coming Soon* [](https://safeharbor.com/) - [Careers](https://safeharbor.com/careers/) - [News](https://safeharbor.com/news/) - - - - 2026 Safe Harbor™︎ | [Terms and Conditions](https://safeharbor.com/terms-and-conditions/) | [Privacy Statement](https://safeharbor.com/privacy-statement/) | [Accessibility Statement](https://safeharbor.com/accessibility-statement/) | [Site by Tegan](https://tegan.io/)
This page is a shell a script fills in. The server sends 53 words of its own; the rest of what a person reads arrives only after script runs, and most AI crawlers do not run script.
The figures
100 pages, set against the 168,388 sites with figures.
- Readablehigher is better
- 96%96 of 100 pages
- All 168,388 sitesBetter than 36%
Pages whose own text is in the HTML the server sends, enough of it for their kind.
- Cleanhigher is better
- 55%middle page
- All 168,388 sitesBetter than 31%
Of the words before script, the share that are the page and not menus, footer and forms. 96 pages are not measured, with no <main> or no words.
- Costshown, never scored
- 155,707tokens
- About 1,557 a page
To read every page once. A long page that answers well is not worse for it. Tokens are estimated at about 4 characters each.
How its pages spread on Clean
4 pages measured. Not measured: 92 with no <main> or no words and 4 shells with no words before script.
Against its rivals
The sites nearest it by what they do, with figures. Close means similar work, not better.
| Readinghigher is better | Costnot scored | ||
|---|---|---|---|
| Site | Readable | Clean | Tokens a page |
| shmarinas.comThis site, 100 pages | 96% | 55% | 1,557 |
| above-deck.com54 pages | 96% | 88% | 1,194 |
| seagermarine.com100 pages | 100% | None | 4,018 |
| navypointmarine.com10 pages | 100% | 20% | 160 |
Fourth of 4 on Readable, second on Clean.
AI crawler access
What robots.txt says to each, as read on October 25, 2026. 8 of 8 may read the site.
| Crawler | robots.txt says | Used for | The line that decides |
|---|---|---|---|
| GPTBotOpenAI | Not named | Training models | Falls to User-agent: * |
| OAI-SearchBotOpenAI | Not named | ChatGPT search | Falls to User-agent: * |
| ChatGPT-UserOpenAI | Not named | A page a person asks about | Falls to User-agent: * |
| ClaudeBotAnthropic | Not named | Training models | Falls to User-agent: * |
| Claude-SearchBotAnthropic | Not named | Claude’s search | Falls to User-agent: * |
| PerplexityBotPerplexity | Not named | Perplexity search | Falls to User-agent: * |
| Google-ExtendedGoogle | Not named | Training Gemini | Falls to User-agent: * |
| bingbotMicrosoft | Not named | Bing and Copilot | Falls to User-agent: * |
Every AI crawler mttr checks may read it. Not named means the rules for every crawler apply.
Every page
Worst first. Each opens in Agent View at the top.
100 pages of 100 lose something. Pick a loss to see what to do about it.Open the action plan
| What an agent getshigher is better | Signals | Costnot scored | ||||
|---|---|---|---|---|---|---|
| Page | Words | Clean | Readable | Main heading | Tokens | What it loses |
| /fund | 53 | No words | No | Yes | 524 | Shell |
| /news | 55 | No words | No | Yes | 539 | Shell |
| /search | 59 | No words | No | Yes | 566 | Shell |
| /shys | 51 | No words | No | None | 520 | Shell |
| /locations | 287 | No <main> | Yes | None | 1,276 | Script data and 2 more |
| /marine-service | 294 | No <main> | Yes | None | 1,301 | Script data and 2 more |
| /membership-concierge | 87 | No <main> | Yes | None | 618 | Script data and 2 more |
| /new-york-connecticut | 293 | No <main> | Yes | None | 1,309 | Script data and 2 more |
| /safe-harbor-all-hands | 134 | No <main> | Yes | None | 737 | Script data and 2 more |
| /safe-harbor-breeders-cup-schedule | 372 | No <main> | Yes | None | 1,337 | Script data and 2 more |
| /safe-harbor-dream-weekend-schedule | 1,011 | No <main> | Yes | None | 2,471 | Script data and 2 more |
| /safe-harbor-endless-summer-schedule | 863 | No <main> | Yes | None | 2,188 | Script data and 2 more |
| /safe-harbor-golf-classic-schedule | 580 | No <main> | Yes | None | 1,863 | Script data and 2 more |
| /safe-harbor-grand-prix-schedule | 363 | No <main> | Yes | None | 1,248 | Script data and 2 more |
| /safe-harbor-grand-tasting-schedule | 644 | No <main> | Yes | None | 1,778 | Script data and 2 more |
| /safe-harbor-legendary-weekend-schedule | 324 | No <main> | Yes | None | 1,146 | Script data and 2 more |
| /safe-harbor-polo-championship-schedule | 576 | No <main> | Yes | None | 1,744 | Script data and 2 more |
| /safe-harbor-race-weekend-auction | 89 | No <main> | Yes | None | 630 | Script data and 2 more |
| /safe-harbor-race-weekend/member-schedule | 879 | No <main> | Yes | None | 2,240 | Script data and 2 more |
| /safe-harbor-race-weekend/sailor-schedule | 375 | No <main> | Yes | None | 1,282 | Script data and 2 more |
| /safe-harbor-tennis-open-schedule | 445 | No <main> | Yes | None | 1,499 | Script data and 2 more |
| /safe-harbor-wine-food-schedule | 900 | No <main> | Yes | None | 2,215 | Script data and 2 more |
| /ypo | 603 | No <main> | Yes | None | 1,709 | Script data and 2 more |
| / | 235 | No <main> | Yes | Yes | 978 | Script data and 1 more |
| /100marinas | 359 | No <main> | Yes | Yes | 1,024 | Script data and 1 more |
Show where it stands
A card, a badge and a line, each with the figures.

A badge for the site
<a href="https://mttr.si/agent-view/shmarinas.com"><img src="https://mttr.si/agent-view/shmarinas.com/badge.svg" alt="Agent View: 96% readable, 55% clean" height="20"></a>
The figures in one line
shmarinas.com in Agent View: 96% of pages readable, better than 36% of sites; 55% clean; 155,707 tokens to read all 100 pages. mttr.si/agent-view/shmarinas.com
What to do next
Fix the pages, let an agent do it, and read the site again to see the figures move.
Fix what agents miss
- Move script data into the text of 96 pagesReadable
- Wrap 92 pages in <main>Clean measured
- Give 19 pages a main headingClearer
Connect your agent
Claude Code, Codex or Cursor reads the site’s fixes over MCP, fixes a page in your code, has mttr read it again, and checks the fix landed.
https://mttr.si/mcpSet up an agent
Claim the site
Prove it is yours with a DNS record or a file. Your agent can then reach its reads and jobs, and set each change to wait for your approval.
Claim the siteDrawn from the HTML mttr fetched on its read of October 25, 2026, not a screenshot, and only from the 100 pages read, where the read stopped at its page limit. An assistant’s own reader may differ. Tokens are estimated at about 4 characters each. A site an agent reads well is not a site an assistant cites.