\n```\n\nIf relevant, also consider:\n- `FAQPage` for question/answer posts\n- `HowTo` for procedural guides\n- `Recipe` for recipes\n- `Product` for product reviews\n- `Dataset` for data posts\n\n## 6) Make citations easy\nIf you want LLMs to cite your post accurately, make source boundaries obvious.\n\nHelpful practices:\n- give each section a stable anchor ID\n- use short, quotable paragraphs\n- include tables with labeled columns\n- use bullets for distinct claims\n- cite your own sources with links\n- state definitions clearly\n- include date/version context\n\nExample section with anchor:\n\n```html\n
\n

Benchmark Method

\n

We tested PostgreSQL 16 on Ubuntu 24.04 using...

\n
\n```\n\nThat lets assistants refer to:\n- `https://example.com/blog/postgresql-read-heavy-tuning#benchmark-method`\n\n## 7) Keep content machine-friendly\nLLMs handle content better when it is:\n- unambiguous\n- specific\n- well organiz"}}}

Prompt

How do I structure my blog posts (markup, metadata, headings) so AI assistants and LLMs can easily discover, understand, and cite them?

Media publishing / Community driven media1 observationLast seen Jul 24, 2026

Latest observation

Jul 24, 2026OpenAI APIWeb search: off

To make blog posts easy for AI assistants and LLMs to discover, understand, and cite, structure them like high-quality content for humans plus machine-readable metadata and clear semantics.

1) Use semantic HTML

Prefer meaningful tags over generic divs.

  • article for the post
  • header for title/date/byline
  • main for primary content
  • section for logical sections
  • h1 for the post title
  • h2 / h3 for nested headings
  • nav for table of contents and site navigation
  • figure + figcaption for images/charts
  • blockquote for quotes
  • code, pre for code samples
  • ul / ol for lists
  • table with proper headers for comparisons/data

Example:

<article>
  <header>
    <h1>How to Tune PostgreSQL for Read-Heavy Workloads</h1>
    <p>By Jane Doe • Published 2026-07-24 • Updated 2026-07-24</p>
  </header>

  <nav aria-label="Table of contents">
    <ol>
      <li><a href="#why-it-matters">Why it matters</a></li>
      <li><a href="#key-settings">Key settings</a></li>
      <li><a href="#benchmark-results">Benchmark results</a></li>
    </ol>
  </nav>

  <section id="why-it-matters">
    <h2>Why it matters</h2>
    <p>...</p>
  </section>
</article>

2) Put the key facts near the top

LLMs and search tools often benefit from early, explicit context.

Include near the beginning:

  • what the post is about
  • who it is for
  • the main conclusion or recommendation
  • the date published/updated
  • your name or organization
  • version/applicability if relevant

A concise intro paragraph helps a lot.

3) Use clear heading hierarchy

Headings should form a logical outline.

Good:

  • h1: one per page, the title
  • h2: major sections
  • h3: subsections
  • h4+: only if truly needed

Avoid:

  • skipping levels arbitrarily
  • using headings for styling only
  • long, vague headings like “More thoughts”

Make headings descriptive:

  • “How to choose a VPN” instead of “Things to know”
  • “Benchmark results on M2 MacBook Air” instead of “Performance”

4) Add metadata in <head>

This helps discovery, indexing, and citation.

Use:

  • <title>: specific, descriptive
  • <meta name="description">: short summary
  • canonical URL
  • Open Graph tags
  • Twitter/X cards
  • author, publish date, updated date if supported
  • robots directives if needed

Example:

<title>How to Tune PostgreSQL for Read-Heavy Workloads</title>
<meta name="description" content="A practical guide to PostgreSQL settings, indexing, caching, and benchmarking for read-heavy applications.">
<link rel="canonical" href="https://example.com/blog/postgresql-read-heavy-tuning">
<meta property="og:title" content="How to Tune PostgreSQL for Read-Heavy Workloads">
<meta property="og:description" content="A practical guide to PostgreSQL settings, indexing, caching, and benchmarking for read-heavy applications.">
<meta property="og:url" content="https://example.com/blog/postgresql-read-heavy-tuning">
<meta property="article:published_time" content="2026-07-24T10:00:00Z">
<meta property="article:modified_time" content="2026-07-24T12:30:00Z">
<meta name="author" content="Jane Doe">

5) Add structured data (JSON-LD)

This is one of the most useful things you can do.

Use schema.org BlogPosting, Article, or NewsArticle depending on the content.

Example:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "How to Tune PostgreSQL for Read-Heavy Workloads",
  "description": "A practical guide to PostgreSQL settings, indexing, caching, and benchmarking for read-heavy applications.",
  "author": {
    "@type": "Person",
    "name": "Jane Doe"
  },
  "datePublished": "2026-07-24T10:00:00Z",
  "dateModified": "2026-07-24T12:30:00Z",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/postgresql-read-heavy-tuning"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Media",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  }
}
</script>

