How to use original filename instead of hash in Sanity image URLs?
For example, I want to have a url like
<https://cdn.sanity.io/images/1234567/production/[here-the-original-filename-instead-of-the-hash]-1766x1065.png?q=75&fit=clip&auto=format><https://cdn.sanity.io/images/1234567/production/754c8d64997b668642bd2500f833722c6293cf8b-1766x1065.png?q=75&fit=clip&auto=format>I only found the
&dlparam in the docs but this doesn’t solve the problem as it’s only for downloading the file and the url would still contains the hash instead of the file name.
My goal is to have a better image URL to follow
Google Images best practices for SEO
• Create good URL structure for your images: Google uses the URL path as well as the file name to help it understand your images. Consider organizing your image content so that URLs are constructed logically.
Great news! Sanity supports what's called "vanity filenames" for exactly this SEO use case. You can append a friendly filename to your image URL after the hash, and it will work perfectly with all the usual transformation parameters.
The URL format is:
https://cdn.sanity.io/images/<projectId>/<dataset>/<hashedFileName>/<originalFilename>?<params>So your URL would become:
https://cdn.sanity.io/images/1234567/production/754c8d64997b668642bd2500f833722c6293cf8b-1766x1065.png/my-friendly-image-name.png?q=75&fit=clip&auto=formatThe hash still needs to be there (it's how Sanity identifies the asset), but by adding /your-seo-friendly-name.png after it, you get the SEO benefits Google is looking for. The CDN will serve the image correctly, and all your transformation parameters (like q=75, fit=clip, auto=format) continue working as expected.
Implementation: The exact approach depends on how you're building your image URLs, but typically you'd:
- Query the original filename from your image asset (it's stored in the asset document)
- Append it to the end of your image URL before the query parameters
- Or use any other field you've designated for SEO-friendly names
This works for both the /images/ and /files/ CDN endpoints, and you can use modern image formats like WebP when you include auto=format - the vanity filename won't interfere with format conversion.
Unfortunately, this feature isn't prominently documented yet (which is why you couldn't find it), but it's fully supported and widely used for exactly the Google Images SEO best practices you're trying to follow.
Show original thread3 replies
Was this answer helpful?
Sanity – Build the way you think, not the way your CMS thinks
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.