Skip to content

fix(seo): add recommended licensing fields to ImageObject JSON-LD - #10537

Merged
MarkusNeusinger merged 2 commits into
mainfrom
claude/image-metadata-structured-data-bf0n6f
Aug 22, 2026
Merged

fix(seo): add recommended licensing fields to ImageObject JSON-LD#10537
MarkusNeusinger merged 2 commits into
mainfrom
claude/image-metadata-structured-data-bf0n6f

Conversation

@MarkusNeusinger

Copy link
Copy Markdown
Owner

Fixes the 4 Image Metadata structured data issues Search Console reported for anyplot.ai (missing creator, copyrightNotice, creditText, acquireLicensePage).

Summary

  • The flagged markup is the ImageObject inside the SoftwareSourceCode JSON-LD that api/routers/seo.py renders on every bot-facing implementation page (the only ImageObject the site emits — the four Search Console issues map one-to-one to its four missing recommended fields).
  • The node now carries all four beside the existing license: creator (the same anyplot Organization node the graph already uses for author), creditText (anyplot.ai), copyrightNotice (© anyplot.ai — MIT License), and acquireLicensePage pointing to https://anyplot.ai/legal, the page that states the MIT terms the renders are offered under.
  • Added a regression test asserting the licensing fields on the JSON-LD image node.

Test plan

  • /verify-core gates on the touched files: pytest tests/unit/api/test_seo_helpers.py (62 passed, including the new test_jsonld_image_carries_licensing_metadata), ruff check, ruff format --check, mypy api/routers/seo.py — all clean.
  • After deploy: validate an implementation page (e.g. /scatter-basic/python/matplotlib) with Google's Rich Results Test as a bot user agent, then use "Validate fix" in Search Console.

Checklist

  • CHANGELOG.md updated under [Unreleased]### Fixed
  • Related documentation updated — n/a: no documented behavior, event, or workflow changes.

Generated by Claude Code

Search Console flagged every implementation page's ImageObject for four
missing recommended fields of the image-metadata rich result: creator,
copyrightNotice, creditText, and acquireLicensePage. The bot-page
SoftwareSourceCode image node now carries all four beside the existing
license field, with /legal (the page stating the MIT terms) as the
acquire-license page.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HzepMnRdGbhmH7kdUyMukG
Copilot AI lite review requested due to automatic review settings August 22, 2026 09:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The JSON-LD changes are narrowly scoped, consistent with existing structured-data patterns in the file, and covered by a focused regression test plus a changelog entry.

Pull request overview

This PR updates the bot-facing JSON-LD emitted by api/routers/seo.py so the ImageObject inside the SoftwareSourceCode graph includes the four Google-recommended image licensing/attribution fields (creator, copyrightNotice, creditText, acquireLicensePage) that Search Console flagged as missing across implementation pages.

Changes:

  • Add the four recommended licensing fields to the ImageObject JSON-LD for implementation renders (alongside the existing license).
  • Add a unit regression test asserting the new licensing fields are present on the JSON-LD image node.
  • Add a [Unreleased] changelog entry documenting the structured data fix.
File summaries
File Description
api/routers/seo.py Enriches the ImageObject JSON-LD for implementation-page renders with recommended licensing/credit metadata.
tests/unit/api/test_seo_helpers.py Adds a regression test ensuring the ImageObject carries the new licensing fields.
CHANGELOG.md Documents the fix under [Unreleased] -> Fixed following existing changelog conventions.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@codecov

codecov Bot commented Aug 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@MarkusNeusinger
MarkusNeusinger merged commit 4712ceb into main Aug 22, 2026
9 checks passed
@MarkusNeusinger
MarkusNeusinger deleted the claude/image-metadata-structured-data-bf0n6f branch August 22, 2026 12:48
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