Video Captions in WordPress: Accessibility, Silent Viewing and SEO

A video without captions blocks deaf users and loses silent viewers. Here is how to add VTT files, enable auto-captions and lift overall accessibility.

A video without captions is half-content. It locks out deaf and hard-of-hearing users entirely, drops everyone watching in silent contexts (open offices, public transit, no headphones), and hurts discoverability in search.

Why this matters

Accessibility: this is an explicit international accessibility guidelines Level A requirement, 1.2.2 Captions (Prerecorded). A deaf or hard-of-hearing viewer sees the picture but loses every audio cue - dialogue, narration, sound effects critical to the story. Without captions, a 5-minute "How to set up your account" video is 5 minutes of pictures with no content.

Silent viewing: Facebook, LinkedIn and YouTube data show over 80% of social-video views happen with the sound off. A visitor on mobile during a commute or in an open office without headphones depends on captions.

SEO: YouTube and Google index caption text. A captioned video appears in search for keywords spoken inside it, not only the title and description. That doubles the SEO value of the video.

How to detect

Open the pages with embedded videos. Click play - is there a CC (Closed Captions) button? In a YouTube embed, click the gear icon > Subtitles - if it says Off and no language is available, there are no captions. RankPlus scans <video> tags and YouTube/Vimeo iframes inside posts and flags any without an associated track.

How to fix

  1. YouTube videos: open YouTube Studio > the video > Subtitles. Click "Add language" > "English" > Auto-sync if you have a transcript, or auto-translate if you start from another language. YouTube's auto-captions for English are usually solid; review and edit obvious errors before publishing.
  2. Force captions on by default in embeds: add cc_load_policy=1 to the iframe:
    <iframe src="https://www.youtube.com/embed/VIDEO_ID?cc_load_policy=1&cc_lang_pref=en"></iframe>
  3. Videos uploaded directly to WordPress (Video block): prepare a .vtt file with timings:
    WEBVTT
    
    00:00:00.000 --> 00:00:04.000
    Welcome to WordPress.
    
    00:00:04.500 --> 00:00:09.000
    Today we will talk about web accessibility.
    Upload the file to Media Library, and in the Video block add the file URL under Caption Track.
  4. If you do not want to type captions yourself: Otter.ai, Descript, Rev.com, Happy Scribe generate VTT automatically from audio. Cost: a few dollars per minute; review afterwards.
  5. Vimeo: in the video's Settings > Distribution > Subtitles, upload the VTT.
  6. Text transcript below the video: paste the full transcription as a normal paragraph. Helps SEO and screen-reader users who cannot read overlay captions.
  7. Confirm captions are synchronised (within 2 seconds of the audio) and complete - some auto services truncate long lines.

Common mistakes

  • Trusting auto-captions without review: word-level errors create misleading content ("Wordpress" as "word press", proper names mis-spelled). Always review.
  • SDH instead of captions: SDH (Subtitles for Deaf and Hard-of-hearing) also describes effects ["dramatic music"]. Not essential for tutorials; standard captions suffice. For narrative video, SDH is better.
  • Forgetting captions on the hero video on the home page: that is the first thing every visitor encounters.
  • VTT hosted behind auth: storing VTT on a private CDN with token auth breaks playback. Ensure the file is public.
  • Wrong language code on the track: srclang="en" on Hebrew captions confuses Auto Detect. Use the correct srclang.

Verifying the fix

Open the video and click CC. Captions should appear and stay in sync. Watch with the sound off - the content should still be understandable. In axe DevTools the Captions category should pass. RankPlus turns green.

Tip: Investing 30 minutes in captions for a hero video pays back within a month - through accessibility, silent mobile viewing and improved Google video-search placement.