Co-brand Partnership Page Stack
Co-branded partnership pages with Organization + Offer context, FAQs, and breadcrumb navigation.
When to use this stack
- Partner launch pages announcing a joint offer
- Co-branded promotions with shared benefits
- Alliance pages with eligibility and redemption details
What is included
Anchors the primary brand and partner identity.
Describes the co-branded offer and CTA.
Answers eligibility, redemption, and timeline questions.
Provides navigation context for the partnership page.
Properties across the bundle
Nested properties keep their parent path, such as offers.priceCurrency. Only publish values that match visible page content.
Required properties
- availability
- itemListElement[].name
- logo
- mainEntity[].@type=Question
- mainEntity[].acceptedAnswer.text
- name
- price
- priceCurrency
- url
Recommended properties
- description
- eligibleCustomerType
- itemListElement[].item
- mainEntity[].acceptedAnswer.text
- mainEntity[].author.name
- mainEntity[].name
- sameAs
- seller.@id
Combined JSON-LD
Paste this as one script tag, then replace every example value with data from the live page.
[
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.example.com/partners/northwind#org",
"name": "Northwind",
"url": "https://www.example.com",
"logo": "https://www.example.com/images/northwind-logo.svg",
"description": "Customer engagement platform for modern teams."
},
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.example.com/partners/contoso#org",
"name": "Contoso Cloud",
"url": "https://www.contoso.com",
"logo": "https://www.example.com/images/contoso-logo.svg",
"description": "Cloud infrastructure and security services."
},
{
"@context": "https://schema.org",
"@type": "Offer",
"@id": "https://www.example.com/partners/contoso#offer",
"name": "Northwind + Contoso Growth Bundle",
"description": "Bundle offer with 20% off Northwind Pro and free Contoso onboarding.",
"price": "199.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://www.example.com/partners/contoso",
"seller": { "@id": "https://www.example.com/partners/northwind#org" }
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Who is eligible for the bundle?",
"acceptedAnswer": {
"@type": "Answer",
"text": "New customers who sign up during the campaign window are eligible."
}
},
{
"@type": "Question",
"name": "How do I redeem the offer?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Complete the signup form on the partnership page to receive redemption instructions."
}
},
{
"@type": "Question",
"name": "How long does the promotion last?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The offer is available through June 30 and is subject to availability."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Partners", "item": "https://www.example.com/partners" },
{ "@type": "ListItem", "position": 3, "name": "Contoso Cloud", "item": "https://www.example.com/partners/contoso" }
]
}
]Implement and verify
- 01
Start with the live page
Confirm titles, prices, availability, policies, and visible FAQ content before generating markup.
- 02
Add one JSON-LD script
Use the combined example as a template in the document head or before the closing body tag.
- 03
Complete regional details
Fill shipping destinations and timing for every region the page actually serves.
- 04
Link the return policy
Use a stable MerchantReturnPolicy URL and keep its terms synchronized with the page.
- 05
Match visible answers
Add only FAQs that users can read on the same page, with identical answers.
- 06
Validate after changes
Run Rich Results Test after implementation and whenever price, availability, or policy data changes.
Common errors and fixes
- Missing currency or availability
Use ISO currency codes and complete schema.org availability URLs in Offer data.
- Incomplete shipping details
Include shippingDestination.addressCountry and deliveryTime.transitTime with units.
- Return policy is not connected
Reference MerchantReturnPolicy from the Offer and provide a stable public policy URL.
- FAQ answers differ from the page
Keep structured FAQ answers identical to visible answers.
Stack FAQs
Should I include both logos?
Yes. Include both brand logos on the page and in Organization entries with distinct @id values.
How do I show multiple offer tiers?
Add multiple Offer entries for each tier and match their CTA URLs.