List columns or Site columns: Which one to choose?
This is an open-source article with the community providing support for it. For official Microsoft content, see Microsoft 365 documentation.
We have two (2) types of columns in SharePoint:
- List columns
- Site columns
One is created at the list/library level (list columns), and the other one at the site level (site columns).
From a functionality perspective, they do the exact same thing. From a reusability perspective, not so much.
If we take the example of SharePoint Online, we can now create a column in a list or document library very easily. Hover between 2 columns, click on the "+" sign, and create your column.
But by doing that, the column will only be created at the list/library level, and therefore, be of type List column.
What does this mean?
It means that your column will only be available to that particular list/library, and not outside that boundary. If you wish to use that column outside of that list/library, you will have to recreate it at the new location.
Which brings us to Site columns!
As we've seen above, list columns are easy to create, but live in a "container" which is the list/library you create(d) it within.
Site columns on the other hand, are created at the site level, and available to reuse from the site they're created in (as the starting point).
What does this mean?
Well, this means that if you create a site column at the root of your site collection, the column will be available throughout the entire site collection.
If you create a site column at the subsite level, this column will only be available for the subsite itself, and every other subsite(s) underneath. But not above.
Site columns are "shared" between sites, but only hierarchically.
So which one should you choose?
If you're sure that the column will only need to be used/created in a particular list or library, then a list column is easy and quick.
If you're looking for reusability across list/library boundaries, then create a site column.
To be Search aware, another aspect to consider in your decision is, whether you are going to use Search to find existing content in the created column or, additionally, use the column in Search queries to find content.
Creating a site column will create a Search managed property (MP) automatically which you can use to Search for content. While with a list column it won't create a MP, but you will still be able to Search for column contents.
Say that site column is MySiteColumn of type single line of text. After you add content to it, a new MP will be created with name MySiteColumnOWSTEXT (How site columns become managed properties) which you can use to retrieve content in a Search query, like for example:
This would return only items which column MySiteColumn contains "contoso".
However, if you opt to create a list column you can accomplish the same later. The only difference is that with site column it will be done automatically whereas with list column you will have to go through extra steps which involves among others, creating a new custom MP.
Principal author: Veronique Lengelle, MVP