SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In one of site collections we have a content type defined in one of the subwebs. Having it there it's impossible to use it on root web or any other branch of subwebs. Is it possible to move or copy this content type to the root web so it could be available globally?

share|improve this question

This is one of those examples where a decent Information Architecture up front can save pains down the road. Once you've recreated the Content Type in the root site, you'll still need to flip all the existing list items to it if you want to maintain consistency. Depending on how many list items you have, you can do this manually or programmatically.

Charles, any site can contain Content Types, if I'm not mistaken. I agree that the default ought to be to create the Content Types in the root for wider reuse unless the Content Type is always going to have limited use..

share|improve this answer
I agree with Marc, and will add that I always try and create it at the top most place it could be applied. – Mike Oryszak Apr 1 '10 at 14:58
Absolutely. Most content types are created on top-level. Some for means of limited use are made on subsites. We did exactly as you proposed - reproduced it on the root. But we created another list and coppied data using datasheet due to "duplicate" column names. – Gomiunik Apr 1 '10 at 20:30

Modified: Do you mean that you have a List Content Type set up on a list on a sub-site?

If this is the case then there is no OOTB way to do this, you would have to recreate the Content Type manually as a Site Content Type.

Its worth noting that you should always try to deploy content types as Site Content Types to promote re-use across the Site Collection.

share|improve this answer
Actually you can have unique sets of content types on sub-sites. They do inherit from the site-collection/root web, but that's not the only place to create a content type (unlike, say, the site template gallery or list template gallery). – Sam Yates Apr 2 '10 at 1:10
up vote 1 down vote accepted

You could write a little console app that does the following :

  • Get a reference to the Content Type at the subweb
  • Create a NEW one at the root level - assign to the same object

The code (console app) would also do :

  • Go through all webs & libraries and re-point to the base one

And then could delete out the old CT in the subweb...

Not easy - but do'able. Might be a good topic for a blog post (mental note)...

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.