← Back to AEO scores

harvestbloomflowers.co.nz

Audit date: 2026-08-17
98/100
Fleet leader, unchanged. Contract gate of 70 cleared by 28 points, and 38 points up on the 27 June baseline of 60. The unrendered JS template string still ships as an H1 on every page.

Verdict

Still the fleet leader and still unchanged. Blog posts remain in the sitemap and the nav, schema is the richest in the fleet, and the contract gate of AEO 70+ by 1 August is cleared by 28 points. The JS template string rendering as an H1 is still present — the same defect first detected on 10 August, not a new one.

Score held at 98 with all six categories unchanged.

Contract gate status

The engagement carried a hard gate of AEO 70+ by 1 August 2026 before ads could go live. That gate was met on 27 July (87) and again on 3 August (95). Today's score of 98 clears the 70 threshold by 28 points. Baseline was 60/100 on 27 June 2026, so the site has gained 38 points in under two months.

What's Working

Critical Issues

An unrendered JS template string outputs as an H1 on every page (unchanged, already scored)

Every page returns a literal <h1>'+titleEl.textContent+'</h1> in the served HTML. Confirmed present on the homepage and on /blog this run.

This is a JavaScript string concatenation that was written into a template without being evaluated. The effect is that every page ships a second H1 containing raw source code. A crawler reading the heading structure sees a nonsense H1 alongside the real one.

This was newly detected on 10 August and scored then at Structure 15/20. It is not being re-penalised today. It is also the single highest-value remaining fix on the site — it is one line in a code injection block.

Schema Inventory

PageBlocksTypes found
/4WebSite, LocalBusiness, Organization, Florist, Person, FAQPage
/blog-1-copy-1-1/easiest-flowers-to-grow-from-seed-nzmultipleArticle, Organization, LocalBusiness, Person, WebSite, Product, Offer, Brand, PostalAddress, GeoCoordinates, ImageObject, SearchAction, EntryPoint, FAQPage, Question, Answer

No malformed JSON-LD detected.

Audit by Category

1. Technical Crawlability — 18/20 (unchanged)

2. Content Structure — 15/20 (unchanged)

3. Schema Markup — 19/20 (unchanged)

4. E-E-A-T & Authority — 15/20 (unchanged)

5. Blog & Content Freshness — 14/20 (unchanged)

6. Entity Clarity — 17/20 (unchanged)

Top 10 Action Items

#ActionImpactEffort
1Fix the unrendered JS template string producing a junk H1 on every page — one line in code injectionHighLow
2Add AggregateRating to consolidate the two existing Google reviewsMediumLow
3Publish a third and fourth blog post to establish cadenceHighMedium
4Rename the blog slug from /blog-1-copy-1-1 to /blogMediumMedium
5State a founding year for the farmMediumLow
6Add a visible tel: link alongside the emailMediumLow
7Add an author byline naming Rachel on blog postsMediumLow
8Expand homepage copy past 1,200 wordsMediumMedium
9Add internal links from blog posts into the matching seed product pagesMediumLow
10Publish a per-variety growing guide page for each of the 11 seed varietiesHighHigh

Summary

Harvest Bloom holds the top score in the fleet on the strength of its schema depth, a genuinely good FAQ block and a named grower with a real story. The contract gate is cleared by 28 points and the site has gained 38 points from its 27 June baseline.

One defect is worth Rachel's attention and it is a one-line fix: the unrendered JavaScript template string shipping as an H1 on every page. Beyond that, the remaining upside is content volume rather than technical work — two blog posts against eleven seed varieties, each of which could carry its own growing guide.