One best practice is to put pages into document libraries and turn on versioning. There are limitations to this solution that is not a big problem for this. Here I am showing to create the document library in Designer
To create a document library in SharePoint Designer:
- First open your site in SharePoint Designer
- Go to File -> New -> SharePoint Content
- Click on Document Libraries in the left pane and then select Document Library
- Give a valid name for your Document Library am selecting "Content pages", and then click "OK"
- Now we have to turn on Versioning for that document library
- Select the Document Library you just created in the Folder List, if not visible just refresh it
- Right click on the Document Library and select Properties
- Go to the Settings tab
- Enable Use Version History option to either "Major and minor (draft) versions" or "Major Versions". If you opt for the former, set the Make drafts visible to option based on your own preference
Now that our document library with versioning is set up, we can create and save new pages into this document library. Each subsequent save we make will create a new version, and if you make changes that you want to revert, you can roll back to a previous version of the page.
Now consider the scenario of rolling back the changes
- Click on the Page you want to roll back in the folder list
- Right click on the page and select Version History
- Pick the version number to restore, and then click Restore
If you already worked with master pages, you may be seen master page gallery, this feature is turned on by default on it. That's why you have the option of rolling back versions on master page edits without additional setup.
This approach does not work for web parts in web part zones. When a web parts is in a Web Part Zone, it gets stored in a different table internally and doesn't support versioning. This approach does work for web parts that are not in zones.
Sites using the Publishing template already have a pages library and have this sort of roll-back functionality on by default so no need to use this approach on Microsoft Office SharePoint Server Publishing sites.