ssh -C -Y user@linux.system.address
The -C is compression.
I do not use X11 all that often, but my company has an X11 source code control merge conflict resolution tool, and it helps to have that vectored back to my Mac.
I have found that the distance between my Mac and the Linux system matters (more than bandwidth). In my case, my Hosted Linux development system is about 2,000 miles away, and the lag time adds up when you are going through multiple router hops between me and the development system.
ALSO, some X11 based apps are very chatty, and send lots of little messages to do anything. These X11 apps tend to be slow and sluggish from 2,000 miles away. Other apps are less chatty (gvim for example), and from 2,000 miles away, it is mostly usable (still a little lag, but not terrible).
Then again, when the Linux system is in the same building and accessible over gigabit Ethernet with very few router hops between my Mac and the Linux system, the X11 apps are rather responsive. Even the excessively chatty ones.
If I have to do a lot of X11 based work on a Linux system, I'll fire up a TigerVNC session on my Mac and connect to the Linux system. It seems to work better 2,000 miles away than X11. But most of my work can be done via ssh connections, so I rarely fire up TigerVNC. I have used other VNC clients over the years, but I've found TigerVNC does the best with Copy & Paste between Linux and my Mac.