Loan Pre-Qualification Stack
Loan pre-qualification pages with Service + Offer details, FAQs, and breadcrumb navigation.
When to use this stack
- Personal or small business loan pre-qualification pages
- Credit pre-check flows where eligibility and rates are shown
- Pages that need clarity on timelines, documents, and fees
What is included
Describes the loan pre-qualification service, provider, and area served.
Expresses the pre-qualification offer terms, price/fees, and CTA URL.
Answers eligibility, credit impact, timelines, and document questions.
Provides navigation context to the pre-qualification 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
- areaServed.name
- availability
- itemListElement[].name
- mainEntity[].@type=Question
- mainEntity[].acceptedAnswer.text
- name
- offers.@id
- price
- priceCurrency
- provider.name
- provider.url
- serviceType
- url
Recommended properties
- category
- description
- itemListElement[].item
- mainEntity[].acceptedAnswer.text
- mainEntity[].author.name
- mainEntity[].name
- priceValidUntil
- provider.address.addressCountry
- provider.logo
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": "Service",
"@id": "https://www.example.com/loans/prequal#service",
"name": "Personal Loan Pre-Qualification",
"serviceType": "LoanPrequalification",
"description": "Check your rate without impacting credit. Get a pre-qualification decision in minutes.",
"provider": {
"@type": "Organization",
"name": "Harbor Lending",
"url": "https://www.example.com",
"logo": "https://www.example.com/assets/logo.svg",
"address": {
"@type": "PostalAddress",
"addressCountry": "US"
}
},
"areaServed": { "@type": "AdministrativeArea", "name": "United States" },
"offers": { "@id": "https://www.example.com/loans/prequal#offer" }
},
{
"@context": "https://schema.org",
"@type": "Offer",
"@id": "https://www.example.com/loans/prequal#offer",
"name": "Pre-Qualification Offer",
"price": "0.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://www.example.com/loans/prequal#start",
"category": "LoanPrequalification",
"description": "No-impact credit check with rate ranges provided instantly."
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does pre-qualification impact my credit score?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. We use a soft inquiry for pre-qualification. A hard pull occurs only after you accept an offer."
}
},
{
"@type": "Question",
"name": "How long does it take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most applicants see rate ranges in under 2 minutes. Final approval can take 1–2 business days."
}
},
{
"@type": "Question",
"name": "What documents are required?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Government ID and proof of income. We may request bank statements for verification."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Loans", "item": "https://www.example.com/loans" },
{ "@type": "ListItem", "position": 3, "name": "Pre-Qualification", "item": "https://www.example.com/loans/prequal" }
]
}
]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
Can I include multiple loan types?
Yes. Use one Service per loan type with distinct @id values and link each to its corresponding Offer.
What if pricing isn’t shown?
Set price to 0.00 if no fee is displayed and keep availability/url aligned to the visible CTA.