Home Work Approach Blog Contact
All articles

Schema.org Markup: A Practical Guide That Skips the Fluff

Which structured data types actually earn rich results, and which ones waste your time? Copy-paste-ready JSON-LD examples included.

Schema.org Markup: A Practical Guide That Skips the Fluff

Structured data lets you tell search engines directly what your page is about, instead of leaving it to guesswork. Most guides on this either stay too shallow or get needlessly complicated. Here I'm giving you the types that actually pay off, with copy-paste-ready examples.

Set expectations first

Schema is not a direct ranking factor. What it does is two things:

  • Rich result eligibility: star ratings, FAQ dropdowns, recipe cards — visual elements in search results. This doesn't lift your ranking, but it can seriously lift your click-through rate.
  • Entity clarity: letting Google decide, with confidence, "this page is about this specific person/organization." This is what actually matters for name searches and for AI-driven search results.

Use JSON-LD as your format. Microdata and RDFa are still supported, but they get tangled into your HTML; JSON-LD sits in a single block inside <head> and stays easy to maintain.

The types that actually pay off

Person — the most critical block for a personal site

If you want to rank for your own name, this block isn't optional. The sameAs field matters especially: listing your social profiles tells Google "this domain, that LinkedIn profile, and that GitHub account are the same person." That's what merges scattered identity signals into a single entity.

{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://yoursite.com/#person",
  "name": "Jane Doe",
  "url": "https://yoursite.com/",
  "image": "https://yoursite.com/photo.jpg",
  "jobTitle": "Web Design & Software",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Austin",
    "addressCountry": "US"
  },
  "sameAs": [
    "https://github.com/username",
    "https://www.linkedin.com/in/username/"
  ]
}

Organization / LocalBusiness — for company sites

If you serve customers from a physical address, use LocalBusiness (or a more specific subtype); add hours, phone, and geographic location. If you only operate online, a plain Organization is enough — don't invent a storefront address that doesn't exist, it backfires.

BlogPosting / Article

Fill in headline, datePublished, author and image without fail. If you link author to your Person block via @id, every article you publish feeds authority back into a single entity instead of scattering author-name text across the site.

BreadcrumbList

Cheap and effective. Instead of a bare URL, search results show a navigation trail, which lifts click-through rate. A few lines of implementation.

FAQPage — use carefully

For a while everyone slapped an FAQ schema on every page, and Google significantly restricted how often this rich result shows up as a result. If the page genuinely has question-and-answer content, add it; inventing a fake FAQ section just to earn the rich result doesn't work anymore.

What's a waste of time

  • Rating yourself. A self-issued AggregateRating gets ignored by Google and carries manual-action risk.
  • Marking up information that isn't on the page. Schema needs to match the page's visible content. A mismatch is grounds for a structured-data penalty.
  • Slapping WebPage on everything. Generic blocks that add no extra information earn you nothing.

Three practical notes for international / non-English sites

  1. Character encoding. Your JSON-LD output must be UTF-8. If you're generating it with PHP, use the JSON_UNESCAPED_UNICODE flag — otherwise accented names and non-Latin characters turn into broken escape sequences.
  2. Declare the language. Add "inLanguage": "en-US" (or whatever locale applies). It's a small detail, but it helps matching in non-English search queries.
  3. Date format. You can display 21 July 2026 to humans, but inside schema the date must be ISO 8601: 2026-07-21.

Validating it

Before you launch, test with two tools: Google's Rich Results Test and the Schema.org validator. The first answers "can this earn a rich result," the second answers "is my markup technically valid." They check different things — run both.

After launch, watch the "Enhancements" section in Search Console — that's where you'll see how Google is actually reading your markup. This continues directly from item 16 in the pre-launch checklist.

More articles