Back to Blog

Agent workflows

Trace the Image URL Before Your Agent Rebuilds a Social Card

Separate the page, its declared share image and the preview seen on a social platform. Find the failing boundary before regenerating artwork or repeatedly redeploying the site.

OpenAgentSkillPublished:

The artwork changed, but did the shared resource change?

A marketing agent produces a new cover image. It looks correct in the website's hero section, yet a shared link still shows the old cover. The immediate temptation is to regenerate the artwork or deploy again.

Start with a different question: which image URL does the shared page actually declare?

A hero image, an Open Graph image and an observed social preview are three separate objects. They may be connected by the application, but that relationship must be checked rather than assumed. This guide is for teams using agents to prepare public article and product-launch cards.

Methodology: trace resources without posting

We reviewed the Open Graph protocol, the HTTP caching standard and Google's JavaScript crawler guidance on October 18, 2026. The workflow is our proposed diagnostic method. We did not publish a social post, inspect a private platform cache or measure a refresh delay.

The three sources address different boundaries: metadata declarations, HTTP response reuse and crawler rendering capabilities. None establishes a universal social-platform refresh schedule.

A prepared image also needs editorial review. The Skill Gallery provides examples to explore, but a polished browser preview does not prove that a particular social platform fetched the intended asset.

Follow the declared image, not the visible hero

The Open Graph specification defines og:image as the image URL representing an object, alongside title, type and URL metadata. It supports image dimensions, media type and alternative text. For repeated properties, the first occurrence receives preference when values conflict.

Inspect the actual public page response and list its declared image URLs in order. If a shared layout supplies a default image before the page-specific image, record the conflict rather than assuming the last declaration wins everywhere.

Then compare the first intended declaration with the hero image. They may deliberately differ: a readable wide social cover is not necessarily the same crop used inside the article.

For a fictional launch page, the hero could point to launch-v2.webp while its metadata still points to launch-v1.png. The next action is to fix the declaration, not redesign either asset.

Retrieve the exact asset as an unauthenticated reader

Follow the declared URL and its redirects. Record the response status, content type, final URL and whether the returned bytes decode as the intended image. An HTTP success code with a login page or error document is not a usable image response.

Check that the resource is intended to be public. A session-dependent or short-lived signed link is a poor default for a persistent public share card. Never place credentials in a preview URL.

Capture enough evidence to distinguish an old file from a new file with similar artwork: a content hash, versioned filename or visible revision marker in a disposable test asset can help. Do not add debugging labels to a production cover without approval.

If the image is reachable in your browser but not through a clean request, investigate access requirements. Do not disable security controls across the entire site as a shortcut to making one asset public.

Separate page caching from image caching

The page response and the image response are different cacheable resources. Updating one does not establish that every consumer has fetched the other.

RFC 9111 defines HTTP cache keys around at least the request method and target URI. It explains response freshness and the Age header, and explicitly notes that invalidation is not a guarantee of global invalidation across all caches.

Our diagnostic recommendation is to record cache headers for both requests. If the page still declares the old image, investigate page delivery. If the declaration is correct but the image URL returns old bytes, investigate asset delivery. If both are correct in your checks, the platform's observed card remains a separate unresolved layer.

For changed artwork, an intentionally versioned asset path can make the revision explicit. That is not a promise that existing posts will immediately update. Keep the article URL stable and avoid adding random query parameters to every shared page merely to provoke a different preview.

Compare response HTML with browser-rendered metadata

Some sites add metadata only after client-side rendering. A browser inspection can therefore show tags that were not in the initial response.

Google's JavaScript SEO documentation notes that not all bots execute JavaScript. That supports checking the raw response, but it does not prove the behavior of a particular social crawler.

Our recommendation is to deliver public share metadata in the initial HTML when practical. If that is not how the site works, verify the target platform's current supported behavior instead of assuming it behaves like a full browser.

Do not use a search crawler's successful rendering as proof of social-card compatibility. The two consumers can have different processing and presentation rules.

Use a three-boundary handoff

Give the agent a ledger with three observations:

  • Page: requested URL, destination, observation time and declared image.
  • Asset: exact URL, response type, revision evidence and visual result.
  • Platform: the preview actually observed, platform name and observation time.

For our fictional launch, report one of three concrete outcomes: metadata still points to version one; metadata points to version two but the asset response is old; or both site resources are correct while the platform preview differs.

Use an official platform inspection mechanism where available and authorized. Creating a public post is a separate action, not an automatic diagnostic step. Never claim a refreshed card solely because a local request succeeded.

Limitations and the release decision

This process does not guarantee a platform's crop, supported format, cache lifetime or treatment of existing posts. Verify those constraints against that platform's current documentation when preparing the actual release.

It also does not settle image rights or the accuracy of the cover's claims. Those remain editorial responsibilities even when the technical delivery is correct.

Before release, review the card at its intended display size, ensure its text is legible and preserve a clear relationship between the preview and destination. The skill directory can help find production workflows, but the release evidence should name the actual resources checked. A fresh deployment is not a substitute for tracing the image the audience will receive.