Canonical URL & SEO Indexing Module – Interspire Shopping Cart

SEO Index Module

by Dave Beck

The following module has been created to help website owners that are using the Interspire Shopping Cart have a bit more control over how the search engines interact and ultimately index their website. This module should help alleviate potential duplicate content problems but it must be said is not a silver bullet to obtaining high search engine rankings.

The SEO Indexing module for Interspire Shopping Cart allows you to apply the canonical URL link element and robots meta tag within the <head> area of your HTML code. Each of these elements are designed to help search engines determine the most appropriate content to include in their index from your website.

In the options panel for the module, you can determine certain sections and pages of the website to apply the canonical URL link element and robots meta tag.

Please Note: Installation of this module change how search engines interact with your website. Please understand that we take no responsibility for the effects that it will have and you should understand the concepts fully before initiating the installation.

Installation

This section describes how to install the plugin and get it working.

  1. Delete any existing “seoindexing” folder from the “/modules/analytics/” directory
  2. Upload “seoindexing”  folder to the “/modules/analytics/” directory
  3. Activate the module through the Settings -> Analytics Settings tab in Interspire Shopping Cart Administration
  4. Go to the options panel under the ‘SEO Indexing’ menu and turn on each section/page that you would like to apply the elements to.

Administration area screenshot

Download Instructions

Please click here to download SEO Indexing Module 1.2!

Change Log

Version 1.2
Updated syntax error
Removed canonical URL element from paginated results

Version 1.1
Added “noindex, follow” to Product Tags
Added “noindex, followed to HTTPS

See blog post from more information on this update.

Version 1.0
No known bugs

Beta 0.7:
Canonical URL included on Pages
Fixed a number of minor bugs

Beta 0.6 :
Minor bug fixes

Beta 0.5:
Initial release and testing

Module Updates

Now don’t forget to follow me on Twitter or subcribe to this blog by email or through the RSS feed, so you’ll be sure to hear about any updates to this plugin!

{ 48 comments… read them below or add one }

SantaClaus August 19, 2009 at 12:35 pm

This is an excellent module Dave. Thanks so much for making it!

Reply

Natasha August 19, 2009 at 3:16 pm

Hello Dave,
I’m a newbie so please excuse me for those simple questions. In the /module/analytics the only thing I have is googleanalytics folder. Am I suppose to delete that? Will I still be able to use google analytics?
I also don’t know where this is located: options panel under the ‘SEO Indexing’ menu ?
in the admin section? cpanel?
Thank you,
Natasha

Reply

dave August 20, 2009 at 1:58 am

hi Natasha,

The first thing that you need to do is go to the SEO module and download the latest zip file (which is towards the bottom). Once you have that file you will be able to extract the contents and upload the file that is called “seoindexing” into the module/analytics directory. Once that folder is in the right place you will be able to do everything else from within your administration area.

Reply

Rob September 12, 2009 at 2:52 pm

Just saw this on the interspire forums. It’s just what I’m looking for, and I don’t have to write it myself. I’ll give it a whirl. Thanks!

Reply

dave September 13, 2009 at 5:45 am

Thanks for dropping by Rob.

Personally, I have seen some good results from installation of this module. I would love to hear how you get on, as there is still a fair bit of conjecture about how well the engines are handling the canonical link element.

Reply

Steve September 23, 2009 at 12:28 pm

Sweet thanks Dave! Can I donate you some money? You saved me heaps of time!

Reply

planethurf November 12, 2009 at 11:36 am

Hi Dave. Thanks for this! Looks like it's the dogs!

I am using 1.1

I am currently using Shared SSL and I do not see the No Follow option for HTTPS, is there likely to be any issues with dupe URLs because of this?

And I am assuming that I cannot see the Product Tags option, because they are not currently enabled within my store?

Thanks again for this, will keep you posted on the results!

Cheers

Reply

davebeck November 13, 2009 at 12:48 am

Unfortunately I don't have a shared SSL environment to test on at the moment. I will see if I can wrangle something together to do some further testing.

As for the product tags, it should work pretty well out of the box, but if you have them disabled there probably isn't a problem (although it still wouldn't hurt to turn on the option)

Reply

Scott December 17, 2009 at 10:47 pm

If I am using BigCommerce, can I install this module? I can't seem to find the /module/analytics directories.

Reply

davebeck December 18, 2009 at 12:58 am

Hi Scott – thanks for dropping by.

Unfortunately the main disadvantage of using a hosted shopping cart solution such as BigCommerce is that you cannot make changes to the underlying code. Because of this you will be unable to install this module unless you switch over to Interspire shopping cart.

How are you finding BigCommerce?

Dave

Reply

Edmund January 15, 2010 at 10:27 pm

Hi Dave,

Thanks so much for this. I have a quick question though on the usage. Is there a guide on how and why to use certain settings?

