gaash.ai

Local & Industries · 8 min read · September 24, 2026 · , gaash.ai

Carpenters in ChatGPT and Gemini answers: what the shop's own site has to say

With web search on, what ChatGPT or Gemini can say about a carpenter comes from the pages it fetches, and the carpenter's own site is the one that can state all of it: the kind of work by its plain name, where it is done, the licenses and insurance held, what it costs and how long it takes. A portfolio of photos with no words gives an answer nothing to repeat.

What does a homeowner ask an assistant about carpenters?

A specific job, in a specific town, with one condition attached. Nobody asks for "a carpenter"; they ask for the thing they want built and the place they live, and the assistant answers with the names of people whose pages say they build that thing there. The questions take shapes like these:

  • "who builds custom built-in bookshelves in Portland"
  • "deck builder in Boise who is licensed and insured"
  • "custom kitchen cabinet maker near Madison, not a chain"
  • "carpenter for small repairs like a rotted door frame in Tucson"
  • "how much does a carpenter charge to build a mudroom bench"
  • "how long does a custom closet take from quote to install"

Every question carries a specialty word: built-ins, deck, cabinets, repairs. With web search on, the pages the assistant fetched are what it has to answer that word from. If the word for your best work appears nowhere on your site except inside a photo, your site gives no answer to the question that asked for it. In Canada and the UK the same trade is often called joinery, and a shop that serves both vocabularies has to use both, once, in text.

What your site has to state

The six questions above map to six statements. Each belongs on the page where a person would look for it, in text, under a heading that says what the section answers. The table gives the statement and its form.

What homeowners ask about carpenters, what the site has to state to answer each, and the form the statement takes.
What the buyer asksWhat the page has to stateIn what form
"who builds custom built-ins?"Each specialty by its plain name: built-ins, decks, kitchen cabinets, stairs, trim, repairsOne page per specialty, the name in the heading and in the first sentence
"can I see their work?"A portfolio where every photo has a caption in text: what it is, the material, the townA visible caption under each image, and alt text on the image itself
"do they work in my town?"The towns you take work in, listed, and where the shop isThe footer of every page; areaServed in the markup
"are they licensed and insured?"The license number and who issued it, where your state or province licenses the trade; that you carry liability insurance, stated as a factThe about page and the footer, worded identically
"what will it cost?"A range for each kind of job and what moves it: size, material, finish, access to the siteA prices or how-we-quote page in text
"how long will it take?"A range from first visit to installed, per kind of job, and your lead time if you can keep it currentThe same page as the prices

The captions are the step carpenters skip, and the one that matters most for this trade, because the portfolio is where the evidence lives. "Walnut built-in with hidden cable run, Sellwood, Portland" is a sentence an assistant can read and quote. The same photo with the file name IMG_4471.jpg and nothing else gives it nothing to read. That is what citability means for a carpenter: the work described in words, on the page, next to the picture.

Which schema type fits a carpenter?

There is no Carpenter type in the schema.org vocabulary. The type that fits is HomeAndConstructionBusiness, one of the LocalBusiness subtypes, and it tells a machine the kind of business before it reads a word. The properties are the ones Google's local business documentation reads: name, address, telephone, opening hours, geo and priceRange, plus areaServed for the towns and a description that names the specialties. A template:

{
  "@context": "https://schema.org",
  "@type": "HomeAndConstructionBusiness",
  "name": "Your Carpentry Shop",
  "description": "Custom built-ins, kitchen cabinets, decks and interior trim for homes in Boise, Meridian, Nampa and Eagle.",
  "url": "https://www.example.com/",
  "telephone": "+1-555-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example Street",
    "addressLocality": "Boise",
    "addressRegion": "ID",
    "postalCode": "83702",
    "addressCountry": "US"
  },
  "areaServed": ["Boise", "Meridian", "Nampa", "Eagle"],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "08:00",
    "closes": "17:00"
  }],
  "priceRange": "$$$"
}

Write it as JSON-LD and mark up only what the page shows, which are the two rules in Google's structured data introduction. The description in the markup should be a sentence that also appears on the homepage. Markup that names four towns the site never mentions is a claim with nothing behind it.

What the audit found for carpenters

Carpenters had the best markup coverage of any trade with a hundred or more sites in our audit of 9,483 small business websites (40 trades, 90 metros, September 2026): 15.8% had no schema.org markup at all, against 16.1% for movers and 33.6% for real estate agents at the other end. Whoever builds carpenters' sites is adding markup.

