Where to find us...

We would love to help you out and answer any questions you may have. Please fill out the form opposite or contact us on:

  • 877-944-BLUE
  • Blue Acorn
    880 Johnnie Dodds Blvd Suite 3
    Mount Pleasant, SC 29464
  • @blueacorn on Twitter

Get in Touch

Fields marked with a * are required

Who we are...

Blue Acorn is an eCommerce Consulting firm specializing in helping online retailers increase sales, profitability and ROI through eCommerce Optimization Services.About blue acorn

Subscribe...

Receive new posts by email:

Or subscribe to our RSS feed

Subscribe To Our Feed

Get Found

eCommerce Blog

14Michael Keaton Stars In Multiplicity II – eCommerce PaginationAuthor: Kevin - Posted on June 17th, 2008

With Andy MacDowell playing the role of Googlebot…

Have you ever seen the movie Mulitplicity? Do you also happen to run/manage an eCommerce website? If so, then you should know exactly what I’m referring to without even reading any further. This isn’t a signal to hit your back button now, but instead an indication that what I’m about to share with you will shed light on this important subject and how it affects all online retailers – and really any website with pagination for that matter.

Most online retailers use pagination in their product catalogs, and many don’t even understand the underlying effects of this feature. This topic is something that I’ve been performing quite a bit of research on over the past year and is near and dear to my heart. It’s a concern that not only spans SEO, but also Usability, so it is important to define a balance between those needs.

So What’s the Big Deal Anyways?

The issue is that pagination can introduce duplicate content issues on your website. The traditional eCommerce pagination engine divides your product listing up into x amount of pages dynamically, whereby each page has almost identical content, as well as identical title, and description tags. So pages 2, 3, 4, etc. all appear to be basically the same.

Not only that, but in many sites we see, page 1 is actually an exact duplicate of the first page the user visits but having a different URL. For example, the URL to a Pepsi T-Shirts page might be /shirts/pepsi where a querystring is appended for pagination like so: /shirts/pepsi?page=2, /shirts/pepsi?page=3, etc. We have found that many eCommerce platforms actually link page 1 as /shirts/pepsi?page=1 – thus creating an exact duplicate of /shirts/pepsi. We’ve actually identified this as an issue in BV Commerce (one of our software partners) and have created a customization to address this (contact us if you’d like the source code)

There’s a lot of information about duplicate content on-site SEO issues that I won’t rehash here, but understand that this can present a problem for siteowners in a number of fronts – canonicalization, duplicate content, and PageRank dilution. If the SEs see that you have 10 pages that all look like they sell Pepsi shirts – how are they going to know which one to show in a search result (wouldn’t it be nice if they showed all 10 of yours)?

While attending the recent SMX Advanced show in Seattle, I discussed this important issue with Gab at length, who suggested that I put together this piece on the issue. Soon afterwards, this topic was also covered by Rand Fishkin at SEOmoz in their “Give It Up” Whiteboard friday video. So I’m glad to see this topic get some much needed attention.

Some Solutions

Now, the solutions I present here are different methods employed by various merchants to combat these issues. Each of these methods present both advantages and disadvantages, and it is important to understand these ramifications and not only what they might mean to your site from an SEO standpoint, but also from a usability and functionality standpoint and also how these solutions tie into your filtering and sorting options.

Option #1: Javascript Pagination

Javascript-based pagination can be accomplished by loading all of the “pages” of results into <div> tags and using Javascript to hide/show the appropriate div when the page is selected by the user. You would need to ensure that some kind of compatibility existing for browsers that have Javascript disabled (which is a very small minority). Also, you need to take into account that although the “pages” as divs aren’t visible to the user, the images would still be loaded when the page is loaded, thus increasing load times of the page. So you’d want to make sure that you can manage when the images are actually loaded on the client (after page-load). This gets a bit more complicated when you consider filtering and sorting options, if these are implemented client-side vs. server side and how they tie into the paging.

Option #2: AJAX Pagination

