All fix guides
CriticalOn-Page SEO

How to Remove Flash Content From Your Site

Your audit found embedded Adobe Flash content: .swf files, or <object>/<embed> tags pointing at Flash. Adobe ended Flash support on December 31, 2020 and no modern browser will run it, so the content is invisible to visitors, Googlebot, and AI crawlers alike. This guide shows you how to locate every Flash element and rebuild it with HTML5 video, CSS animation, or JavaScript.

What this means

The audit detected Adobe Flash (SWF) content on your page. That usually means an <object> or <embed> tag referencing a .swf file, a <param> or type attribute set to application/x-shockwave-flash, or a leftover swfobject.js script. Flash was a plugin-based technology once used for animations, video players, games, and interactive menus.

Adobe officially ended Flash support on December 31, 2020, and shipped an update that blocks Flash content from running. Chrome, Firefox, Safari, and Edge have all removed the Flash Player plugin. Anything delivered through Flash now renders as nothing: a blank box, a broken-plugin placeholder, or empty space. To a visitor it looks broken. To a crawler the content simply isn't there, because the text, links, and media locked inside a SWF are never exposed in the page's HTML.

Why it matters

Flash content is a hard failure, not a minor warning, which is why it's flagged critical. If your navigation, hero animation, or a video was Flash-based, real users hit a dead end and leave. Google renders pages without Flash, so any content, headings, or internal links that only lived inside the SWF are treated as if they don't exist. You lose the ranking value of that content and any links it carried.

The answer-engine angle makes it worse. Engines like ChatGPT, Perplexity, and Google's AI Overviews work from a page's rendered HTML and text, and none of them execute Flash. Content trapped in a SWF is uncitable: it can't be summarized, quoted, or surfaced in an AI answer. If a Flash element is also your only call-to-action or key message, you're invisible to both classic search and the AI layer at once. Removing Flash and re-implementing the content in real HTML makes it crawlable, indexable, and quotable again.

How to fix it

  1. 1

    Find every Flash reference on the site

    Search your codebase and CMS for the tell-tale markers: files ending in .swf, the string application/x-shockwave-flash, <embed> and <object> tags, and any include of swfobject.js or flashcanvas. In WordPress, also check widgets, page builders, and the theme's header and footer templates. View the page source (Ctrl+U) or re-run your audit to confirm exactly which tags fired the issue, since a single leftover <param> can trip it.

  2. 2

    Replace Flash video with an HTML5 video tag

    If the SWF was a video or FLV player, convert the source to MP4 (H.264) or WebM and serve it with the native <video> element. This needs no plugin, works on mobile, and exposes a real, crawlable media element. Set width and height (or a CSS aspect-ratio) to prevent layout shift, and include a poster image and a text fallback inside the tag for anything that can't play it.

  3. 3

    Rebuild animations and interactivity in CSS or JavaScript

    Flash banners, hover menus, and simple motion should become CSS transitions, CSS keyframe animations, or SVG. For genuinely interactive pieces such as games, configurators, or data visualizations, rebuild in HTML5 Canvas, SVG, or a JavaScript framework. The key win beyond compatibility is that the text, headings, and links now live in the DOM where crawlers and AI engines can read them. Keep any important copy as real HTML text, not baked into an image or canvas.

  4. 4

    Preserve the content, links, and CTAs that were inside the SWF

    This is the step people skip. Whatever headline, paragraph, product link, or button was trapped in the Flash object needs to reappear as actual HTML: a heading, a <p>, an <a href> with descriptive anchor text. That restores the internal links and on-page content Google was missing, and makes the message available to AI answer engines. Don't just delete the Flash and leave a hole; port its meaning into the page.

  5. 5

    Remove the dead tags and Flash detection scripts

    Delete the <object>, <embed>, <param>, and any swfobject.js or <noscript> Flash-install prompts entirely. Old 'Get Adobe Flash Player' fallback links are dead and should go too. Leaving empty or commented Flash markup can still trip automated checks and confuse crawlers, so strip it fully rather than hiding it with CSS.

  6. 6

    Re-audit and check rendering

    Reload the page in a current browser and confirm the replacement content is visible with no broken-plugin box. Use Google Search Console's URL Inspection tool and its rendered-HTML view to verify Googlebot now sees your text and links. Then re-run the audit to confirm the issue clears and that the new video or animation didn't introduce new problems like a large uncompressed MP4 or missing dimensions.

Example

