---
title: Blogi struktureeritud andmed
description: Loob postitustele JSON-LD skeemi: artikkel, autor, organisatsioon, leivapuru, KKK.
category: Marketing
sublabel: Sisu
author: AgriciDaniel
tags: 
license: MIT
source: https://github.com/AgriciDaniel/claude-blog
---

# Blog Schema: JSON-LD struktureeritud andmete loomine

Loob blogipostitustele täieliku, valideeritud JSON-LD skeemamärgistuse,
kasutades @graph-mustrit. Kombineerib mitu skeematüüpi ühte script-silti
stabiilsete @id-viidetega olemite sidumiseks.

## Töövoog

### 1. samm: loe sisu

Loe blogipostitus ja võta välja kõik skeemale olulised andmed:
- **Pealkiri** (headline)
- **Autor** (nimi, ametinimetus, sotsiaalmeedia lingid, kvalifikatsioon)
- **Kuupäevad** (datePublished, dateModified / lastUpdated)
- **Kirjeldus** (metakirjeldus)
- **KKK-sektsioon** (küsimuste ja vastuste paarid)
- **Pildid** (kaanepildi URL, mõõtmed, alt-tekst; sisesed pildid)
- **Organisatsiooni teave** (saidi nimi, URL, logo)
- **Sõnade arv** (ligikaudne sisu pikkuse järgi)
- **Sildid/kategooriad** (BreadcrumbList kategooria jaoks)
- **Slug** (failinimest või frontmatter'ist)

### 2. samm: loo BlogPosting skeem

Täielik BlogPosting soovitatud omadustega, kui need kohalduvad:

```json
{
  "@type": "BlogPosting",
  "@id": "{siteUrl}/blog/{slug}#article",
  "headline": "Concise post title",
  "description": "Concise page-specific meta description",
  "datePublished": "YYYY-MM-DD",
  "dateModified": "YYYY-MM-DD",
  "author": { "@id": "{siteUrl}/author/{author-slug}#person" },
  "publisher": { "@id": "{siteUrl}#organization" },
  "image": { "@id": "{siteUrl}/blog/{slug}#primaryimage" },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "{siteUrl}/blog/{slug}"
  },
  "wordCount": 2400,
  "articleBody": "First 200 characters of content as excerpt..."
}
```

Google'i Article'i struktureeritud andmete dokumentatsioon ei määratle
nõutavaid Article'i omadusi. Lisa `headline`, `datePublished`, `author`,
`publisher` ja `image`, kui need kohalduvad, valideeri Rich Results Test'iga ja
käsitle puuduvaid välju hoiatustena, kui sihtpind neid ei nõua. Soovitatud
omadused: description, dateModified, mainEntityOfPage, wordCount, articleBody
(väljavõte).

### 3. samm: loo Person skeem

Autori skeem stabiilse @id-ga ristviitamiseks:

```json
{
  "@type": "Person",
  "@id": "{siteUrl}/author/{author-slug}#person",
  "name": "Author Name",
  "jobTitle": "Role or Title",
  "url": "{siteUrl}/author/{author-slug}",
  "sameAs": [
    "https://twitter.com/handle",
    "https://linkedin.com/in/handle",
    "https://github.com/handle"
  ]
}
```

Valikulised omadused (lisa, kui saadaval):
- `alumniOf` — haridusasutus (Organization-tüüp)
- `worksFor` — tööandja (viide Organization @id-le, kui sama olem)

### 4. samm: loo Organization skeem

Blogi emaorganisatsiooni olem:

```json
{
  "@type": "Organization",
  "@id": "{siteUrl}#organization",
  "name": "Organization Name",
  "url": "{siteUrl}",
  "logo": {
    "@type": "ImageObject",
    "url": "{siteUrl}/logo.png",
    "width": 600,
    "height": 60
  },
  "sameAs": [
    "https://twitter.com/org",
    "https://linkedin.com/company/org",
    "https://github.com/org"
  ]
}
```

Logo nõuded: kasuta kehtivat roomatavat pildi-URL-i ja järgi sihtpinna jaoks
kehtivat Organization'i ja Article'i dokumentatsiooni. Ära leiuta fikseeritud
logomõõtmeid, kui projekt või kehtiv dokumentatsioon seda ei nõua.

### 5. samm: loo BreadcrumbList

Navigeerimise jälgede skeem, mis näitab sisu hierarhiat:

```json
{
  "@type": "BreadcrumbList",
  "@id": "{siteUrl}/blog/{slug}#breadcrumb",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "{siteUrl}"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Category Name",
      "item": "{siteUrl}/blog/category/{category-slug}"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Post Title",
      "item": "{siteUrl}/blog/{slug}"
    }
  ]
}
```

Kui kategooriat pole saadaval, kasuta teise jälje elemendina „Blog“ ja URL-ina
`{siteUrl}/blog`.

### 6. samm: loo FAQPage olemi skeem (valikuline)

Võta blogipostituse KKK-sektsioonist välja küsimuste ja vastuste paarid:

```json
{
  "@type": "FAQPage",
  "@id": "{siteUrl}/blog/{slug}#faq",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is the question?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The complete visible answer text."
      }
    }
  ]
}
```

Google lõpetas KKK rikkaliku tulemuse kõigile saitidele 2026-05-07. FAQPage ei
ole Google'i rikkaliku tulemuse ega generatiivse AI optimeerimise rada ning see
ei teeni SEO- ega AI-valmiduse krediiti. Väljasta see ainult siis, kui nähtav
KKK tõepoolest aitab lugejaid, vähemalt ühe kehtiva `Question`'i ja vastava
nähtava vastusega. Ära pikenda vastust sihtpikkuseni ega lisa KKK-d üksnes
märgistuse pärast.

Ära asenda seda QAPage'iga. Google toetab QAPage'i ühele küsimusele
keskenduva lehe puhul, kus kasutajad saavad vastuseid esitada. Toimetuslikud
KKK-d, tugi-KKK-d ja blogi küsimuste-vastuste sektsioonid sellele mudelile ei
vasta.

### 7. samm: loo VideoObject (kui videod on olemas)

Iga postitusse manustatud YouTube'i video jaoks loo VideoObject skeem:

```json
{
  "@type": "VideoObject",
  "@id": "{siteUrl}/blog/{slug}#video-{index}",
  "name": "Video title",
  "description": "Video description excerpt (first 200 chars)",
  "thumbnailUrl": "https://img.youtube.com/vi/{videoId}/hqdefault.jpg",
  "uploadDate": "{ISO 8601 date}",
  "contentUrl": "https://www.youtube.com/watch?v={videoId}",
  "embedUrl": "https://www.youtube.com/embed/{videoId}",
  "duration": "PT{M}M{S}S",
  "interactionStatistic": {
    "@type": "InteractionCounter",
    "interactionType": { "@type": "WatchAction" },
    "userInteractionCount": {viewCount}
  }
}
```

Lisa iga VideoObject @graph-massiivi. Kasuta @id-fragmendi jaoks `#video-1`,
`#video-2` jne. Võta video metaandmed manustuse noscript-varulahendusest või
YouTube Data API-st, kui see on `blog-google` kaudu saadaval.

### 7.5. samm: loo ImageObject

Postituse põhipildi kaanepildi skeem:

```json
{
  "@type": "ImageObject",
  "@id": "{siteUrl}/blog/{slug}#primaryimage",
  "url": "https://cdn.pixabay.com/photo/.../image.jpg",
  "width": 1200,
  "height": 630,
  "caption": "Descriptive caption matching alt text"
}
```

Pildi nõuded:
- URL peab olema roomatav ja avalikult ligipääsetav
- Laius ja kõrgus peaksid peegeldama tegelikke pildimõõtmeid
- Pildiallkiri peaks kattuma või lähedalt vastama pildi alt-tekstile
- Eelistatud mõõtmed: 1200x630 (OG-ühilduv) või 1920x1080

### 8. samm: valideeri ja hoiata

Kontrolli pinnapõhist tuge enne skeematüüpide soovitamist:

| Tüüp | Google'i otsingu staatus | Kehtiv olemi/konteksti kasutus |
|------|----------------------|--------------------------|
| HowTo | Praegu Google'is rikkaliku tulemuse kogemust pole | Kehtiv schema.org-tüüp tõelisele juhendsisule |
| Dataset | Kasutab Dataset Search, mitte Google'i üldotsingu rikkalikud tulemused | Kehtiv ainult tegeliku andmestiku puhul |
| QAPage | Toetatud ühe küsimuse jaoks kasutajate esitatud vastustega | Ära kasuta toimetusliku KKK-sisu jaoks |
| Course | Course list jääb erinevaks lõpetatud Course Info kogemusest | Kasuta ainult siis, kui kehtiv Course list dokumentatsioon ja nähtav sisu kattuvad |
| ClaimReview, SpecialAnnouncement, Course Info, Estimated Salary, Learning Video, Vehicle Listing | Endised Google'i otsingu kogemused; tugi lõpetati | Võivad jääda schema.org-kehtivaks, kuid ära kunagi soovita neid Google'i kõlblikkuse jaoks |
| PracticeProblem | Eemaldatud Google'i otsingust ja selle dokumentatsioonist | Ära soovita Google'i kõlblikkuse jaoks |
| Sitelinks Search Box | Google'i otsingus eraldi visuaalset elementi pole | Google genereerib saidilingid algoritmiliselt |

**Valideerimiskontrollid:**
1. Kõik @id-viited lahenevad @graph'i sees olevatele olemitele
2. dateModified on võrdne datePublished'iga või hilisem
3. headline on lühike. Hoiata, kui see võib kärbuda või muutuda ebaselgeks
4. description on lühike, lehepõhine ega ole postituste vahel dubleeritud
5. Kõik URL-id on absoluutsed (mitte suhtelised)
6. Pildimõõtmed on positiivsed täisarvud
7. BreadcrumbList'i positsioonid on järjestikused, alates 1-st
8. Kui FAQPage väljastatakse, on nähtav küsimuste-vastuste sisu olemas ja sisaldab vähemalt 1 kehtivat `Question`'it

**Märkus generatiivse AI kohta:** struktureeritud andmed ei ole Google'i
generatiivse AI otsingu jaoks nõutavad ja spetsiaalset AI-skeemi pole. Prioriteedi
anna täpsetele, nähtava sisuga kooskõlas olevatele Article/BlogPosting, Person,
Organization ja BreadcrumbList olemitele. Lisa ImageObject või VideoObject, kui
varad on olemas. FAQPage jääb valikuliseks lugejale suunatud märgistuseks ega
anna Google'i AI-eelist.

### 9. samm: väljund

Kombineeri kõik skeemid ühte `<script>`-silti, kasutades @graph-mustrit:

Turvanõue: ehita JSON-LD päris JSON-kodeerijaga, mitte kunagi stringi
interpolatsiooniga. Enne HTML-i manustamist muuda JSON-tekst script-turvaliseks,
põgendades sulgevad script-järjestused ja literaalsed väiksem-kui-märgid,
näiteks asenda `</` → `<\/` ja `<` → `<`. Kasutaja kontrollitavad väljad
nagu headline, description, autori nimi, pildi URL ja jälgede sildid tohivad
plokki siseneda ainult JSON-kodeeritud väärtustena.

```html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "BlogPosting", ... },
    { "@type": "Person", ... },
    { "@type": "Organization", ... },
    { "@type": "BreadcrumbList", ... },
    { "@type": "FAQPage", ... },
    { "@type": "VideoObject", ... },
    { "@type": "ImageObject", ... }
  ]
}
</script>
```

**@graph-mustri eelised:**
- Üks script-silt mitme asemel — puhtam HTML
- Olemite sidumine stabiilsete @id-viidete kaudu (nt autor viitab Person'ile @id järgi)
- Google ja AI-süsteemid parsivad @graph-massiive korrektselt
- Lihtsam hooldada ja uuendada ühe plokina

**Väljundi valikud:**
- **Manustatud HTML** — valmis kleepimiseks `<head>`'i või enne `</body>`'t
- **Eraldiseisev JSON** — CMS-i skeemaväljade või API-sisestuse jaoks
- **MDX-komponent** — kui projekt kasutab MDX-i, mähi komponenti

Salvesta loodud skeem blogipostituse faili või eraldi skeemafaili, nagu kasutaja
eelistab.

Google suudab töödelda JavaScriptiga loodud JSON-LD-d, kui see on renderdatud
DOM-is olemas. Serveris renderdatud märgistus on endiselt teisaldatavam
mitte-Google'i roomajatele, kuid ainult lähtekoodis olev JSON-LD ei ole
Google'i nõue. Dünaamilise märgistuse puhul valideeri renderdatud URL, kinnita,
et väärtused vastavad nähtavale sisule, ja väldi hilinenud või ebaõnnestunud
kliendipäringuid, mis jätavad renderdatud DOM-i tühjaks.