You could consider using dedicated servers for search. There are guidance on Technet regarding the relatively new "best practice" physical topology called Streamlined Topologies, where one setup is using a dedicated server for search.
Streamlined topologies is an attempt to make the server topology more simple, and configure it based on latency/cpu/ram usage rather than the older topology that was more designed with roles in mind.
You could choose to run a dedicated setup for search to free resources for indexing. In a typical Streamlined setup, it is recommended to scale search out on dedicated servers when going above 2 batch servers (roughly translates to App servers in the old application server topology).
Also read the hardware requirements for search topologies in the article "Scale search for performance and availability.." to be sure that especially your server running index component has enough RAM.
Streamlined topologies topology examples.