AJAX can be used to combine Javascript and server-side code to allow you to dynamically pull up data while only refreshing the portion of a page – thus maintaining the same URL. So, in this scenario you would create a page that when loaded lists only the first page of results, and as users click to browse additional pages, they are actually loaded through AJAX thus allowing you to maintain the same page URL – so all of your content can actually be loaded through one physical URL. This same technique can be applied to the filtering and sorting options thus providing one consistent technology to be used for your categorization.

We’ve seen merchants try this method to handle pagination with mixed results. Some of the issues that arise from this are that search engines typically (although evidence shows that for trusted sites they are starting to) don’t spider form submits, thus the search engines might not ever get to deeper pages and might have problems indexing the actual products that are located on those pages. Also, we see usability issues with AJAX typically when it involves a user pressing the “back” button. This more often than not, loads the default page with the default settings and does not remember what page you were one, what filtering criteria you had set, etc. So it is important for online retailers using AJAX based pagination to have some method to remember those settings (like session variables).

Option #3: No-Follow Pagination

No-Follow Pagination was something introduced by the SEO community a while back, and basically what it entails is adding a nofollow attribute (and a noindex on those pages) to each of the pages, so that the search engines are only indexing the first page of that category. This alleviates the duplicate content issue but will drastically reduce the number of pages indexed and you’d want to make sure that you do have some other means to link to the products actually contained in deeper pages (like a sitemap.xml file or on-site category listing of products or even cloaking a full list of products to the SEs on that page).

Option #4: Our Ideal Scenario

The three options presented above all address the issue of duplicate content existing across pagination and ways to handle that. However, we have identified an ideal scenario that presents the least amount of disadvantages, while addressing the issue in what we feel the best manner. This scenario would involve all pages being loaded into divs as described in option #1, where javascript would handle the pagination. Image loading would be controlled through the DOM and only loaded to the browser when that page is active. This would allow all of your products to be listed on one page, minimize download times, and have the search engines the capability to spider each one from that page. AJAX would be utilized to control the sorting and filtering functions – of which these pages will not need to be spidered or indexed because they are just subsets of the master set of products which the search engine has already spidered. Furthermore, to ensure that each website visitor, with or without JS, can use the site, a noscript pagination function would be used combining method #3 of nofollowing a traditional paging structure.

It would take a considerable amount of forethought and development resources to create this robust category pagination solution, stay tuned for more information on that front from Blue Acorn =)

Enjoy this article? Spread the Word:
  • TwitThis
  • Twitter
  • Digg
  • Technorati
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Reddit
  • e-mail

