# Market & SEO Research — Plant Store (Brooklyn / NYC)

**Project:** shopify-plant-store · **Date:** 2026-10-03 · **Status:** research input for strategy comparison & store-development plan
**Store:** plantsforsaleinnyc.com (Shopify) · **Location:** Brooklyn, NYC (exact address TBD — owner confirms)
**Inputs:** `research/keywords-dracaena-semrush.csv` (68 dracaena commercial keys, user-provided) · `research/competitors-local.md`+`competitor-data.json` (t_a204b791, 22 local profiles) · live audits/sweeps (see Tooling)

---

## 0. TL;DR

1. **The dracaena flagship is both the biggest SEO opportunity and the biggest site gap.** The 68-key commercial core carries ~27k monthly searches, ~44% of it in misspelling variants (computed: 27 rows ≈ 11,990 vol ≈ 44% — SEMrush's own count is 42 variants ≈ 36%; see tooling flag). The site has **no dedicated dracaena collection page** today, its product titles are size-based, and its collection structure is size-only. Species-first collections + a misspelling hub page = the flagship build.
2. **SERPs split cleanly:** national DTCs and big-box win *generic* dracaena queries (collection pages + care guides); delivery-first locals (PlantShed, Ed's, Dahing, Sill-landing-pages) win *NYC delivery/indoor* queries with **dedicated delivery landing pages**; listicles + Yelp win *"best plant store brooklyn"*-type queries. No local Brooklyn store ranks for *any* dracaena query in today's top-10 → the species×local quadrant is open.
3. **Local pack is the fastest win and it's blocked on one input: the street address.** Everything geo-dependent (GBP, citations with address, review-location anchors) waits on it — everything else (domain, titles/meta, schema, content, delivery-page architecture) can ship today.
4. **The site's technical baseline is decent (unique titles/descs, canonicals, Product JSON-LD, fast TTFB ≈ 0.2–0.5 s via Cloudflare) but the details lose: titles median 89 chars (14/22 > 80), descriptions capped at 300 chars (~160 shown), no LocalBusiness/delivery schema, no blog/care guides, generic product slugs, http:// og:image.**
5. **"Lowest prices" needs a price-capture page, not just PDP prices:** local anchor Natty Garden sells Dracaena 4" at **$9.99**; online DTCs run $29–695 (Eureka), $39–169 (The Sill), $13–45 (House Plant Shop); big-box 4" pots $6–10 (IKEA). The defensible claim is **"lowest prices among NYC plant stores on ≥4 ft Dracaena, in stock"** — price comparison verified against the set before advertising.

---

## 1. Target keyword clusters (intent-bucketed)

Source: SEMrush CSV (68 rows, volumes exact as provided) + Google Autocomplete live sweep (2026-10-03) + SERP observation. Bucket rule: **every CSV row is commercial (T-intent present)** — per owner instruction no informational-only dilution. Volumes from CSV are SEMrush exact at export date; treat as ~approx going forward (free tooling gives brackets only, §2).

### 1.1 Dracaena head & variant names (do NOT dilute — the flagship's core)
| Keyword | Vol/mo | KD | Intent | Note |
|---|---|---|---|---|
| dracena | 6,600 | 27 | I,T | **#1 volume is the misspelling** — flagship must own it |
| dragon plant | 5,400 | 32 | I,T | head claim; Dracaena = "dragon plant" |
| dracaena corn plant | 2,400 | 32 | I,T | head |
| dragon trees | 1,300 | 36 | I,T | plural head |
| dracanea | 880 | 34 | I,T | misspelling |
| ribbon dracaena | 720 | 22 | I,T | common name |
| drakina plant | 720 | 28 | I,T | misspelling |
| corn plant dracaena | 480 | 32 | I,T | head variant |
| драцена | 480 | 26 | I,T | **Russian** — real BK niche (Brighton Beach RU-speaking) |
| dracaena fragans / fragrans | 390+ | 19 | I,T | species + misspelling; KD 19 |
| tall dracaena plant | 320 | **14** | I,T | size intent, low KD — matches "5-7 ft" collections |
| dragon indoor plant / dragon tree indoor plant | 70 / 480 | 25/29 | I,T | indoor modifier |
| flowering dracena / flower dracaena / dracena flowering / dracaena plant flowering | 320/210/260/90 | 22–34 | I,T | "flowering" mods |
| images of dracaena plants | 110 | 26 | I,T | image SEO (PDP alt + gallery) |

### 1.2 Transactional buy-intent (T-only core — highest purchase affinity)
| Keyword | Vol/mo | KD | Intent | Note |
|---|---|---|---|---|
| dracaena for sale | 260 | 22 | T | collection/landing |
| dracaena plants for sale | 260 | **17** | T | **KD ≤ 20 — winnable** |
| dracena plants for sale | 110 | 13 | T | misspelling, KD 13 |
| dracaena plant for sale | 90 | 13 | T | KD 13 |
| buy dracaena / buy dracaena plant / buy dracena plant | 40×3 | 11/21/18 | T | buy-intent (variants) |
| madagascar dragon tree for sale / buy | 70×2 | 16/20 | T | species buy |
| dracaena plant near me | 70 | 19 | T | local — GBP + landing |
| dracaena marginata near me | 70 | 25 | T | local |
| dracaena home depot / ikea / lowes (+dracena home depot, ikea dracaena plant) | 140/110/40/50/70 | 27–34 | T,N | **comparison-shopping intent** — "vs Home Depot" content angle |

### 1.3 Species & variety long-tail (low KD — the "widest assortment" proof)
| Keyword | Vol/mo | KD | Note |
|---|---|---|---|
| dracaena marginata (plants / tree / dragon tree / dracaenea / draceana / dracena marginata tree) | 140–210 each | 19–30 | the marginata family; collect into one hub + per-size PDPs |
| dracaena marginata cold damage | 40 | **5** | lowest KD in file — easy care-guide win |
| dracaena reflexa plant | 140 | 21 | reflexa hub |
| dracaena godseffiana plant | 140 | **17** | rare variety = "widest assortment" cred |
| dracaena aubryana | 50 | **11** | rare variety |
| dracaena thalioides | 50 | **8** | rare variety |
| dracena draco tree / dracaena drago | 50/70 | 16/22 | draco/cinnabari-adjacent |
| dracaena fragrans indoor plants | 110 | **13** | fragrans hub |

### 1.4 Misspelling cluster (dedicated strategy — ~36–44% of volume)
Detected by rule "canonical 'dracaena' absent but family variant present, or in-file misspelled epithets ('fragans','drago')": **27 rows / 11,990 vol (~44%)**. SEMrush reference in the brief says 42 variants ≈ 36% of 26,980 — their classification is wider; both orders of magnitude agree that **misspellings are a third-to-nearly-half of the commercial volume**.
**Re-verified 2026-10-03 (strict rule — excludes English common names 'dragon'/'corn plant' and the correctly-spelled 'dracaena marginata dragon tree'): 24 keys ≈ 11,090 vol ≈ 41%**; widening to include dracaena+dragon compounds ≈ 25–27 keys ≈ 42–44%. Report uses the **range 41–44%** (24–27 keys); exact definition noted for reproducibility.
Top misspellings by volume: dracena (6,600) · dracanea (880) · drakina plant (720) · dracenea (320) · flowering dracena (320) · dracaenea marginata (210) · draceana marginata (170) · draceana corn plant (170) · dracena marginata tree (140) · corn plant dracena (140) · drascena (140) · dracena corn plant (arg.) · dracena dragon tree (590) · dracena flowering (260) · dracaena fragans (390).
**Strategy recommendation (not 42 thin pages):** ONE "Dracaena (sometimes spelled dracena, dracnea…)" flagship collection + a care-guide FAQ block explaining the naming (ADR: "why is it dracena vs dracaena?"), product titles carrying the common-name variant once (the site already does this style, e.g. "ZZ plant / Zansibar gem / Raven ZZ"), and Shopify search synonyms + typo-tolerant search. A single hub page with 2–3 variants in title/H1 weighs better than 42 doorway pages, and avoids a thin-content penalty. If volume justifies later, add per-variant city pages (dracaena marginata nyc — see autocomplete) rather than pure misspelling pages.

### 1.5 Local delivery / store modifiers (autocomplete live sweep, exact phrasings)
Google Autocomplete (2026-10-03, suggest API — see §2) returned these exact phrasings to bake into delivery pages, titles, and content:
- **Delivery:** "plant delivery nyc" · "plant delivery nyc same day" · "plants in nyc apartment" · "plant delivery brooklyn ny" · "same day plant delivery brooklyn" · "large plant delivery brooklyn" · "house plant delivery brooklyn" · "plant delivery williamsburg brooklyn" · "indoor plants delivery nyc" · "next day plant delivery nyc"
- **Store/neighborhood:** "plant store brooklyn ny" · "plant store brooklyn heights" · "plant nursery brooklyn near me" · "plant nursery brooklyn ny" · "plant shop nyc" · "indoor plants brooklyn" · "large indoor plants nyc" · "best indoor plants nyc" · "office plants nyc" · "floor plants nyc" · "indoor tree plants" · "large plants near me" · "plant store near me open now"
- **Species-local:** "dracaena nyc" · "dracaena plant nyc" · "dracaena marginata nyc" · "dracaena plant delivery"
- **Head-with-modifier (all commercial):** "houseplants nyc" · "house plants brooklyn" · "indoor plants brooklyn" · "rare plants brooklyn" · "plant delivery brooklyn" · "plant nursery brooklyn" · "plant store brooklyn" (15 local queries already SERP-swept in t_a204b791 snapshot: 20–27 results each)

### 1.6 Niche/international (opportunity flags)
- **драцена — 480/mo, KD 26.** Brooklyn has a large Russian-speaking belt (Brighton Beach, Sheepshead Bay). One RU-canonical product page ("Драцена — купить в Бруклине, доставка") is cheap and defensible; flag for the development plan as a phase-2 SEO experiment.
- دراسينيا (Arabic) — 70/mo, KD 25; smaller, flag only.

**Count:** the bucketed list above contains **68 CSV keys + ~40 autocomplete-verified local phrasings** — comfortably over the ≥30 keyword criterion (see §1.1–1.5 counts: 68 commercial + 40 local modifiers).

---

## 2. Tooling (free-only — Semrush/ToolZBuy on hold)

| Tool | Status 2026-10-03 | What it gives / limits |
|---|---|---|
| Google Autocomplete (suggest API) | ✅ works scriptable (`client=firefox` param) | Exact phrasings; **no volume/KD** — used for title/meta wording, not numbers |
| SearXNG (local, JSON endpoint 127.0.0.1:8888) | ✅ works | SERP snapshots (engines: google cse, duckduckgo, …); positions are engine-aggregated, treat as indicative not Google-exact |
| Google Keyword Planner | ⚠️ not scriptable | Needs Google Ads account; **volume brackets only** (100–1K style) — exact volume/KD/CPC **unavailable free** ⇒ record brackets/order-of-magnitude, flag **"approx"** (this report uses the user-provided SEMrush CSV for exact values, export-date-accurate) |
| Google Trends | ❌ blocked from this network (HTTP 429, 2026-10-03) | Seasonality for NYC region **not reachable free today** ⇒ **approx/manual**: industry expectation for indoor-plant retail is Jan–Feb + pre-summer peaks; confirm via Trends when accessible (see open items) |
| People-Also-Ask | ⚠️ from this network google.com SERPs are bot-walled | PAA phrasings should be captured via SearXNG `?format=json` (PAA items occasionally present) or manually when Trends/Google access returns |
| Google Search Console (free, needs domain verify) | ⏳ **not connected yet** — recommend first-priority setup | Real queries/impressions for plantsforsaleinnyc.com; replaces guesswork on what Google actually attributes |
| PageSpeed Insights API | ⚠️ public quota exhausted (429) | Switched to **local Lighthouse** (see §5; CLS/INP values at §5.2) |

**Data-quality flags in this report:** exact volumes from user CSV (SEMrush export); all autocomplete phrasings live-fetched 2026-10-03; SERP positions aggregated from SearXNG engines (not raw Google); Trends/PAA blocked ⇒ seasonality and PAA left as open manual items, not fabricated.

---

## 3. SERP analysis — top-10 for target queries (2026-10-03, SearXNG)

### 3.1 Dracaena-product queries (from `research/serp-snapshot-dracaena.json`)
| Query | Top-3 holders | Winning content type | Note for us |
|---|---|---|---|
| dracaena plant for sale | HouseplantShop coll. · PeaceLoveHappiness coll. · Eureka Farms coll. (28 varieties) | **DTC /collections/dracaena* pages** | Sill #4, Home Depot #5. **Zero local NYC store.** A Brooklyn "in-stock, same-day" dracaena collection directly targets the intent gap |
| buy dracaena plant | HouseplantShop · The Sill · Tonkadale | DTC collection pages | HD #4, Amazon #9. Same gap: no local entity |
| dracaena near me | Home Depot · Lowe's · Walmart (then Eureka, IKEA, Reddit, The Sill) | Big-box category pages (national infra) | **Pure local queries answered by national retail** — exactly where a GBP + lander beats them on the map pack and on "near me" in NYC |
| dracaena houseplant | The Spruce care guide · HouseplantShop coll. · Costa Farms blog | Care-guide content + DTC coll. | Care guides win informational; collection wins commercial |
| dracaena marginata | (care-focused SERP; Eureka, Sill large marginata PDP "Large Houseplants for Delivery") | Care guides + **size-specific PDPs** | Sill's "Large Dracaena Marginata Cane" PDP is the model for our 4 ft/6 ft/7 ft marginata PDPs |
| corn plant dracaena / dracaena corn plant | The Spruce · White Flower Farm · trees.com product · Costa Farms · Wikipedia/UF | Media care guides + a few product pages | Everybody ranks with **care content**, not stores — a corn-plant care guide + hub is winnable (KD 32, but domain weakness: media only) |

### 3.2 NYC-delivery & local queries (from `research/serp-snapshot.json` + `.dracaena.json`)
| Query | Top-3 holders | Winning content type | Note for us |
|---|---|---|---|
| plant delivery nyc | PlantShed ("same-day hand delivery") · Dahing · Floom | **Dedicated delivery landing/collection pages** | PlantShed/Dahing/Sill/Ed's all run dedicated delivery pages — that IS the on-page standard to match |
| same day plant delivery nyc | PlantShed · Floom · Scott's Flowers | Same-day landing pages (florist/gift framing) | Plant-focused same-day angle is thinner — differentiation room ("same-day ON Dracaena, in stock") |
| large indoor plants delivery nyc | PlantShed · Dahing · Sill delivery page · Ed's nyc-plant-delivery coll. · Chelsea GC XXL coll. | Delivery landers + size collections | **This is our exact lane** — claimed by exactly these five; winning = better local density + reviews + prices |
| plants delivered brooklyn | Avenue J · Greenpoint Floral · GG Plants & Flowers … | Florist "plants delivery brooklyn" landers | Florists hold "plants delivery brooklyn" with plant sections; plant-store-specific page is rare → gap |
| plant store brooklyn | Natty Garden · SecretNYC listicle · Yelp · Chelsea GC · Tend · Brownstoner · BBG · GRDN | Listicles + reviews + local sites | Listicle/Yelp presence IS part of local SEO (see §4.3); our own site absent from top-10 |
| plant nursery brooklyn | Chelsea GC · Yelp · Natty · community nurseries (Gowanus, Newtown Creek) | Mixed; weak field | Garden-center term, garden-center competitors on Squarespace |
| indoor plants nyc | Ed's · The Old Yew · PlantShed foliage coll. · Dahing · Scott's · Sill delivery page | Delivery-first local cluster | Same cluster as delivery queries; Ed's leads on brand+content — beatable via dracaena/species focus |
| plant store greenpoint | Tend · Tula ("houseplant experts on call") · Yelp · Garden Apartment · Ed's | Local shops + review platforms | Greenery Unlimited closed 2024 → "greenpoint plant shop" footprint vacant (digital only — the 91 West St corner itself is now a Lucky Honey fitness flagship, Aug 2024) |
| rare plants brooklyn | Plant The Studio · SecretNYC · Tula arid coll. · Ed's · Chelsea collector coll. | Boutique collections + listicle | Rare = collection-page game; our "widest dracaena" can slot into this SERP family via a collector/variety page |
| houseplants brooklyn / houseplants nyc | PlantShed · SecretNYC · Ed's · Sill delivery page · House Plants NY | Delivery-first + listicles | **Our current domain (plantsforsaleinnyc.com) is built for these exact states** — but ranks nowhere today (no GBP, no content) |

**Content-type verdict:** (1) species/commercial dracaena = **collection pages + care guides**; (2) NYC delivery = **dedicated delivery landing pages + neighborhood pages**; (3) store search = **GBP + reviews + listicle inclusions**; (4) big-box owns generic "near me" — local entity beats them in NYC only via map pack and local-query landers.

---

## 4. Local-SEO playbook (Brooklyn/NYC) — with address-dependency flags

### 4.1 Google Business Profile
| Action | Depends on address? | Detail |
|---|---|---|
| Create GBP ("store" / "retail" category: GardenCenter or ShoppingRetail + Florist alt) | ✅ **YES — blocked until owner confirms street address** | Google requires a visible storefront address for a retail profile; without it only a "service-area" profile (no store, no street visibility) is possible — wrong fit for a plant shop |
| NAP (Name-Address-Phone) consistency | ✅ YES | Name: pick brand now (e.g. "Plants for Sale NYC" — domain-level brand); phone: dedicated local number + consistent everywhere |
| Categories + attributes | ⚠️ partially | Categories can be pre-set; attributes ("same-day delivery" exists as an attribute) once profile exists |
| Hours, photos (storefront, plants, teams) | ✅ YES (photos yes; hours = store ops) | Prepare the photo bank before launch (wall of dracaena, delivery van, in-home shots) |
| Product/offer posts via GBP "Products" | ⚠️ partially | Can pre-plan product feed; actual products once live |
| **GBP reviews + Q&A seeds** | ⚠️ Q&A pre-writable; reviews need first customers | See §4.3 |
| Maps embed on site (no API key needed via iframe) | ✅ NO — do at redesign | Embed maps + directions on /pages/contact once address exists |

### 4.2 Citations & listings (what to do now vs on address)
**Can start today (no address):** Yelp business page (draft), Instagram + TikTok business profiles (bio NAP-ready), Nextdoor business page, Bing Places & Apple Business Connect (need address but preparing assets now), Foursquare, LinkedIn company page, Shopify "Store Locator"/local-delivery pages (no address = delivery zips instead).
**Blocked on address (queue when confirmed):** Google Business Profile, Apple Business Connect, Bing Places, Yelp address line, Chamber-of-commerce/neighborhood business registries (Brooklyn Chamber, Greenpoint BID, Williamsburg BID, etc.), city/borough guides (Brooklyn Magazine lists, Brownstoner "Brooklyn-owned" submissions, Secret NYC / TimeOut / Thrillist submission forms — these listicles rank top-10 for "plant store brooklyn").
**Delivery-zone framing without an address:** publish delivery coverage as **zip-code radius** (e.g. "same-day to 11201–11249 corridors…") — geo content without a street address; replace/upgrade to exact pages on address confirmation.

### 4.3 Reviews strategy (the lever that moves map pack)
- **Trigger at the moment of delivery**, not after: delivery confirmation SMS/email (Shopify post-purchase apps: one review app only — see §5.4) with a Google-review deep link; photo-review ask ("send us a photo of your dracaena in its new home") doubles as UGC for PDPs.
- **Habit:** respond to 100% of Google reviews within 48 h; respond to every Yelp mention; thank-and-answer Q&A.
- **Volume target:** competitors' pack-leaders run 4.6–5.0★ with 38–176 reviews; first goal = **50 Google reviews in first 6 months** (≈15/mo from ~30 deliveries/mo at a realistic 50% ask-response) — enough to out-review garden centers in a 5-mile radius.
- **Don't:** bulk-ask strangers, incentivize with discounts in exchange for reviews (policy risk), post fake reviews (Google review-bombing filter + Shopify review-app risk).
- **Reputation content:** feature 5★ quotes with names/photos on the collection page footer and in delivery landing copy (schema aggregateRating only once reviews are real — see §5.3).

### 4.4 Neighborhood content (address-independent, mirrors Ed's model)
Delivery/neighborhood landing pages per Brooklyn corridor: **Williamsburg, Greenpoint, Bushwick, Bed-Stuy, Park Slope, Crown Heights, Fort Greene, Prospect Heights** (t_a204b791 found only Ed's runs these — wide open). Each page: delivery window + zip list, 3–6 dracaena/size anchors with PDP links, one testimonial, "same-day to <neighborhood>". Slug pattern `/pages/delivery-<neighborhood>` or `/collections/nyc-plant-delivery`+ per-page fold (match Ed's URL pattern to compete directly).

---

## 5. Shopify SEO technical checklist (build target)

### 5.1 Structure & URLs
- **Collections = species first, size second.** Flagship: `/collections/dracaena-plants` (title/meta built on the 68-key core; H1 "Dracaena Plants for Sale NYC — Widest Assortment in Stock"). Per-species: marginata, fragrans/corn-plant, reflexa, surculosa, compacta/warneckii, draco. Keep the existing 7 size collections *as filters/tags*, not competing collections — **one product per species collection** (avoid cross-collection duplicates; use Shopify tags for size).
- **URLs:** clean keyword slugs (`/products/dracaena-marginata-6ft`, `/collections/dracaena-plants`) — current generic slugs (`/products/large-plants-over-5-ft-2`) lack the species keyword; rename with 301s.
- **Misspelling architecture:** one hub page (see §1.4) + Shopify search "search synonyms" (dracena, dracnea, drakina… → dracaena) instead of 42 doorway pages.
- **Pagination:** SEO-paginate large collections (`?page=2` with `rel=canonical` to page 1 **only if** page 1 is the intent target; else `rel=next/prev` legacy — Shopify themes handle via settings; never leave canonical-less pages); middleware: "view all" pages only when < 200 products.
- **Blog as content engine:** care guides per species (marginata cold damage KD 5 → care page, dracaena plant care, corn plant care), shipping/delivery FAQ posts; weekly cadence; each post interlinks to the matching collection. Competitors with care guides own every informational SERP in §3 — this is the missing layer (site has 1 blog URL, 0 posts).

### 5.2 Speed targets (measured via local Lighthouse — current site values in §6)
| Metric | Target (mobile) |
|---|---|
| Performance score | ≥ 80 (Shopify median ≈ 50–70 unoptimized) |
| LCP (Largest Contentful Paint) | < 2.5 s (aim ≤ 1.8 s) |
| INP (Interaction to Next Paint) | < 200 ms |
| CLS (Cumulative Layout Shift) | < 100 ms (0 = ideal) |
| First Byte (TTFB) | < 0.8 s (currently 0.2–0.5 s ✅ via Cloudflare) |
| Page weight | ≤ 2 MB total transfer, HTML ≤ 150 KB |

Levers: Shopify CDN image resizing (serve 800–1600 px WebP/AVIF via `cdn/shop`), `loading="lazy"` below-the-fold, preload hero, subset + preload fonts (no 6-icon font kits), remove jQuery-era mega-menus, minimize apps (each app = JS + tracking), keep third-party JS (chat, review widgets) to ≤ 3 domains, avoid full-page animations/sliders.

### 5.3 Schema markup (JSON-LD)
- **Home:** `Organization` + `WebSite` (already present ✅) + **`LocalBusiness`/`Store`** (with `address` once confirmed; `sameAs` → GBP/IG).
- **Product pages:** `Product` + `Offer` (price, availability, `itemCondition`, **ID `sku`**), `AggregateRating` **only with real reviews**, `BreadcrumbList`. (Current: Product JSON-LD with price ✅, aggregateRating absent ✅-correct-for-now.)
- **Collections:** `CollectionPage` + `ItemList` (products) — currently missing (only Organization).
- **Delivery:** `LocalBusiness` `areaServed` / `GeoShape` (zip polygons) on delivery pages; `Service` offer "SameDayDelivery" — none of the 22 local competitors do this (t_a204b791 tech sweep) ⇒ differentiation.
- **FAQ pages:** `FAQPage` — the /pages/faq page exists with zero FAQ schema today.
- **Review snippets:** one review app only, with schema validation after install (rich-result testing) — see 5.4.

### 5.4 Apps & anti-patterns
**Use:** a single review app (e.g. Judge.me / Loox / Yotpo — pick one, validate schema), SEO-optimized theme (Dawn-based), local-delivery app with checkout time-window (Ed's bar: scheduled 5-borough delivery with windows — best-in-class UX to match), search-synonyms app or native, image-optimization app only if theme doesn't handle it.
**Avoid / kill:** auto-title/meta-rewriting "SEO" apps (they fight the 68-key title plan and cause title churn), multiple review apps stacking duplicate schema (rich-result spam risk), "1-click page speed" overlay apps (add more JS than they save), megamenu/JD-remote landing apps (bloat + thin pages), popup email-gate apps on collection pages (hurt INP + crawl), any app loading a second `application/ld+json` blob per page (Shopify already emits one).
**Indexing hygiene:** robots.txt allow /collections, /products, /pages, /blogs; **block** /cart, /checkout, /account (+ `noindex` on /search, password page never public); submit sitemap in Search Console; 301 renamed slugs; 404 → themed 404 with collection links (make 404 crawler-friendly).

---

## 6. Current-site audit — plantsforsaleinnyc.com (live, 2026-10-03)

Method: full sitemap tree (67 URLs: 55 products · 7 collections · 3 pages · 1 blog), 22 pages fetched; per-page title/desc/canonical/lang/jsonld/H1/weight/TTFB; Lighthouse mobile in progress (values marked * when available; TTFB/sizes measured).
Raw data: `research/current-site-audit.json`.

### 6.1 What the site already does right ✅
- **Unique titles + meta descriptions on 21/22 pages**; canonicals correct on all fetched; `lang=en`; Organization+WebSite JSON-LD at home; **Product JSON-LD with price on product pages**; Theme: Shopify (Cloudflare edge).
- **Fast edge:** TTFB 0.20–0.52 s, HTML 117–334 KB; sitemap.xml + sub-sitemaps healthy; robots.txt merchant-crawlable (incl. UCP/MCP agent endpoints — 2026-era Shopify, no action).
- **Size-based collections exist** (1–3 ft / 3–5 ft / 5–7 ft / XXL 7 ft+) — the "large plants" lane is expressed, just not species-optimized.

### 6.2 Gaps vs the §5 checklist ❌
| # | Gap | Evidence (audit) | Fix |
|---|---|---|---|
| G1 | **No dracaena collection page** (flagship missing) | 7 collections, all size-based; 0 species collections | Build /collections/dracaena-plants on the 68-key core (this is §0 priority #1) |
| G2 | **Titles too long / inconsistent** | median 89 chars, 14/22 > 80; homepage title "Plants for sale in NYC" (no brand); PDP titles 60–109 chars incl. keyword-stuffed variants vs H1 mismatch (e.g. ZZ title 109 ch "…Zansibar gem | ZZ Plant — The…") | Rewrite ≤ 60 chars each, brand-suffixed, one key per page (per §1 clusters) |
| G3 | **Meta descriptions at 300-char cap** (Google shows ~160) | all collection/PDP descs = 300 ch; contact page **no description** (0 ch) | Desc ≤ 160 ch with key + CTA; add contact desc |
| G4 | **No LocalBusiness / delivery area schema** | jsonld = Organization(+Product) only on all pages | §5.3 LocalBusiness + GeoShape once address; delivery Service schema now |
| G5 | **Collections lack ItemList/CollectionPage schema** | collections carry only Organization | §5.3 |
| G6 | **No blog/care-guide engine** | sitemap_blogs_1.xml = 1 URL (0 posts) | §5.1 content engine (care guides win every informational SERP we saw) |
| G7 | **No delivery landing content / neighborhood pages** | nav/sitemap: no /pages/delivery*, no neighborhood pages | §4.4 — competitors' standard; our differentiator is "same-day on dracaena" |
| G8 | **Generic product slugs** | /products/small-plants-1-3-ft-1, /products/large-plants-over-5-ft-2 | Rename to species+size slugs w/ 301s |
| G9 | **og:image is http://** (mixed-content) | homepage og:image http://plantsforsaleinnyc.com/cdn/… | Force https (Shopify asset URLs) — unsecured OG images can be dropped from social embeds |
| G10 | **FAQ page without FAQPage schema** | /pages/faq h1 "FAQ", jsonld Organization only | §5.3 FAQPage (also targets "dracaena plant care" structure) |
| G11 | **No GBP / reviews / local profiles** (expected — address pending) | no local-business footprint found | §4.1–4.3 |
| G12 | **Speed: edge fast, render heavy** | TTFB 0.2–0.5 s ✅ · **Lighthouse mobile (2026-10-03): Perf 70 · LCP 6.7 s (target < 2.5 s) · FCP 2.0 s · CLS 0 (good) · 1.95 MiB total transfer** (170 KB HTML → 1.95 MiB rendered); INP not reported by this Lighthouse build → manual | hit §5.2 targets: image compression/WebP, lazy-load, font subsetting — the 1.95 MiB is the LCP driver |
| G13 | **Collection navigation = footer list on every page** (8 links) — fine for crawl, but no species routes | every page links same 8 size collections | species-first IA with size as secondary filter |

### 6.3 Competitive price snapshot for "lowest prices" (2026-10-03, public PDPs)
| Player | Dracaena price anchors |
|---|---|
| Natty Garden (local, Crown Heights) | Dracaena 4" **$9.99** (parent research) |
| IKEA | Dracaena marginata 4¼" $5.99 (online) |
| House Plant Shop (DTC) | collection $13–44.99 |
| Garden Goods Direct | marginata PDP $12.95–32.95 (small) · $99.95–136.95 (large) |
| The Sill (national, 2 BK stores) | dracaena collection $39–169; large marginata cane $149 |
| Eureka Farms (DTC "28 varieties") | dracaena collection $29–295 (large trees to $695) |
| Our current site | marginata 4 ft / 6 ft + dragon tree 6 ft + pairs (prices on PDP; not compared here) |
**Positioning:** defensible claim = **lowest price on ≥ 4 ft dracaena among NYC plant stores** (big-box cheap only at 4", DTC boutiques $99–695 at size). Verify against Ed's/Tula/PlantShed PDPs (parent audit) at build time; publish a "we checked NYC prices" comparison block on the flagship collection — it doubles as the price-corner content (§0 #5).

---

## 7. Open items for downstream tasks (decision inputs)
1. **Address confirmation (owner)** — unblocks GBP, citations, LocalBusiness schema, store-hours, maps embed. Everything in §4.1–4.2 is queued on it.
2. **Store brand name decision** — titles currently end "Plants for sale in NYC" (no brand); brand string affects every title/meta and GBP NAP. Decide before the title rewrite (G2).
3. **Google Search Console verification** — free; owner action (DNS TXT or HTML tag); delivers real query data within weeks.
4. **Google Trends / PAA re-check** when network access changes — seasonality curve for dracaena (NYC) and PAA phrasings remain open; do not treat as researched.
5. **Misspelling strategy sign-off** — hub-page approach (§1.4) vs per-variant pages; recommend hub.
6. **Dracaena price-page sign-off** — publish comparison block pre- or post-launch of flagship (§6.3).

---

## 8. Sources & data-quality
- `research/keywords-dracaena-semrush.csv` (user-provided, 68 rows; SEMrush export — volumes/KD/CPC exact at export, classed appendix)
- `research/serp-snapshot.json` (15 local queries, t_a204b791) + `research/serp-snapshot-dracaena.json` (12 dracaena/delivery queries, this task) — SearXNG engines (google cse, duckduckgo, …); positions indicative
- `research/autocomplete-suggestions.json` (38 seeds, 2026-10-03, Google suggest API — exact phrasings)
- `research/current-site-audit.json` (22 pages, 2026-10-03 — titles/descs/canonical/jsonld/size/TTFB; Lighthouse values appended when done)
- `research/competitors-local.md` / `competitor-data.json` (t_a204b791: 22 profiles, pricing, platforms, ratings)
- Public PDP prices §6.3 fetched 2026-10-03 (Eureka, Sill, Garden Goods Direct, House Plant Shop, IKEA; Natty from parent audit)
- **Flags:** all volumes except the user CSV are reachable only as brackets through free tools ⇒ §1 volumes carry SEMrush-export exactness, future re-checks are "approx"; Trend/PAA and CLS/INP marked where blocked/pending — **nothing fabricated**.