I have an intranet publishing portal with web-templates and custom page layout. I get requirement to update page layouts and the way I have been pushing any changes to page layout is

  1. Updating elements manifest file to include "ReplaceContent=True"
  2. Write a feature upgrade and ensure the page layout is included Run the feature
  3. upgrade across the farm so that all sites using this page layout will effectively have the new page layout.

Below is the manifest file for reference.

enter image description here

This approach has been working for me till now. However, I am not sure if this ReplaceContent tag causes any issue with Ghosting since I am seeing a lot new pages going as UnGhosted.

Is there any best practise I can refer as to how we can upgrade the page layouts so the existing pages using that layout also see changes without any side-effects?

Cheers, Sharath

1 Answer 1


First of all what ghosted and unghosted means:

  • Ghosted == Un-Customized
  • Unghosted == Customized


And this might be solution to your problem:

There is one case when an untouched layout will not get updated through deployment: when the page layout inherits a content type that is instantiated in the site – more precisely when the columns of the content type are visible, editable and have been filled with data on the page instance(s).

In this case, the page layout will appear as unghosted after a page instance has been created and it will not get updated at deployment.

The solution is to reset the page layout to its site definition


  • Thanks luccio, the link was helpful. However using RepaceContent=True has worked for me always, just want to make sure if there are any side effects of doing that. Let me dig around reflector and see what exactly happens with this tag. Oct 16, 2013 at 5:53

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.