With evaluation focused on material it is hard for the search to get out of the earlier search phases. More implementation here will help the search prune what a good or bad position is more effectively which means it should be able to search deeper.
Search
Futility pruning and SEE in quiescent search
Evaluation
Passed pawn detection, give plusses to those
Give minuses to pawns that can't advance
Bishops and knights as "good"
Prioritize pieces being developed during the opening/middlegame
Move Generation
Explicitly only generate captures (special logic)
Switch move generation to not create new slices (will need some way to do this with "priority" for move generation)
With evaluation focused on material it is hard for the search to get out of the earlier search phases. More implementation here will help the search prune what a good or bad position is more effectively which means it should be able to search deeper.
Search
Evaluation
Move Generation