grandhaven.org, read 1 day ago. Back to the report

83 to 100 in 5 steps

Do them in this order. Each step says what to change, on which pages, and what it adds. Hand the whole plan to your agent, or work through it yourself.

8383 nownow901top 25%9429739941005full marks

Now #80,556 of 263,577Step 1 top 25%Step 5 full marks

Worked out from this read, with every step before it done. A score says pages are well formed. It does not say an assistant cites the site.

The steps

Each is one change across the pages named. When one is live, read the site again and mttr marks it done.

  1. 1

    Add structured data

    +7 points, to 90, and #25,844, 54,712 places up, and into the top 25%

    Add valid JSON-LD that says what the page is.

    97 pages

    See the pages
    • /
    • /city-employee-portal
    • /city-employee-portal/benefits
    • /city-employee-portal/cbas-pay-scales
    • /city-employee-portal/forms
    • /city-employee-portal/job-descriptions
    • /city-employee-portal/msds
    • /city-employee-portal/retirement
    • /city-services
    • /city-services/bids-rfps
    • and 87 more in the copied plan
  2. 2

    Fix description lengths

    +4 points, to 94

    Write a meta description of 70 to 165 characters that summarizes the page.

    97 pages

    See the pages
    • /
    • /city-employee-portal
    • /city-employee-portal/benefits
    • /city-employee-portal/cbas-pay-scales
    • /city-employee-portal/forms
    • /city-employee-portal/job-descriptions
    • /city-employee-portal/msds
    • /city-employee-portal/retirement
    • /city-services
    • /city-services/bids-rfps
    • and 87 more in the copied plan
  3. 3

    Describe images

    +3 points, to 97

    Describe every content image in its alt text.

    96 pages

    See the pages
    • /
    • /city-employee-portal
    • /city-employee-portal/benefits
    • /city-employee-portal/cbas-pay-scales
    • /city-employee-portal/forms
    • /city-employee-portal/job-descriptions
    • /city-employee-portal/msds
    • /city-employee-portal/retirement
    • /city-services
    • /city-services/bids-rfps
    • and 86 more in the copied plan
  4. 4

    Set a share image

    +2 points, to 99

    Set og:image so links to the page carry a picture.

    95 pages

    See the pages
    • /
    • /city-employee-portal/benefits
    • /city-employee-portal/cbas-pay-scales
    • /city-employee-portal/forms
    • /city-employee-portal/job-descriptions
    • /city-employee-portal/msds
    • /city-employee-portal/retirement
    • /city-services
    • /city-services/bids-rfps
    • /city-services/grand-haven-master-plan
    • and 85 more in the copied plan
  5. 5

    Fix title lengths

    +1 point, to 100, and full marks

    Write a title of 15 to 65 characters that leads with what the page covers.

    19 pages, 13 of them under /departments/

    See the pages
    • /city-services/meeting-agendas-minutes-notices
    • /departments/public-safety/building-operations
    • /departments/public-safety/fire-operations
    • /departments/public-safety/officer-scott-flahive-memorial-page
    • /departments/public-safety/ordinances
    • /departments/public-safety/police-operations
    • /departments/public-safety/rental-housing
    • /departments/public-safety/water-ice-pier-safety
    • /departments/public-works/facilities-grounds
    • /departments/public-works/motor-pool
    • and 9 more in the copied plan
6 more, to tidy up after 100
  1. 6

    Fix pages that fail to load

    Under a point

    Fix or remove the link. Every linked page should return 200.

    1 page

    See the pages
    • /mi/grand_haven/codes/code_of_ordinances
  2. 7

    Set each page's canonical address

    Under a point

    Add a canonical link that points to the page itself.

    1 page

    See the pages
    • /jobs
  3. 8

    Match structured data to the page

    Under a point

    Use the schema type that matches the page: Article for guides, Service or Product for offers, Organization or WebSite for the home page.

    The home page

  4. 9

    Add an llms.txt

    Under a point

    Add /llms.txt: a short plain text map of the site for assistants. Its effect is unproven, so treat it as cheap insurance.

    Once, for the whole site

  5. 10

    Add a tap-to-call link

    Under a point

    Add a tap-to-call phone link.

    1 page

    See the pages
    • /jobs
  6. 11

    Link straight to the final address

    Under a point

    Point links and the sitemap at the final address, not at one that redirects.

    1 page

    See the pages
    • /jobs

Done since the first read

  1. Add a way to get in touch

    Done, seen on the read of October 24. It failed on 2 pages before.

  2. Use one main heading

    Done, seen on the read of October 24. It failed on 2 pages before.

  3. Replace unsupported sales claims

    Done, seen on the read of October 24. It failed on 1 page before.

What else the read found

Half its pages start answering within 424 ms, inside the 800 ms a crawler is patient with. One fetch a page, the way a crawler sees it.

  • /how-do-i/learn-about1.5 s
  • /how-do-i/find/new-resident-information1.4 s
  • /1.4 s
  • /how-do-i/learn-about/deer-management-program1.2 s
  • /city-services/meeting-agendas-minutes-notices1.2 s

Fastest: /how-do-i/apply-for, 256 ms. Heaviest: /how-do-i/contact/city-directory, 37 KB.

Read from its home page’s code and the headers its server sent. A tool that loads later, or only on other pages, is not seen here.

  • Google AnalyticsAnalytics
  • Google reCAPTCHALibrary
  • jQueryLibrary
  • Font AwesomeFonts
pages with strong signs
0
hidden characters
0
chat, markdown or placeholders left in
0
dashes per 1,000 words
3

A sign is not proof. Hidden characters can carry a watermark or instructions meant for an AI, and they come off with a clean copy of the text.

  • / fails 5: Add structured data, Match structured data to the page and Fix description lengths1 page
  • /jobs fails 5: Add structured data, Set each page's canonical address and Add a tap-to-call link1 page
  • /city-services fails 4: Add structured data, Fix description lengths and Describe images1 page
  • /departments fails 4: Add structured data, Fix description lengths and Describe images1 page
  • /government fails 4: Add structured data, Fix description lengths and Describe images1 page
  • /how-do-i fails 4: Add structured data, Fix description lengths and Describe images1 page
  • /search fails 4: Add structured data, Fix description lengths and Describe images1 page
  • /testing fails 4: Add structured data, Fix description lengths and Describe images1 page
  • /things-to-do fails 4: Add structured data, Fix description lengths and Describe images1 page
  • /city-employee-portal fails 3: Add structured data, Fix description lengths and Describe images1 page
  • /pub/ 23 fail a rule. Worst: /pub/news/posts/1020, 4 rules23 pages
  • /how-do-i/ 20 fail a rule. Worst: /how-do-i/apply-for/boards-commissions, 5 rules20 pages

And 6 more parts of the site.

The read stopped at its page limit, so pages no link leads to cannot be told from pages it did not reach, and neither is reported.

Rather go through these with one of our experts? Book a strategy session

Fix grandhaven.org with your agent

Your agent makes the fixes. mttr checks each one. Free.

In the site’s repositorynpx skills add subinternal/mttr
Then tell your agentCheck grandhaven.org with mttr and fix what’s worth the most.

Claude Code, Codex, Cursor or any agent that reads AGENTS.md.

Claude Code, onceclaude mcp add --transport http mttr https://mttr.si/mcp
It needs a free key
Another agent
Read it againChanged something? A site is read at most once every ten minutes.