One of the advantages of using a MultiSite in WordPress is that plugins can be shared between sites and enabled on a per site basis. This makes for easier plugin and theme updates for the whole network. But what about cases when you don’t want the plugin to be available for all sites in the network? This is particularly useful when creating custom plugins that are made to use with a particular theme or site.
When dealing with a MultiSite, plugins for all site are in the same directory so one might think that it wouldn’t be possible to activate them on a per site basis. So here’s the trick. Upload but do not activate the plugin at the Network Level.
Instead, leave it unactivated and go to the Plugins tab of the site itself.
Activate it here and it will be available only for the sub-site.