Skip to content

SEO Enhancements: - #361

Draft
stumbo wants to merge 4 commits into
mainfrom
bs42_SEO_Optimization_Phase_1
Draft

stumbo wants to merge 4 commits into
mainfrom
bs42_SEO_Optimization_Phase_1

Conversation

@stumbo

@stumbo stumbo commented Nov 11, 2026

Copy link
Copy Markdown
Member

AI review of website identifies several areas where we could make changes to improve SEO. The work is broken into multiple phases.

New file

  • static/images/og-default.png — a 1200×630 default share image (white Interlisp logo + "The Medley Interlisp Project" / "interlisp.org" on the site's #30638e primary color with a subtle gradient). Generated with PIL; 43 KB. config/_default/params.yaml
  • Replaced the commented-out images line with a live images: [images/og-default.png] default.
  • Added fediverse_creator: "@interlisp@fosstodon.org". layouts/_partials/hooks/head-end.html (the head injection point)
  • Emits og:image:alt and twitter:image:alt, derived from the page title (falling back to site title), only when an image is present.
  • Emits , with a page-level fediverse_creator frontmatter override. archetypes/default.md — added commented images: and fediverse_creator: examples for new pages. README.md — new "Social Share Images and Metadata" subsection (plus TOC entry) covering the default image, per-page overrides, alt text, Mastodon attribution, and the Bluesky/Mastodon Open-Graph-only behavior.

New file
- static/images/og-default.png — a 1200×630 default share image (white Interlisp logo + "The Medley Interlisp Project" / "interlisp.org" on the site's #30638e primary color with a subtle gradient). Generated with PIL; 43 KB.
config/_default/params.yaml
- Replaced the commented-out images line with a live images: [images/og-default.png] default.
- Added fediverse_creator: "@Interlisp@fosstodon.org".
layouts/_partials/hooks/head-end.html (the head injection point)
- Emits og:image:alt and twitter:image:alt, derived from the page title (falling back to site title), only when an image is present.
- Emits <meta name="fediverse:creator">, with a page-level fediverse_creator frontmatter override.
archetypes/default.md — added commented images: and fediverse_creator: examples for new pages.
README.md — new "Social Share Images and Metadata" subsection (plus TOC entry) covering the default image, per-page overrides, alt text, Mastodon attribution, and the Bluesky/Mastodon Open-Graph-only behavior.
@stumbo stumbo self-assigned this Nov 11, 2026
@interlisp-staging-bot

Copy link
Copy Markdown

Staging preview for this pull request is available at https://interlisp.org/Interlisp.staging/pr-361/

@pamoroso

Copy link
Copy Markdown
Member

The staging site looks good with no apparent user-facing issues.

JSON-LD for non-bibliography pages

Four new partials (layouts/_partials/), all following the existing bibliography-json-ld.html output convention (printf + jsonify + safeHTML)

- layouts/_partials/hooks/head-end.html — calls the four new partials (each self-guards, so no duplication with the bibliography schema).
- content/en/project/faqs.md — added schema: faq.
- README.md — new "Structured Data (JSON-LD)" section + TOC entry (schema table, auto-derived Article metadata, FAQ opt-in, validation pointer).
- docs/SEO_IMPROVEMENT_PLAN.md — checked off 1.2 tasks, added implementation notes, updated the baseline/gap analysis/success metrics, and logged a change-log entry.# Please enter the commit message for your changes. Lines starting
@interlisp-staging-bot

Copy link
Copy Markdown

Staging preview for this pull request is available at https://interlisp.org/Interlisp.staging/pr-361/

@pamoroso

Copy link
Copy Markdown
Member

Still looking good at commit 500e031.

This update adds a metadata description for each page.  This description
is folded into the jsonld now being generated and attached to each page
for seach engines.  In addition, docsy uses the description and adds it
at the top of each page.  I've left that functionality intact.  I
haven't reviewed each page to validate that the description and the page
text flow together appropriately...
@interlisp-staging-bot

Copy link
Copy Markdown

Staging preview for this pull request is available at https://interlisp.org/Interlisp.staging/pr-361/

@pamoroso

Copy link
Copy Markdown
Member

Still looking good at commit 6552c4c.

@interlisp-staging-bot

Copy link
Copy Markdown

Staging preview for this pull request is available at https://interlisp.org/Interlisp.staging/pr-361/

@pamoroso

Copy link
Copy Markdown
Member

Still looking good at commit c687993.

Comment thread archetypes/default.md
date: {{ .Date }}
draft: true
# Optional: override the default social share image (Open Graph / Twitter Card).
# Place the file under static/ and reference it site-relative, e.g.:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this mean? "Optional"? FOr what? For whom?
What is an Open Graph / TWitter Card?

Is this just a comment?

# Default social share image (Open Graph / Twitter Card).
# The first entry is used when a page does not set its own `images` front matter.
# Recommended size: 1200x630 px. Served from static/, so the path is site-relative.
images:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we were not going to support twitter anyway

@@ -1,5 +1,6 @@
---
title: Interlisp Bibliography Intake Guide
description: "Not sure whether a document belongs in the Interlisp Bibliography? This guide explains the collection's scope, how to submit an item, and what to include."

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where else could it go? Who isn't sure?

Comment thread archetypes/default.md
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
# Optional: override the default social share image (Open Graph / Twitter Card).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the AI policy should state something like "PRs that include either text or code that was generated by AI or LLM should state clearly and plainly at the top that they were AI generated. No PR that was AI generated should be approved by anyone without explicit accomodation for review for slop. "

This branch has not been deployed

No deployments
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.

3 participants