Video transcripts and captions for SEO and accessibility

Video transcripts for SEO and accessibility: captions vs subtitles, open vs closed captions, SRT vs WebVTT, accuracy checks and publishing on your site.

By Videngine10 min read
The short answer

Video transcripts for SEO put what a video says into the page as text that search engines, visitors and AI assistants can read. Captions carry the same words inside the video for anyone who can't hear it, and WCAG 2.2 requires them at Level A for prerecorded video. Publish both: captions burned in or as a WebVTT track, and the transcript as HTML on the same page. Videngine does both from each video's finished narration.

Captions, subtitles, transcripts and audio description

Captions and subtitles are timed text shown with the video, a transcript is all the words in one place, and audio description speaks what is only shown on screen.

The W3C defines captions as “a text version of the speech and non-speech audio information needed to understand the content”, so they name speakers and include sounds that matter. Subtitles, strictly, carry dialogue only, often translated; in some regions the two words mean the same thing.

FormatWhat it containsWho it servesWhere it lives
CaptionsDialogue, speakers and meaningful sounds, timedPeople who are Deaf or hard of hearing; sound-off viewersBurned in, or a caption file
SubtitlesDialogue only, often translatedViewers who don't understand the languageA track per language
TranscriptAll the words as text, untimed; a descriptive transcript adds what is shownReaders, skimmers, people who are Deafblind, and anything that reads the pageThe page's HTML
Audio descriptionNarration of what is only shown on screenPeople who are blind or have low visionAn extra audio track, or the main narration

The W3C's captions guidance says captions for prerecorded video are required at Level A, under WCAG 2.2 success criterion 1.2.2; live captions are Level AA (1.2.4). Audio description or a descriptive transcript is Level A (1.2.3), and audio description Level AA (1.2.5).

If a price or dimension appears only as on-screen text, say it in the narration too. The glossary defines each term briefly.

Open (burned-in) vs closed captions

Open captions are burned into the picture and always show; closed captions are a separate track viewers turn on or off, and most businesses need both.

Open (burned-in) captionsClosed captions
What they arePart of the video frameA WebVTT or SRT file the player reads
Viewer controlNone: always on, as you styled themOn or off, restyled where the player allows
Best forSocial feeds and ads, where you don't control the playerYour own website's player and long-form uploads
Fixing a typoRe-render the videoEdit a text file
LanguagesOne per renderOne track per language

Burn captions in for anything that plays in a feed or as an ad: you don't control the player, and many people watch with the sound off. Keep them clear of the app's buttons; our short-form video guide covers the vertical frame's safe areas.

Use closed captions on your own site's player. Viewers can switch them off, and a mistake is fixed in a text file rather than a new render.

Many teams use both because one video goes to both places. Don't show both at once: if the website cut already has captions in the picture, don't set the track to show by default.

SRT vs WebVTT: which caption file to use

Use WebVTT for your own website, because the browser's <track> element reads WebVTT; keep SRT for tools and platforms that ask for it.

SRT (SubRip) is the older, simpler format: a cue number, a time range with a comma before the milliseconds, the text, a blank line. It has little formal documentation and no set encoding.

1
00:00:01,000 --> 00:00:04,200
This 2019 van has covered 48,000 miles
and has a full service history.

2
00:00:04,400 --> 00:00:07,000
It's on our forecourt in Leeds.

WebVTT is a W3C specification and, says the W3C, the most common caption format on the web. A file starts with WEBVTT, uses a full stop before the milliseconds, must be UTF-8 and is served as text/vtt. Cue numbers are optional, and cue settings can move a caption, here to the top of the frame.

WEBVTT

00:01.000 --> 00:04.200
This 2019 van has covered 48,000 miles
and has a full service history.

00:04.400 --> 00:07.000 line:0
It's on our forecourt in Leeds.
SRTWebVTT
First lineThe first cue numberWEBVTT
Timestamps00:00:01,00000:00:01.000 or 00:01.000
Position and stylingBasic formatting at most; players differCue settings for line, position, size and alignment; speaker tags; CSS
CommentsNoneNOTE blocks, ignored by players
Use it forPlatforms and editors that ask for SRTThe <track> element on your site

MDN's track element reference is explicit that tracks are formatted in WebVTT:

<video controls preload="metadata" poster="/videos/van-10482.jpg">
  <source src="/videos/van-10482.mp4" type="video/mp4">
  <track kind="captions" src="/videos/van-10482.vtt" srclang="en" label="English">
</video>

Use kind="captions" when the track includes speakers and sounds, and set srclang. To convert SRT, add WEBVTT and a blank line at the top, change the timestamp commas to full stops, and save as UTF-8.

Video transcripts for SEO: why the text belongs in the page

A transcript in the page's HTML gives search engines, visitors and AI assistants the video's words as ordinary page text.

Google's SEO starter guide asks you to embed a video “on a standalone page, near text that's relevant to that video”. A transcript is the most relevant text there is. Google's video best practices don't mention transcripts; they cover getting the video itself found, through a <video> element, a watch page, a thumbnail and structured data. Neither promises a ranking benefit from a transcript. Our VideoObject schema guide covers the markup, including its transcript property.

Visitors skim, search the page for a word or copy a figure. The W3C's guidance on transcripts says that for media on your website, “usually it's best to include the transcript on the same page”.

For AI assistants, this is practical reasoning, not a promise: an assistant reading your page can only quote what the page says in text. If the answer exists only in the narration, there is nothing to quote. Put the transcript in the HTML the server sends, not in a widget that loads it by script. Video in AI search covers what the assistants' crawlers read.

