I have a site collection for projects, where each subsite is a single project, created from a base site that is saved as a template.

Everytime this base site is modified I have to recreate the template for the future projects to be created, but of course the already existing subsites will not get the new changes applied, so site owner needs to manually apply new changes one by one in existing sites.

Some of the changes are ok since we use content types and columns defined at top site level so everything is inherited. However, changes like default views, new libraries, pages, webparts are always local to the current site.

This is in 2010, I am going to recreate the site collection in 2013 but I would like to build something that will improve maintenance, and allow existing subsites inherit new applied changes.

Anybody has this similar situation and can provide advice or tips about how you solve this situation?

1 Answer 1


I'm working on a similar project: - Root Site - Project sites - Template project sites

It is a project of more than one year rather complex.

I have encountered the same problem and I have analyzed different alternatives.

There is no way to solve it automatically. To do this you should use site definitions instead of site templates. But it is an exceedingly complex and very little used approach.

You have done very well to use content types and that solves much of the problem.

In my case I have chosen to use the server object model to make changes in the existing project sites. I mean C # with Visual Studio. This model is very powerful and can modify things you never would have imagined.

Summary of approach:

1) You create a program in C # to make changes in code. Do not use configuration.

2) This program has a LOOP to cycle through all project sites and apply changes

After using this approach, I have taken the decision to make all changes programmatically. This greatly facilitates the passage between test and production environments.

Then the focus becomes creating a program that:

1) Modify programmatically content types and site columns

2) Modify programmatically project sites (including template). I mean views, web parts, etc.

3) Create a new template based on the basic site and remove the previous

With this approach the passage between development and test / production is clean and fast. It is very robust. And automatically updates existing sites. While ensuring that future sites are created with the new template changes.

Any questions let me know. I have many examples of code to share.

  • Excellent answer, thank you very much. In my company we are not developing SharePoint so it has to be an out of the box approach. I wanted to be sure if there is some functionality for this situation that I might not know yet, but there seems not to be anything at all for this purpose: once a subsite is created from a template, it becomes a new independent site and therefore cannot inherit further changes (apart of content types and columns of course). You mentioned the site definitions, should I follow that path? I don't know if the benefits could be worth it, or make something unstable Mar 31, 2016 at 13:16
  • Site definitions is not an option. It is development. It is complex. It is very little used. It tends to disappear. I would recommend investing in some development for this problem. It seems difficult, but it is not so. You have to go through an initial learning curve. Mar 31, 2016 at 13:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.