Fixed Widget and Sticky Elements for WordPress


Use Fixed Widget to create sticky widgets and other elements that stay in the visible screen area when a user scrolls the page up or down.

Sticky widgets are more visible than unfixed widgets and therefore have a significantly higher click-through rate.

That’s why this option is worthwhile for ads or other elements that visitors should interact with. Meanwhile, Google also allows the integration of sticky AdSense ads.

Changes in version 6.0.0

Version 6.0.0 is a full rewrite of the frontend script. It fixes many edge cases like jumping, reloading, or resizing widgets.
The rewrite also resolves bad Cumulative Layout Shifts.

Enable «Test new version» under Appearance > Fixed Widget Options.

  • the frontend script does not need jQuery anymore
  • removed unneeded options that previously helped resolving edge cases
  • «Stop Elements» and «Custom Fixed Elements» now accept any selector, including IDs, Class, and Type selectors.
  • works with the widget block editor introduced in WordPress 5.8
  • added «stop» option to widget blocks

Bitte testen Sie das und , lassen Sie uns wissen, wenn Sie Probleme entdecken.


All the features are free.

  • Sticky Widgets Use the Fixed Widget option on any widget and blocks in the sidebar
  • Sticky Elements Choose any element on your site and make it sticky
  • Margin Top allows you to stop sticky elements to cover sticky menu bars
  • Margin Bottom pushes sticky elements up before they reach a certain distance towards the bottom window
  • Stop Elements push sticky elements up when they are scrolling into view
  • Stop Blocks defines blocks in your sidebar that push fixed blocks out of the page
  • Minimum Screen Width and Minimum Screen Height allow you to disable sticky behavior on small screens


Theme requirements:

  • wp_head() and wp_footer() functions in header.php and footer.php files
  • JavaScript errors could break sticky widgets


  • A fixed widget and a stop widget in action
  • Fixed Widget plugin options
  • Fixed Widget options for blocks in the widget editor
  • Fixed Widget option for legacy widgets


  1. Führen Sie die übliche Prozedur zur Installation von WordPress-Plugins durch
  2. Aktivieren Sie das Plugin über das Plugin-Menü in Ihrem WordPress-Backend
  3. Navigieren Sie zu Design -> Widgets und aktivieren Sie die «Fixed Widget»-Checkbox, die sie unter allen aktiven Widgets finden können.
  4. Verbesserung der Parameter auf der Seite Design -> Fixed Widget Optionen


Warum funktioniert das Fixed Widget Plugin nicht?

Dies kann mehrere Gründe haben:

  1. JavaScript-Fehler auf der Webseite. Häufig werden diese durch fehlerhaft programmierte Plugins verursacht. Kontrollieren Sie in der Browser-Konsole, ob JavaScript-Fehler auftreten. Wenn Sie Fehler finden, versuchen Sie, die Ursache zu lokalisieren und das Problem dort zu lösen.
  2. Keine wp_head() und wp_footer() Funktionen im Template. Überprüfen Sie die header.php und footer.php Dateien des aktivierten Themes.
  3. Konflikte mit anderen Plugins oder Scripten
  4. inkompatibles CSS

Ist es möglich, mehrere Widgets zu fixieren?

Ja, es ist möglich, mehrere Widgets zu fixieren. Auch, wenn sich diese in unterschiedlichen Sidebars befinden.

Wie kann ich verhindern, dass der Footer überdeckt wird?

Go to WP admin area, Appearance -> Fixed Widget Options. Here you can define the top and bottom margins. Set bottom margin value >= footer height. Check the result, please.
If your footer height is changing from page to page it is better to use the Stop ID option. Here you need to provide the HTML tag ID. The position of that HTML element will determine the margin bottom value. For example, let’s take the Twenty Sixteen default theme. The theme’s footer container has an id=»colophon». In the Stop Element Selectors option I need to enter #colophon.

Wie kann das Plugin auf mobilen Geräten deaktiviert werden?

