The checklist
- No jQuery dependency. The script is plain JavaScript and does not depend on jQuery or on any script handle but its own. (Inside Elementor’s editor it listens for Elementor’s start-up event through jQuery, but only if jQuery is already there; it never loads it.)
- Only where used. The script and stylesheet are queued at the moment a marquee is drawn on a page. A page without one is not touched.
- Deferred. The script loads in the footer with the defer strategy, so it does not hold up the page.
- Small. Unminified, the script is 11,205 bytes and the stylesheet 6,089. There is no build step: the code in the plugin is the code that runs.
- Quiet in admin. Outside the block editor, Elementor's editor and the plugin's own settings page, no admin screen loads anything from it.
- No outside requests. The free plugin does not call any server of ours or anyone else's.
- Almost no data. It stores no settings. It keeps only two small things: a short note if it ever fails to start, removed again when it starts normally, and, for each user, whether they hid the one request for a review.
The cost that remains
A marquee measures its content, so on a page it does some work when the page loads and when something changes size. It does that with a single resize observer per strip and does not poll. The animation itself is a transform, which the browser can run without redoing the layout.
How to check any plugin
Open a page that has no marquee, view the page source and search for the plugin's name. If its script or style are there, it loads everywhere. Do the same in the admin: a plugin that loads assets on every admin screen is working in places you did not ask it to.
A note on the Pro add-on
The paid add-on makes calls to a licence service to keep updates and the licence working, and nothing else; it is described on the privacy page. The free plugin makes none.
The way the loop is kept seamless without a library is described in the loop guide.