Other than insertions (as suggested by others above), analyse your attempts.
Use Cube Explorer or Nissy or csTimer to find out what you could have done better. E.g. if you did an 6-move 2×2×2, was there a 5-move block instead; what do those 5-move blocks look like; how can you incorporate that into your solutions moving forward?
---
If somehow you end up having F2L done (this shouldn't happen all the time; last layer is not a good FMC step), you shouldn't be doing last layer with standard 2LLL unless there happen to be a lot of cancellations.
If edges are oriented:
- If edges can be solved with AUF, do that, then fix the corners with insertions.
- If not, spam Sunes/Antisunes from every angle to reduce to L3C or a short 1LLL that you know.
- If you get opposite edge swap (like T perm or Z perm), it's usually crap.
If edges aren't oriented:
- Spam all sorts of EO algs like FsexyF', sexysledge, wide Sunes/Antisunes, etc. Again, hope for L3C or short 1LLL.
- If you have dot OLL: do the normal OLL alg; you don't get a PLL skip, just ignore this and find something better.
Instead of fully solving F2L, it's often better to solve just the last edge together with the LL edges, bringing you to L5C (last 5 corners).
---
Check more things. Aggressively throw out starts that don't look like sub-40 potential. As you improve, reduce this threshold gradually.