
Problems with infinite scroll - ohjeez
https://logrocket.com/blog/infinite-scroll/
======
mrob
The biggest problem I have with infinite scroll is that it breaks searching
within a page. If I want to find something I have to scroll down to the bottom
and then wait some arbitrary time until I think enough content has loaded.
Even if I know roughly where the content I'm searching for is, I can't just
click to a specific page. I have to guess how far I've scrolled and hope that
it's far enough. I waste time and data transfer because I'm forced to
overshoot if I want to reliably find things. I can't even bookmark a specific
page, so I have to repeat this tedious process every time.

I've never seen a use of infinite scrolling that wouldn't be better replaced
with lazy loading of images/video.

~~~
notatoad
If the information you're searching for would have been in the next page,
searching within the page would have been similarly "broken" in a paginated
UI.

The alternative to infinite scrolling isn't to load infinite data up front.

~~~
batiudrami
But if I found that content via a search engine I would have been directed to
the correct page to find what I was looking for.

~~~
edoceo
I've had many occasions of clicking links from G to land on a page that should
have what I want, the cached copy did but the landed page doesn't

~~~
setr
That would be true of any site that updates its webpages at any time,
regardless of static or dynamic webpages, and certainly regardless of
pagination/infinite load.

The only difference really is that infinite load almost guarantees the page
won’t have what you want on it, when you visit it.

~~~
edoceo
Yep, exactly.

And with my first problem, I can use the Next buttom and Ctrl+F (features
others on this thread mentioned).

Infinite load is not the right answer everywhere (anywhere?)

Eg: What if StackOverflow adopted it?

------
alan_n
I don't like infinite scroll but for another reason not mentioned here.

If you're browsing something that's content heavy (lots of pictures/videos)
there's usually a point after a certain number of "pages" where my phone just
can't take so many things loaded at once and it crashes. Not all sites have
this problem, some are really bad (\ _cough\_ tumblr \ _cough\_ ) but it makes
me avoid infinite scrolling sites at all costs. The ones with "Read More" are
slightly better (the crash doesn't happen unexpectedly x pixels from the
bottom), but still have this problem.

I thought at one point unloading the content at the top might help, but I'm
not so sure now. Discourse forums do something like this, where they only load
what you're viewing but it feels weird, like it's loading things it's already
loaded. Sometimes I do want to scroll to the bottom of something and feel like
it's all loaded everything for offline reading.

But overall by far I prefer sites/blogs that have paginated content.

