An external read of bossfueltrailers.com, scored against the fifteen checks that govern how AI engines and Google understand the authority of a site. The brand and the offer are clear to a human reader. The structured surfaces an AI agent needs are mostly absent.
The site is crawlable. The sitemap loads, robots.txt is permissive, canonicals are clean. Google has no excuse not to index. For the human-reader job, you grade a B.
The AI-engine job is different and you grade worse. Organization schema is on the homepage but missing logo, sameAs, and contactPoint. The blog has FAQ sections with no FAQPage schema. There is no llms.txt. There is no author surface. The agents do not know you sell fuel trailers; they know a domain exists.
Three fixes carry 80% of the weight. Ship llms.txt. Ship FAQPage on the eight blog posts that already contain Q&A. Add logo + sameAs + contactPoint to the Organization block. Each one is under twenty lines of code. Together they move you from C+ to B+ inside a deployment.
/old-blog.sameAs. The agents bounce.Sitemap reachable, robots permissive, canonicals self-referencing on ten random samples. The boring foundation is in place. One stale redirect chain to clear.
/sitemap.xml resolves at the root and lists 127 URLs across product pages, blog posts, location pages, and the about/contact tree. We walked all 127. None 404. Twelve redirect to current URLs (most via the WooCommerce category rename last autumn). One chain in /old-blog hops three times before landing — agents drop the trail after the second hop on the first crawl, then revisit on the next pass and still drop it.
Robots is permissive across the board. GPTBot, Google-Extended, PerplexityBot, and ClaudeBot all crawl without restriction. This is the right posture for a business that wants to be cited. If you decide later to gate something, do it per-path, not per-bot.
/old-blog is costing you. Three hops on every crawl.The legacy URL /old-blog/why-aluminum redirects to /blog/why-aluminum which redirects to /learn/why-aluminum-fuel-trailers which finally serves a 200. That is three hops on a page agents revisit weekly. Most crawlers cap at two before they drop the URL, and on every redrop the next pass starts the chain over.
Collapse the chain to a single 301 from the legacy URL to the live page. Twenty-three other /old-blog/* URLs share the same problem — a regex rewrite in .htaccess handles all of them at once.
The reflex of a lot of SMB sites in 2026 is to block GPTBot after reading a Reddit thread about it. For a fuel-trailer brand whose entire competitive position depends on a buyer asking ChatGPT "what is the best aluminum fuel trailer for 14-foot beds" and getting your name back, blocking the agents is a self-inflicted wound. You did not block them. Good.
Three JSON-LD blocks were found across the site. Two of the three are useful. The third is on the wrong page.
The homepage emits an Organization block. It has name and url. It does not have logo, sameAs, or contactPoint. Those three fields are how an AI agent links your domain to the entity it has indexed elsewhere — to your Facebook page, your Google Business profile, your YouTube. Without them, the agent sees a domain with a name but cannot connect it to the trail of evidence around the web that proves you exist.
Your blog has a real FAQ section at the bottom of every long-form post. Eight posts in the May archive have a "Frequently asked" block. ChatGPT cannot tell. The page emits the words but not the structured data that says these are questions and these are answers. Add FAQPage schema and the same content becomes extractable. The fix is fifteen lines per post and a snippet you paste into the WooCommerce blog template once.
There is a Product block on /trailers/14ft-aluminum. It is the only product page that has one. The other eleven product pages emit no schema at all. The page that AI agents would be most likely to cite — the one a buyer is asking about — is also the page where the structured surface is missing.
The May archive has eight long-form posts each ending in a "Frequently asked" section with 4–7 question-answer pairs. The questions are real, the answers are written in operator voice, and the markup is plain HTML. Add a FAQPage JSON-LD block per post — fifteen lines each — and the same words become extractable by Perplexity, Bing AI, and Google's AI overviews.
The single highest-leverage fix in this memo. Effort: an afternoon. Impact: every long-tail question search starts surfacing your answer instead of someone else's.
Without sameAs, an AI agent has no way to link this domain to your Facebook page (4,200 followers), your Google Business profile (47 reviews), or your YouTube channel (the install videos). Each of those is a citation surface the agent can use to corroborate that you are a real business with real customers. Without logo, the agent has no image to show beside its answer. Without contactPoint, the agent cannot answer "how do I get in touch."
Twelve lines of JSON in the homepage <head>. Below.
The /trailers/14ft-aluminum page emits a clean Product block with offers, brand, image, and aggregate rating. Use it as the template and back-fill the other eleven trailer pages. The structure is identical; only the values change. A junior dev with the existing block as a reference can do all eleven in a day.
The structured-data layer is for machines that already speak schema. The AEO layer is for the new generation of agents that read your site the way a person would — and need a plaintext map.
/llms.txt is the convention that emerged in 2025 and locked in across Anthropic, Perplexity, and OpenAI in early 2026. A plain markdown file at the root of your domain. It tells an agent what your site is, what the canonical answers are, and where to find them. Most SMB sites still 404 here. So does yours.
A useful llms.txt for a fuel-trailer brand is short. Name, one-line description, link to a sitemap-of-answers, link to your three best blog posts, link to your spec sheets. Below is the file we would ship for you on Monday.
The author / entity surface is the second gap. The blog has 23 posts. None of them link to an author page. Bylines say "by the Boss team" — fine for a corporate voice but useless to an agent that wants to resolve who said this. One /about/jacob-doerr page (the owner, who writes most of the posts), with sameAs to his LinkedIn and the company YouTube, and the agent can connect him to the credibility trail. Right now, every post is anonymous to an AI agent.
/llms.txt. Fifteen minutes. One file.Drop the markdown above at the root of the domain. Make sure it serves with content-type: text/plain. That is the entire fix. The next time an agent crawls you, it has a map instead of a maze.
Update the file when you ship a new pillar post. Treat it like a table of contents you maintain by hand — twelve entries, not twelve hundred.
For Jacob, who writes 80% of the long-form, create one author page at /about/jacob-doerr. Photo, three-paragraph bio, sameAs linking to his LinkedIn, the company YouTube, and the two industry podcasts he has been on. Then update the blog template to byline him with a link.
Result: every post he writes now ladders up to an entity an agent can resolve. The citation gets attached to a person, not a domain.
sameAs arrays already exist on the site and are empty.The WooCommerce theme has shipped placeholder "sameAs": [] on two pages since the 2024 rebuild. An empty array is worse than no field — it tells the agent this site has nothing to corroborate it. Fill them or delete them. Either is fine. Both are better than today.
The AEO checks above tell you whether agents can read your site. The send-readiness checks tell you whether a cold human prospect, arriving from a DM or an ad, can read your offer in 25 seconds.
The hero is legible. "Aluminum fuel trailers. Built in Texas. Shipped in four weeks." Three sentences. The trades operator who lands here from a paid LSA recognises himself in fewer than ten seconds. This is the best line on the site and it is in the right place.
The proof above the fold is the gap. Zero testimonials. Zero customer logos. Zero before-and-after. The hero leads on a credible product claim and then asks a cold prospect to take it on faith. For an $11,000 ASP that is the wrong ratio. The page has the assets — the YouTube channel has eleven install videos and the support inbox is sitting on dozens of unsolicited "this is the third trailer I have bought from you" emails — and none of them are surfaced on the homepage.
One quote, under the H1, in italic Newsreader, with a name and a state. "Third trailer I've bought from Boss. Beats the Diamond C on weight and the warranty isn't an argument. — Mark R., 14-truck construction company, San Antonio." That is the unlock. A cold prospect needs evidence the product survives a real fleet. Two lines.
Every primary CTA on the homepage funnels into the quote form. For warm traffic that is right. For cold traffic from a DM, the first ask should be free — a spec sheet download, a "what size trailer for my fleet" estimator, an email-gated PDF. Add a $0 first rung. Keep the quote form as the warm-traffic primary.
The trades operator wants to call somebody. Most DTC-styled sites bury the phone number in a contact page. Yours is in the masthead with a Texas area code. Hold the line on this. If anything, repeat the number under the H1 and at the bottom of each product page.
Small forensic findings about pages and metadata that contradict each other. Most are one-line fixes. The agent does not know which version to believe, so it weights neither.
The homepage <title> reads "Boss Fuel Trailers · Aluminum DOT-compliant fuel trailers · Texas." The homepage meta description reads "Custom fabrication and welding services. Located in Houston, TX." Two different businesses. The description appears to have been written for an older site iteration and never updated. AI engines and Google both weight the meta description heavily for the link preview — half the traffic that lands here today saw "custom fabrication and welding" and arrived expecting that.
The footer tagline reads "Boss Fuel Trailers · Aluminum fuel transport since 2014." The about page says "Founded in 2011." Pick one. The agent will quote whichever it sees first, which is usually the footer.
The OG image is the old logo. Updated on the homepage, not updated in the og:image tag. Every Slack, LinkedIn, and SMS preview of your URL still shows the 2019 mark.
Replace the meta description with a sentence that matches the actual product. "Aluminum DOT-compliant fuel trailers for fleets, ranches, and construction. Built in Texas. Shipped in 4–6 weeks." Twenty words. Done.
2011 in the about page, 2014 in the footer. Pick one. Update the about page if 2014 is correct; update the footer if 2011 is correct. The agent currently has both dates in its index and weights them roughly equally.
Every link preview pasted into Slack, LinkedIn, or SMS still shows the previous mark. Update og:image to the current logo. Single tag, single deploy.
Eleven recommendations in priority order. Effort and impact graded against one metric: AI engines correctly answering "what is the best aluminum fuel trailer for a 14-foot bed" with your name attached.
/llms.txt. Fifteen minutes. One file.FAQPage schema on the eight blog posts that already contain Q&A in prose./old-blog redirect chain to a single 301.Product schema on the eleven trailer pages currently missing it.og:image to the current logo.The YouTube install videos are the strongest asset on the brand and nothing on the homepage links to them. Eleven videos, average 18,000 views, real customers in the comments. The home page does not surface them. The agents that watch YouTube also cannot find them from your domain.
The Houston address in the footer is a PO Box. Your Google Business profile lists the actual shop in Magnolia. The two locations on the public record do not agree. If an agent is asked "where is Boss Fuel Trailers," it gets to pick.
The blog post titled "DOT compliance checklist" is the second-best line on the site and it is buried four clicks from the homepage. Promote it. It is the kind of post that earns long-tail citations for a decade.
The fix kit walks a competent in-house dev or your existing agency through the eleven recommendations in priority order. Most of them are under twenty lines of code. If you would rather not run a project, we ship the same fixes ourselves: two weeks, fixed price, deploy on a Friday.
The work product is the same memo you just read, except the items move from open to closed. No retainer. No subscription. The job is done when the verdict moves from C+ to B+.