We are running Classic UI on AEM 6.3 and have recently sunset some components by marking their componentGroup as .hidden. This allows existing components to continue rendering while ensuring authors don't continue to create new instances of these components.
The issue we are running into is this prevents authors from moving the existing components around the page using cut/copy/paste.
Is it possible to remove a component from the sidekick while still allowing it to be moved on an existing page?
Move all those components to a particular Group (You can create multiple Groups for your project's design) and hide that entire group in the sidekick via css (add display:none; on that group's element on sidekick load/ready event). This way the component can still be moved but would not be visible in the sidekick.
A workaround could be to restrict the component to be dropped/moved only in certain containers/parsys/templates. That ways author could still move the component on page but only in limited sections of the page. Make this as restrictive as possible.
Refer to Geometrixx how the components are restricted to be dropped only on certain sections of the page-