The rest of the picture is less kind, and it is the picture for the whole sample rather than for carpenters alone. Most of the markup that existed described the website, not the business; LocalBusiness or a subtype appeared on roughly a quarter of all sites. 61.5% had no question-and-answer content of any kind. 64.7% showed no review signal a crawler could read. 3.0% rendered their content only in JavaScript, so a crawler that runs no scripts received an empty page.

The pages were not short. The median homepage ran to 880 words, and only 3.9% were under 150. If a carpenter's words tell the story of the shop, that is fine to have, and it answers none of the six questions. Length was not the problem in any trade; the form of what was said was.

The fix order for a carpentry shop

  1. One name, address and phone, on every page. Identical in the footer, the about page and the contact page. Add the towns you work in as a written list. Nothing after this counts until a machine can tell whose site it is reading.
  2. A page per specialty, named plainly. Built-ins, cabinets, decks, trim, repairs: each with the word in the heading, a paragraph saying what you build and how, and the range of cost and time for it.
  3. Captions on every portfolio photo. What it is, the material, the town, as visible text under the image, with the same words in the alt attribute. Do the twenty best photos first.
  4. License and insurance as facts. The number, the issuer and the coverage, in the footer and on the about page, in the same words.
  5. HomeAndConstructionBusiness markup. The template above, filled in from the footer so the two agree.
  6. The six questions, answered under their own headings. Each answer two or three sentences, the way you would say it on the phone.
  7. Reviews on the page as text. Two or three real ones, first name and platform, and a rating in markup only where the rating is shown with its source.

The order is the order of dependence: a caption on a site with three addresses is evidence for nobody in particular, and markup that describes a text the site does not carry is a contradiction rather than a confirmation.

How to know whether it worked

Write the six questions above in your own towns and specialties, put each to ChatGPT, Claude, Gemini and Perplexity three times, and record whether you were named, whether you were recommended, whether you were first, and who else was. Repeat monthly on the same questions. The measurement we run for clients uses twelve questions, each asked once per reading of one assistant, Claude, before the fixes, once they are live and every month with monitoring, and the questions have to stay fixed or the readings stop comparing.

One caution on reading the result. In our probe, one buyer question per business put to Claude once named 14.9% of the businesses, and we call that directional rather than a rate because one run of one question is a coin flip. Three runs a month for six months is a trend. What the trend will show is whether the specialties you named and the captions you wrote are now being read, and that is all any measurement can show; no one outside the assistants can promise the answer.

Common questions

Should I call myself a carpenter or a joiner on the site?

Use the word your buyers use, and if you serve markets that use both, put both in one sentence on the about page and in the markup's description: "a carpentry and joinery shop in Kelowna". A shop that only ever says joiner has no page that answers a question asking for a carpenter. One sentence covers it; there is no need to repeat both words on every page.

All my work is custom. How can I state a price?

As a range per kind of job, with the three or four things that move it named next to it: size, material, finish, access. That is what you tell people on the first call anyway, and written down it becomes a sentence an assistant can quote. "Every project is different, contact us for a quote" is true and gives the assistant nothing, so a competitor who published a range gets named for the cost question instead of you.

Is alt text on my portfolio photos enough?

It helps and it is not enough. Alt text is in the HTML, so a crawler can read it, but a visible caption is what a person and a machine both see and what an assistant can quote as a description of your work. Write the caption as a sentence, what it is, the material, the town, and put the same words in the alt attribute. Google's image guidance covers alt text and file names; the caption is for the reader.

Which matters more, my Google reviews or my website?

For being named by an assistant, the website, because it is the page that gets fetched and the reviews it cannot see on that page do not count toward it. In our audit 64.7% of sites showed no review signal a crawler could read, while most of those businesses had reviews on the platforms. Quote two or three real reviews on the site with the reviewer's first name and the platform, and keep the platform profile accurate as well.

Sources

The trade figures are our own, from the audit named below; the sample was drawn per metro and trade, not from a random frame, and the 14.9% figure is one Claude probe per business, not a rate. The schema types and properties come from schema.org and Google's documentation, linked where used.

Sources: our audit of 9,483 small-business sites, with its method · schema.org, LocalBusiness and its subtypes · Google, local business structured data · Google, introduction to structured data · Google, image best practices

All articles