I see from your screenshot above you apply the canon url to the top 4 or so selections.

Will this help the situation where someone wants to create a new category, say a “Styles” category and have products that can be listed in up to 2 different categories?

Thanks
Ed

Reply

davebeck January 16, 2010 at 12:06 am

Hi Edmund,

Nice to see another Australian drop-in.

At this stage there is no guide on how and why to use certain settings, although I would simply turn all of them on. What I have tried to do in creating this module is tackle as many indexing problems as possible that we know about through use of the canonical URL element or the meta noindex tag.

The module won't have any effect on the category or product pages in terms of the way that you have referenced. Interspire have set up things well if you wish to place a product in multiple categories. Some shopping cart applications will reference the category name in the product URL which can cause huge amounts of duplicate content. Fortunately all product pages created through Interspire shopping cart (and BigCommerce) only have one unique URL which is fantastic. Having a product in multiple categories acually allows you to direct more PageRank to the product page (so long as your strategy is to rank product pages of the categories).

Reply

Hayaza January 24, 2010 at 6:55 pm

Hi Dave, thanks for the seo index module for ISC. Its really helpfull. !

What should I edit do to add more pages / files to the setting for admin to set the indexing rules.

I need more pages to be set noindex,follow that aren't in the setting.

Thanks again.

Reply

davebeck February 8, 2010 at 12:35 am

Hi Hayaza

I'm glad the module is helping you. As for adding extra pages, it may be a bit difficult due to the dynamic nature of Interspire shopping cart. I have tried to target the most obvious areas that the majority of people will need to control access to. You may be better off using robots.txt on this occasion.

If you're looking to control access to content pages it becomes somewhat difficult to use my module as it will essentially block all of the content pages. Hopefully Interspire introduce some page by page advanced filters in future releases (if they haven't done so in 5.5 — I must admit I haven't looked yet).

Can you provide an example of webpages you are trying to add?

Reply

EvM February 22, 2010 at 11:41 am

Hi Davebeck,

Currently, my custom design is being integrated onto the interspire shopping cart (Starter Edition) at the moment and should be finalized at the end of this month. I have already hired an expert to do all my SEO for me, he is highly recommended locally for his good work! Would you recommend him to use this module? or would he have no use for it since he is highly experienced in SEO already?

Best Regards,
-E

Reply

Ran February 23, 2010 at 9:00 am

Hi Dave,

Nice work! Very helpful for site owners with no access to the robots.txt file. I have couple of suggestions to make this tool even better. It would be helpful to add:

?sort= (creates content duplication on the category level)
?setCurrencyId= (creates content duplication on the category and product levels)

Another optional one is to prevent custom URLs which have been tagged using Google URL Builder from creating content duplication down the line by preventing ?utm_source from getting indexed.

Reply

davebeck February 24, 2010 at 9:41 am

Hi E

Thanks for dropping by. I think it would definitely be worthwhile having your SEO take a look at the module. The duplicate content issues are a pretty substantial and you will need to implement something whether it be this module or some other means.

Take a look at a couple of the articles on this site about canonical URLs and the meta noindex options. Hopefully I have been able to explain them in layman's terms even though it's a somewhat confusing topic.

Reply

davebeck February 24, 2010 at 9:43 am

Thanks for the suggestions Ran.

I will have to double check as it's been a while since I looked closely at this module, but I am pretty sure that the canonical URL should keep you pretty safe from the parameters that you mention. However you can't be too careful so I will definitely look into it.

Reply

Craig April 19, 2010 at 4:22 pm

This module is still working great in 5.5. It's a simple concept but probably the most useful and best conceived module I've ever seen.

HUGE thanks for this.

Reply

davebeck April 20, 2010 at 1:29 am

Thanks for the feedback Craig!

Reply

Zack Katz May 8, 2010 at 4:12 am

Hi Dave,
Thanks a ton for this module – like Craig said, it’s the first useful module I’ve found, and a great launching pad for future development.

One thing: the module generates canonical links for paginated results: category, brand, searches, etc. This is not recommended, so I wrapped the return $trackingCode; with:

if(!isset($_REQUEST['page']) || empty($_REQUEST['page'])) {
return $trackingCode;
}

Thanks again for your module – saved me loads of time!

Reply

Dave Beck May 8, 2010 at 1:53 pm

Zack I’m glad the module has been of help. It is surprising that it wasn’t included in the core functionality.

You are totally correct with the pagination and it is something I’ve been meaning to fix a while. We’ll get something sorted out over the weekend.

Reply

Jj June 2, 2010 at 7:18 pm

Hi Dave,

Did you sort this pagination out?
I’m a bit of a newbie, and just found out I have duplicate content created by the currency id parameter.
I’m not a tech geek and don’t want to mess something up.

Many thanks

Jan

Reply

Dave Beck June 3, 2010 at 3:26 pm

