Skip to content

[docs-seo-status] fix(site): a share card X will actually fetch — 1.7… - #25

Merged
madnh merged 1 commit into
mainfrom
docs-seo-status
Aug 7, 2026
Merged

madnh merged 1 commit into
mainfrom
docs-seo-status

Conversation

@madnh

@madnh madnh commented Aug 7, 2026

Copy link
Copy Markdown
Owner

…8MB PNG to a 151KB JPEG

The OG image was a 1536x1024 PNG weighing 1.78MB and X was rendering no card at all. Two things wrong with it at once.

Format: PNG is lossless and this is a 3D render, so it stored a photograph pixel by pixel. The same frame as JPEG at q82 is 151KB — 91% smaller with nothing a viewer can see missing, and scrapers fetch it in a fraction of the time. This is the file the WebP pass deliberately left alone, on the grounds that crawlers read it and WebP support there is uneven; that reasoning holds and JPEG is the format it should have been.

Ratio: 3:2 is not what summary_large_image renders. Cropped from the centre to 1.91:1, which keeps all four agents and the pad and loses only the base of the lower tables.

The URL changes with the extension, which is useful here — X caches a card per URL, so a new one is fetched fresh instead of waiting out the old negative result.

Also added twitter:image:alt (X reads its own, not og:image:alt) and og:image:type, which lets a scraper know the format before it downloads.

Claude-Session: https://claude.ai/code/session_01VGYnqPKtsrWfugEKyASb7a

…8MB PNG to a 151KB JPEG

The OG image was a 1536x1024 PNG weighing 1.78MB and X was rendering no card at
all. Two things wrong with it at once.

Format: PNG is lossless and this is a 3D render, so it stored a photograph
pixel by pixel. The same frame as JPEG at q82 is 151KB — 91% smaller with
nothing a viewer can see missing, and scrapers fetch it in a fraction of the
time. This is the file the WebP pass deliberately left alone, on the grounds
that crawlers read it and WebP support there is uneven; that reasoning holds and
JPEG is the format it should have been.

Ratio: 3:2 is not what summary_large_image renders. Cropped from the centre to
1.91:1, which keeps all four agents and the pad and loses only the base of the
lower tables.

The URL changes with the extension, which is useful here — X caches a card per
URL, so a new one is fetched fresh instead of waiting out the old negative
result.

Also added twitter:image:alt (X reads its own, not og:image:alt) and
og:image:type, which lets a scraper know the format before it downloads.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01VGYnqPKtsrWfugEKyASb7a
@madnh
madnh merged commit adc5e34 into main Aug 7, 2026
1 check passed
@madnh
madnh deleted the docs-seo-status branch August 7, 2026 12:08
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.

1 participant