davegallant.ca, read 4 days ago. Back to the report

75 to 100 in 17 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.

7575 nownow811top 50%872893924935946957968979971097119812981399149915991610017full marks

Now #148,373 of 264,756Step 1 top 50%Step 17 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 a tap-to-call link

    +6 points, to 81, and #97,751, 50,622 places up, and into the top 50%

    Add a tap-to-call phone link.

    92 pages, 70 of them under /tags/

    See the pages
    • /
    • /blog
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • and 82 more in the copied plan
  2. 2

    Add structured data

    +6 points, to 87

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

    92 pages, 70 of them under /tags/

    See the pages
    • /
    • /blog
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • and 82 more in the copied plan
  3. 3

    Fix description lengths

    +2 points, to 89

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

    89 pages, 70 of them under /tags/

    See the pages
    • /
    • /blog
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • and 79 more in the copied plan
  4. 4

    Fix title lengths

    +3 points, to 92

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

    70 pages, 65 of them under /tags/

    See the pages
    • /
    • /blog
    • /categories
    • /search
    • /tags
    • /tags/aks
    • /tags/aws
    • /tags/aws-vault
    • /tags/azure
    • /tags/backup
    • and 60 more in the copied plan
  5. 5

    Show when guides were updated

    +1 point, to 93

    Show when the guide was last updated, and set dateModified in its schema.

    17 pages under /blog/

    See the pages
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • /blog/setting-up-gitea-actions-with-tailscale
    • and 7 more in the copied plan
  6. 6

    Name the publisher

    +1 point, to 94

    Name the author or publisher in the Article schema.

    17 pages under /blog/

    See the pages
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • /blog/setting-up-gitea-actions-with-tailscale
    • and 7 more in the copied plan
  7. 7

    Set a share image

    +1 point, to 95

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

    84 pages, 70 of them under /tags/

    See the pages
    • /
    • /blog
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/opting-out-of-haveibeenpwned
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • /blog/using-aks-and-socks-to-connect-to-a-private-azure-db
    • and 74 more in the copied plan
  8. 8

    Answer the first question right under it

    +1 point, to 96

    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.

    14 pages under /blog/

    See the pages
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/using-a-realtek-nic-with-opnsense
    • /blog/using-aks-and-socks-to-connect-to-a-private-azure-db
    • and 4 more in the copied plan
  9. 9

    Match structured data to the page

    +1 point, to 97

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

    18 pages, 17 of them under /blog/

    See the pages
    • /
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • and 8 more in the copied plan
  10. 10

    Settle on one address

    Under a point

    Redirect http, https, www, and the bare domain to one address, so the site is not indexed as several.

    Once, for the whole site

  11. 11

    Link to orphaned pages

    Under a point

    Link to each of these from a related page. A page only the sitemap knows about is treated as unimportant.

    Once, for the whole site

  12. 12

    Phrase headings as questions

    +1 point, to 98

    Phrase at least one heading as the question a person would ask.

    12 pages under /blog/

    See the pages
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/using-a-realtek-nic-with-opnsense
    • /blog/using-home-assistant-and-grafana-to-monitor-radon
    • /blog/virtualizing-a-router-with-pfsense
    • and 2 more in the copied plan
  13. 13

    Put figures in tables

    Under a point

    Where the guide compares options or gives figures, put them in a table.

    17 pages under /blog/

    See the pages
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • /blog/setting-up-gitea-actions-with-tailscale
    • and 7 more in the copied plan
  14. 14

    Add lists or tables

    +1 point, to 99

    Add a table, a list, or a definition list. Assistants quote these more readily than prose.

    9 pages under /blog/

    See the pages
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/using-home-assistant-and-grafana-to-monitor-radon
    • /blog/watching-youtube-in-private
    • /blog/why-i-threw-out-my-dotfiles
  15. 15

    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.

    9 pages under /blog/

    See the pages
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/opting-out-of-haveibeenpwned
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • /blog/using-aks-and-socks-to-connect-to-a-private-azure-db
    • /blog/why-i-threw-out-my-dotfiles
  16. 16

    Add breadcrumb data

    Under a point

    Add BreadcrumbList schema so the page has a place in the site.

    17 pages under /blog/

    See the pages
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/appgate-sdp-on-arch-linux
    • /blog/automatically-rotating-aws-keys
    • /blog/backing-up-gmail-with-synology
    • /blog/opting-out-of-haveibeenpwned
    • /blog/pvectl-a-cli-for-proxmox
    • /blog/replacing-docker-with-podman-on-macos
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/running-k3s-in-lxc-on-proxmox
    • /blog/setting-up-gitea-actions-with-tailscale
    • and 7 more in the copied plan
  17. 17

    Add depth to thin pages

    +1 point, to 100, and full marks

    Add true, specific detail until the page covers its subject.

    6 pages, 5 of them under /blog/

    See the pages
    • /
    • /blog/amazon-ebs-csi-driver-terraform
    • /blog/automatically-rotating-aws-keys
    • /blog/opting-out-of-haveibeenpwned
    • /blog/replicating-truenas-datasets-to-sftpgo-over-tailscale
    • /blog/watching-youtube-in-private
6 more, to tidy up after 100
  1. 18

    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

  2. 19

    Put the text in the HTML

    Under a point

    Put the page text in the HTML the server sends. Most AI crawlers do not run scripts.

    The home page

  3. 20

    Set each page's canonical address

    Under a point

    Add a canonical link that points to the page itself.

    3 pages under /tags/page/

    See the pages
    • /tags/page/2
    • /tags/page/3
    • /tags/page/4
  4. 21

    Use one main heading

    Under a point

    Give the page exactly one h1 that says what it is about.

    2 pages

    See the pages
    • /blog/appgate-sdp-on-arch-linux
    • /blog/using-a-realtek-nic-with-opnsense
  5. 22

    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
    • /cdn-cgi/l/email-protection
  6. 23

    Link straight to the final address

    Under a point

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

    3 pages under /tags/page/

    See the pages
    • /tags/page/2
    • /tags/page/3
    • /tags/page/4

What else the read found

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

  • /tags/bastion217 ms
  • /tags/page/2213 ms
  • /tags/linux194 ms
  • /tags/homelab184 ms
  • /blog/automatically-rotating-aws-keys180 ms

Fastest: /tags/k3s, 22 ms. Heaviest: /blog/setting-up-gitea-actions-with-tailscale, 7 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.

  • CloudflareHosting
pages with strong signs
0
hidden characters
0
chat, markdown or placeholders left in
0
dashes per 1,000 words
0.5

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 8: Put the text in the HTML, Add structured data and Add depth to thin pages1 page
  • /blog fails 5: Add structured data, Add a tap-to-call link and Fix description lengths1 page
  • /categories fails 5: Add structured data, Add a tap-to-call link and Fix description lengths1 page
  • /search fails 5: Add structured data, Add a tap-to-call link and Fix description lengths1 page
  • /tags fails 5: Add structured data, Add a tap-to-call link and Fix description lengths1 page
  • /tags/ 70 fail a rule. Worst: /tags/page/2, 7 rules70 pages
  • /blog/ 17 fail a rule. Worst: /blog/automatically-rotating-aws-keys, 14 rules17 pages
  • /cdn-cgi/ 0 fail a rule1 page

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

Fix davegallant.ca 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 davegallant.ca 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.