Each task: what is wrong now, what to do, how to check
# What to fix on your site: www.example-agency.co.uk
Below is a list of tasks, one for every problem found. Each is written in plain words and can be handed to anyone: whoever built your site, or an assistant like ChatGPT, Claude or Cursor.
**How to use it.** Copy one task whole, including the "Now" and "How to check" lines: without them nobody knows where to start or when it is done. Hand it over, wait for the result, check it against "How to check", then take the next one.
One at a time, and this matters. An assistant given ten tasks at once does the first and half of the rest.
You do not need to know any code. Your job is to say what to do and look at the result.
### Profiles the site claims elsewhere
**Now:** no sameAs links: the site claims no profile anywhere else
**Task:** Declare in the markup the profiles you actually have
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### What the form asks for
**Now:** median 7 field(s) before a visitor can send anything
**Task:** Cut the form down to four fields
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### llms.txt
**Now:** not present
**Task:** Generate an llms.txt at the site root: a heading with the company name and one line on what it does, then sections by page type, each holding links shaped "- [Title](full URL): one sentence on what the page is". Include only pages open to indexing. Leave out noindex pages, utility addresses, and anything that answers with a redirect.
**How to check:** The file is served at /llms.txt, and every link in it points at this site and answers 200.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Agent card (/.well-known/agent.json)
**Now:** not present
**Task:** Build a /.well-known/agent.json: the company name, one line on what it does, the site address, a way to get in touch and a list of what you offer. Put only true things in it: agent directories read this, and an invented capability turns into a complaint. Serve it as application/json.
**How to check:** /.well-known/agent.json answers 200 with application/json and parses as valid JSON.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### API catalogue (RFC 9727)
**Now:** not present
**Task:** only for a business that actually exposes an API for agents; inventing one for the sake of a tick is pointless
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Markdown version of the pages
**Now:** not offered
**Task:** Give every page a markdown version of the same text and declare it with a Link header pointing at it with type text/markdown. The markdown must carry the same text as the page: headings, paragraphs, lists and tables. Leave the navigation and footer out of it.
**How to check:** A request for the page returns a Link header with text/markdown, and that URL serves the text of the same page rather than HTML.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Homepage title
**Now:** "Estate & Letting Agents in Bristol | Example Agency | Example Agency" (105 chars)
**Task:** Rewrite the page title so it fits 60 characters and says what is on the page, in the words a person would search with. Put the company name at the end only if there is room. Do not repeat a word twice and do not write a comma-separated keyword list.
**How to check:** The title is 60 characters or fewer and differs from other pages' titles.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Homepage meta description
**Now:** 171 chars
**Task:** Rewrite the meta description in 120 to 160 characters: what the reader will find on the page and why it is worth opening. One sentence, no exclamation marks. Strip any leftover code or shortcodes. Do not promise anything the page does not have.
**How to check:** The description exists, is 120 to 160 characters, and describes this page in particular.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Structured data on the sampled pages
**Now:** 27 of 30 sampled page(s) carry JSON-LD
**Task:** Structured data on the sampled pages
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Twitter Card
**Now:** no twitter:card on the homepage
**Task:** Twitter Card
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Structured data on homepage
**Now:** no JSON-LD
**Task:** Add Organization markup (schema.org, JSON-LD) to the homepage: name, site address, logo, city and country, email or phone, and links to the company's profiles elsewhere. Fill it only with what actually exists: an invented address or a profile that is not yours is worse than nothing.
**How to check:** The markup passes the Rich Results Test and every field in it is true.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### FAQPage schema
**Now:** not found in the sample
**Task:** Find the pages that already carry a questions-and-answers block and mark them up as FAQPage in JSON-LD. The text in the markup must match word for word what a person sees on the page. Do not add questions that are not on the page.
**How to check:** The markup validates and every question in it is visible on the page itself.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### BreadcrumbList schema
**Now:** not found in the sample
**Task:** BreadcrumbList schema
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Organization or business schema
**Now:** not found: answer engines have no entity to attach the site to
**Task:** Add Organization markup with the address and the profiles
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
**Where:** WordPress, theme: header.php, or functions.php via wp_head, or a schema plugin; Astro, src/layouts, your shared layout, inside <head>; Next.js, app/layout.tsx, a <script type="application/ld+json"> tag; Shopify, theme.liquid, before </head>
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Duplicate titles in sample
**Now:** 2 title(s) shared by several pages, e.g. "Kingston Road, BS3, Not Specified"
**Task:** Separate duplicated page titles
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Answer-first opening paragraph
**Now:** 24 of 30 sampled page(s) open with 20 to 90 words carrying a figure, right after the H1
**Task:** Rewrite the opening so the first paragraph answers the question the page was opened for: twenty to ninety words, carrying a concrete figure (a price, a timing, a share, a count). Get the figure from the site owner and name its source beside it. If there is no figure, do not invent one: ask the owner and leave a marker.
**How to check:** The first paragraph after the heading is 20 to 90 words and carries a figure with a named source.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Section structure
**Now:** 29 of 30 sampled page(s) carry three or more H2 sections
**Task:** splitting into sections means rewriting the text
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Tables in the content
**Now:** no table on the sampled pages
**Task:** a table is built from your data
**How to check:** Run the site check again: this line must stop being a finding, and nothing else may get worse.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### Sources named in the text
**Now:** 1 of 3 page(s) carrying figures name where the figure comes from, in words or as an outbound link beside it (27 page(s) not judged: no figures, or a product or service page whose own price is the source)
**Task:** Go through the paragraphs carrying figures and name where each came from: a link to the primary source, or words ("per the 2026 registry"). If neither you nor the owner has a source, the figure comes out rather than standing bare. Do not guess a link: a wrong source is worse than none.
**How to check:** Every paragraph with a figure carries either an outbound link or a source named in words.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.
### A messenger link
**Now:** none on the sampled pages
**Task:** Add a direct messenger link to the footer and the contact page, for a messenger the business actually uses. The link opens a conversation, not a profile page. If you do not know which messenger they use, do not choose one: leave the slot and ask the owner.
**How to check:** The link opens and starts a conversation rather than a general page.
Rule: invent no facts about the business. Anything not on the site and not told to you, ask the owner and leave a marker.