Remove Marquee Elements

No Comments
Remove marquee elements
TL;DR: The <marquee> tag is a dead, non-standard element that browsers still limp along with but that hurts accessibility, layout stability, and the professional signal your page sends. Delete every marquee, and if you genuinely need motion, rebuild it with CSS you can pause and respect reduced-motion preferences.
Check code
HT-027
Element
<marquee>
Status
Deprecated
Main risk
Accessibility
Fix effort
Low

I still find marquees in the wild. Usually it is a 2009 promo banner nobody has touched, a scrolling stock ticker on a small-business homepage, or a "breaking news" strip glued to the top of a template that got copied from site to site. The instinct to make text move is old, and the <marquee> tag was the lazy way to do it. It needs to go.

What the marquee element actually is

<marquee> is a non-standard HTML element that scrolls or bounces its contents across the screen. It was a Microsoft Internet Explorer invention from the mid-1990s, Netscape had its own <blink> equivalent, and neither was ever part of a real HTML specification. The WHATWG HTML standard lists marquee as an obsolete feature that must not be used by authors. Browsers keep rendering it for backward compatibility, but "it still works" and "it is supported" are not the same thing.

Because it was never standardized, its attributes (behavior, direction, scrollamount, scrolldelay, loop) are quirky and inconsistent. You are building on a foundation the spec explicitly tells you to abandon, and one day a browser can drop it without warning you.

Why it matters for SEO and users

Search does not hand out a direct "marquee penalty." The damage is indirect, and indirect damage is still damage.

First, accessibility. Auto-moving content is one of the oldest WCAG failures on record. Success Criterion 2.2.2 (Pause, Stop, Hide) requires that any moving, blinking, or scrolling content lasting more than five seconds can be paused or stopped by the user. A raw marquee gives users no controls at all. Screen readers handle it unpredictably, and people with vestibular disorders or attention differences can find constant motion genuinely painful. Google has been loud for years that helpful, accessible, people-first content is what it wants to rank, so accessibility debt quietly works against you.

Second, layout stability and Core Web Vitals. Continuously animating text can trigger repaints and, depending on how it is built, contribute to layout shift. A janky, shifting hero region is a bad Interaction to Next Paint and Cumulative Layout Shift story.

Third, trust. A scrolling neon banner reads as abandoned or amateur. If your page looks like it was frozen in a GeoCities era, users bounce, and bounce behavior on the pages that should convert is the kind of thing that shows up in your analytics before it shows up anywhere else.

How to detect marquees across a site

You want every instance, not just the one you happened to see.

Crawl the site Screaming Frog Custom search contains <marquee List URLs plus template file Remove or replace CSS if motion needed

  • Screaming Frog: run a crawl, then use Custom Search or Custom Extraction with the string <marquee to flag every page whose rendered or raw HTML contains it. Export the URL list.
  • Source grep: if you have repo or theme access, grep the codebase for marquee. Most instances live in a shared header, footer, or widget, so one template fix can clear dozens of URLs.
  • Browser check: open DevTools, search the DOM for the tag, and confirm whether it is hard-coded or injected by a script or plugin.
  • Sitebulb or a validator: HTML validators and crawlers that flag obsolete elements will surface it as a warning.

How to fix it, step by step

  1. Decide if the motion is needed at all. Nine times out of ten the answer is no. Static text in a clean banner does the job. Delete the marquee tags and keep the inner content.
  2. If motion is truly required (a real ticker, a partner logo strip), rebuild it with CSS @keyframes and transform: translateX(). This is GPU-friendly and does not trigger the same layout thrash.
  3. Add controls and respect preferences. Give users a visible pause control, and wrap the animation in a @media (prefers-reduced-motion: reduce) block that stops it for anyone who has asked their OS for less motion. That is how you satisfy WCAG 2.2.2 instead of ignoring it.
  4. Fix the source, not the symptom. If a plugin or page builder injects the marquee, disable or replace that component so it does not come back on the next content edit.
  5. Re-crawl and confirm zero instances remain.

Deprecated versus modern approach

Concern<marquee>CSS animation
Spec statusObsolete, must not useStandard
Pause controlNone built inEasy to add
Reduced-motion supportIgnores itFully supported
PerformanceRepaints, unpredictableGPU-composited transforms
Future-proofCan be dropped anytimeYes
DO
  • Remove every <marquee> tag and keep the content inside it
  • Rebuild real motion with CSS keyframes and transforms
  • Honor prefers-reduced-motion and offer a pause button
  • Fix the shared template or plugin so it does not return
  • Re-crawl to verify zero remaining instances
DON'T
  • Keep it just because the browser still renders it
  • Swap it for the equally dead <blink> tag
  • Auto-scroll content with no way to stop it
  • Animate the whole hero and wreck your layout stability
  • Fix one page and ignore the template feeding the rest

What good looks like

Good is boring in the best way: no marquee anywhere in the codebase, motion used sparingly and only where it earns its place, every animation pausable, and reduced-motion users served a still version by default. Your HTML validates without obsolete-element warnings, and the page reads as maintained rather than mothballed.

FAQ

Will removing marquees directly raise my rankings?
Not on its own. There is no marquee ranking factor. What you gain is better accessibility, cleaner layout stability, and a more credible page, all of which feed the signals Google actually cares about.
The browser still shows my marquee. Why change it?
Rendering for backward compatibility is not a guarantee. The HTML standard marks it obsolete, so it can be removed in a future browser version, and it already fails accessibility requirements today.
I really do need scrolling text. What now?
Use CSS with @keyframes and transform: translateX(), add a pause control, and wrap it in a prefers-reduced-motion query so it stops for users who asked for less motion.
How do I find all of them fast?
Crawl with Screaming Frog and run a Custom Search for the string <marquee, or grep your theme and template files. Most sites have one shared component to fix rather than dozens of separate pages.
Cleaning up legacy HTML across a big site?

Obsolete tags like marquee usually travel in packs with other technical debt. An advanced audit finds every instance and the templates feeding them.

Get an advanced SEO audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog