Best practices
CMS
User friendly
The editor experience of a CMS should be fun, effective and intuitive. The interface should focus on displaying the information and inputs expected for the role of the editor or administrator.
Live preview
The editor should be able to view the edited content in some kind of preview mode before publishing. If the content is solely used for a web site, then the content should preferably be live previewable with the web site design. For a responsive web site, it should be previewable in different sizes.
Collaboration
If there is multiple users working on content in the CMS, the CMS should help the users from overwriting eachothers changes. Preferably users should be notified if more users are on the same content, and even lock users from changing the same input.
Media management
Any image, video or other asset should be uploaded and manageble from a media browser. It should be possible to structure the files in a way that they can easily be found and re-used.
Drafts and revisions
Content should be able to have a draft or published state. Also, for previously published content, it should be possible to keep it published while working in a new revision.
Publish later
When working on a draft, it should be possible to set a date and time when the content should turn published.
Multi language
Web sites that has multiple languages or markets should be able to manage content in multiple languages. The needs for translations is different for different web sites. But it should be easy to find the correct content and switch between language versions.
Exportable content
Deciding on a specific CMS can be hard since you will probably invest a lot of time to put content in to it. Make sure that the content can be exported in a structured way so that it might be possible to import into another system. While there is probably unique or specific functionalities used for each CMS that might be hard to re-use, the majority of content might be importable this way.
Also, using the CMS as a "headless CMS", by not tying the CMS to tight with the frontend, makes the CMS even more replaceable if needed in the future.
User management
Make sure to create unique users for each person using the CMS and that you keep track who has access. It's imporant to keep the security focus high since you don't want any "intruders" in to you CMS.
Roles and permissions
Create roles with the appriate permission and assign to users. To keep the CMS experience focused and secure, make sure to only allow to show what is needed for each role.
Single sign-on
Preferably, add single sign-on functionality to the CMS so that company employees can re-use their users for their Google or Microsoft (or other provider) accounts.
Updated and secure
Make sure that the CMS stays updated for all new features and mostly to keep up with security updates.