Skip to content

feat(seo): add structured data schema on plugin pages#4656

Draft
vfanucci wants to merge 1 commit intomainfrom
feat/seo-plugin-structured-data
Draft

feat(seo): add structured data schema on plugin pages#4656
vfanucci wants to merge 1 commit intomainfrom
feat/seo-plugin-structured-data

Conversation

@vfanucci
Copy link
Copy Markdown
Contributor

Contexte

Ajout de JSON-LD structured data (TechArticle / SoftwareApplication) sur les pages plugins pour améliorer la compréhension du contenu par Google et augmenter l'éligibilité aux rich results.

Changements

Pages de tâches individuelles → TechArticle

{
  "@type": "TechArticle",
  "headline": "Upload",
  "description": "...",
  "about": { "@type": "SoftwareApplication", "@id": "https://kestra.io/plugins/plugin-aws#plugin-aws" },
  "author": { "@id": "https://kestra.io/#organization" }
}

Pages plugin / sous-catégorie → SoftwareApplication

{
  "@type": "SoftwareApplication",
  "name": "AWS",
  "applicationCategory": "DeveloperApplication",
  "applicationSubCategory": "Cloud, Data",
  "operatingSystem": "Linux, macOS, Windows, Docker, Kubernetes",
  "softwareVersion": "0.22.0",
  "offers": { "@type": "Offer", "price": "0" }
}

Fichiers modifiés

  • src/pages/plugins/[...slug].astro

Checklist de test en dev

Setup

  • Lancer le serveur de dev : npm run dev

Structured data — pages de tâches (TechArticle)

  • Ouvrir /plugins/plugin-aws/s3/io.kestra.plugin.aws.s3.upload
  • Inspecter le <script type="application/ld+json"> dans le <head>
  • Vérifier "@type": "TechArticle" présent
  • Vérifier "headline" = nom de la tâche (ex: "Upload")
  • Vérifier "about" pointe vers le plugin parent
  • Valider avec Rich Results Test

Structured data — pages plugin principal (SoftwareApplication)

  • Ouvrir /plugins/plugin-aws
  • Vérifier "@type": "SoftwareApplication"
  • Vérifier "applicationCategory": "DeveloperApplication"
  • Vérifier "softwareVersion" présent (si GitHub releases disponible)
  • Vérifier "offers.price": "0" pour les plugins open source

Structured data — plugin Enterprise Edition

  • Ouvrir un plugin EE (ex: /plugins/core/log-ee/io.kestra.plugin.ee.core.log.logshipper)
  • Vérifier "offers" contient "priceType": "https://schema.org/InvoicePrice" (pas "price": "0")

Non-régression

  • Pas d'erreur console sur les pages plugins
  • Le rendu visuel des pages est inchangé (le JSON-LD est dans le <head>, invisible)
  • La page /plugins (index général) n'a pas de script ld+json inattendu

- SoftwareApplication schema on plugin root and subgroup pages with
  softwareVersion, softwareRequirements, image, applicationSubCategory,
  and conditional offers (free vs EE)
- TechArticle schema on task/trigger definition pages, linked to parent
  plugin via `about`
- CollectionPage + hasPart schema on /plugins index (capped at 50 entries)
- All schemas injected server-side via Fragment slot="head"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

☁️ Cloudflare Worker Preview Deployed!

🔗 https://ks-feat-seo-plugin-structured-dat-docs.kestra-io.workers.dev
🔗 https://3cc28f20-docs.kestra-io.workers.dev

## 🔦 Lighthouse Benchmark

Tested: https://ks-feat-seo-plugin-structured-dat-docs.kestra-io.workers.dev on 2026-04-23 11:41 UTC
Compared against main baseline from 2026-04-10

Scores (0–100, higher is better)

Page Performance Accessibility Best Practices SEO
Home 56 79 59 92
Pricing 98 88 59 100
Enterprise 92 78 59 100
Cloud 91 83 59 100
About Us 81 🔻 -14 87 59 100
Docs Landing 92 84 59 92
Contribute to Kestra (simple docs) 94 84 59 92
Flow (full featured docs) 89 86 59 92
Blog Index 65 🔻 -16 86 59 100
Blog Post (sample) 85 🔻 -12 83 59 100
VS Page (sample) 91 88 59 100
Plugins Landing 90 77 59 92
Plugin Page (sample) 96 87 59 100
Plugin Debug Page (sample) 96 87 59 100
Plugin Debug Return Page (sample) 97 87 59 100
Blueprints Landing 93 77 56 92
Blueprint Audit Logs CSV Export 0 🔻 -61 82 0 🔻 -59 100

Core Web Vitals (lower is better)

Page LCP FCP TBT CLS Speed Index
Home 2.02 s 🟢 1.11 s 🟢 608 ms 🔻 0.000 4.00 s 🟢
Pricing 0.89 s 0.55 s 110 ms 🔻 0.000 0.75 s
Enterprise 1.57 s 0.80 s 114 ms 🔻 0.003 1.12 s 🟢
Cloud 1.76 s 0.47 s 🟢 109 ms 🔻 0.000 0.82 s
About Us 3.55 s 🔻 0.57 s 53 ms 0.000 0.81 s
Docs Landing 1.20 s 0.50 s 🟢 179 ms 0.000 1.10 s
Contribute to Kestra (simple docs) 1.07 s 0.55 s 157 ms 🔻 0.000 0.84 s
Flow (full featured docs) 0.92 s 🟢 0.57 s 🟢 250 ms 🔻 0.000 1.15 s
Blog Index 9.35 s 🔻 0.56 s 80 ms 🔻 0.000 23.21 s 🔻
Blog Post (sample) 2.41 s 🔻 0.51 s 136 ms 🔻 0.000 0.65 s 🟢
VS Page (sample) 1.72 s 0.56 s 123 ms 🔻 0.000 0.95 s
Plugins Landing 1.00 s 🟢 0.56 s 148 ms 🔻 0.000 2.28 s 🔻
Plugin Page (sample) 0.94 s 0.48 s 97 ms 🔻 0.051 1.60 s
Plugin Debug Page (sample) 0.86 s 0.56 s 105 ms 🔻 0.001 1.62 s 🔻
Plugin Debug Return Page (sample) 0.88 s 🟢 0.52 s 93 ms 0.025 1.61 s
Blueprints Landing 1.41 s 0.78 s 66 ms 0.002 1.64 s
Blueprint Audit Logs CSV Export 0.00 s 🟢 0.00 s 🟢 0 ms 🟢 0.000 🟢 0.00 s 🟢
Legend

🟢 improved  ·  🔻 regressed  ·  (blank) no significant change
Score threshold: ±10 pts  ·  Metric threshold: ±30% of baseline

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant