All About Publishing Targets in the Sitecore ASP.NET CMS

This blog post provides information about publishing targets and publishing target databases in the Sitecore ASP.NET CMS and links to additional information about publishing.

A publishing target consists of a database and a publishing target definition item that specifies that database. Sitecore publishes from the Master database to one or more publishing target databases. The Master database contains all versions of all data, including unapproved content changes. Publishing target databases contain at most a single version for each language.

The default publishing target named Internet references the database named Web. You can define additional publishing targets as described in the Content Reference on the Sitecore Developer Network (SDN).

I can think of a few reasons to define additional publishing targets:

  • Traffic, geographic distribution, redundancy and other scalability considerations often demand that customers publish everything to multiple publishing targets supporting different banks of content delivery servers in a single location or multiple locations. This is probably the most common use of publishing targets.
  • Publish to a pre-production publishing target for evaluation before go-live. This has some addressable challenges, such as how to publish from a non-final workflow state. See the Setup publishing target to ignore workflow thread in the SDN forums for more information about publishing before workflow completion.
  • Publish some of the managed sites to one publishing target and other sites to another. This reduces publishing time and database storage, but also has disadvantages, such as complicating content sharing, and might be hard to integrate with other approaches listed here.

Variations on these themes include publishing to one or more targets and then updating that environment to use that database.

To access the publishing targets associated with an item, in the Content Editor, select the item, and then click Change in the Restrictions group on the Publish tab. In the Publishing Settings dialog that appears, click the Targets tab.

If an item has no publishing targets selected, Sitecore publishes the item to all publishing targets. The logic behind this is that most customers publish all content to all publishing targets. When you add a publishing target, you shouldn’t need to update all items to reference that target – all new publishing targets should be associated with all items by default. Selecting publishing targets actually limits the targets to which Sitecore publishes the item. Remember that if you exclude a publishing target for an item, that exclusion applies to all descendants – you can’t publish a descendant of an unpublished item.

For general information about publishing with Sitecore, including troubleshooting and the differences between incremental, smart and republication, see Publishing Operations on SDN. For information about scheduling publication, see All About Sitecore Scheduling Agents and Tasks. For information about comparing data between publishing targets, see Use Preview to Compare Version Differences with the Sitecore ASP.NET CMS. For information about the publishItem pipeline, see the Custom Publish Action - Which event to hook in to? thread in the SDN forums. For information about publishing media items automatically, see the Autopublish media items thread in the SDN forums.

Please comment if you have information or links to share about publishing with Sitecore, such as additional uses for publishing targets.

More posts All About the Sitecore ASP.NET CMS.