Hi Jan,

I have just released version 1.2 which sorts out the pagination and a couple of minor syntax errors. Unfortunately there are a lot of duplicate content problems such as the currency ID parameter. Hopefully this module can help somewhat.

It is highly recommended that anybody using version 1.1 download and install the new update (you can just copy it over the current version).

Reply

JJ June 3, 2010 at 10:19 pm

Hi Dave,

Thank you so much for this module – it’s very rare to find exactly what I’m looing for, but this time it happened:)

Btw – do you know the good way to check if there are any duplicates left? And how quickly it’s going to be blocked in google?

Best Regards

Jan

Reply

JJ June 7, 2010 at 1:49 am

Hi Dave,
I’m just trying to figure out, how I can actually check if my duplicates are gone.

I don’t know if there is any software on the market to clearly indicate if there is any duplicate content on site?

Thanks you in advance

Jan

Reply

Dave Beck June 12, 2010 at 5:17 pm

Hi Jan,

unless you have a massive store you can generally get a feel for how things are going by using the Google site:yourdomain.com command. Say for example you have 50 products in five categories you would expect to have around 60 pages indexed (assuming you have about us, shipping, payment pages). If you have substantially more you’re probably going to have duplicate content issues and you can move on to use a tool such as Xenu or my personal favourite OptiSpider. Neither tool will clearly indicate duplicate content but you can generally sort the data by the page title to get a pretty good idea of what is being duplicated.

Also, if you have Google Webmaster tools set up correctly it will give you some indication of duplicate content hotspots in the diagnostics section.

Reply

David June 7, 2010 at 3:53 pm

Hi Dave

What would you suggest for a robots.txt file to use in conjunction with this model?
Without your module I have been using this with success:

