Indexes are used to support queries. There is not an "optimal" number of indexes for a table. The number of indexes completely depends on how you query the table.
Having unused indexes wastes disks space and resources to maintain the index. As well as user time during insert/update/deletes.
I suggest you use this script. However, the script uses DMVs which are reset every time the server is restarted. So you need to monitor the results over time to get a full picture of indexes which are truly not used.
https://blog.sqlauthority.com/2011/01/04/sql-server-2008-unused-index-script-download/