Use the options Minimum Screen Width and Minimum Screen Height to disable sticky features when the browser window is too small. You can also use the visitor conditions of Advanced Ads to target specific devices.


11. Januar 2022
We can only fix selective widgets. Not all widgets. I want just 1 widget to be sticky, and there is no option for it. For me, this plugin is simply waste of space. I hope you update it in the next version
1. November 2021
Thomas and Max, the plugin authors, were very responsive and quick to fix an issue when I brought it to their attention. It's great when developers support their plugins and the people who utilize them. Thank you both very much! Review of version 6.0.0-beta-2 While using: WordPress 5.8.1 WooCommerce 5.8.0 Astra (theme) 3.7.4
3. September 2021
I used this plugin and I am very satisfied. I used it in the sidebar section of my website, it worked flawlessly and it looked very nice. Thanks. I recommend this plugin to everyone.
Read all 245 reviews

Contributors & Developers

“Fixed Widget and Sticky Elements for WordPress” is open source software. The following people have contributed to this plugin.


“Fixed Widget and Sticky Elements for WordPress” has been translated into 21 locales. Thank you to the translators for their contributions.

Translate “Fixed Widget and Sticky Elements for WordPress” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fix: use the previous Stop ID value in the new Stop Elements section


Version 6.0.0 is a full rewrite of the frontend script. It fixes many edge cases like jumping, reloading, or resizing widgets.
The rewrite also resolves bad Cumulative Layout Shifts.

Most changes are available when you enable «Test new version» under Appearance > Fixed Widget Options.