14 Responses to “Michael Keaton Stars In Multiplicity II – eCommerce Pagination”

  1. Gab Goldenberg
    Gab Goldenberg June 17th, 2008 at 1:06 pm

    You’ve come up with an intelligent solution here, Kevin. Hadn’t seen this approached with such an expert eye to the technical issues underlying this before. Sphunn!

  2. Richard Baxter
    Richard Baxter June 17th, 2008 at 1:20 pm

    Interesting solution! I’d be interested to see how your page load time is affected, if at all

  3. Bloggers Digest – 6/20/08 | Get Elastic
    Bloggers Digest - 6/20/08 | Get Elastic June 20th, 2008 at 11:38 am

    [...] on pagination for a while, but Blue Acorn beat me to the punch with a fantastic explanation of the SEO impact of pagination (splitting your category pages into Page 1, 2, 3 and so on), your technical options and a [...]

  4. Justin @ Palmer Web Marketing
    Justin @ Palmer Web Marketing June 20th, 2008 at 12:50 pm

    Great post on a much neglected topic!

    I might suggest a 5th solution that I’ve used in the past. That solution is simply to eliminate pagination all together, and show all the products on the listing page. While this won’t work in every situation (e.g. for etailers with hundreds of products in each category), I’ve found it helps in several areas:

    1) improved indexation/ pagerank flow
    2) prevents duplicate content by having only 1 product listing page
    3) improved usability (in my a/b testing, product listing pages with more default items resulted in lower bounce rates and higher conversions)

    Before I tried this for the first time, I was concerned that high page load time would turn away visitors. However, it didn’t seem to have much of an effect. In fact, it seemed to reduce overall wait time since customers did not have to click to the next page, but rather scroll down. It also seemed to reduce overall server stress, since it reduced overall pageviews.

    I’d love to know if anyone else has used this tactic successfully.

  5. Blue Acorn
    Blue Acorn June 20th, 2008 at 1:02 pm

    Thanks Justin – great suggestion. I’ve actually used that solution as well with success (and still am on certain sites). Although as you pointed out – it is very important to have a limited number of products in that category.

  6. The Film Talk – Chapter 25 – Illegal Ghostbusters!
    The Film Talk - Chapter 25 - Illegal Ghostbusters! June 27th, 2008 at 5:46 pm

    [...] Topics of Interest: Battlestar Galactica, Michael Keaton in White Noise and Multiplicity, Riker getting hit with a Poison Dart, Jett’s Role in Spy [...]

  7. Sasha
    Sasha September 13th, 2008 at 4:29 pm

    Interesting topic and as an architect of one of the major ecommerce products, I would be taking into consideration the approaches you described. Unfortunately Option #1 & #4 won’t really work for categories with a lot of products, since the page load will simply take too long from browser rendering, browser downloading and database querying prospective. #2 looks promising, but again, there is problem with indexing.

  8. Sasha
    Sasha September 13th, 2008 at 5:31 pm

    Actually made a change to how our product renders paging based on your post, never thought about mycategory.aspx?p=1 pointing to the same page as mycategory.aspx which will understandably impact the page rank. So now our first page simply goes to mycategory.aspx.

    Thanks! I’ll be checking your blog more often for ideas to improve our product.

  9. project server solutions
    project server solutions December 17th, 2008 at 6:46 am

    I have no idea about AJAX.I know little bit about javascript.Your article is very useful

  10. SEO & Pagination – What is Pagination? | SEO – janet bartoli roussos
    SEO & Pagination - What is Pagination? | SEO - janet bartoli roussos August 27th, 2009 at 1:36 pm

    [...] site that helps describe this a bit further – from David Hamill’s blog and from reading blue acorn’s great technical details – still I think eliminating pagination all together and just stick to [...]

  11. Sadie
    Sadie October 21st, 2009 at 7:01 am

    Great Post!!!! Provide a complete solution for exactly the issues I was having! >>> BIG HUG <<< for writing this post.

  12. 3 Tips for Surviving E-commerce SEO! « Social-icious
    3 Tips for Surviving E-commerce SEO! « Social-icious October 23rd, 2009 at 7:08 am

    [...] caused by pagination and sorting is also a bitch! I read this great post on the Blue Acorn blog that really [...]

  13. Steven D
    Steven D June 4th, 2010 at 3:16 pm

    Is this still the best solution. It’s been about 2 years since this was first written …

  14. Rob
    Rob August 5th, 2010 at 8:01 am

    Hi,

    Nice article and I agree with all of it. However, just thought I’d share my solution – using the following method I’ve always got all my subsequent pages indexed.

    I actually wrote a small article about the issue on my blog at http://www.web-design-talk.co.uk/164/prevent-duplicate-content-using-the-canonical-url-tag/ .

    Firstly, I don’t use JavaScript paging at all, I kepp it all on the server side to kepp page load times low.

    Basically, I try to keep all the pages unique. So for each page I’ll append ‘Page xx’ in title tag and meta desctiption. I’d also, append a ‘page xx’ to the header tag, so I’d end up with ‘Tshirts – Page 2′ in my h1 tag for category page.

    I also make use of the canonical tag, I’m aware this isn’t a direct instruction to search engines, simply a ’strong hint’ as Matt Cutts puts it, but it still doesn’t hurt.

    As you’e pointed out cat.php?p=1 and cat.php can cause duplicate content issues. In each page, before I append the ‘page xx’ text to the title, meta and h1 tags I include a check for page 1. If the current page is 1 I’ll simply exclude an additional text and set the canonical url to /cat.php.

    I also use seo friendly urls for the page titles too E.g. site.com/tshirts/page/2 as opposed to cat.php?page=2

    I’ve personally never had any problems with this approach.

Leave a Reply