<!-- OLD: Flash embed - invisible in every modern browser -->
<object width="640" height="360"
        type="application/x-shockwave-flash"
        data="player.swf">
  <param name="movie" value="player.swf">
  <param name="flashvars" value="file=intro.flv">
  <embed src="player.swf" width="640" height="360"
         type="application/x-shockwave-flash">
</object>

<!-- NEW: HTML5 video - no plugin, works on mobile, crawlable -->
<video width="640" height="360" controls
       poster="intro-poster.jpg" preload="metadata">
  <source src="intro.mp4" type="video/mp4">
  <source src="intro.webm" type="video/webm">
  <p>Your browser can't play this video.
     <a href="intro.mp4">Download the intro (MP4)</a>.</p>
</video>

Replace a Flash SWF video embed with a native HTML5 video element that browsers, Googlebot, and AI crawlers can all read.

Platform-specific steps

WordPress (incl. Yoast / Rank Math)

Flash usually hides in a Custom HTML block, a legacy Flash embed widget, a page-builder module (Elementor or Divi), or the theme's header.php/footer.php. Edit the page or post, swap the Custom HTML block for the WordPress native Video block (or a <video> tag), and remove any old Flash plugin like an FLV or SWF player. Yoast and Rank Math don't touch Flash directly, but once you restore the content as real text they'll start scoring it. Clear your caching plugin (WP Rocket, W3 Total Cache) and your CDN after editing.

Shopify

Check theme files under Online Store > Themes > Edit code, plus any custom Liquid sections and metafields, for .swf or <embed> references. Replace Flash video with Shopify's native video support: upload to Files or use a Video section, which outputs an HTML5 player. Remove leftover Flash markup from theme.liquid and section files.

Wix / Squarespace

These platforms haven't supported Flash for years, so a flag almost always comes from an embedded HTML or code block you added manually. Open the custom code or embed element, delete the Flash embed, and use the built-in Video element instead; it serves HTML5 and hosts the file for you. If it was a third-party Flash widget, remove it and find a modern equivalent.

Raw HTML / Next.js / React

Search the project for '.swf', 'x-shockwave-flash', and 'swfobject' across components, public assets, and any dangerouslySetInnerHTML strings. Replace SWF players with a <video> element or a React video component, rebuild animations as CSS, SVG, or Canvas, and delete the swfobject script and any CDN copies of the .swf. Confirm the new content renders server-side so crawlers and AI engines get it in the initial HTML.

Free tool
Check this with the UI/UX Checker

Frequently asked

Does Flash still work in any browser in 2026?

No. Adobe ended Flash support on December 31, 2020 and shipped an update that blocks Flash content from running. Chrome, Edge, Firefox, and Safari have all removed the Flash Player plugin. There is no supported way for a normal visitor to view Flash today, so any .swf content on your site is effectively invisible.

Can Google or ChatGPT read content inside a Flash file?

No. Google renders pages without Flash and treats SWF-embedded text, links, and media as absent, so that content earns no ranking value. AI answer engines like ChatGPT, Perplexity, and Google AI Overviews work from rendered HTML and cannot execute Flash either, so anything inside a SWF is uncitable. Re-implementing it as real HTML fixes both at once.

What do I replace Flash with?

It depends on what the Flash did. Video and audio players become the native HTML5 <video> and <audio> tags with MP4 or WebM sources. Animations become CSS transitions and keyframes or SVG. Games, configurators, and complex interactivity are rebuilt with HTML5 Canvas, SVG, or a JavaScript framework. In every case, keep real text and links as actual HTML so crawlers can read them.

How do I find all the Flash on my website?

Search your code and CMS for '.swf', 'application/x-shockwave-flash', '<embed', '<object', and 'swfobject'. Check theme templates, page-builder blocks, and custom HTML widgets, not just page body content. Viewing the page source (Ctrl+U) and re-running your audit will pinpoint the exact tags that triggered the flag.

I converted the Flash video to MP4 but the audit still flags it. Why?

A leftover <object>, <embed>, or <param> referencing application/x-shockwave-flash is almost certainly still in the HTML, even if nothing renders. Automated checks look for the markup, not just a running plugin. Delete every Flash-related tag and any swfobject.js include, clear your cache and CDN, then re-audit.

Does your site have this issue?

Run a free, AI-powered audit and we’ll flag this and 150+ other checks in about a minute. No signup.

No signup needed. Results in under 60 seconds.

Related fixes