From 834cb256b5e14a2e47f8a85aac5c3dff67246d66 Mon Sep 17 00:00:00 2001 From: Yash Israni Date: Sat, 4 Oct 2025 20:09:11 +0530 Subject: [PATCH] seo: add unique meta tags, alt text, robots.txt & sitemap Signed-off-by: Yash Israni --- docs/application-layer/install_waypoint.md | 2 + docs/application-layer/kiali.md | 4 +- .../application-layer/locality-loadbalance.md | 2 + docs/application-layer/request-routing-ads.md | 2 + .../application-layer/traffic-shifting-ads.md | 2 + docs/application-layer/try-fault-injection.md | 2 + docs/application-layer/try-request-routing.md | 2 + docs/application-layer/try-request-timeout.md | 2 + .../application-layer/try-traffic-shifting.md | 2 + docs/architecture/architecture.md | 3 +- docs/architecture/roadmap.md | 3 +- docs/community/contribute.md | 2 + docs/community/feature-lifecycle.md | 5 + docs/community/governance.md | 2 + docs/community/membership.md | 2 + docs/performance/performance.md | 2 + docs/performance/resource-consumption.md | 2 + docs/setup/develop-with-kind.md | 2 + docs/setup/quick-start.md | 3 +- docs/setup/troubleshooting.md | 2 + docs/setup/use-enhanced-kernel.md | 2 + docs/transpot-layer/accesslog.md | 2 + docs/transpot-layer/l4-metrics.md | 2 + docs/transpot-layer/performace-monitoring.md | 2 + docs/transpot-layer/service-metrics.md | 2 + docs/transpot-layer/tcp-authorization.md | 2 + docs/transpot-layer/xdp-auth.md | 2 + docusaurus.config.js | 112 +++++++++++------- src/pages/index.js | 16 ++- static/robots.txt | 39 ++++++ static/sitemap.xml | 15 +++ 31 files changed, 196 insertions(+), 48 deletions(-) create mode 100644 static/robots.txt create mode 100644 static/sitemap.xml diff --git a/docs/application-layer/install_waypoint.md b/docs/application-layer/install_waypoint.md index 188de577..808bf4d8 100644 --- a/docs/application-layer/install_waypoint.md +++ b/docs/application-layer/install_waypoint.md @@ -1,6 +1,8 @@ --- sidebar_position: 3 title: Install Waypoint +description: Deploy Kmesh waypoint proxies for L7 traffic management. +keywords: [waypoint, L7, install, service mesh, ebpf, proxy] --- If you want to make use of Kmesh L7 features, this is the prerequisites to install waypoint. diff --git a/docs/application-layer/kiali.md b/docs/application-layer/kiali.md index 540f27b7..e4c77743 100644 --- a/docs/application-layer/kiali.md +++ b/docs/application-layer/kiali.md @@ -1,6 +1,8 @@ --- sidebar_position: 8 -title: Use Kiali to visualize traffic graph under Kmesh +title: Visualise Traffic with Kiali +description: Use Kiali to view the Kmesh traffic topology graph. +keywords: [kiali, traffic graph, observability, metrics, dashboard] --- ## Preparation diff --git a/docs/application-layer/locality-loadbalance.md b/docs/application-layer/locality-loadbalance.md index 8ec2eb5f..322bbc81 100644 --- a/docs/application-layer/locality-loadbalance.md +++ b/docs/application-layer/locality-loadbalance.md @@ -1,6 +1,8 @@ --- sidebar_position: 9 title: Locality Load Balancing +description: Configure locality-aware load balancing and failover in Kmesh. +keywords: [locality, load balancing, failover, L4, ambient, zone] --- This document introduces how to use Locality Load Balancing with Istio in the Kmesh. diff --git a/docs/application-layer/request-routing-ads.md b/docs/application-layer/request-routing-ads.md index 90a4cea9..f345f68c 100644 --- a/docs/application-layer/request-routing-ads.md +++ b/docs/application-layer/request-routing-ads.md @@ -1,6 +1,8 @@ --- sidebar_position: 1 title: Request Routing +description: Route HTTP requests by weight or user identity in Kmesh. +keywords: [request routing, header routing, jason, user, http] --- This task shows you how to set up Request Routing policy for http traffic in Kmesh. diff --git a/docs/application-layer/traffic-shifting-ads.md b/docs/application-layer/traffic-shifting-ads.md index ade0913c..6ebf8230 100644 --- a/docs/application-layer/traffic-shifting-ads.md +++ b/docs/application-layer/traffic-shifting-ads.md @@ -1,6 +1,8 @@ --- sidebar_position: 2 title: Traffic Shifting +description: Set up weight-based and header-based HTTP traffic shifting in Kmesh. +keywords: [traffic shifting, weight, header, routing, http, split] --- This task shows you how to set up Traffic Shifting policy for http traffic in Kmesh. diff --git a/docs/application-layer/try-fault-injection.md b/docs/application-layer/try-fault-injection.md index 644e01aa..f7513043 100644 --- a/docs/application-layer/try-fault-injection.md +++ b/docs/application-layer/try-fault-injection.md @@ -1,6 +1,8 @@ --- sidebar_position: 6 title: Try Fault Injection +description: Learn how to inject HTTP delays & aborts to test micro-service resiliency in Kmesh. +keywords: [fault injection, http delay, abort, resilience, testing, kmesh, waypoint] --- ## Preparation diff --git a/docs/application-layer/try-request-routing.md b/docs/application-layer/try-request-routing.md index 9bba610a..3c01c665 100644 --- a/docs/application-layer/try-request-routing.md +++ b/docs/application-layer/try-request-routing.md @@ -1,6 +1,8 @@ --- sidebar_position: 4 title: Try Request Routing +description: Route traffic by version or user identity with Kmesh VirtualService policies. +keywords: [request routing, version routing, header routing, jason user, kmesh, virtualservice] --- ## Preparation diff --git a/docs/application-layer/try-request-timeout.md b/docs/application-layer/try-request-timeout.md index 66ab7d0f..f3fe1f79 100644 --- a/docs/application-layer/try-request-timeout.md +++ b/docs/application-layer/try-request-timeout.md @@ -1,6 +1,8 @@ --- sidebar_position: 7 title: Try Request Timeouts +description: Configure HTTP request timeouts and observe timeout behaviour in Kmesh. +keywords: [request timeout, http timeout, reviews service, kmesh, waypoint, fault injection] --- # Try Request Timeouts diff --git a/docs/application-layer/try-traffic-shifting.md b/docs/application-layer/try-traffic-shifting.md index f14956a8..45d11804 100644 --- a/docs/application-layer/try-traffic-shifting.md +++ b/docs/application-layer/try-traffic-shifting.md @@ -1,6 +1,8 @@ --- sidebar_position: 5 title: Try Traffic Shifting +description: Shift HTTP traffic between service versions with weighted routing. +keywords: [traffic shifting, weighted routing, canary, split, http] --- ## Preparation diff --git a/docs/architecture/architecture.md b/docs/architecture/architecture.md index 694d0e1a..5fc0da24 100644 --- a/docs/architecture/architecture.md +++ b/docs/architecture/architecture.md @@ -1,6 +1,7 @@ --- title: Kmesh Architecture -description: "" +description: High-level overview of Kmesh components – daemon, eBPF orchestration, and waypoint proxy. +keywords: [kmesh architecture, ebpf orchestration, waypoint proxy, service mesh data plane] sidebar_position: 1 --- diff --git a/docs/architecture/roadmap.md b/docs/architecture/roadmap.md index 7b937887..1b65be3e 100644 --- a/docs/architecture/roadmap.md +++ b/docs/architecture/roadmap.md @@ -1,6 +1,7 @@ --- title: Roadmap -description: "" +description: Kmesh feature timeline – traffic management, security, observability, and ecosystem collaboration. +keywords: [kmesh roadmap, feature timeline, traffic management, observability, ebpf] sidebar_position: 2 --- diff --git a/docs/community/contribute.md b/docs/community/contribute.md index 34cd548a..13d7a155 100644 --- a/docs/community/contribute.md +++ b/docs/community/contribute.md @@ -1,5 +1,7 @@ --- title: Contributing +description: Join the Kmesh community – learn how to contribute code, docs, or feedback. +keywords: [contribute, community, kmesh, cncf, pull request, good first issue] sidebar_position: 1 --- diff --git a/docs/community/feature-lifecycle.md b/docs/community/feature-lifecycle.md index c172b04d..7ff8d5ed 100644 --- a/docs/community/feature-lifecycle.md +++ b/docs/community/feature-lifecycle.md @@ -1,5 +1,7 @@ --- title: Feature Lifecycle +description: Understand Alpha, Beta, and GA stages for Kmesh features and APIs. +keywords: [feature lifecycle, alpha beta ga, api stability, graduation criteria, kmesh] sidebar_position: 2 --- @@ -10,8 +12,11 @@ Each version has different level of stability, support time, and requires different graduation criteria moving to next level: - [Alpha](#alpha) + - [Graduation Criteria](#graduation-criteria) - [Beta](#beta) + - [Graduation Criteria](#graduation-criteria-1) - [GA](#ga) + - [Graduation Criteria](#graduation-criteria-2) ## Alpha diff --git a/docs/community/governance.md b/docs/community/governance.md index b9cda686..b0f95f3e 100644 --- a/docs/community/governance.md +++ b/docs/community/governance.md @@ -1,5 +1,7 @@ --- title: Governance +description: Kmesh project governance – values, membership, meetings, and decision-making process. +keywords: [governance, values, membership, steering committee, kmesh, cncf] sidebar_position: 3 --- diff --git a/docs/community/membership.md b/docs/community/membership.md index f6185652..e7d2985b 100644 --- a/docs/community/membership.md +++ b/docs/community/membership.md @@ -1,5 +1,7 @@ --- title: Membership +description: Community roles in Kmesh – Member, Reviewer, Approver, Maintainer – and how to advance. +keywords: [community roles, member, reviewer, approver, maintainer, kmesh, ladder] sidebar_position: 4 --- diff --git a/docs/performance/performance.md b/docs/performance/performance.md index a78650ba..a9a1b819 100644 --- a/docs/performance/performance.md +++ b/docs/performance/performance.md @@ -1,5 +1,7 @@ --- title: Kmesh Performance +description: Benchmark results, test methodology, and performance metrics for Kmesh eBPF data plane. +keywords: [kmesh performance, fortio benchmark, latency, throughput, ebpf, observability] sidebar_position: 1 --- diff --git a/docs/performance/resource-consumption.md b/docs/performance/resource-consumption.md index bb8be014..8012022a 100644 --- a/docs/performance/resource-consumption.md +++ b/docs/performance/resource-consumption.md @@ -1,5 +1,7 @@ --- title: Kmesh Resource Consumption +description: CPU and memory usage analysis of Kmesh eBPF programs under various load scenarios. +keywords: [resource consumption, cpu usage, memory usage, ebpf, kmesh, stress test] sidebar_position: 2 --- diff --git a/docs/setup/develop-with-kind.md b/docs/setup/develop-with-kind.md index 02169fe1..b4600d8b 100644 --- a/docs/setup/develop-with-kind.md +++ b/docs/setup/develop-with-kind.md @@ -1,5 +1,7 @@ --- title: Deploy/Develop with Kind +description: Quick guide to create a local Kubernetes cluster with Kind and deploy Kmesh for development. +keywords: [kind, local cluster, development, kmesh, istio ambient, ebpf] sidebar_position: 2 --- diff --git a/docs/setup/quick-start.md b/docs/setup/quick-start.md index 561d39f8..debaf4bb 100644 --- a/docs/setup/quick-start.md +++ b/docs/setup/quick-start.md @@ -1,6 +1,7 @@ --- title: Quick Start -description: This guide lets you quickly install Kmesh. +description: Get Kmesh running in under 10 minutes – prerequisites, install options, and first service test. +keywords: [quick start, install kmesh, kubernetes, istio ambient, ebpf, helm] sidebar_position: 1 --- diff --git a/docs/setup/troubleshooting.md b/docs/setup/troubleshooting.md index 677219dd..29860b96 100644 --- a/docs/setup/troubleshooting.md +++ b/docs/setup/troubleshooting.md @@ -1,5 +1,7 @@ --- title: Installation Troubleshooting Guide +description: Fix common Kmesh install issues – port conflicts, dependencies, CNI errors, and health checks. +keywords: [troubleshooting, port 15006, libbpf, cni conflict, kmesh, debug] sidebar_position: 4 --- diff --git a/docs/setup/use-enhanced-kernel.md b/docs/setup/use-enhanced-kernel.md index 5dee962f..05675614 100644 --- a/docs/setup/use-enhanced-kernel.md +++ b/docs/setup/use-enhanced-kernel.md @@ -1,5 +1,7 @@ --- title: Use Enhanced Kernel +description: Enable full Kmesh features (L7, etc.) on openEuler 23.03 with kernel 6.1+. +keywords: [enhanced kernel, openeuler 23.03, kernel 6.1, l7 traffic, ebpf, kmesh] sidebar_position: 3 --- diff --git a/docs/transpot-layer/accesslog.md b/docs/transpot-layer/accesslog.md index 4f4e0258..4156ea07 100644 --- a/docs/transpot-layer/accesslog.md +++ b/docs/transpot-layer/accesslog.md @@ -1,6 +1,8 @@ --- sidebar_position: 6 title: Access Logs +description: Enable and interpret Kmesh TCP access logs with kmeshctl. +keywords: [access logs, kmeshctl, tcp logging, ebpf, monitoring] --- ## Enable Kmesh access logging diff --git a/docs/transpot-layer/l4-metrics.md b/docs/transpot-layer/l4-metrics.md index 184c30d5..4a2704b9 100644 --- a/docs/transpot-layer/l4-metrics.md +++ b/docs/transpot-layer/l4-metrics.md @@ -1,6 +1,8 @@ --- sidebar_position: 2 title: Querying L4 Metrics from Prometheus +description: Collect and query Kmesh L4 TCP metrics via Prometheus dashboards. +keywords: [l4 metrics, prometheus, tcp metrics, kmesh, observability] --- ## Preparation diff --git a/docs/transpot-layer/performace-monitoring.md b/docs/transpot-layer/performace-monitoring.md index 115d2177..16c17f0f 100644 --- a/docs/transpot-layer/performace-monitoring.md +++ b/docs/transpot-layer/performace-monitoring.md @@ -1,6 +1,8 @@ --- sidebar_position: 4 title: Use Grafana to visualize kmesh performance monitoring +description: Build Grafana dashboards to monitor Kmesh daemon performance in real time. +keywords: [grafana, performance monitoring, ebpf, kmesh, dashboards] --- **NOTE:** This is an immature feature, so we turn it off by default, you can optionally turn it on. diff --git a/docs/transpot-layer/service-metrics.md b/docs/transpot-layer/service-metrics.md index 6483b862..be0574ba 100644 --- a/docs/transpot-layer/service-metrics.md +++ b/docs/transpot-layer/service-metrics.md @@ -1,6 +1,8 @@ --- sidebar_position: 5 title: Use Grafana to visualize service metrics +description: Visualize Kmesh service-level metrics (traffic, latency, errors) in Grafana. +keywords: [service metrics, grafana, kmesh, dashboards, observability] --- ## Preparation diff --git a/docs/transpot-layer/tcp-authorization.md b/docs/transpot-layer/tcp-authorization.md index 86d33070..ed068346 100644 --- a/docs/transpot-layer/tcp-authorization.md +++ b/docs/transpot-layer/tcp-authorization.md @@ -1,6 +1,8 @@ --- sidebar_position: 1 title: TCP Authorization +description: Enforce IP-based ALLOW/DENY policies for TCP traffic in Kmesh with AuthorizationPolicy. +keywords: [tcp authorization, authorizationpolicy, ip allowlist, kmesh, security] --- diff --git a/docs/transpot-layer/xdp-auth.md b/docs/transpot-layer/xdp-auth.md index cf07c791..38223f6c 100644 --- a/docs/transpot-layer/xdp-auth.md +++ b/docs/transpot-layer/xdp-auth.md @@ -1,6 +1,8 @@ --- sidebar_position: 3 title: TCP Authorization in XDP +description: Accelerate TCP authorization by enforcing port/IP policies directly in XDP/eBPF. +keywords: [xdp auth, ebpf, port deny, ip deny, kmesh, authorization] --- ## Authorization in XDP diff --git a/docusaurus.config.js b/docusaurus.config.js index 3c5a39bd..7719d496 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -6,13 +6,12 @@ import { themes as prismThemes } from "prism-react-renderer"; /** @type {import('@docusaurus/types').Config} */ const config = { title: "Kmesh", - favicon: "img/favicons/favicon.ico", + tagline: + "Kmesh is a high-performance service grid data plane software implemented based on the eBPF and programmable kernel.", + favicon: "/static/img/favicons/favicon.ico", - // Set the production url of your site here + // Production URL (no trailing slash) url: "https://kmesh.net", - - // Set the // pathname under which your site is served - // For GitHub pages deployment, it is often '//' baseUrl: "/", onBrokenLinks: "throw", @@ -22,13 +21,8 @@ const config = { defaultLocale: "en", locales: ["en", "zh"], localeConfigs: { - en: { - htmlLang: "en-GB", - label: "English", - }, - zh: { - label: "简体中文", - }, + en: { htmlLang: "en-GB", label: "English" }, + zh: { label: "简体中文" }, }, }, @@ -39,28 +33,23 @@ const config = { ({ docs: { sidebarPath: "./sidebars.js", - editUrl: "https://github.com/kmesh-net/website/blob/main", + editUrl: "https://kmesh.net/docs/welcome", showLastUpdateAuthor: true, showLastUpdateTime: true, }, + blog: { + showReadingTime: true, + feedOptions: { type: ["rss", "atom"], xslt: true }, + editUrl: "https://kmesh.net/blog", + // silence non-SEO warnings + onInlineTags: "ignore", + onInlineAuthors: "ignore", + onUntruncatedBlogPosts: "ignore", + }, gtag: { trackingID: "G-854W8PEZ1Z", anonymizeIP: true, }, - blog: { - showReadingTime: true, - feedOptions: { - type: ["rss", "atom"], - xslt: true, - }, - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: "https://github.com/kmesh-net/website/blob/main", - // Useful options to enforce blogging best practices - onInlineTags: "warn", - onInlineAuthors: "warn", - onUntruncatedBlogPosts: "warn", - }, theme: { customCss: "./src/css/custom.css", }, @@ -71,19 +60,46 @@ const config = { themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ - // Replace with your project's social card - docs: { - sidebar: { - hideable: true, - autoCollapseCategories: true, + /* ------- GLOBAL SEO ------- */ + metadata: [ + { + name: "description", + content: + "Kmesh - eBPF-based high-performance service-mesh load balancer. Docs, downloads, tutorials and community.", }, + { + name: "keywords", + content: + "kmesh, service mesh, ebpf, load balancer, cloud native, kubernetes, eBPF, cncf", + }, + { name: "author", content: "Kmesh Project" }, + { property: "og:type", content: "website" }, + { property: "og:site_name", content: "Kmesh" }, + { + property: "og:image", + content: "/img/favicons/favicon.ico", + }, + { property: "og:image:width", content: "1200" }, + { property: "og:image:height", content: "630" }, + { property: "og:image:alt", content: "Kmesh eBPF Service Mesh" }, + { name: "twitter:card", content: "summary_large_image" }, + { name: "twitter:site", content: "@Kmesh_net" }, + { name: "twitter:creator", content: "@Kmesh_net" }, + ], + + docs: { + sidebar: { hideable: true, autoCollapseCategories: true }, + }, + + sitemap: { + changefreq: "weekly", + priority: 0.5, + ignorePatterns: ["/tags/**"], }, + navbar: { title: "Kmesh", - logo: { - alt: "Kmesh", - src: "img/favicons/favicon.ico", - }, + logo: { alt: "Kmesh logo", src: "img/favicons/favicon.ico" }, items: [ { type: "docSidebar", @@ -113,20 +129,19 @@ const config = { className: "header-youtube-link header-icon", }, { - to: "https://app.slack.com/client/T08PSQ7BQ/C06BU2GB8NL", + href: "https://app.slack.com/client/T08PSQ7BQ/C06BU2GB8NL", position: "right", className: "header-slack-link header-icon", }, - { - type: "localeDropdown", - position: "right", - }, + { type: "localeDropdown", position: "right" }, ], }, + footer: { style: "dark", copyright: `Copyright © Kmesh a Series of LF Projects, LLC
For website terms of use, trademark policy and other project policies please see lfprojects.org/policies/.`, }, + prism: { theme: prismThemes.github, darkTheme: prismThemes.dracula, @@ -152,13 +167,24 @@ const config = { [ "docusaurus-lunr-search", { - languages: ["en",'zh'], + languages: ["en", "zh"], indexDocs: true, indexBlog: true, indexPages: false, - } + }, ], ], + + // --- 性能:字体预载 + 长缓存 --- + stylesheets: [ + { + href: "/fonts/inter.woff2", + type: "font/woff2", + rel: "preload", + as: "font", + crossOrigin: "anonymous", + }, + ], }; export default config; diff --git a/src/pages/index.js b/src/pages/index.js index 3f3b4495..abd0f975 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -6,6 +6,20 @@ import Supporters from "../components/Supporters"; import Blogs from "../components/Blogs"; import CNCFInfo from "../components/CNCFInfo"; +export const metadata = { + title: "Kmesh – eBPF Service Mesh", + description: "High-performance, sidecar-less service mesh powered by eBPF and programmable kernel.", + keywords: ["kmesh", "ebpf", "service mesh", "kubernetes", "cncf"], + image: "/img/favicons/favicon.ico", + url: "https://kmesh.net", + twitter: { + card: "summary_large_image", + site: "@Kmesh_net", + creator: "@Kmesh_net", + }, + robots: "index, follow", +}; + export default function Home() { return ( @@ -17,4 +31,4 @@ export default function Home() { ); -} +} \ No newline at end of file diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 00000000..f6da96c2 --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,39 @@ +User-agent: * # applies to every bot +Allow: / # whole site indexable + +# Crawl-delay for polite bots (optional) +Crawl-delay: 1 # 1 s between requests (Bing/Yandex obey) + +# Sitemap location +Sitemap: https://kmesh.net/sitemap.xml + +Disallow: /admin/ +Disallow: /api/ +Disallow: /private/ +Disallow: /*.pdf? # block query-string PDFs (print views, etc.) +Disallow: /search? # internal search result pages +Disallow: /_next/ # Next.js build artefacts +Disallow: /tags/ # tag listing pages (thin content) + +User-agent: Googlebot +Allow: / +# No crawl-delay for Google + +User-agent: Bingbot +Allow: / +Crawl-delay: 1 # be nice to Bing + +User-agent: GPTBot +Disallow: / + +User-agent: ChatGPT-User +Disallow: / + +User-agent: CCBot +Disallow: / + +User-agent: Google-Extended +Disallow: / + +User-agent: Mediapartners-Google +Allow: / \ No newline at end of file diff --git a/static/sitemap.xml b/static/sitemap.xml new file mode 100644 index 00000000..d256c047 --- /dev/null +++ b/static/sitemap.xml @@ -0,0 +1,15 @@ + + + + https://kmesh.net/ + 2025-06-20 + weekly + 1.0 + + + https://kmesh.net/docs/welcome + 2025-06-20 + monthly + 0.8 + + \ No newline at end of file