Multimodal GEO: 6 steps to get images and video cited by AI
Only 3 of 6 major AI crawlers read image alt text, and none watch the video on your page. Six steps that move both into the text AI engines read.
In this piece
AI engines do not look at your images. They do not watch the video on your page. They read the text you attach to both, and when that text is thin the asset is invisible no matter how good it is. Six changes fix that. They take about two hours per page and they work the same on an infographic, a product screenshot and a twelve-minute demo.
Multimodal GEO is the practice of making non-text assets readable by generative engines. Almost all of the work is textual: filenames, alt attributes, captions, transcripts, structured data. None of the six steps below requires shooting anything new.
What AI engines actually do with an image
Writesonic ran 60 or so page-element tests across six AI crawlers and found that only Claude, Gemini and Copilot read the alt attribute. ChatGPT pulls raw HTML, converts it to Markdown, and drops alt text along the way. The six split into three tiers: full browser rendering (Copilot), headless JavaScript browsers (DeepSeek, Grok), and HTML-only parsers (ChatGPT, Claude, Gemini). The practical consequence is blunt. Anything your page injects with JavaScript does not exist for half of them.
On the Google side the volume is the argument. In October 2024 Google put Lens at nearly 20 billion visual searches per month, with one in four carrying commercial intent. AI Mode now takes an uploaded photo and answers it with a custom version of Gemini, so a query can start as an image and end as a link to your page.
Video works the same way, one level up. Engines read the title, the description, the captions, the transcript and the VideoObject markup. Otterly’s 2026 YouTube Citation Study puts YouTube at 22.7% of Perplexity’s social citations and 9.5% of ChatGPT’s, while a separate 5WPR citation-share report puts it at 23.3% of Google AI Overview citations. The two studies count different things, so read them as direction rather than as one number. The direction is clear enough: video earns citations, and the engine gets there through text.
Before you start
- Images served from server-rendered HTML
<img>elements. Not CSS backgrounds, not client-side injection. - Write access to the page JSON-LD.
- A transcript for every video that matters. Machine transcription is a fine starting point, corrected by hand for names and technical terms.
Step 1: write alt text as a sentence, not a keyword string
Google’s image guidance asks for two things: descriptive alt text and descriptive filenames. Its own example is that my-new-black-kitten.jpg beats IMG00023.JPG. For alt, write one sentence that says what is in the frame and why the frame is on the page.
Compare the two. "design system audit dashboard token drift 2026" is a keyword string, and three of six crawlers will never read it anyway. "A token audit dashboard showing 31 colour values that drifted out of the design system" is a sentence a model can lift and quote. Same length, different job.
Step 2: put every claim the image makes into the page text
This is the step that moves the numbers. If a chart shows a 40% drop, the figure 40% has to exist in the paragraph beside it. If a screenshot demonstrates three states of a form, name the three states in prose. Google’s image guidance asks you to place images near relevant text for the same reason.
Treat the image as an illustration of a claim already written down. Infographics are the worst offender here. They carry an entire argument in pixels and hand the engine nothing, which is why an infographic that gets shared widely on social still contributes almost no citation surface.
Step 3: ship images in HTML, with filenames that read
Use <img> with src and alt inside the markup the server returns. Skip CSS background images for anything that carries meaning: Google states that CSS images are not eligible for Google Images. Rename the file before upload. token-drift-dashboard.png, not export_final_2.png. Lowercase, hyphens, three to six words.
Step 4: publish the transcript on the page, not only in the player
Captions inside a YouTube player are not on your page. An HTML-only crawler sees an empty embed and moves on. Paste the corrected transcript into the article body, under its own heading, broken into short paragraphs with speaker names where there is more than one voice.
A ten-minute talk transcribes to roughly 1,500 words of indexable text that says exactly what the video says. It is also the cheapest accessibility improvement on this list, which is worth something on its own after the EU Accessibility Act.
Step 5: add VideoObject markup with the properties Google requires
Google’s video structured data reference requires name, thumbnailUrl and uploadDate, and strongly recommends description, duration in ISO 8601 form (PT4M35S), contentUrl and embedUrl.
contentUrl is the one teams skip. Without a fetchable video file or a recognised embed, Google can index the page and never index the video on it. Add the transcript property while you are in there. It costs one field and hands the engine the whole text in machine-readable form.
Step 6: give the video chapters, and write them as sentences
Google supports key moments two ways. Clip markup, where you name each moment yourself, or SeekToAction, where you declare how the time parameter in your URL works and let Google pick the moments. Name them yourself whenever the video has a structure you already know.
Then write chapter titles that survive out of context. "Why the pooler drops connections at 400 clients" is quotable on its own. "Part 2" is not. The rule is the same one that governs H2s in an article: a heading an engine can quote without the paragraph under it.
How to check it worked
- Read the raw HTML. Run
curl -s https://example.com/pageand look for your<img>tags and your transcript text. If they are not in that output, an HTML-only crawler cannot see them either. - Validate the markup. Put the URL through Google’s Rich Results Test, then watch the Video indexing report in Search Console for the pages you marked up.
- Ask the engines. Prompt ChatGPT, Claude and Perplexity with the question your page answers and see whether the page surfaces. Repeat after 30 days, because citation sets move.
Where this usually breaks
- The infographic carries the argument. Write the argument out in prose and let the graphic summarise it.
- Auto-captions mangle the vocabulary. Machine transcription is strong on general speech and unreliable on product names, library names and acronyms. Read it once and fix those by hand.
- Lazy loading swaps
srcat runtime. Keep a realsrcin the server-rendered markup and let the loader enhance it after. - The video lives only on YouTube. Then YouTube earns the citation. Embed it on a page you own, with the transcript beside it, and both become citable.
- Alt text repeats the caption word for word. Two identical strings give the engine one fact instead of two. Let the caption carry the point and the alt carry the description.
Going further
The text-layer principle behind all six steps is the same one that governs written content: how to write the first 200 tokens so AI engines cite your article. For the schema side, how to add JSON-LD to a blog article the right way covers where the blocks go and how to validate them. And if you are still working out which engine you are optimising for, AI Overviews and AI Mode cite different sources, which changes what you prioritise.
Sources
- Writesonic, AI Crawler Study: what 60+ tests across 6 LLMs reveal
- Google, Search and Lens updates (October 2024)
- Google, AI Mode in Search adds multimodal search
- Google Search Central, Image SEO best practices
- Google Search Central, Video (VideoObject, Clip, BroadcastEvent) structured data
- Otterly, The YouTube Citation Study 2026
- 5WPR, Citation Share Report: YouTube and Google AI answers
Frequently asked questions
Should I still write alt text if ChatGPT ignores it?+
Yes. Three of the six crawlers tested do read it, Google Images reads it, and screen readers read it. The cost is one sentence per image. The mistake is treating alt text as the only place a claim lives: when the crawler that skips alt is the one you care about, the claim has to be in the body text as well.
Does AI-generated alt text work?+
It works as a first pass and fails on the part that matters. A vision model describes what is in the frame accurately enough. It does not know why the frame is on your page, which is the half of the sentence that makes the alt quotable. Generate the description, then add the reason in your own words. On a page with 40 screenshots that is still a large time saving.
My video is hosted on YouTube. Is VideoObject markup still worth it?+
Yes, if the video is embedded on a page you own and you want that page cited rather than the YouTube URL. YouTube already wins citations on its own domain: two 2026 studies put it between 22% and 23% of citations on Perplexity and Google AI Overviews. Markup plus an on-page transcript is how the embedding page becomes a candidate too.
Will a long transcript on the page dilute it?+
Length is not the problem, placement is. Put the transcript under its own heading below the article body, so the first 200 tokens still carry the answer the engine is looking for. Do not paste the same transcript on several pages: duplication across URLs is a real risk, a long block of unique speech on one URL is not.
Studio
Start a project.
We write about what we build. Tell us what you want to build.