To make the terminology I use clear: decidable = recursive = computable, semidecidable = recursively enumerable = computably enumerable, co-semidecidable = co-recursively enumerable = co-computably enumerable.
In practice, a common method to show that a language is not semidecidable is to show it is not decidable and that it is co-semidecidable. You then make use of the fact that any language that is both semidecidable and co-semidecidable is also decidable to conclude that your language is not semidecidable. (note that this only works in one direction: a language can be neither semidecidable nor co-semidecidable, in which case you need some other method)
As an example: we know that deciding whether a $\mathrm{CFG}$ is ambiguous is undecidable, but it is easy to co-semidecide: you just give a string that has two different parses. This implies that it is not semidecidable whether a $\mathrm{CFG}$ is ambiguous.
Another method is to show that the language is complete for some higher level of the arithmetic hierarchy.
It is of course possible to directly prove there is no verifier, but this is often tedious, as it usually repeats the proof that the halting problem is undecidable. Note though that the above argument essentially implicitly proves there can be no verifier, so I guess that you could say it is a method to prove there is no verifier, but then you could consider any proof of non-semidecidability as a proof that there is no verfier.