Bitte testen Sie das und , lassen Sie uns wissen, wenn Sie Probleme entdecken.

  • added new (and optional) script version that uses position: sticky instead of position: fixed
  • the frontend script does not need jQuery anymore
  • removed unneeded options that previously helped resolving edge cases
  • «Stop Elements» and «Custom Fixed Elements» now accept any selector, including IDs, Class, and Type selectors.
  • fixed blocks in sidebars as introduced in WordPress 5.8
  • define stop blocks in sidebars that move up fixed blocks on scrolling
  • improved option descriptions on the admin page
  • improved behavior for elements higher than the screen – they first stick at the top and scroll to the bottom later
  • removed duplicating widget code


  • fixed option not saving when using the Gutenberg plugin to edit sidebars with block editor
  • disabled scripts and output on AMP pages since sticky widgets are not part of the AMP standard
  • removed explicit translation files since all translations are handled through


  • Added q2w3-fixed-widget-sidebar-options filter for widget options in the frontend.


  • Fixed JavaScript events which were not called in some setups.


  • Fixed JavaScript bug that caused jumping / flickering of fixed widgets.


  • Fixed « is not a function» bug


  • sprachliche Korrekturen
  • Einstellungsseite aufgeräumt


  • Autorenwechsel


  • Filter «q2w3-fixed-widgets» hinzugefügt. Emöglicht das Filtern einer Reihe fixierter Widgets.


  • Kompatibilität mit dem WP Page Widget Plugin


  • Kompatibilität mit Shortcodes Ultimate Widgets


  • Fix für Probleme mit Unterem Abstand und Stop ID von Version 5.1


  • Neue Optionen für die Lademethode
  • Getestet mit WordPress 4.9


  • Kompatibilität Better WordPress Minify Plugin.


  • Fix für den Fehler «q2w3_sidebar_options is not defined».


  • JavaScript optimiert
  • Um den Fehler «q2w3_sidebar_options is not defined» zu lösen, wird nun die wp_add_inline_script Funktion verwendet. Für diesen Fix wird WordPress 4.5 benötigt.
  • Option MutationObserver deaktivieren hinzugefügt. Verwenden Sie diese Option nur als Backup um das Verhalten von Version 4 wiederherzustellen!


  • Fix: Problem in Themes mit mehreren Sidebars


  • Optimized client side performance. Detection of page changes is now based on MutationObserver API. Widget parameters recount is fired only when needed! Refresh interval option used only for campatibility with old browsers (no MutationObserver API support).
  • verbesserte Kompatibilität mit Caching Plugins (W3TC, Autoptimize etc.). Kein Grund mehr, jQuery und Plugin-Dateien vom Caching auszuschliessen!
  • Async/Defer script load method support
  • Optionen Deaktivierungsbreite und Deaktivierungshöhe hinzugefügt
  • Nachricht an alle Nutzer von Caching-Plugins: Bitte vergessen Sie nicht, den Cache zu leeren, nachdem Sie das Upgrade auf Version 5 durchgeführt haben. Die Optionen wurden geändert.


  • Hinzugefügt: Stop ID Option. Verwenden Sie diese, wenn Sie keinen Wert für Unterer Abstand angeben können. Entwickelt von Julian_Kingman!
  • Now the plugin is aware of the WordPress admin bar presence!
  • Fixed destruction of jQuery(window).load hook. There should be no problems with other jQuery plugins now!
  • Deutsche Übersetzung
  • Übersetzbarkeit verbessert


  • Kleiner Fix
  • Französische Übersetzung


  • Option: «Übernehme Widgetbreite des übergeordneten Containers» für bessere Unterstützung responsiver Layouts.
  • JavaScript optimiert.


  • Hinzugefügt: Option «Automatische Korrektur der Widget ID». Sie ist standardmässig aktiviert. Wenn das Plugin mit der deaktivierten Option funktioniert, lassen Sie sie deaktiviert.



  • Fix: Problem mit dupliziertem Widget Code.


  • Fix: Widget springt
  • Hinzugefügt: Option, um automatisch das Widget-ID-Problem zu lösen
  • Hinzugefügt: Kompatibilitätsoption (Plugin-Priorität)
  • Added complete uninstall (uninstall script launched automatically when you DELETE plugin)
  • Spanische Übersetzung
  • Veraltete Optionen entfernt


  • Diese Version ermöglicht die langersehnte Möglichkeit, Widgets in unterschiedlichen Sidebars zu fixieren. Viel Spass!
  • Fix: Konflikt mit WP Page Widget Plugin
  • kleine Fixes und Verbesserungen
  • Warning! «Disable plugin on mobile devices» and «Disable plugin on tablet devices» options now are depricated and will be removed in the next release. Use «Screen Max Width» option instead!


  • Option: Plugin-Funktion deaktivieren, wenn die Browserbreite des Besuchers einen bestimmten Wert unterschreitet (Plugin-Optionen).


  • Kompatibilität mit jQuery 1.9 und 1.10


  • Kleine interne Verbesserungen
  • Update Mobile Detect auf Version 2.6.0


  • Fix: PHP-Fehler
  • Update Mobile Detect auf Version 2.5.8



  • Now the plugin is able to reflect dynamic page content changes (infinite scroll, ajax basket and other javascript stuff)!!!
  • Added new option to plugin settings: Refresh interval. Recommended values between 500 – 2000 milliseconds. Note: setting have impact on the site performance (client side). If you don’t have dynamic content, set Refresh interval = 0.
  • Update Mobile Detect auf Version 2.5.7


  • New option to define custom widget IDs for static sidebars and etc.
  • Option, um das Plugin auf mobilen Geräten zu deaktivieren.
  • Fix: JavaScript-Fehler, wenn auf einer Seite keine Sidebars vorhanden sind.


  • Fix: Überdeckung des Footers. Nutzer können im Backend (Design -> Fixed Widget Optionen) spezifische Werte für den oberen und unteren Abstand der fixierten Widgets definieren.
  • Übersetzbarkeit verbessert


  • Normalized plugin behavior when sidebar is longer then main content. Note: possible overlapping with footer is still exists.


  • Fix: Problem mit Widgets, die nur auf einigen Seiten eingeblendet wurden.
  • JavaScript optimiert


  • Kompatibilität mit WebKit-basierten Browsern (z.B. Chrome und Safari).
  • Unnötiges CSS entfernt.


  • Erste Veröffentlichung.