Website Recycling · AI visibility report
Ricky asked me to run our full recycling audit on rebelvideo.pro. Here's the honest result: this is a well-built site, and most of what we normally fix is already done. So this isn't a rebuild — it's eight specific things, most of them ten-minute edits, and one of them is costing you money right now.
Prepared for Joe Chancellor · by Wave for Website Recycling (Fusion Tech AI LLC) · 18 July 2026 · 15 pages reviewed
Our scanner scores a single page. It flagged Service, BreadcrumbList and
Product/Offer as missing — so I checked all 15 pages by hand, and they're not missing.
Service is on every industry page. Course and Offer are on the
application page. Event, Offer and Place are on the workshop page.
Someone deliberately matched the right schema to the right page, and that's rarer than it should be.
The real gaps are narrower and more specific than the number suggests. That's what the rest of this is.
@graph.
That's a complete article stack most agencies never ship.@graph with @id references pointing back to
#org instead of disconnected islands. That's the advanced pattern, applied consistently
across 13 of 15 pages.Everything below is built on top of that, not instead of it.
Your Meta Pixel is wired properly — Subscribe, Lead and
SubmitApplication all fire correctly on the three thank-you pages. Nice work.
Google Ads has nothing. The tag AW-17881385604 loads on all 15 pages,
but there is not one gtag('event','conversion') call anywhere on the site. I checked the
homepage and all three thank-you pages.
You sell YouTube ads. YouTube ads run on Google Ads. So the one platform you actually buy on is the one that can't tell which clicks became booked calls — which means Smart Bidding is optimising toward nothing, and your reported cost-per-lead isn't real. Meta, which you probably aren't even buying, has perfect data.
Create three conversion actions in Google Ads (Tools → Conversions), then drop the matching line on
each thank-you page. Google gives you the AW-17881385604/xxxxx label when you create each one:
<!-- thanks-apply.html -->
<script>
gtag('event', 'conversion', {
'send_to': 'AW-17881385604/PASTE_APPLY_LABEL',
'value': 1.0, 'currency': 'USD'
});
</script>
<!-- thanks-workshop.html — you know this one's worth $395 -->
<script>
gtag('event', 'conversion', {
'send_to': 'AW-17881385604/PASTE_WORKSHOP_LABEL',
'value': 395.0, 'currency': 'USD'
});
</script>
<!-- thanks-notify.html -->
<script>
gtag('event', 'conversion', {
'send_to': 'AW-17881385604/PASTE_NOTIFY_LABEL',
'value': 1.0, 'currency': 'USD'
});
</script>
Also worth doing: the Calendly booking is your highest-value action. Calendly fires a
calendly.event_scheduled message you can listen for and send as a fourth conversion.
Freshness scored 15/100 — the lowest thing on the site. The cause isn't stale
content. All six guides already carry correct datePublished and dateModified
in their JSON-LD (2026-06-29 through 2026-07-04). The date just never renders on the page, so anything
reading visible text sees no freshness signal at all.
You already have the byline. Add the date to it:
By Joe Chancellor · Rebel Video ·
Updated <time datetime="2026-07-04">July 4, 2026</time> · ~10 min read
Zero new content. You're exposing a true date that already exists — not stamping a fake "updated today".
All 15 URLs are listed cleanly, but not one carries a <lastmod>. That's a direct
crawl-freshness signal you're leaving on the table, and it compounds with #2.
<url>
<loc>https://rebelvideo.pro/how-to-start-an-smma.html</loc>
<lastmod>2026-07-04</lastmod>
</url>
Zero tel: links, zero phone numbers in visible text, zero telephone in
schema, no ContactPoint node — across all 15 pages. Your email
(joe@rebelvideo.pro) is in the homepage schema and inside the privacy and terms pages, but
it isn't rendered anywhere a visitor would look.
There's also a mismatch worth a decision: your PostalAddress gives
1309 Coffeen Avenue STE 1200, Sheridan, WY — but that address appears only in JSON-LD and
never in visible text. Schema-only NAP with no visible counterpart is exactly what suppresses this
score. If that's a registered-agent address rather than somewhere you work, dropping
PostalAddress and declaring areaServed: "US" is the more honest markup.
"contactPoint": {
"@type": "ContactPoint",
"email": "joe@rebelvideo.pro",
"telephone": "+1-XXX-XXX-XXXX",
"contactType": "sales",
"areaServed": "US",
"availableLanguage": "English"
}
If there's genuinely no business line, email + ContactPoint alone still lifts this materially. Put the email in the footer too.
| Page | Words | Has FAQ | Breadcrumb |
|---|---|---|---|
| /solar.html | ~365 | No | No |
| /roofing.html | ~378 | No | No |
| /law-firms.html | ~403 | No | No |
| your guide pages | 1,570–1,906 | Yes | Yes |
These three are where a roofer or a lawyer actually lands and decides — and
they're running at roughly a fifth the depth of your guides, with no FAQ and no breadcrumb. They have
good H1s and correct Service schema, so the bones are right; they're just short.
Six or seven FAQs each, in the same voice as the homepage ones, would roughly double them and give AI engines something quotable for "how much do YouTube ads cost for a roofing company". That's the single highest-value writing on the list.
/workshop.html, /apply.html, /law-firms.html,
/roofing.html and /solar.html have no BreadcrumbList or
WebPage node. Your guide pages already have a working one — copy it across and swap the
name and URL. Pure duplication of a pattern you've already written.
Lines 51–62 of index.html hold a second, unfinished Google Ads block that shipped
alongside the working one. It still requests
googletagmanager.com/gtag/js?id=AW-XXXXXXXXXX — a real HTTP call that resolves to nothing —
and the build note "(ask Claude for the snippet)" is sitting in your production source where
anyone viewing it can read it.
Straight delete. Nothing else depends on it.
"Rebel Video — YouTube Ads That Get Watched" is a good line and a bad title tag. It's pure brand. Meanwhile "YouTube Ads Agency for Small Businesses" — the strongest commercial phrase you own — is doing its work on a subpage.
Your homepage is the strongest page on the domain. Consider "Rebel Video — YouTube Ads Agency for Small Businesses" and keep the tagline as the H1, where it already lives and already works.
Fixes 1, 2, 3, 6 and 7 are mechanical — no writing, no judgement, no risk. Fix 4 needs one decision from you about the address. Fix 5 is the only one that's real work, and it's also the one most likely to bring in a roofer.
Everything above is a signal we hand to the engines. What Google and the AI assistants do with those signals is up to them — anyone who promises you rankings is guessing. What I can say plainly is that right now you're running paid traffic into a system that can't tell you which clicks paid off, and that one's worth fixing today.