Fix workspace
Add FAQPage JSON-LD to /pricing (6 Q&A pairs)
DrafteddraftExecutes now · produces a reviewable artefactgithub-executorjsonld inject · impact 78 · effort S · updated 3h ago
The change
Exactly what would land in your repo. Nothing is pushed until you approve.
2 files+28−0
| diff --git a/app/pricing/page.tsx b/app/pricing/page.tsx | ||
| index a1b2c3d..e4f5a6b 100644 | ||
| --- a/app/pricing/page.tsx | ||
| +++ b/app/pricing/page.tsx | ||
| @@ -1,6 +1,7 @@ | ||
| 1 | 1 | import type { Metadata } from "next"; |
| 2 | 2 | import { PricingTable } from "@/components/pricing-table"; |
| 3 | +import { FAQ_JSONLD } from "@/lib/pricing-faq"; | |
| 3 | 4 | |
| 4 | 5 | export const metadata: Metadata = { |
| 5 | 6 | title: "Pricing — Acme Analytics", |
| @@ -9,6 +10,11 @@ export const metadata: Metadata = { | ||
| 9 | 10 | export default function PricingPage() { |
| 10 | 11 | return ( |
| 11 | 12 | <main> |
| 13 | + <script | |
| 14 | + type="application/ld+json" | |
| 15 | + dangerouslySetInnerHTML={{ __html: JSON.stringify(FAQ_JSONLD) }} | |
| 16 | + /> | |
| 12 | 17 | <h1>Pricing</h1> |
| 13 | 18 | <PricingTable /> |
| 14 | 19 | </main> |
| 15 | 20 | ); |
| 16 | 21 | } |
| diff --git a/lib/pricing-faq.ts b/lib/pricing-faq.ts | ||
| new file mode 100644 | ||
| index 0000000..7c8d9e0 | ||
| --- /dev/null | ||
| +++ b/lib/pricing-faq.ts | ||
| @@ -0,0 +1,34 @@ | ||
| 1 | +/** Mirrors the six question headings already rendered on /pricing. */ | |
| 2 | +export const FAQ_JSONLD = { | |
| 3 | + "@context": "https://schema.org", | |
| 4 | + "@type": "FAQPage", | |
| 5 | + mainEntity: [ | |
| 6 | + { | |
| 7 | + "@type": "Question", | |
| 8 | + name: "How is Acme Analytics priced?", | |
| 9 | + acceptedAnswer: { | |
| 10 | + "@type": "Answer", | |
| 11 | + text: "Seats plus warehouse compute. Event volume does not change the bill.", | |
| 12 | + }, | |
| 13 | + }, | |
| 14 | + { | |
| 15 | + "@type": "Question", | |
| 16 | + name: "Is there a free tier?", | |
| 17 | + acceptedAnswer: { | |
| 18 | + "@type": "Answer", | |
| 19 | + text: "Yes — up to 1 million events a month and 3 seats, no card required.", | |
| 20 | + }, | |
| 21 | + }, | |
| 22 | + ], | |
| 23 | +}; | |
Why this fix
The evidence behind the recommendation, and what it is expected to move.
Pricing prompts are 18% of tracked volume and you are named in 21% of them. Extractable Q&A pairs are what AI Overviews quote.
- 6 question-shaped h3 headings, 0 FAQPage blocks
- pr_004 / pr_007 / pr_009 — cited competitor pricing pages 9 times in 14 days
Acceptance checks
How any of the three executors proves it worked. Identical for all of them.
- url_contains"@type": "FAQPage"
- schema_validatesFAQPage
- audit_issue_resolvediss_002
Verification
Re-measured at T+3d and T+14d against soa.
19.1%
baseline captured · after-value pending
7d before / T+14d after
Task
- Task id
ft_02- Kind
- jsonld_inject
- Executor
- github-executor
- Band
- draft
- Target
- acme.com/pricing
- Anchor
- head
- Repo
- acme/site
- Requested by
- Nightly run (scheduler)
- Channel
- REST
- Created
- 12 Aug 03:00 UTC
File targets
How the executor finds this page in a repo it has never seen.
App Router
- app/pricing/page.tsx
- app/pricing/**/page.tsx
Pages Router
- pages/pricing.tsx
Static
- pricing.html
- public/pricing.html