~~~
rapnie
I think Discourse does a nice job. It changes the URL in the address bar as
you scroll down to viewed post ID, and I believe (but can't check now) that is
has entire content loaded in the page, and just does the rendering of the
viewport as you go down. Don't know how it handles 'JS disabled' case, though.

~~~
zbrozek
Discourse is one of my go-to examples of a terrible site that I will actively
avoid. The find in page is terrible. It makes it impossible to find anything
ever. Octoprint moved its documentation there and I'm really unhappy about it.

------
Aardwolf
For me biggest issue is if you refresh or come back (or browser app
restarted), you need to start over from the beginning again. Stuff gets
dynamically loaded instead of static url. I prefer pages with number in url
parameter (and ui to go to next/last/... page).

Things like this are more "ephemeral", rather that static pages with good
content or index you can rely on.

------
gmjoe
I dunno... I find that on most sites which implement infinite scroll, I like
it.

Reddit lets me browse stuff without interruption, and it's not like I'm ever
going to "go back" to somewhere earlier in the list... which has probably
changed in the past 10 minutes anyways.

Shopping sites let me browse hundreds of shoes or shirts without interruption,
and again it's not like I'm ever going to bookmark a segment of my search
result. Same with Google Images.

It's easy enough to put footer content in the header, or in the About page or
something. (How often do you use a footer anyways?)

And if you _really_ need to start somewhere in the middle... usually
filtering/sorting is a better approach anyways. E.g. for a blog, it's better
to have a link to Jan 2015 articles than have a link to page 9 of posts.

I find myself mildly annoyed when I have to click through to the next page of
something.

Obviously there are plenty of sites where it _doesn 't_ make sense... but I
don't see it there too often since it's usually more work to program. This
feels like a non-issue.

And for example, here on HN when there are too many comments it requires me to
click "More" to get to page 2. Why not just auto-load them when I reach the
bottom instead? If I got that far, it's more likely than not that I want to
read more.

~~~
TheRealPomax
Which ones? Standard reddit uses prev/next, not infinite scroll, and all the
shopping sites I'm familiar with use prev/next as well, rather than infinite
scroll.

~~~
joobus
Reddit's desktop site uses infinite scroll. Maybe you are using old.reddit.com
or opted out of the redesign some other way.

~~~
TheRealPomax
Good point, I forgot I installed the "always prefer old.reddit" extension when
the redesign completely wrecked image subreddits.

------
cesarb
Another issue with infinite scrolling on web sites is: what happens when
there's a connection problem? I've seen sites where it silently acts as if the
user had reached the end of the "infinite" page, even though that's not the
case. Worse, the only way to recover (once the connection is working again) is
to reload the page and start once more from the beginning.

~~~
socceroos
This problem is readily solvable though so I don't consider it a showstopper.

------
dabockster
As someone with ADHD, I immediately close any website that uses infinite
scroll. I will become insanely focused on that site to the point that I tune
out the outside world. What begins as "oh, I'll just look at this one article"
turns into at least a half hour of wasted time before I'll be able to break
out of it.

~~~
SZJX
Is that actually a typical ADHD symptom though? I thought ADHD means not being
able to concentrate for a sustained period of time, instead of being able to
become insanely focused.

~~~
dabockster
My variant is called "combined subtype". It essentially means that while I do
distract very easily, I also can become insanely focused on the task with the
least path of mental resistance. For example, I am writing this comment when I
intended to only read the top stories on HN. I just realized that I was
distracted from my original task and that I have spent five minutes describing
ADHD. Phew!

Anyways, the CDC article[1] is really good about the symptoms of all three
types. Pay attention to the DSM-5 spec if you decide to research further. The
old DSM-4 spec from the early 1990s is still quoted sometimes even though it's
horribly out of date.

[1]
[https://www.cdc.gov/ncbddd/adhd/diagnosis.html](https://www.cdc.gov/ncbddd/adhd/diagnosis.html)

------
danso
I swear that DuckDuckGo had infinite scrolling for its search results, but
this was not the case when I recently tried a search. Blog posts from a few
years ago seems to confirm my memory that infinite scroll was the default:
[http://seanvwork.com/blog/duckduckgo-vs-
google/](http://seanvwork.com/blog/duckduckgo-vs-google/)

> _DuckDuckGo doesn’t paginate their results like Google does. Instead, you
> just keep scrolling down to wade through an infinite amount of search
> results._

Opening up DDG's settings in incognito mode, I see that its "Auto-Load" is now
a setting that is off by default:

[https://i.imgur.com/yWrJ3uZ.png](https://i.imgur.com/yWrJ3uZ.png)

I also remember that DDG fans saw infinite scroll as an advantage DDG had over
Google, which was known to have rejected infinite scroll for search results:
[https://www.businessinsider.com/marissa-mayer-
google-9-2010-...](https://www.businessinsider.com/marissa-mayer-
google-9-2010-11)

I personally found it to be a detriment to user experience. If my query
doesn't return something relevant in the first 2 pages of results, why would I
want to keep going down any further -- as opposed to doing a new search?
Google's pagination has an effect of protecting me from lazily scrolling
through countless pages of increasingly irrelevant results, and I wonder if
DDG saw the same thing in user behavior tests when deciding to make infinite
scroll non-default?

------
ronilan
This trend is a big problem. We have to get to the bottom of it!

~~~
TheRealPomax
...trend? People have been writing "infinite scroll needs to go" for over five
years, most major websites that _used_ to have infinite scroll have gotten rid
of it again, so I'm confused where this is suddenly a trend. It certainly
feels like a "finally gone" aspect on North American websites.

~~~
ronilan
I’ve looked into it. No end in sight.

~~~
virusduck
Keep scrolling!

------
msftie
> Users generally do not like the UIs when they feel they cannot control it.

> A scroll event is not very intentional to do something. People navigate the
> page, and if they want to call an action they mostly click or touch (known
> as triggers). They inform the UI about their decision. But scroll is
> triggered without any decision.

Looking at you, TechCrunch! I’ve been burned by the suddenly disappearing
article too many times.

------
littlecranky67
Another problem with infinite scroll is often incorrectly implemented "back"
functionality in the browser. If you had scrolled down somewhere, click a link
or image and then click on "back", you usually do not end up were you were
before, but most often on the top of the page where you have to scroll down
again to were you were. Very lousy UX.

Even if you solve this correctly by remembering the scroll position, you have
to fire X ajax requests to restore the scrolling position, and have to wait
until all images are renders or the content will jump wildly around.

------
philliphaydon
I’ve never found a site where it worked. It’s one of the most annoying
experiences on the web. Especially when you need to navigate to another page
just to get access to the footer for getting to “contact” or similar.

------
ravenstine
The only infinite scroll I'm kinda OK with is DuckDuckGo. When it comes to
news sites with infinite scroll, I almost never want to continue scrolling
past the original article.

What I'd like to see go more than infinite scroll is sticky headers. It's one
thing if your site is effectively an app, but if a site is supposed to be
mostly prose then I don't want your stupid useless header in the way of screen
real estate. Worse yet, you make the problem _worse_ by having the header pop
out and retract if I scroll 1px in either direction. ANNOYING.

~~~
yourduskquibble
Please check out my project[1] if you hate sticky headers.

[1]
[https://github.com/yourduskquibbles/webannoyances](https://github.com/yourduskquibbles/webannoyances)

------
littlecranky67
Infinite scroll was never a good UX pattern. It was invented to keep people
from leaving the page and continue to scroll on. Pagination would interrupt
this, and people might leave after clicking two or three times clicking the
"next page" button.

------
adventured
I'd argue that the author is actually under-representing the value of
pagination by making an obvious mistake in implementation.

For example, under the ratings for pagination, they list: "Bad: Performance
issues".

That bad rating is based on doing a dynamic post count for every page load, an
approach that would only be used if someone wanted to maximize the performance
penalty (or if your site/service is small enough that it simply doesn't matter
if you do a new dynamic count on every page load). There's no common scenario
where you aren't better off storing that post count, altered only as needed,
rather than calling a new count of all posts for every single page load.

Even in a scenario of very heavy write, rare read, you're better off doing
either a stored constantly incremented count or stored compromised occasional
count that isn't perfectly accurate until or unless it needs to be.

Specifically the author uses this:

SELECT COUNT(*) AS total FROM posts

Instead of that, as a common scenario, let's say you have a posts table, and a
comments table (which correlates comments that belong to posts by an id). You
don't count how many comments each post has dynamically on every page load for
a post, in the process of showing the comments. You have a counter in the post
row, that increments only when a new comment is made, or decrements if a
comment is removed. You pull that count at the same time you pull the core
post information from the "posts" table, in the process of loading the post
and then afterward pulling its associated comments.

The penalty is that you must update the post row when a new comment occurs.
Assuming your service is heavier on read than write, which is almost
universally the case, this is an easy win.

If all you wanted to do is track the post count, and not something further
connected to it such as comments, that's also similarly trivial. There are
numerous good ways to go about storing the post count until it needs
incremented, rather than calculating it dynamically every page load.

All one has to do is consider a routine blog example, in which an author
updates the blog once per day, and receives 1,000 or 10,000 visitors per day.
There are 1,600 historical blog entries/posts spanning over four years. This
article's approach is to needlessly dynamically count that over and over,
perhaps tens of thousands of times per day, rather than altering and storing
the count once per day when a new blog post is created. Performance bad
indeed.

------
esotericn
The primary issue with infinite scroll is not the implementation, it's the
idea that a page with "infinite" content is useful or desirable to begin with.

~~~
ThomPete
Compared to pages it's been a groundbreaking improvement to me at least.

~~~
esotericn
I am specifically calling out "infinite" scroll here, i.e. the practice of
artificially limiting the amount sent to a very small amount then populating
it on the fly.

The comparison is with just sending all of the content (via API calls if
necessary, whatever) and having the browser decide what to do with it, not
breaking find, not having weird loading bars when you scroll down, etc, etc.

If you can't send all of the content you're probably creating a slot machine-
type site.

------
lousken
I hate infinite scrolling because once implemented nobody cares about disabled
javascript case - like reddit, the experience is broken without it - you can
only see first couple of topics and can't load more.

~~~
sfRattan
[https://old.reddit.com](https://old.reddit.com) should solve your problem. It
does not make use of infinite scroll.

~~~
lousken
already using it, but i'm worried it'll disappear one day

------
anigbrowl
I have some scripts I use to scrape data from FB by manually spoofing
keystrokes and I shudder to think how much energy is being wasted at both ends
for the amount of data I am actually trying to collect.

------
kerng
I always found Bing's infinite scroll for image search pretty awesome and
superior and a reason to use it over Google. Haven't seen that feature much
elsewhere though.

------
ttul
Fundamentally, scrolling indicates that you haven’t done a good job of
surfacing the information that the user really needs in the first place. I see
any form of scrolling as an admission of defeat on the part of the site
designer.

Have terabytes of log results? Why would scrolling somehow fix that? Figure
out how to fetch the stuff that matters, and put that in front of the user so
they don’t have to scroll.

Scrolling should be all but unnecessary in a well designed interface.

~~~
always_good
I don't understand. What about when you're just consuming a list of things
like an image gallery or HN/Reddit frontpage?

Your complaint doesn't seem to make sense in this common context. In fact, I
can't think of many contexts where your complaint does apply.

Let's say Reddit knows precisely the 100,000 things I do want to see. Endless
scroll doesn't change that, but it makes sense to lazy load them that way.

~~~
danso
Infinite scroll seems to be ideal with casual consumption and serendipitous
discovery, which is probably why its the status quo for sites like Reddit,
Tumblr, Facebook, and even Google Images.

But it seems to be detrimental for sites in which a user is looking for
something specific, such as an answer to a search query or a product to buy --
i.e. they know what they want when they see it -- which would explain why
sites like Google or Amazon haven't implemented it (though Amazon does have it
for its mobile client it seems).

Years ago Etsy implemented infinite scroll in its search results, but killed
it after finding "that people seeing infinite scroll purchased less from
search".

[https://news.ycombinator.com/item?id=5017995](https://news.ycombinator.com/item?id=5017995)

------
codinghorror
> However, infinite scrolls cannot keep the state by its design. Users cannot
> share their current state. Which also means you cannot track users’ actions
> using analytics tools.

This absolutely isn't true at all; for example in Discourse we update the
browser address bar as you scroll to reflect the current post you're viewing.

~~~
zbrozek
But find in page is useless AND it hijacks the browser. You can't use print or
reading mode to view the whole page either. Discourse would bea fine corner of
the internet without infinite scroll. Instead it's a place I cringe about and
use as an example to designers of what not to copy.

~~~
codinghorror
Print works fine; try it. Find is indeed contingent on what's loaded on the
page, same reason you can't "find in page" when you're viewing paginated page
5 of 20. Not really a valid criticism, unless you're just splitting hairs for
fun.

------
mcv
While I often like infinite scrolling, I really hate it on the Google+ Android
app, because I have no way to quickly jump to the top. If I scrolled way down
and want to scroll back to the top, I have to scroll manually all the way,
which is a pain, or kill the app and restart it.

------
tabtab
I'm okay with infinite scroll being the default; just don't make it the _only_
way to navigate. Have an easy-to-find way to switch to pagination and/or
query-by-example (QBE). A QBE form for a blog-type search would resemble:

    
    
         Date Range: [__/__/____] to [__/__/____]
         Word or phrase: [_____] ... [X] Search title only
         Sort by: 
            (*) Date, latest first
            (_) Date, earliest first
            (_) Title
    

Except for the sort-by option, they'd all be optional

------
osdiab
The thing I dislike about infinite scroll is that almost everything that has
it is intended to make you addicted and compulsively scroll more, to the point
where I pretty much have sworn off any app that makes it a central part of the
experience.

------
notatcomputer68
What I don't like about infinite scroll is it not putting stuff in my history.
Finding my way back a few days later ain't happening.

Overall though I think the pattern makes sense

------
art0rz
A few weeks ago I was trying to find a contact page on a site that had
infinite scroll (don't remember the reason or the site). The link to contact
information was in the footer, which was impossible to get to with infinite
scroll. Absolutely ridiculous.

Ended up having to disable JavaScript to be able to scroll down.

------
lowlevel
Stop visiting websites with infinite scroll. Problem should work it self out
eventually...

------
nektro
What if you used the cursor type with infinite scroll that put links to the
page number inline so you could infinite scroll starting from any point?

~~~
andreareina
You can't jump to the _nth_ page with cursor-based navigation because you
don't know what id it starts at. 13? 21? 34?

------
gibatronic
Infinite scrolling exists because it raises the average time users spend on
your site.

------
Grumbledour
I always thought infinite scroll was the best thing since sliced bread when I
first saw it in Google Reader. I still really love it for consuming my news
feed.

For everything else though? Not so much.

------
hn_throwaway_99
TBH, this article is a perfect example of the formulaic, semi-clickbaity
articles that I can't stand. Take the title "Stop building websites with
infinite scroll", but then the article itself goes on the give some examples
of when infinite scroll _is_ appropriate. Even many of the arguments against
infinite scroll feel like strawmen (e.g. "It messes up the footer." Well,
seems obvious to me that putting a footer after an infinite scroll is a bad
idea, but many if not most pages where you'd use an infinite scroll could do
without a footer, or you could put that "footer data" elsewhere.)

All UX approaches have tradeoffs, and any UX paradigm can be implemented
poorly or used where inappropriate. Bringing up some of these examples and
then saying "stop using UX approach xyz" is disingenuous.

~~~
rossdavidh
I have been often annoyed at infinite scroll, and never at any of the other
options offered. It's part of a general anti-pattern of pages loading new
content when I didn't ask them to, but by far the most prevalent and annoying.
I dislike infinite scroll, and I believe I am alone in that, and perhaps not
even in the minority.

~~~
hn_throwaway_99
Well, then we agree to disagree. Particularly with search results where it's
likely I'm going to need to look through a lot of results (e.g. real estate,
hotel, dating sites) I find infinite scroll, if done right, makes it faster to
comb through results.

More importantly, though, I think this article is an anti-pattern of
attempting to make broad conclusions from anecdotes and personal opinion with
zero data to back it up.

------
brassattax
TL;DR don't use infinite scroll because your users can't find the footer.

Office 365's Outlook Web uses infinite scroll for listing emails, and the
thing I hate about it is as you're scrolling down, it removes things from the
DOM at the top. So if you want to delete a ton of emails from a service that
went wonky and spammed you over the weekend, you can't click the top and shift
click the bottom, because by the time you reach the bottom, the top message is
gone.

~~~
bigger_cheese
The Outlook desktop now client does it as well. I am not sure if it is
exchange setting or something else.

If I scroll to the end of a folder containing mail it tells me "There are more
items in this folder". I have to click for it to fetch more items.

I have years of email archived in various folders and it hides the results for
every single folder behind this wall of "there are more items". Because of
this I can't search through my archived email properly.

It never used to work with way. I think it changed when my organisation
migrated to Office 365.

------
jorblumesea
This is a great example of why you should use data to drive decisions on
features and not just broadly declare x or y feature is bad because you
personally have gripes with it. You are not your user and you shouldn't be
allowing personal feelings to cloud the debate. Decisions without data, what
is this, 1996?

What are your users saying? What does the data tell you? A/B test it and find
out. Do usability studies. etc etc.

~~~
mnw21cam
My personal feelings when I use a site with infinite scroll are pretty clear.
I don't think it is unreasonable to look at other sites, where you are a user,
draw conclusions, and apply them to your own site.

~~~
jorblumesea
Sure, now we use personal opinions to decide product direction. Sounds great!
Why not just flip coins while we're at it? users love that.

------
KaoruAoiShiho
Nope, infinite scroll is superior. Just there are poor implementations. Proper
infinite scroll has 0 downsides.

~~~
jspash
But I want to get to the footer where I’m pretty sure the contact details are.
Not sure how you can design around that. I mean, you can try. My example was
just one of many. But you’ll never change the expectations of users who have
been conditioned by the use of 1000’s of other websites that _don’t_ use
infinite scroll.

~~~
dewiz
Appending a dynamic anchor #page=n while scrolling and putting links at the
top, not at the end, for example, address most of the problems

