We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.
Photography booking pages with LocalBusiness + Service + FAQs and breadcrumb navigation.
Anchors NAP, URL, and brand identity for the photographer or studio.
Describes the photography service/package and provider.
Answers questions about scheduling, delivery, and rights.
Provides navigation context to the booking page.
Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).
Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.
[
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"@id": "https://www.example.com/photography#business",
"name": "Sunrise Photography",
"url": "https://www.example.com/photography",
"telephone": "+1-917-555-0199",
"image": "https://www.example.com/images/studio.webp",
"address": {
"@type": "PostalAddress",
"streetAddress": "45 Broadway",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10006",
"addressCountry": "US"
},
"priceRange": "$$"
},
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://www.example.com/photography#service",
"name": "Portrait Session",
"serviceType": "Photography",
"description": "60-minute portrait session with 20 edited photos delivered within 5 business days.",
"provider": { "@id": "https://www.example.com/photography#business" },
"offers": {
"@type": "Offer",
"price": "350.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://www.example.com/photography#book"
}
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How do I book?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Use the booking link to choose your date/time. A 25% deposit confirms your slot."
}
},
{
"@type": "Question",
"name": "What is included?",
"acceptedAnswer": {
"@type": "Answer",
"text": "20 edited photos in high resolution. Additional edits available for a fee."
}
},
{
"@type": "Question",
"name": "When do I get the photos?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Within 5 business days via an online gallery with download access."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Services", "item": "https://www.example.com/services" },
{ "@type": "ListItem", "position": 3, "name": "Photography", "item": "https://www.example.com/photography" }
]
}
]Yes. Add one Service per package, each with its own @id and Offer aligned to the visible CTA.
If no price is shown, omit price fields and keep offers.url/availability aligned to the booking flow.