
Two shapes, two screens
On desktop, a floating sidebar sits in the left margin beside the article column and follows the reader down the page. On phones there is no margin, so the equivalent is a bar fixed to the bottom of the screen. Top-fixed share bars on mobile compete with the browser's own address bar and the site header, and they are the pattern readers find most intrusive.
| Placement | Screen | Space it takes | Typical failure |
|---|---|---|---|
| End-of-post row | All | None while reading | Too far away on long guides |
| Floating left rail | Desktop above about 1100 px | A 48 px column in the margin | Overlaps text at in-between widths |
| Bottom bar | Phones | 48 to 56 px of viewport height | Hides content in landscape |
| Top-fixed bar | Phones | Header plus bar plus address bar | Readers dismiss the page |
When a sticky share bar earns its place
- Long guides and tutorials where the end-of-post buttons are thousands of pixels away.
- Pages people share while reading, such as data pieces and checklists.
- Sites whose analytics show shares mostly come from mobile.
When it gets in the way
- Short posts where the end-of-post row is already on screen.
- Layouts with a narrow margin, where the rail overlaps text at some window widths.
- Pages that already have a sticky header, cookie notice and chat widget. Three fixed elements on a phone leave little room to read.
Build it without layout shift
Reserve space
If the bar is injected by script after load, the page jumps. Use CSS so the bar is part of the first render, and add bottom padding to the body on mobile equal to the bar height.
Pick a breakpoint
Show the rail only when the margin is wide enough, for example above 1100 pixels, and switch to the bottom bar below it. Test the widths in between.
Keep it short
Four icons at most on mobile. Put copy link first.
Respect the keyboard
Fixed elements must not trap focus, and the bar's links need visible focus styles.
Let readers dismiss it
A small close control on mobile is courteous and reduces frustration on long reads.
The CSS below does the mobile half of that. The bar is in the HTML from the start, the body reserves its height, and the bottom inset from env() keeps it clear of the home indicator on phones with rounded screens.
.share-bar {
position: fixed; left: 0; right: 0; bottom: 0;
height: 52px; padding-bottom: env(safe-area-inset-bottom);
display: flex; justify-content: center; gap: 8px;
background: #ffffff; border-top: 1px solid #d9d9d9;
}
body { padding-bottom: calc(52px + env(safe-area-inset-bottom)); }
@media (min-width: 1100px) {
.share-bar { position: sticky; top: 120px; bottom: auto; left: auto; right: auto;
width: 48px; height: auto; flex-direction: column; border: 0; }
body { padding-bottom: 0; }
}
@media (max-height: 480px) { .share-bar { display: none; } body { padding-bottom: 0; } }Worked example: a 3,000 word guide
Consider a 3,000 word how-to on a site where 70 percent of sessions are on phones. The figures are invented but the proportions are ordinary. At a phone reading width the article runs about 11,000 pixels tall, so the end-of-post row is roughly 25 screens away from the introduction. Readers who decide halfway through that a friend needs the guide have nowhere to click.
| Setup | Share clicks per 1,000 sessions | CLS | Note |
|---|---|---|---|
| End-of-post row only | 6 | 0 | Baseline |
| Bottom bar injected by script | 11 | 0.18 | Clicks up, page experience failing |
| Bottom bar in CSS, space reserved | 11 | 0.01 | Same clicks, no jump |
| Bottom bar plus rail on desktop | 12 | 0.01 | Small desktop gain |
The lesson in the table is that the bar itself roughly doubles share clicks on this long page, and that the implementation decides whether you pay for it in layout shift. The site keeps the CSS version, hides the bar below 480 pixels of viewport height, and turns it off on posts under 800 words where the end-of-post row is already close.
The old add-ons, in context
Plugins of the MashShare era sold sticky bars and floating sidebars as separate add-ons, and those product pages still attract links. The ideas were sound. What changed is that page experience signals now measure layout shift, so the implementation matters as much as the placement.
What goes wrong
- Bar covers the footer. Without body padding, the last lines of the post and the footer links sit under the bar. Reserve the height.
- Two rows at once. The bar stays visible while the end-of-post row scrolls into view. An intersection observer on the row can hide the bar while the row is on screen.
- Rail overlaps text. Between about 1000 and 1150 pixels wide the margin is too narrow for a 48 pixel rail. Set the breakpoint where the margin is genuinely free, and test the widths between.
- Fixed bar in landscape. A 52 pixel bar on a 360 pixel tall landscape viewport takes a seventh of the screen. Hide it below about 480 pixels of height.
- Cookie notice collision. Two bottom-fixed elements stack or overlap. Delay the share bar until the notice is dismissed, or move the notice to the top.
Check it worked
- A lab test on a phone profile reports CLS under 0.1 with the bar present, and the bar is visible in the first screenshot of the filmstrip.
- At 360 by 640, 390 by 844 and 412 by 915 the bar shows four buttons or fewer on one line and does not cover the last paragraph.
- In landscape at 480 pixels of height or less, the bar is hidden.
- On a 1280 pixel desktop the rail sits in the margin without touching the article column; at 1024 pixels it is gone.
- Tab order reaches the bar after the article, and Escape or the close control dismisses it on mobile.
If the bar passes those checks but share clicks do not move after 30 days, remove it. Buttons that sit on screen for every reader need to earn their place, and the sizing rules in mobile share button layout plus the measurement steps in share buttons and page speed tell you whether it does. Other placements are compared across the share buttons guides.
Sources
- web.dev: Cumulative Layout Shift (CLS)
- Google Search Central: avoid intrusive interstitials and dialogs
- MDN Web Docs: the CSS env() function and safe-area insets
Questions
Do sticky share bars increase shares?
They can on long content and mobile-heavy sites, because the buttons are always reachable. On short pages the difference is small and the bar costs screen space.
Should a mobile share bar be at the top or bottom?
The bottom. It sits where thumbs reach and does not fight the browser address bar or your header.
Can a sticky share bar cause CLS?
Yes, if it is inserted after the page renders. Render it with the page in CSS and reserve its space.
How tall should a mobile share bar be?
About 48 to 56 CSS pixels plus the safe area inset, enough for 44 pixel tap targets with a little breathing room and no more.
Should the sticky bar show on every post?
No. Show it on posts above a length threshold, such as 800 words, and leave short posts with the end-of-post row only.
Hannah Voss, Editor. Checks every guide against a working WordPress install and the networks' current documentation. Last reviewed September 2026.
Related reading
- Share buttons on mobile: layout, size and native sharingMake share buttons work on phones: tap target sizes, one-line rows, bottom bars, the native share sheet, and how to show different buttons on small screens.6 min read
- Share buttons and page speedWhy some share buttons slow WordPress pages and others cost almost nothing. How to measure the impact, and what to change to keep sharing fast on every page.5 min read
- Which share networks to show, and how manyHow to choose which social share buttons to display: match networks to your audience, keep the row short, and add copy link, email and messaging options.6 min read