About me...
Nicolai Høeg Pedersen
Nicolai Høeg Pedersen - Dynamicweb creator, runner and co-founder of Dynamicweb.
About | Contact
Get e-mail notification on new posts.
Developer network
We love the web
Powered by
Dynamicweb CMS

Dynamicweb and Duplicate Content



A potential issue when running a website with Content Management Systems like Dynamicweb is to avoid Duplicate content.


This is an introduction to how to avoid most of the duplicate content when running a website with Dynamicweb.

What is Duplicate Content?

Basically it is having the same (or almost the same) content on different URLs.

Dynamicweb, as an example, has underlying URLs that looks like this: “Default.aspx?ID=123”. The ID then specifies what content to display. But it is also possible to enable search friendly URLs so the URL is rewritten so something like “/Products/Cms.aspx”.

The problem with this is that now the page can be accessed using both URLs, which can end up giving problems in search engines – it will not accept the same content on different URLs. Only one page will be taken into the index, and you cannot control which URL the search engine will use. In some unfortunate situations you could run into the problem that the page will not be indexed at all.

Another issue is having 2 domains for the same website – i.e. dynamicweb-cms.com and dynamicwebcms.com. If both domains work, you would potentially have the same content 4 times:

  • dynamicweb-cms.com/Default.aspx?ID=123
  • dynamicwebcms.com/Products/Cms.aspx
  • dynamicweb-cms.com/Default.aspx?ID=123
  • dynamicwebcms.com/Products/Cms.aspx
And if you have both domains with and without www. in front, you would even have 8 versions of each page.

Yet another problem is the same URL in different casing: /Products/Cms.aspx or /products/cms.aspx

Of course Google and other search engines are not more stupid than that – in most cases it is handled somehow, but it can have an undesired impact on your sites indexation. And you cannot control what domains and URLs are used.

So it needs to be handled – here’s how in Dynamicweb.

Avoiding Duplicate Content in Dynamicweb

There are 2 places in Dynamicweb where things need to be set up correctly to fix the majority of Duplicate Content problems.

Let’s start with setting up the URLs of the website. In Management Center, Web and HTTP, Customized URLs, you will find the settings for how URLs are handled in your solution. Below you can see my recommended settings.



My explanation of the above settings

URL type: Dynamicweb has 5 different URL schemas to choose from. My recommendation is “Location and page name” because this is the type that solves most issues and also includes module URLs.

Language Layer: Has no impact on Duplicate Content – but read about the setting in the manual: http://manual.dynamicweb-cms.com/Dynamicweb-On-line-Manual/Management-Center/Customized-URLs.aspx.

In the “Internal links” section, enable the “Use customized URLs”. This means that internal links made in the editor and directly in templates are converted to the search friendly version.

Under “add-ins”, enable everything for modules you use. It will rewrite URLs from /News.aspx?NewsID=1 to News/MyNewsHeading.aspx.

Under “Formatting” enable everything. Replace spaces and / with dash, normalize latin characters and URL encode. These settings make sure that all URLs should be compatible with all browsers. If you have URLs with Arabic, chinese or other non-latin languages, do not set the “URL encode” setting.

IMPORTANT! In the “Indexing” section make sure to enable “Ensure unique path”. This is the most important setting. If Dynamicweb detects that a page is accessed using “Default.aspx?ID=123”, a 301 redirect to the friendly URL will be made.

These are the recommended settings for URLs.

On the websites properties we find a couple of other important settings:



In the “Details” section choose your primary domain. Make sure you’ve added the list of domains available for this website in the Domain box first. This setting makes sure that if the website is accessed using i.e. http://dynamicwebcms.com or http://dynamicweb-cms.com, a 301 redirect to http://www.dynamicweb-cms.com will be made. Try it for my blog by accessing http://www.nicolaipedersen.com and see what happens.

In the “URL” section enable the “Redirect first page to /” setting. This will make sure that your front page will only have one URL – i.e. my home page http://nicolaipedersen.com/ is the same as http://nicolaipedersen.com/Blog.aspx but accessing the last one, will 301 redirect to /.
 
WARNING: make sure you have domains attached to each website in your solution. If not, accessing the front page of a website without at least one domain, will redirect to the wrong page.

That’s the important settings

Above the most important considerations that will handle most DC issues in Dynamicweb installations.

Dynamicweb modules/eCommerce solutions and Duplicate Content

Just a couple of words on modules – eCommerce in particular.

All modules in Dynamicweb can be published several times on different pages. If the same News category or product catalog is published on 2 different pages, the content exists twice in the solution and hence has 2 different URLs. I.e. /News/MyNewsItem.aspx and /News/Acrhive/MyNewsItem.aspx.

To handle this issue, most module have a “Show on paragraph” or “Show on page” setting:



Make sure all you instances of a module on the same website points to the same page – i.e. the News page in above example.

Also in eCommerce, the same product can be placed in 2 different product categories. This will also give 2 URLs – there are currently no fix for that.

Gimme!

So thats a few words on handling Duplicate content in Dynamicweb. Hope you find it useful.

I know this subject is “sensitive” in the sense that a lot of you out there have opinions, ideas and pains.

I always strive to make Dynamicweb better in this discipline (SEO) – it is important.

Any feedback, beatings or ideas – leave a comment please. Thanks!




16 Comments

  1. Lasse Kjær 01 November 2011 13:49
    Great post! I think a lot of DW developers can learn a lot from this.

    I will also recommend using meta noindex on URLs with sorting parameters. What is your opinion on this?

    Furthermore I've experienced that some DW solutions use different URL paths for productpages depending on the navigation that lead to the page. For instance the URL path is different when you got to a productpage using search, than it is when you just used the standard navigation.

  2. Nicolai Pedersen 01 November 2011 13:56
    Hi Lasse

    Thanks for the feedback.

    Great idea with the noindex option when sorting. Will put in my product backlog.

    I'm aware of the product problem. We have a solution on paper for the problem that will be shipped with either DW8 or the first service release.

  3. Juriaan Pinkse 01 November 2011 19:01
    Hi Nicolai,

    Will the solution for DW8 also contain a fix for the duplicate content problem regarding filtering?

    Right now when using DW filters this also creates lots of duplicate content URL's, depending on the amount and type of filters. Especially the range filter causes lots uf different URL's.

    If you have for instance a range filter for price from 1 till 1000 euro, ranging per 1 euro, you potentially have 1000 different URL's for the same page, for instance.

    Assortment.aspx?Search=&category=GROUP5&price.from=0&price.to=2000
    Assortment.aspx?Search=&category=GROUP5&price.from=0&price.to=1999
    Assortment.aspx?Search=&category=GROUP5&price.from=0&price.to=1998
    Assortment.aspx?Search=&category=GROUP5&price.from=0&price.to=1997
    etc.

    This means that you should be able to set a canonical tag for each page, including product page, product category page etc.

  4. Nicolai Pedersen 01 November 2011 19:17
    @Juriaan

    Thanks for the comment!

    I'll consider a solution so canonicals can be inserted based on patterns like this. Currently it is not in DW8.

    But Google can spot these patterns and usually handles it nicely - or it can be done using Google webmaster tools.