AEO Saigon
How-to

Schema Strategy for Service Landing Pages: Optimizing Conversion Pages for AI Search

Table of contents

A service landing page is where customers decide whether to get in touch — but more and more users ask AI before visiting a website: "how much does logo design cost in Ho Chi Minh City?" or "reputable AEO company in Vietnam." AI synthesizes and recommends — and correct schema is the deciding factor in whether you get recommended.

Schema stack for a service landing page

Service Landing Page
├── BreadcrumbList          → navigation
├── Service                 → service description + price + service area
│   ├── provider → Organization  (@id reuse)
│   ├── offers → Offer / AggregateOffer
│   └── areaServed → City/Country
├── FAQPage                 → questions from people considering buying
├── HowTo (optional)        → working process
└── AggregateRating (if reviews available)

Complete Service JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Service",
  "@id": "https://example.vn/vi/dich-vu/thiet-ke-website",
  "name": "Dịch Vụ Thiết Kế Website Chuyên Nghiệp",
  "description": "Thiết kế và phát triển website doanh nghiệp từ A đến Z — từ UI/UX design, lập trình, đến SEO cơ bản và training sử dụng. Phù hợp với SME, startup và doanh nghiệp vừa muốn có website chuyên nghiệp với chi phí hợp lý. Thời gian hoàn thành 4-8 tuần tuỳ phức tạp. Bảo hành 12 tháng kỹ thuật.",
  "serviceType": "Web Design and Development",
  "provider": {
    "@type": "Organization",
    "@id": "https://example.vn",
    "name": "Studio Digital ABC",
    "url": "https://example.vn",
    "telephone": "+84-28-1234-5678",
    "logo": "https://example.vn/logo.png"
  },
  "areaServed": [
    { "@type": "City", "name": "Hồ Chí Minh" },
    { "@type": "City", "name": "Hà Nội" },
    { "@type": "Country", "name": "Vietnam" }
  ],
  "availableChannel": {
    "@type": "ServiceChannel",
    "serviceUrl": "https://example.vn/vi/lien-he",
    "servicePhone": "+84-28-1234-5678",
    "serviceType": "Online + Offline consultation"
  },
  "offers": {
    "@type": "AggregateOffer",
    "lowPrice": "8000000",
    "highPrice": "80000000",
    "priceCurrency": "VND",
    "offerCount": 3,
    "offers": [
      {
        "@type": "Offer",
        "name": "Gói Landing Page",
        "description": "1 trang landing page chuyên nghiệp, responsive, tốc độ cao, CMS đơn giản",
        "price": "8000000",
        "priceCurrency": "VND"
      },
      {
        "@type": "Offer",
        "name": "Gói Website Doanh Nghiệp",
        "description": "5-10 trang, CMS đầy đủ, blog, form liên hệ, tích hợp Google Analytics",
        "price": "25000000",
        "priceCurrency": "VND"
      },
      {
        "@type": "Offer",
        "name": "Gói E-commerce",
        "description": "Cửa hàng online đầy đủ: quản lý sản phẩm, giỏ hàng, thanh toán, vận chuyển",
        "price": "50000000",
        "priceCurrency": "VND"
      }
    ]
  },
  "termsOfService": "https://example.vn/vi/dieu-khoan",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "67"
  },
  "review": [
    {
      "@type": "Review",
      "reviewRating": { "@type": "Rating", "ratingValue": "5" },
      "author": { "@type": "Organization", "name": "Công ty TNHH Minh Phát" },
      "reviewBody": "Đội ngũ nhiệt tình, hiểu yêu cầu nhanh. Website đúng hạn, đúng ngân sách. SEO cơ bản được set up tốt.",
      "datePublished": "2026-06-15"
    }
  ]
}