Keep the transcript identical to the video, and to the VideoObject transcript if you use one. A transcript that has drifted from an edited video misleads anything that quotes it.

Accurate captions: names, numbers and timing

Treat automatic captions as a first draft: the W3C says unedited automatic captions don't meet accessibility requirements, and one missed “not” can reverse a sentence.

CheckWhat goes wrongHow to check
NamesPeople, places, models and brands spelt as the recogniser guessedCompare with the source page
Numbers“Fifteen” heard as “fifty”; mixed number stylesCheck every figure against the source data
Small words“Can” and “can't” swapped, “not” droppedRead the captions while listening
PunctuationRun-on text with no sentence breaksEnd cues at a sentence or clause
TimingCaptions early, late or drifting after an editTake timings from the final audio

Line length and reading speed have no single standard; style guides differ. Rules of thumb, not rules:

  • Lines: two at most on screen.
  • Line length: around 32 to 42 characters in landscape, shorter in a 9:16 vertical.
  • Reading speed: roughly 160 to 180 words a minute, slower for less fluent readers.
  • Breaks: at natural phrases, with each caption on screen for at least about a second.

A workflow that keeps the captions, caption file and transcript in step:

  1. Lock the script and audio. Any later edit moves the timings.
  2. Transcribe the final audio. Not the script, and not an earlier mix.
  3. Correct the words. Names, numbers, small words and punctuation.
  4. Watch with the sound off. Every caption should be readable in time.
  5. Export each form. Burned in for feeds, WebVTT for your player, SRT where asked.
  6. Publish the transcript as HTML. Next to the player.
  7. Replace them together. A re-rendered video gets new captions, track and transcript.

How Videngine makes captions and transcripts

Videngine transcribes captions back from each video's finished narration and burns them in, and publishing to your website adds a WebVTT track and a readable transcript to the page.

Videngine turns a page, a listing, text or a row of data into a narrated MP4 from coded templates. The narration is a synthetic voice chosen per brand or audio you upload, in English, with a pronunciation lexicon so names are said correctly; see AI voiceover.

Because captions are transcribed from the finished audio, not copied from the script, they match what was said, with timings from the voice. They can be burned in or delivered as an .srt sidecar, and every video is reviewed in the studio before it goes out.

A workspace can connect the GitHub repository its website is built from. Publish on an approved video then makes one commit that:

  • adds the MP4, its poster JPG and a WebVTT caption track, in /videos/ by default;
  • writes an HTML5 player into the page the video was made from;
  • adds the transcript as readable text in a <details> element, and in VideoObject JSON-LD;
  • updates video-sitemap.xml and adds a Sitemap line to robots.txt.

All of it is in the HTML the server sends, not injected by JavaScript. It works for static sites whose pages are HTML files in the repository, such as on Vercel, Netlify, Cloudflare Pages or GitHub Pages; framework-built sites aren't supported yet. The video SEO guide shows how this fits with markup, sitemaps and hosting.

When Videngine is the wrong tool

If you already have the video and need captions or subtitles for it, use a subtitle tool: Videngine only captions the videos it makes.

The jobBetter fitWhy
Captioning a video made elsewhereA subtitle generator that imports the file and exports SRT, WebVTT or burned-in captionsVidengine doesn't caption uploaded videos
Subtitles in other languagesA subtitle tool with translation, and a fluent reviewerVidengine narrates and captions in English only
Live events and streamsA live captioner or the platform's live captionsVidengine renders finished files
Broadcast caption specificationsA professional captioning serviceTheir style rules go beyond a review step
A framework-built websiteDownload the MP4 and .srt, convert to WebVTT, and add them in your templatesWebsite publishing writes to HTML files in a repository

Videngine fits when the video is still to be made.

Questions about video captions and transcripts

Do video transcripts help SEO?

A transcript puts the video's words on the page as text, which matches Google's advice to embed a video near relevant text. Google's video best practices don't mention transcripts, so treat one as completing the page, not as a ranking trick. Put it in the HTML, next to the video.

What is the difference between closed captions and open captions?

Closed captions are a separate track, such as a WebVTT file, that viewers turn on and off. Open captions, also called burned-in captions, are part of the picture and always show. Use open captions for social feeds and ads, and closed captions on your own website's player.

Should I use SRT or WebVTT?

Use WebVTT for video on your own website, because the HTML track element reads WebVTT. Use SRT when a platform or editing tool asks for it. Converting SRT to WebVTT takes a header line and full stops instead of commas in the timestamps.

How do I add subtitles to a video I already have?

Use a subtitle tool: it transcribes the audio, lets you correct words and timing, and exports SRT, WebVTT or burned-in captions. Check names, numbers and small words such as “not”. Videngine doesn't caption uploaded videos; it captions the videos it makes.

Are automatic captions good enough for accessibility?

Not without editing. The W3C says automatically generated captions do not meet user needs or accessibility requirements, and one missed word can make a caption contradict the audio. Use them as a first draft and correct them while listening.

Choose your next step

See where captions and transcripts sit in the wider picture, then check what AI assistants read on a video page.

Publish the captions with the video.

Bring one page that already has a reason for a video. Review the video and its captions in the studio, then publish the player, caption track and transcript to that page in one commit.

Join the waitlist ↗

Published by Videngine, a video rendering product built and run by Wall & Fifth. External links refer to the original documentation or product descriptions; examples are illustrative unless stated otherwise.