The core Schema (JSON-LD) markup a website needs is Organization or LocalBusiness on the homepage, Service on service pages, BlogPosting on blog articles, BreadcrumbList on inner pages and FAQPage on visible question-and-answer sections. Every piece of markup must describe content that is actually visible on the page, and it should be validated with Google's tools before going live.
What does Schema (JSON-LD) markup do?
Schema markup describes what a page's content is in a machine-readable way for search engines and AI systems. JSON-LD is the format Google recommends because it keeps that description in a script tag separate from the visible HTML. Correct schema markup makes pages eligible for rich results and helps the business, its services and its authors be recognised clearly.
Schema does not boost rankings on its own. Its effect is indirect: rich features such as dates, breadcrumbs or ratings can lift click-through rates, while the knowledge graph and AI answer engines match the business name, address and services with more confidence. Think of schema not as a trick but as the site's summary written for machines.
Related services
Should the homepage use Organization or LocalBusiness?
Businesses with a physical address that serve a specific area should add LocalBusiness, or a more specific subtype such as ProfessionalService, to the homepage. Companies without a customer-facing address, fully online businesses and multinational firms can use Organization. Because LocalBusiness is a subtype of Organization, it inherits all of Organization's properties.
A typical LocalBusiness block sets @context to https://schema.org and @type to LocalBusiness. The name property holds the business name, url the homepage address and telephone the phone number. The address property is a PostalAddress object with streetAddress, addressLocality (for example İzmit), addressRegion (Kocaeli), postalCode and addressCountry (TR). areaServed lists the cities served, and sameAs lists social profiles.
- —@id: a permanent identifier for the entity, such as the homepage URL with #organization appended.
- —name, url and logo: brand name, homepage and a square logo URL.
- —telephone and address: must match your Google Business Profile exactly.
- —areaServed: the cities or regions you serve.
- —sameAs: official social media and directory profiles.
- —openingHoursSpecification: opening hours for businesses customers can visit in person.
Defining a stable @id lets BlogPosting or Service markup on other pages reference the same entity in their publisher or provider property. Instead of repeating business details on every page, the whole site then describes one consistent business entity.
How do you add Service schema to service pages?
Service schema describes which service a page offers, who provides it and where. Each service page, such as web design, SEO or software development, gets its own Service block. The key properties are serviceType, provider (a reference to the business @id), areaServed and description; a fixed price can be added through the offers property.
On a Kocaeli web design page, for instance, serviceType could be 'Web design', provider the @id of the business defined on the homepage, and areaServed a list of City entries for Kocaeli, İzmit and Gebze. Google has no dedicated rich result for Service; this markup is valuable mainly for entity understanding and accurate matching in AI-generated answers.
Should blog posts use Article or BlogPosting?
BlogPosting is the right choice for blog posts; it is a subtype of Article and Google applies the same rich result rules to both. The critical BlogPosting properties are headline, datePublished, dateModified, author, publisher, image and mainEntityOfPage. Dates should use ISO 8601 format and stay consistent with the dates shown on the page.
- —Use a Person or Organization object with name and url for author, not a plain text string.
- —Do not bump dateModified automatically on every build; change it only when the content really changes.
- —Keep headline aligned with the page's H1.
- —Point image at a wide image (at least 1200 pixels) that is actually used on the page.
- —Reference the homepage business @id in publisher.
When is BreadcrumbList needed?
BreadcrumbList shows where a page sits in the site hierarchy and is worth adding to inner pages, especially blog posts and pages nested under a category. A typical trail is Home, Blog, Article Title. Each item has a position (starting at 1), a name and an item URL; the item URL is optional on the last element.
Since early 2025 Google no longer shows breadcrumb trails in mobile search results, displaying only the domain, while desktop results still show them. The markup is still worth adding because it explains site structure to machines, but do not expect a visible change on mobile.
For your project
Is FAQPage schema still worth using?
FAQPage schema is still valid markup, but since August 2023 Google shows FAQ rich results only for well-known, authoritative government and health websites. Adding FAQPage to an agency or SME site will not produce expandable questions in search results, yet it still presents the question-and-answer structure in a machine-readable form.
Use FAQPage markup to clarify content structure, not in expectation of a rich result. AI answer engines and other search engines can parse clearly marked question-and-answer pairs more easily. The rule has not changed: marked-up questions and answers must be visible on the page, and marking up hidden content violates the guidelines.
How do you validate schema markup?
Schema markup is validated with two main tools. Google's Rich Results Test shows whether a page qualifies for the rich result types Google supports, while the Schema Markup Validator (validator.schema.org) checks the markup against the schema.org vocabulary. After launch, the enhancement reports in Search Console should be monitored regularly.
- —Test both a code snippet and the live URL in the Rich Results Test; the live test also shows post-JavaScript HTML.
- —Use the Schema Markup Validator for valid types Google does not feature, such as Service.
- —Confirm the JSON-LD exists in the raw HTML; schema injected only by JavaScript never reaches some bots.
- —Track errors and warnings in Search Console's structured data reports.
- —Check that visible information and marked-up information (address, dates, prices) match.
On the 404 Ajans site, each page's JSON-LD is generated from the same configuration object as its title and canonical tags and written into the raw HTML during prerendering. Crawlers that never run JavaScript see the markup too, and the schema cannot drift away from the page content.
