If your templates are all based on some kind of text you may use some kind of OCR to match the text itself and not only by features.
Regarding features, you may read: A Comparative Analysis of SIFT, SURF, KAZE, AKAZE, ORB, and BRISK.
Specifically have aloo at the sections:
It seems your feature extractor usually use corners while you need more general ...
I believe Haar Cascades(used by Viola-Jones) are inherently scale-invariant. Also severely deprecated by modern Neural Networks, but I know nothing about those. It also doesn't do any OCR - if you need that you would need to run a separate algorithm on the extracted sub-image.