User-agent: *
Disallow: /account.php
Disallow: /cart.php
Disallow: /checkout.php
Disallow: /finishorder.php
Disallow: /login.php
Disallow: /orderstatus.php
Disallow: /postreview.php
Disallow: /productimage.php
Disallow: /productupdates.php
Disallow: /remote.php
Disallow: /rss.php
Disallow: /search.php
Disallow: /viewfile.php
Disallow: /wishlist.php
Disallow: /admin/
Disallow: /templates/
Disallow: /giftcertificates.php
Disallow: /*?

I feel thou that some of these should be removed if I use your module – Can I ask what you would suggest leaving?

(note: I also use a redirect for https to a robots_ssl.txt file – Im assuming I can completly remove this now that your module is in place?)

Reply

Dave Beck June 12, 2010 at 4:36 pm

hi David,

If you are having success with your robots.txt setup I wouldn’t change it. You definitely don’t want to remove the HTTPS robots.txt if you have it successfully running.

If you are having trouble with the spider indexing your product pages you might want to remove the Disallow: /*? as it may be blocking the paginated results in your categories/brands pages.

Reply

Faizan July 27, 2010 at 6:22 am

it adds empty Canonical URL to the actual products.

What is the advantage of having that?

It works for the categories and main page correctly though!

Reply

Dave Beck July 27, 2010 at 12:01 pm

Hmmm that doesn’t sound right, I’ll take a look over a couple of installations to check it is working correctly and get back to you.

Reply

Faizan Jabbar July 27, 2010 at 2:08 pm

Please remove my above comments as it shows my website that I am still not done coding….. i don’t want ppl coming on it just yet. But please answer my problem..it seems that there is no variable: CurrentProductLink

Reply

Dave Beck July 27, 2010 at 2:48 pm

No problem Faizan, comments removed!

Should get an opportunity this evening to look at the problem with the SEO module.

Reply

Tatiana July 28, 2010 at 5:04 am

Hi Dave,
I am redesigning my store with Interspire Shopping Cart now and came across you module for canonical URLs. It is exactly what I was missing in ISC. I installed the latest version, it gave me to configure it (I set Yes for all options), but unfortunately the URL format didn’t change – it still shows like http://www..com/pages.php?pageid=4
Can you please suggest if I might be doing something wrong?
Thanks,
Tatiana

Reply

Tatiana July 28, 2010 at 5:27 am

Please disregard, my problem was with the wrong settings in the store itself.

Thanks,
Tatiana

Reply

Dave Beck July 28, 2010 at 11:52 am

Glad you got it sorted out Tatiana.

Reply

Rich August 3, 2010 at 7:53 am

Hi Dave,

I wondered if you could help. I have successfully implemented your seo plug-in for interspire which works great so thanks for that. However, what I need to do is to have the “by brands” pages pass their value onto another category page which I have created. This was due to the limitations of putting extra information on the main brand pages. To summarise at present your canonical link does the following on the main “by brands” pages:-

http://www.temp.co.uk/brands/Adidas.html

However, I would like to change the link on the above page to the following:-

My understanding being that the main “by brands” page will then pass the page rank value to the “Categories brand page” This page has stronger content and the preferred page we would like to index in google.

(I am unable to identify the real domain I am working on as it is not live yet.)

I am not a developer so I apologies if I have not explained myself correctly. However, I would really appreciate if you could provide some guidance on the best way to achieve this?

Thanks

Richard

Reply

Dave Beck August 3, 2010 at 4:37 pm

Thanks for the question Richard.

If I understand your question correctly you want to redirect any PageRank from the brands page to a category page. If this is the case I am not sure if the canonical link element would be your best choice. You’re probably going to be more successful using a 301 redirect and follow it up with a close look at your site navigation to make sure that links pointed at your brand page are redirected to the category page.

There really is no one right answer when doing this stuff, which is why it can be so tricky. A good rule of thumb is to not depend on a search engine to do what you think it will do, especially when dealing with the canonical URL element or a 301 redirect. You’re much better off manually getting your navigation right and directing PageRank exactly where you want it to go.

Hopefully this helps even though it probably isn’t the answer you wanted.

Reply

Richard August 6, 2010 at 1:50 am

Hi Dave,

Thanks for your advice. I am going to schedule the necessary navigation changes into phase 2 of this website development. However, in the mean time do you know of an easy way for me to make the necessary canonical URL element changes to the brand pages in interspire to point to the category pages?

Regards

Richard

Reply

Dave Beck August 6, 2010 at 2:17 pm

Richard, I really think a 301 redirect via your htaccess file would be a much much safer option (and much easier to maintain).

You could write some custom PHP to achieve what you want with the canonical link element (take a look at my module.seoindexing.php for reference), however the canonical link element was not really designed for what you are trying to achieve. If I have understood you correctly you are wanting to make the search engines aware that your brand page no longer exists and it has permanently been moved to the category page. This is exactly what a 301 redirect is designed for.

Reply

Jenny August 4, 2010 at 6:07 am

Hello, if we use this module, will it change the urls as we have them now? we have some good ranking and a lot of links from ads and other and we will would like to know if the links will be affected. Thank you

Reply

Dave Beck August 4, 2010 at 11:51 am

hi Jenny,

This module will definitely not change the URL.

Reply

Jenny August 4, 2010 at 9:15 am

The issue we have is that multi-currency gets indexed per currency type, for example, there is a page indexed for dollars, one for GBP and one for Euros, the bad thing is that GBP and Euros rank better in some cases, thus, people arriving from a search engine from one of those links may think we are a store located in another country, meaning, lower sales. We want to avoid this issue but as I mentioned in my comment before this, with thousands of products ranking well, we are afraid of urls changing if we use this tool, is there a way to avoid this? Thank you

Reply

Dave Beck August 4, 2010 at 12:10 pm

Jenny,
this is exactly what the canonical URL link element is designed to help with.

Rather than having all of the different URL variations that are created by selecting different currencies indexed in search engines the canonical URL will tell the engines to ignore the currency parameter and only index the main product URL.

Here is an example:

The main product page is — http://www.domain.com/products/iPod.html
If somebody select euros it may be like this — http://www.domain.com/products/iPod.html?setCurrencyId=2

If the canonical URL module is installed it will place this in the page source code of both pages — — telling the search engines to only concentrate on this URL and ignore other variations.

Without the canonical URL link element both of these pages would be indexed.

I hope that this editor is your question. If not, let me know.

Dave

Reply

Dave Beck August 4, 2010 at 12:12 pm

Unfortunately WordPress has removed the example code from my comment. I will get back to you with an example.

Reply

Jenny August 5, 2010 at 4:46 am

Thank you so much Dave, I will check into this, it sounds like it will help to solve this issue, thank you very much

Reply

jason warren August 5, 2010 at 5:48 am

Dave,

Incredible module…thank you so much. I am not sure if I am making a “mountain out of a mole hill,”

My category names (ISC 5.05) are actually brand names. For them and the products names, we have capitalized the names, and thus, the URL’s have caps in them. It looks extremely annoying but above that, I am concerned about page duplication by the engines.

Do you have any idea of how to fix that?

I am pulling my hair out on this one!

Reply

Dave Beck August 6, 2010 at 1:55 pm

hi Jason

I used also worry about things like this, but to be honest in the overall scheme of things it doesn’t really matter. You could easily reformat the URLs by rewriting the PHP/htaccess but then you would have to worry about updating this each time there’s an upgrade, and we all know that upgrading is a pain in the butt at the best of times. The only rule of thumb to follow is to make sure you’re consistent with whatever direction you decide to make.

You’re far better off spending your time working on things like the conversion rate, customer service procedures, marketing etc. This is the stuff that earns you money and puts food on the table for your family. It’s also a lot more fun!!

Reply

Leave a Comment

{ 5 trackbacks }