Jamdesk Documentation logo

SEO Optimization

Control titles, descriptions, and meta tags for search engines and social previews. Jamdesk auto-generates sitemaps and Open Graph images.

Optimize your docs for search engines and social previews by setting titles, descriptions, and metadata in frontmatter.

What Jamdesk Does Automatically

Meta Tags

Title and description from frontmatter become meta tags.

Open Graph

Social sharing images generated for each page.

Sitemap & Robots

XML sitemap and robots.txt generated on every build.

JSON-LD

Schema.org structured data on every page for rich search results.

IndexNow

Changed URLs submitted to search engines after each build.

AI Endpoints

llms.txt and MCP server for AI tools to read your docs.

Optimizing Your Content

Write Effective Frontmatter

---
title: User Authentication    # Under 60 characters
description: Set up OAuth, JWT, and session-based authentication  # 120-160 characters
---

Front-load keywords. "Authentication setup" is better than "How to set up authentication."

Page Titles

  • Keep under 60 characters to avoid truncation in search results
  • Include your primary keyword near the beginning
  • Make each title unique across your docs

Descriptions

  • Aim for 120-160 characters
  • Summarize what the reader will learn
  • Include relevant keywords naturally

Auto-generated fallback. When description is missing from frontmatter, Jamdesk automatically extracts the first prose paragraph from your page content (up to 155 characters). Headings, code blocks, images, and MDX components are skipped. This is used for <meta name="description">, Open Graph, and Twitter cards. Writing an explicit description is still recommended for best results.

Controlling Indexing

Site-Wide Settings

In your docs.json, configure default robot behavior:

{
  "seo": {
    "metatags": {
      "robots": "index, follow"
    }
  }
}

Per-Page Control

Override indexing for specific pages in frontmatter:

---
title: Internal Notes
noindex: true
---

Use noindex for:

  • Draft or work-in-progress pages
  • Internal documentation
  • Deprecated content you're keeping for reference

Canonical URLs

If your docs are accessible at multiple URLs, set a canonical:

---
title: Getting Started
canonical: https://docs.example.com/getting-started
---

Open Graph Customization

Override the auto-generated social image:

---
title: API Reference
og:image: /images/api-social-card.png
---

Sitemap & Robots.txt

Every Jamdesk site generates sitemap.xml and robots.txt automatically on each build.

FilePurpose
sitemap.xmlLists all pages with last-modified dates for search engines
robots.txtAllows all crawlers and points them to the sitemap

Where to find them

The URLs depend on whether your docs live at a root domain or under a /docs subpath:

If your docs are at the root of your domain (e.g., docs.acme.com or acme.jamdesk.app):

https://docs.acme.com/sitemap.xml
https://docs.acme.com/robots.txt

What's included in the sitemap

  • All published pages (excluding those with noindex or hidden frontmatter)
  • Last-modified dates from frontmatter when available
  • Weekly change frequency

Excluding pages from the sitemap

Add noindex to frontmatter to exclude a page from both the sitemap and search engines:

---
title: Internal Notes
noindex: true
---

Pages with hidden: true are also excluded automatically.

JSON-LD Structured Data

Every page automatically includes schema.org structured data as a <script type="application/ld+json"> tag with two schemas:

  • WebSite — Your site name, URL, and description (from docs.json)
  • BreadcrumbList — Navigation path from Home to the current page, derived from your navigation config

No configuration needed. Search engines use this for rich results like breadcrumb trails in search listings.

Verify your markup. Paste any page URL into Google's Rich Results Test to confirm the structured data is detected.

IndexNow

After each build, Jamdesk automatically submits changed page URLs to IndexNow for faster search engine indexing. This notifies Bing, Yandex, and other participating search engines about your content changes without waiting for their next crawl cycle.

  • Fires after every successful build
  • Only submits pages that actually changed
  • Non-blocking — never delays your build
  • No configuration required

Best Practices

Every page has a unique, descriptive title
Descriptions summarize the content accurately
Headings use a logical hierarchy (H1 → H2 → H3)
Internal links use descriptive anchor text
Images have alt text for accessibility
Frontmatter Reference

All available frontmatter options

docs.json Reference

Site-wide configuration options