joeyh.name, read 4 days ago. Back to the report
53 to 100 in 21 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.
Now #239,604 of 264,545Step 1 #214,387Step 4 top 50%Step 21 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
Add a way to get in touch
+8 points, to 61, and #214,387, 25,217 places up
Give the page a form or a clear link to request a quote or get in touch.
91 pages
See the pages
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/discussion
- and 81 more in the copied plan
- 2
Add a tap-to-call link
+6 points, to 67
Add a tap-to-call phone link.
100 pages
See the pages
- /
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- and 90 more in the copied plan
- 3
Set each page's canonical address
+6 points, to 73
Add a canonical link that points to the page itself.
100 pages
See the pages
- /
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- and 90 more in the copied plan
- 4
Add structured data
+5 points, to 78, and into the top 50%
Add valid JSON-LD that says what the page is.
100 pages
See the pages
- /
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- and 90 more in the copied plan
- 5
Use one main heading
+4 points, to 82
Give the page exactly one h1 that says what it is about.
100 pages
See the pages
- /
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- and 90 more in the copied plan
- 6
Fix description lengths
+3 points, to 85
Write a meta description of 70 to 165 characters that summarizes the page.
100 pages
See the pages
- /
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- and 90 more in the copied plan
- 7
Answer the first question right under it
+1 point, to 86
Answer the first question in the paragraph right under it, in 25 to 90 words. Whether the paragraph truly answers is for the judge or a person to say.
32 pages under /blog/
See the pages
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/discussion
- /blog/dwn
- and 22 more in the copied plan
- 8
Name the publisher
+1 point, to 87
Name the author or publisher in the Article schema.
32 pages under /blog/
See the pages
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/discussion
- /blog/dwn
- and 22 more in the copied plan
- 9
Fix title lengths
+2 points, to 89
Write a title of 15 to 65 characters that leads with what the page covers.
70 pages
See the pages
- /
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- and 60 more in the copied plan
- 10
Link straight to the final address
+2 points, to 91
Point links and the sitemap at the final address, not at one that redirects.
94 pages
See the pages
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/discussion
- and 84 more in the copied plan
- 11
Match structured data to the page
+2 points, to 93
Use the schema type that matches the page: Article for guides, Service or Product for offers, Organization or WebSite for the home page.
33 pages, 32 of them under /blog/
See the pages
- /
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/discussion
- and 23 more in the copied plan
- 12
Phrase headings as questions
+1 point, to 94
Phrase at least one heading as the question a person would ask.
31 pages under /blog/
See the pages
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/discussion
- /blog/dwn
- and 21 more in the copied plan
- 13
Add depth to thin pages
Under a point
Add true, specific detail until the page covers its subject.
19 pages, 18 of them under /blog/
See the pages
- /
- /blog/about
- /blog/archives
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/entry
- /blog/entry/Flattr_stats
- and 9 more in the copied plan
- 14
Show sources on guides
+2 points, to 96
Link the sources for the guide's facts where a reader can see them. Official and primary sources carry the most weight.
12 pages under /blog/
See the pages
- /blog/archives
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/entry
- /blog/entry/WASM_Wayland_Web_WWW
- /blog/entry/big_loads_offgrid_with_a_small_battery_sidelined/comments.rss
- /blog/entry/blog_moved
- and 2 more in the copied plan
- 15
Put figures in tables
Under a point
Where the guide compares options or gives figures, put them in a table.
20 pages under /blog/
See the pages
- /blog/about
- /blog/archives
- /blog/discussion
- /blog/dwn
- /blog/entry
- /blog/entry/Debian_and_the_sirens
- /blog/entry/Flattr_stats
- /blog/entry/WASM_Wayland_Web_WWW
- /blog/entry/banning_all_Anthropic_employees
- /blog/entry/best_of_the_web
- and 10 more in the copied plan
- 16
Put the text in the HTML
+1 point, to 97
Put the page text in the HTML the server sends. Most AI crawlers do not run scripts.
10 pages under /blog/
See the pages
- /blog/archives
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/entry
- /blog/entry/best_of_the_web
- /blog/entry/blog_moved
- /blog/entry/contact_update
- 17
Add real images to content
Under a point
Add a photo, drawing, or chart as an img with alt text. A CSS background image has no alt text and is not read as part of the page.
19 pages under /blog/
See the pages
- /blog/about
- /blog/archives
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/dwn
- /blog/entry
- /blog/entry/Debian_and_the_sirens
- and 9 more in the copied plan
- 18
Set a share image
+2 points, to 99
Set og:image so links to the page carry a picture.
100 pages
See the pages
- /
- /blog
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- and 90 more in the copied plan
- 19
Add breadcrumb data
Under a point
Add BreadcrumbList schema so the page has a place in the site.
32 pages under /blog/
See the pages
- /blog/about
- /blog/archives
- /blog/archives/2025/09
- /blog/archives/2025/10
- /blog/archives/2025/11
- /blog/archives/2026/09
- /blog/archives/2026/10
- /blog/archives/2026/11
- /blog/discussion
- /blog/dwn
- and 22 more in the copied plan
- 20
Add lists or tables
Under a point
Add a table, a list, or a definition list. Assistants quote these more readily than prose.
16 pages under /blog/
See the pages
- /blog/discussion
- /blog/dwn
- /blog/entry
- /blog/entry/Debian_and_the_sirens
- /blog/entry/WASM_Wayland_Web_WWW
- /blog/entry/banning_all_Anthropic_employees
- /blog/entry/best_of_the_web
- /blog/entry/big_loads_offgrid_with_a_small_battery_sidelined
- /blog/entry/big_loads_offgrid_with_a_small_battery_sidelined/comments.rss
- /blog/entry/blog_moved
- and 6 more in the copied plan
- 21
Describe images
+1 point, to 100, and full marks
Describe every content image in its alt text.
19 pages, 12 of them under /blog/
See the pages
- /blog
- /blog/archives/2025/09
- /blog/discussion
- /blog/entry/WASM_Wayland_Web_WWW
- /blog/entry/aiming_at_December
- /blog/entry/banning_all_Anthropic_employees
- /blog/entry/big_loads_offgrid_with_a_small_battery_sidelined
- /blog/entry/cheap_DIY_solar_fence_design
- /blog/entry/offgrid_electric_car
- /blog/entry/policy_on_adding_AI_generated_content_to_my_software_projects
- and 9 more in the copied plan
5 more, to tidy up after 100
- 22
Make near-copy pages distinct
Under a point
Rewrite or merge pages that share most of their text. A page that only swaps a city or product name is what search engines treat as doorway or scaled content.
Once, for the whole site
- 23
Publish a sitemap
Under a point
Publish /sitemap.xml listing every page that should rank, and name it in robots.txt.
Once, for the whole site
- 24
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
- 25
Link to your profiles
Under a point
Link from the home page, in its header or footer, to each profile you keep: Instagram, TikTok, YouTube, Twitch, Facebook, X, LinkedIn.
Once, for the whole site
- 26
Show when guides were updated
Under a point
Show when the guide was last updated, and set dateModified in its schema.
2 pages
See the pages
- /blog/entry/big_loads_offgrid_with_a_small_battery_sidelined/comments.rss
- /blog/index.rss
What else the read found
Half its pages start answering within 41 ms, inside the 800 ms a crawler is patient with. One fetch a page, the way a crawler sees it.
/ikiwiki.cgi1.6 s/267 ms/blog/haskell92 ms/code/electrum-mnemonic86 ms/devblog83 ms
Fastest: /code/moreutils, 34 ms. Heaviest: /blog/haskell, 90 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.
ApacheServer
- pages with strong signs
- 3
- hidden characters
- 0
- chat, markdown or placeholders left in
- 32
- dashes per 1,000 words
- 0.3
/recentchangesmarkdown never turned into formatting/devblogplaceholders never filled in/recentchanges/index.rssmarkdown never turned into formatting
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 9: Add structured data, Set each page's canonical address and Add depth to thin pages1 page/blogfails 10: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/cavingfails 10: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/devblogfails 10: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/boxenfails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/codefails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/homefails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/languagesfails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/offgridfails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/picsfails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/podcastsfails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page/recentchangesfails 9: Add a way to get in touch, Add structured data and Set each page's canonical address1 page
And 18 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