There is not much in terms of tactics in this game, I'm afraid.
The only way to catch someone's off is to defend when they are attacking. But, leaving your def out is not an option, as it can easily be Fireshipped to oblivion, especially if your attackers have alts or many friends or active BH mates.
And because the charts can practically teleport your troops, you'd need to literally be active on the account at the moment when they send, so you can recall your def from the harbour at the right moment (likely right away or in a minute or so). Almost no one will send a significant force and just let it sail for hours while you prepare your def.
If you do decide to defend, haven's walls and improvements can be a big help. Quite costly, but it's a one-time purchase.
Blocks have no effect other than your ability to ransom them. Some players sarcastically refer to those as "protection", because any hit on a blocked haven will hit your block instead of their troops, and they get to play unimpeded. Many people will block their own alts and play just from them without any problems caused by being blocked.
So, blocking your enemy usually makes it better for them, not worse, as they can harass other players without much fear of retribution.
The only realistic thing to do (if you're not sitting on your haven 24/7 like a mother hen) is to build your harbour to the max (or, at least, level 26, to auto-hide newly trained troops) and spend down as frequently as possible. That way, anyone raiding you won't get PvPs nor res, so it becomes pointless to raid.
In order to pull this off, your rum production should be very low or negative (or you'll always have plenty of rum for someone to raid). If it's not, you can fairly quickly train loads of Chinese troops, as they drink ridiculous amounts of rum. I would recommend Junks, because they also make good block traps against Daggers.