I recently joined a few Stack Exchange sites on which I don't have the reduce ads privilege yet.

The issue I experienced happens with the two "leaderboard" style ads that are displayed to new users and visitors, like the following one (from a question on SuperĀ User):

Enter image description here

The ad is loaded (probably using Ajax) shortly after the page itself is loaded (a few seconds). When it is loaded, it makes the content shift, which often will get users into accidentally clicking the ad instead of a link or voting.

A possible fix to this would be an immediate (no Ajax) server-side discrimination between privileged users and visitors, so that the server sends a fixed-height container for the ad to be loaded into.

That would prevent lots of inconvenience!

  • @rene I don't think it's a glitch or a bug. It's due to the very nature in which the ad is loaded, as the OP said. That's the intended behavior. Users with fast connection won't ever notice, but those with slow connection might indeed suffer. Sep 13, 2020 at 18:11
  • I posted about this before, let me find that
    – Luuklag
    Sep 13, 2020 at 18:29
  • 6
    – Luuklag
    Sep 13, 2020 at 18:31
  • 9
    Hmmm... I would think the lazy loading ads should still reserve the space for the ad and leave it blank until the ad is served...
    – Catija
    Sep 13, 2020 at 18:54
  • 1
    @Catija, I also noticed, when I posted the answer linked above, that in some cases the adds are loaded, or at least its frame. Then it appeared there was no suitable add to display, which made the frame disappear again, causing two consecutive shifts.
    – Luuklag
    Sep 14, 2020 at 6:24

1 Answer 1


This is a tricky question/situation. The problem is that on page load we don't know whether there will be an ad on that slot or not. So we have several options:

  1. Assume there is always an ad and create whitespace for it. Collapse the whitespace if there is no ad. This would create an unpleasant layout shift of the whole page.
  2. Assume there is always an ad and create whitespace for it, don't collapse it. This would leave ugly whitespace at the top of the page.
  3. Only load an ad (and the space for it) when we know that there is actually an ad to show. This creates the current jump you're seeing.
  4. Always show an ad (if there is no ad to show, show a house ad for example). This would have banner blindness (and other obvious) implications.

Note, I think ad privileged feature is loaded before we load any ads so therefore it should not impact this. In short: this only applies to users that do not have this privilege

We've looked at the numbers (around the times we actually show an ad) and decided that for now option 3 would benefit the majority of the pageviews.

There have been some ideas floating around about changing the position of the top leaderboard which should decrease the impact of this, however, this would be a larger project as it has a lot of implications and would have to be tested before being rolled out.

Disclaimer: I'm an employee of Stack, working as a Product Manager in the Advertising team

  • The best option would be to have a quicker way of determining whether or not there is an ad to show, and based on that decide which version of the page is to be loaded. And indeed you are right about the privilidged users part.
    – Luuklag
    Oct 2, 2020 at 17:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .