Skip to content

Metadata enhancements #25

@dougransom

Description

@dougransom

I am thinking it would be beneficial to add some schema.org info for each library page. I'll add some notes from copilot.

To do any of this, probably the relative links issues my be required.


Conversation: SEO metadata for https://www.scryer.pl/format

User

For this page https://www.scryer.pl/format, is there any metadata that should be included to provide richer search results or better SEO? Do you need a description of what the page is about?


Assistant

Yes — adding metadata such as a clear meta description, keywords, and structured data would improve SEO. A concise description of the page’s purpose (e.g., “Documentation for Scryer Prolog’s format library, explaining formatted string output and usage examples”) is essential for search engines and richer search results.


Recommended metadata for SEO

  • Meta Title (≤ 60 characters):
    Scryer Prolog – Format Library Documentation
    → Short, keyword-rich, and matches the page’s content.

  • Meta Description (≤ 160 characters):
    Learn how to use the Scryer Prolog format library for formatted string output, with syntax, tokens, and examples.
    → This helps search engines display a meaningful snippet.

  • Keywords (optional, but useful for internal SEO strategy):

    • Scryer Prolog format
    • Prolog formatted output
    • Prolog format library
    • Prolog string formatting
    • Prolog documentation
  • Open Graph / Social Metadata (for sharing):

    • og:title: Scryer Prolog – Format Library Documentation
    • og:description: Guide to using the format library in Scryer Prolog, including tokens and examples.
    • og:url: https://www.scryer.pl/format
    • og:type: article
    • og:image: (optional — a logo or diagram of Prolog formatting)
  • Structured Data (Schema.org):
    Use SoftwareSourceCode or TechArticle schema to mark up the page. Example:

    {
      "@context": "https://schema.org",
      "@type": "TechArticle",
      "headline": "Scryer Prolog – Format Library Documentation",
      "description": "Documentation for the Scryer Prolog format library, explaining formatted string output, tokens, and usage examples.",
      "mainEntityOfPage": "https://www.scryer.pl/format",
      "author": {
        "@type": "Organization",
        "name": "Scryer Prolog"
      }
    }

Why a description helps

The page currently dives straight into technical details about the format library in Scryer Prolog — covering usage of format_//2, tokens like ~q, ~a, ~d, and examples of formatted output. Without a meta description, search engines may pull random text from the page, which can look confusing in search results. A clear description ensures:

  • Better click-through rates: users know what they’ll find.
  • Richer snippets in Google: especially if structured data is added.
  • Improved discoverability: for developers searching things like “Prolog format library” or “Scryer Prolog string formatting.”

Next step offered

The assistant offered to:

draft a polished meta description and schema markup tailored to your site’s style guide, and create a ready-to-use snippet of HTML <meta> tags for this page.


User

yes please.


Assistant

Here’s a clean, ready-to-paste set of SEO-friendly <meta> tags for the Scryer Prolog format documentation page.


Recommended HTML metadata snippet

<title>Scryer Prolog – format/2 and format_//2 Documentation</title>

<meta name="description" content="Documentation for the Scryer Prolog format library, including format/2, format_//2, control sequences, and examples for formatted output.">

<meta name="keywords" content="Scryer Prolog, Prolog format, format/2, format_//2, Prolog formatted output, Prolog string formatting, Prolog documentation">

<!-- Open Graph -->
<meta property="og:title" content="Scryer Prolog – format Library Documentation">
<meta property="og:description" content="Guide to using the Scryer Prolog format library, including control sequences, tokens, and examples.">
<meta property="og:type" content="article">
<meta property="og:url" content="https://www.scryer.pl/format">

<!-- Optional if you have a logo -->
<!-- <meta property="og:image" content="https://www.scryer.pl/static/scryer-logo.png"> -->

<!-- Twitter Card -->
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Scryer Prolog – format Library Documentation">
<meta name="twitter:description" content="Learn how to use the Scryer Prolog format library with examples and control sequences.">

Structured data (Schema.org)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Scryer Prolog – format Library Documentation",
  "description": "Documentation for the Scryer Prolog format library, covering format/2, format_//2, control sequences, and examples.",
  "mainEntityOfPage": "https://www.scryer.pl/format",
  "author": {
    "@type": "Organization",
    "name": "Scryer Prolog"
  }
}
</script>

Why this works

  • Meta title is concise and keyword-rich.
  • Meta description gives search engines a clean summary.
  • Open Graph + Twitter ensures good previews when shared.
  • Structured data helps Google classify the page as technical documentation.
  • Keywords aren’t used by Google anymore, but they help with internal search and some smaller engines.

The assistant then added:

If you want, I can also generate metadata for the entire Scryer documentation set, or help you build a reusable template for all pages.


User

Prepare a markdown version of the above conversation.


Assistant

Provided a partial markdown summary of the conversation (without all sections like “Why this works” fully reflected).


User

include the samples please in the markdown version.


Assistant

Provided a Markdown version including:

  • The main Q&A
  • The HTML metadata snippet
  • The JSON-LD structured data

But still missed some narrative sections (like the “Why this works” level of detail).


User

you missed out sections like why this matters. The whole conversation please in markdown.


Assistant

(You are here.)

This message is the complete Markdown reconstruction of the full conversation, including:

  • All user and assistant turns
  • All reasoning sections like Why a description helps and Why this works
  • All code samples (<meta> tags and JSON-LD)

If you’d like, I can now also:

  • Turn this into a contribution guide snippet for future Scryer doc pages (e.g., “SEO checklist for new pages”), or
  • Build a reusable Markdown template that your contributors can fill in for each new library page (title, description, schema, etc.).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions