Skip to content
Back to Launch & Discoverability

Structured Data at Launch

Adding JSON-LD structured data (TechArticle, BreadcrumbList, FAQPage, Organization) to new pages so Google can show rich results and AI search can parse your content.

Why

Structured data (JSON-LD) is the language that Google and AI search engines (ChatGPT, Perplexity, Claude) use to understand what your page is about. A TechArticle schema tells Google 'this is a technical article with this headline and this description', which qualifies it for rich results (larger snippet, 'type' label) that increase click-through rate 15-30%. A FAQPage schema turns your FAQ section into an expandable rich result that can appear directly in search results, capturing clicks before the user even visits your site. For AI search, structured data is even more critical: when Perplexity or ChatGPT cites your page as a source, they parse the JSON-LD to extract the headline, description, and key facts — pages without structured data are less likely to be cited. At launch, adding structured data to all 30 new /launch pages takes 2 hours and compounds for years in rich results and AI citations.

When

During the build, in the Astro component head. Verify with Google's Rich Results Test before launch and monitor Search Console's 'Enhancements' report post-launch.

How

1. For each article page (/launch/[slug]), add TechArticle schema:
   { "@context": "https://schema.org", "@type": "TechArticle", "headline": title, "description": description, "url": canonical, "inLanguage": locale, "datePublished": launchDate, "author": { "@type": "Organization", "name": "EZ4Code" } }
2. For the list page (/launch), add CollectionPage schema:
   { "@context": "https://schema.org", "@type": "CollectionPage", "name": "Launch & Discoverability", "description": ..., "url": canonical, "hasPart": [array of article URLs] }
3. For every page with a breadcrumb, add BreadcrumbList schema:
   { "@type": "BreadcrumbList", "itemListElement": [ { position 1: Home }, { position 2: Launch }, { position 3: article title } ] }
4. For pages with an FAQ section, add FAQPage schema:
   { "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": question, "acceptedAnswer": { "@type": "Answer", "text": answer } } ] }
5. Add Organization schema to the homepage (once, not per page):
   { "@type": "Organization", "name": "EZ4Code", "url": "https://ez4code.com", "logo": "https://ez4code.com/logo.png", "sameAs": [twitter, github] }
6. Inject JSON-LD via <script type="application/ld+json"> in the Astro head — Astro renders this at build time so it's in the HTML for crawlers
7. Validate with Google's Rich Results Test (search.google.com/test/rich-results) on 3-5 new URLs — it shows which schema types are detected and any errors
8. Monitor Search Console > Enhancements > (TechArticle / FAQ / Breadcrumb) post-launch — this shows how many of your pages have valid structured data and any errors
9. For AI search optimization, also add 'about' and 'mentions' properties to TechArticle linking to concept entities (e.g. "Product Hunt", "SEO") — this helps AI engines connect your content to topics

Example

# Structured Data — ez4code v2.0 /launch

## /launch/pre-launch-checklist (TechArticle)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Pre-Launch Checklist",
  "description": "A comprehensive gate-check before opening your product...",
  "url": "https://ez4code.com/launch/pre-launch-checklist",
  "inLanguage": "en",
  "datePublished": "2026-10-05",
  "author": { "@type": "Organization", "name": "EZ4Code" },
  "about": ["product launch", "checklist", "dev tools"]
}
</script>

## /launch (CollectionPage)
{
  "@type": "CollectionPage",
  "name": "Launch & Discoverability",
  "hasPart": [
    { "@type": "TechArticle", "url": ".../pre-launch-checklist" },
    { "@type": "TechArticle", "url": ".../ph-preparation" },
    ... (30 articles)
  ]
}

## BreadcrumbList (every detail page)
{
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://ez4code.com" },
    { "@type": "ListItem", "position": 2, "name": "Launch", "item": "https://ez4code.com/launch" },
    { "@type": "ListItem", "position": 3, "name": "Pre-Launch Checklist" }
  ]
}

## Validation (Rich Results Test)
/launch/pre-launch-checklist:
  ✓ TechArticle detected
  ✓ BreadcrumbList detected
  ✓ FAQPage detected (3 questions)
  0 errors

## Post-launch (Search Console Enhancements)
TechArticle: 30 valid, 0 errors
Breadcrumb: 30 valid, 0 errors
FAQ: 28 valid, 2 errors (missing acceptedAnswer.text) → fixed

## AI search impact
Perplexity cites /launch/pre-launch-checklist for "how to launch a dev tool"
ChatGPT references /launch/ph-preparation for "Product Hunt launch guide"

Common Problems

  • ⚠Injecting JSON-LD via client-side JS — Google's crawler may not execute the JS, so the structured data is invisible; inject via Astro's build-time <script> tag so it's in the static HTML.
  • ⚠Missing required fields — TechArticle requires headline and description; FAQPage requires each Question to have an acceptedAnswer with text; missing fields make the schema invalid and Google ignores it entirely.
  • ⚠Duplicate structured data — the same TechArticle schema injected twice (once in layout, once in page) creates a conflict; inject each schema type once per page.
  • ⚠No validation before launch — 'it looks right' is not validation; run the Rich Results Test on every new page type, because a single invalid field invalidates the whole schema and you lose all rich result eligibility.

Best Practices

  • ✓Generate JSON-LD from the data model (the same LaunchItem that drives the page content) — this ensures the schema always matches the page content and never goes stale.
  • ✓Validate every page type with the Rich Results Test before launch, not just one — the list page, detail page, and FAQ section each have different schema and each must be validated separately.
  • ✓Add 'about' and 'mentions' properties linking to concept entities — this is the AI-search optimization that helps Perplexity and ChatGPT connect your page to the user's question topic.
  • ✓Monitor Search Console Enhancements weekly for the first month — structured data errors appear here within 2 weeks and a single invalid page can invalidate the whole schema type if it's a recurring pattern.