Urgent.News

What's breaking now, across thousands of outlets.

Tech

The Article Already Had an og:image. Its JSON-LD Didn't Mention It.

I maintain three long-form pages that already emit JSON-LD: a format guide typed as Article , and two technical write-ups typed as TechArticle . Each page also sets a 1200×630 og:image through the site's shared social-metadata helper. A weekly structured-data pass, recorded in the commit this post is based on, found that none of the three JSON-LD nodes had an image property. The picture was…

A recent commit to the Mailward project added a new function called `articleImage()` to the SEO utility module. This function takes a relative path and returns an absolute URL for the shared social image used across multiple long-form pages. The three affected pages, including one about email archive formats, previously lacked an `image` property in their JSON-LD markup.

The JSON-LD documentation recommends including an image property, ideally a high-resolution representative image in one of several aspect ratios. Google does not guarantee rich result features appearing in search results, but recommends high-resolution images. The 1200x630 social image used by Mailward meets the 50,000-pixel minimum.

A new test was added to the project's test suite, checking that the `articleImage()` function returns the same URL as the statically defined `OG_IMAGE` constant and that the `image` property is present in each page's JSON-LD markup. The test does not verify the actual rendering or performance of the rich result.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

How to Investigate WAF Allowlist and Denylist Logs by Rule ID

Searching for how to filter WAF allowlist and denylist logs by rule ID usually starts with a practical question: which policy explains a particular request outcome?

  • Outline investigation parameters: application, request time, path, desired outcome
  • Ensure SafeLine instance ready: Linux, Docker 20.10.14+, 1 CPU, 1GB memory, 5GB disk
  • Configure application traffic: domain, port, upstream address, test request path

Chrome Web Store Rejection Codes: Fix the Top 4 in a Day

Originally published on ExtensionLaunch . A Chrome Web Store rejection usually arrives as a policy name and a code like "Blue Argon" or "Purple Potassium", with little detail about what the reviewer…

  • Purple Potassium rejection due to excessive permissions in manifest JSON
  • Blue Argon caused by remote code use in manifest V3
  • Yellow Magnesium and Zinc indicate functionality issues requiring debugging

What a "song for dad" form taught me about asking users for input

I build SongUp AI, an AI song maker. People type a few lines about someone, pick a voice and a mood, and get a song back.

  • SongUp AI composer asks for specific details instead of adjectives
  • One critical question yields core line for the entire song
  • Name field is treated as its own input with validation

I Built a Simple Top Loading Bar for Svelte 5

A small loading indicator can make navigation feel much more responsive. But when I looked for a top loading bar for my Svelte 5 app, I wanted something that was simple to add, worked with regular…

  • Svelte 5 top loading bar created for navigational responsiveness
  • Component compatible with regular links and SvelteKit navigation
  • Installation via npm, Bun, pnpm, or Yarn with automatic NProgress dependency

More from Wednesday 11 November →