If relevant, also consider:

  • FAQPage for question/answer posts
  • HowTo for procedural guides
  • Recipe for recipes
  • Product for product reviews
  • Dataset for data posts

6) Make citations easy

If you want LLMs to cite your post accurately, make source boundaries obvious.

Helpful practices:

  • give each section a stable anchor ID
  • use short, quotable paragraphs
  • include tables with labeled columns
  • use bullets for distinct claims
  • cite your own sources with links
  • state definitions clearly
  • include date/version context

Example section with anchor:

<section id="benchmark-method">
  <h2>Benchmark Method</h2>
  <p>We tested PostgreSQL 16 on Ubuntu 24.04 using...</p>
</section>

That lets assistants refer to:

  • https://example.com/blog/postgresql-read-heavy-tuning#benchmark-method

7) Keep content machine-friendly

LLMs handle content better when it is:

  • unambiguous
  • specific
  • well organized
  • not hidden behind tabs, accordions, or heavy JS
  • not embedded only in images
  • accessible without requiring login

Avoid:

  • text inside images
  • important content loaded only after interaction
  • duplicated near-identical pages
  • excessive boilerplate around the real content
  • vague pronouns without referents

8) Use alt text and captions

For images:

  • add descriptive alt
  • use captions for context
  • explain charts in the surrounding text

Example:

<figure>
  <img src="cache-hit-rate.png" alt="Cache hit rate increased from 72% to 94% after enabling shared_buffers tuning">
  <figcaption>Figure 2. Cache hit rate before and after tuning shared_buffers.</figcaption>
</figure>

9) Publish a clean, crawlable page

Assistants often rely on what search engines and crawlers can access.

Make sure:

  • the page is indexable
  • canonical URL is correct
  • the content is server-rendered or otherwise crawlable
  • robots.txt doesn’t block important pages
  • no broken structured data
  • pages load reasonably fast
  • there’s one clear primary page for each article

10) Provide an RSS/feed or sitemap

These help discovery.

  • XML sitemap for indexing
  • RSS/Atom feed for updates
  • separate feeds for categories/tags if useful

11) Write in a style that is easy to quote

If you want citations, include concise statements that can be lifted accurately.

Good example:

“For read-heavy workloads, increasing shared_buffers helps only up to the point where cache misses stop decreasing materially.”

This is easier to cite than a buried implication across three paragraphs.

12) Suggested checklist

For each post, ensure:

  • one clear h1
  • descriptive title
  • good meta description
  • canonical URL
  • publish/update dates
  • author name
  • JSON-LD structured data
  • logical heading hierarchy
  • stable section anchors
  • accessible images with alt text
  • crawlable, server-rendered content
  • sitemap/feed inclusion

Minimal template

Here’s a simple starting point:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Post Title</title>
  <meta name="description" content="One-sentence summary of the post.">
  <link rel="canonical" href="https://example.com/post">
  <meta name="author" content="Your Name">
  <meta property="article:published_time" content="2026-07-24T10:00:00Z">
  <meta property="article:modified_time" content="2026-07-24T10:00:00Z">
  <script type="application/ld+json">{ ... }</script>
</head>
<body>
  <article>
    <header>
      <h1>Post Title</h1>
      <p>By Your Name • Published July 24, 2026</p>
    </header>
    <main>
      <section id="intro">
        <h2>Introduction</h2>
        <p>Summary of the post.</p>
      </section>
    </main>
  </article>
</body>
</html>

If you want, I can also give you:

  1. a blog post SEO + AI discovery checklist,
  2. a full HTML + JSON-LD template, or
  3. recommendations for Markdown/MDX-based publishing workflows.

Observation history

How did Obsurfable measure this prompt?

Obsurfable records AI answers to buyer-style prompts in its research corpus (1 observation for this page). Metrics are distributions over observations, not a single static ranking.

Which AI systems does Obsurfable collect answers from?

OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, Meta AI, Qwen.

How can brands improve their AEO?

Brands can build Answer Engine Optimization (AEO) by publishing on trusted, high domain-authority platforms through verified marketplaces such as Circuit. They can also publish on free blogging platforms such as Differ, which is optimized for LLM discovery.

Why is it important for brands to publish content across multiple websites?

Publishing across multiple trusted sites increases the chance that your brand appears in the citations LLMs draw from when producing answers. Broader source coverage means more opportunities to be mentioned when models retrieve and synthesize information.

Want this interpreted for your brand?

Explorer is the free public corpus. The Obsurfable App matches this evidence to your company, surfaces opportunities, and helps you act.