: Async load of secondary content; Google says "slow", users see what they want faster We have a performance problem on our site, and we're digging in to correct some rather basic issues -- we
We have a performance problem on our site, and we're digging in to correct some rather basic issues -- we know we have many opportunities to improve performance -- this question is about one, in particular.
Our special case is that we intentionally defer loading of one part of our page that is inherently slow until after the stuff users really wants is up and rendered. But tools like NewRelic, and Google PageSpeed all see this as a slow-loading page -- 5+ seconds.
You can see the case at at pubget.com where we display search results for research papers. We allow users get full article and display either "View" or "Buy" buttons depending on some fairly complicated rules (e.g. if their company/university has a subscription to the journal, but there's a lot more) -- these rules take time to calculate. So we load the search results, and then after the page is displayed, we do an AJAX request to get the View/Buy buttons.
The actual work of figuring out what buttons to display (and where they should link) takes about a second, more or less. It seems like the right thing to do from a user experience standpoint, but I wonder if it affects how users and Google sees our site.
(If you do look at the page, you'll see any number of other equally important things we're doing wrong. I know about these and we're going to fix them.)
More posts by @Jennifer507
3 Comments
Sorted by latest first Latest Oldest Best
Presumably only logged in users would be able to download without buying, so you could cut the calculation out entirely for many visitors (and crawlers) with a simple rule up front like:
if (loggedIn!=yes) then displayButton(buy) else calcRules(buyOrSell)
This way crawlers & external visitors won't have to wait for you to run queries that will never relate to them. It won't help as much for logged-in users, but it sounds like you've accommodated for that with your AJAX already.
It looks like the right approach as Tim Fountain is writing. Having had a look at Google's Page Speed tool and webapagetest.org, I would see the issues in other places than those buttons:
Google Page Speed
webpagetest.org
Both tools show that the first request takes already longer than one second. Also advertisement slows down the page as well.
Coming back to your button question - how about renaming the buttons to "Get PDF" and do the decision on click or on mouse over? This way your main page will be faster and Google will probably like it a bit better.
It sounds like you're taking the right approach for your users by deferring the button loading if this is a particularly slow part. But doing this doesn't speed up the overall page load, it simply improves the user experience; so the tools you mentioned are correctly reporting your slow load times.
You said you're aware of other areas you need to improve, I'd focus on these. From a quick glance at your site I'd say the number of HTTP requests and poor time to first byte are your main problems, so work on those.
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2024 All Rights reserved.