1. Report snapshots are stored in ReportServer database and hence you need to plan for additional storage requirements for this database. Though you can minimize it by limiting the maximum number of snapshots to be maintained at a time in the report history.
2. All the data sources used in the report must have credentials saved with it or with no credentials.
3. All the query parameters of the report must have default values defined for it.
4. Schedule report snapshot to be created during off peak hours.
5. A report served / rendered from report snapshot represents the data when the snapshot was created and might not be up to date.
6. Report snapshots are created for two main purposes, first to reduce the load or processing time on the database server during peak hours by creating report snapshots during off peak hours and second, to create report history (to see/analyze how data has changed over time) either by weekly, monthly, etc.
In this article I talked about how SSRS improves the performance of report rendering by utilizing the report snapshot, how to configure a report snapshot and how to define report execution properties to render the report from the report execution snapshot.