1) change recursion to another search algorithm (you proposed BFS or Queue). However, I would go with anything that allow for increased performance and better memory utilization
2) part of 1) is to store the links as hash-codes. This will allow for faster comparison of visited domains as well as improve memory utilization
3) use of external java library. Also aimed at improving performance
4) add a subdomain yes/no check box. If checked to yes, the search will allow for expansion into subdomains, part of the main domain structure.