HowTo schema for the working process

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "Quy Trình Thiết Kế Website tại Studio Digital ABC",
  "description": "4 bước từ khảo sát đến bàn giao website hoàn chỉnh",
  "totalTime": "PT672H",
  "step": [
    {
      "@type": "HowToStep",
      "position": 1,
      "name": "Khảo sát và lập yêu cầu",
      "text": "Buổi meeting 90 phút (online hoặc offline) để hiểu business, đối tượng khách hàng, mục tiêu website. Sau meeting: document yêu cầu chi tiết và quotation chính thức trong 2 ngày làm việc."
    },
    {
      "@type": "HowToStep",
      "position": 2,
      "name": "Design UI/UX",
      "text": "Thiết kế wireframe và mockup trên Figma. Khách hàng review và góp ý tối đa 2 vòng. Thời gian: 1-2 tuần tuỳ số trang."
    },
    {
      "@type": "HowToStep",
      "position": 3,
      "name": "Lập trình và tích hợp",
      "text": "Code responsive từ design đã duyệt. Tích hợp CMS, form, analytics, tốc độ tải. Test trên Chrome, Safari, mobile. Thời gian: 2-4 tuần."
    },
    {
      "@type": "HowToStep",
      "position": 4,
      "name": "Bàn giao và training",
      "text": "Deploy lên hosting, training sử dụng CMS (buổi 60 phút có ghi hình). Bàn giao toàn bộ source code và credentials. Bảo hành kỹ thuật 12 tháng."
    }
  ]
}

Common schema errors on service landing pages

ErrorConsequenceFix
Only Organization, no ServiceAI knows the company but not its servicesAdd Service schema with a full description
FAQ full of marketing questionsAI won't cite marketing FAQWrite real questions from people actively considering buying
Price listed as "negotiable" with no declared valueAI cannot compare prices for usersDeclare a starting price or a price range
Fabricated AggregateRatingRisk of penalty from GoogleOnly use reviews from real customers
Missing areaServedAI cannot match geographic queriesAdd city/country served
Service and Organization sharing the same @idSchema conflictGive each entity its own unique @id

Correct schema for a service landing page not only helps AI cite your services accurately — it also makes your service information appear consistently whether users search via Google Search, Google Maps, ChatGPT, or Perplexity.

Frequently asked questions

Why do service pages need different schema from blog posts?

Blog posts are optimized for AI to cite general information and explain concepts. Service landing pages need AI to understand: this organization provides a specific service, at a specific price, serving a specific area, with customer reviews. Appropriate schema: Service (describes the service), Offer (price and terms), AggregateRating (credibility), FAQPage (questions from people considering purchasing), HowTo (working process). The right combination means AI describes your service like an expert consultant rather than making random citations.

What are the most important fields in Service schema?

Service schema has: name (service name), description (detailed description), provider (the providing Organization), areaServed (service area), serviceType (type of service), offers (pricing), termsOfService (terms), availableChannel (contact channel). Most important: (1) description must clearly state what the service does, who it's for, and what outcomes it delivers — 100+ words, (2) offers with a specific price or price range — AI uses this when answering 'how much does service X cost', (3) areaServed — AI uses this to match geographic queries like 'service X in Ho Chi Minh City'. Not every field is required — fill in what accurately reflects the real service.

How many schemas should be placed on a single landing page?

A typical service landing page has 3-4 schemas: (1) Service — describes the main service, (2) Organization — provider information (declared once, reused via @id), (3) FAQPage — questions from people considering buying, (4) BreadcrumbList — navigation structure. If testimonials or reviews are present: add AggregateRating. If there is a pricing table: add Offer or AggregateOffer. Don't stuff all schemas into one JSON-LD block — each schema in a separate script tag, or use an array in one script. Avoid schema unrelated to the actual page content.

What questions should FAQ focus on for a landing page?

Landing page FAQ is different from blog FAQ: it must answer questions from someone actively considering a purchase, not someone learning. Good questions: 'What does your service X include?', 'How long does it typically take to complete?', 'How is the service priced?', 'What guarantees are offered if I'm not satisfied?', 'What information do I need to provide to get started?', 'What size of business is this suitable for?'. Answers should be 50-100 words, specific and factual — not marketing language. AI cites this type of FAQ when users ask 'is company Y's service X reputable.'

How should an Offer schema be declared for B2B services priced on request?

Several options: (1) Declare a starting price: price: '5000000', description: 'Starting from 5 million VND, depending on project scope' — best option because AI has a concrete number, (2) Declare a range: use AggregateOffer with lowPrice: '5000000', highPrice: '50000000' — suitable when service packages have multiple tiers, (3) No price available: omit Offer and add a ContactPoint with contact type 'Sales' — AI will direct users to get in touch. Never declare price: '0' or price: 'Contact us' — these are invalid values and AI will misinterpret them.

AEO Saigon

An Answer Engine Optimization agency in Ho Chi Minh City — helping business websites get cited by AI. About AEO Saigon →

Want your website to be cited by AI like this?

Free Audit