What I think I'm doing right:
* Simple to start. As soon as you enter the page you see the table, you just need to press Deal and you've started. No "enter your name", no choosing options before starting, no nag ads.
* Single page sites. The rules for the games are on the landing page, which means it has more content and is likely to be ranked higher by Google.
* Keep it simple. As a programmer I had the urge to create high scores, multiplayer, logins, track results etc, but at the end of the day most people just want to spend 10 minutes playing, and leaving out those things also means it's maintenance free, and frictionless to get started.
Funny thing is that I never play them myself after I've finished them. The interesting part for me is creating the computer player, and seeing if I can make him win more than the human players, I have some stats in Google Analytics that can show me that. Since the computer plays like I would play it's kind of like I'm playing against all the players :)
When I'm testing I usually let the computer just play against itself, add ?autoplay to any of the game urls and when you press Deal you'll see four computer players playing against each other...
I have thought about changing it all to one domain, and setting up some 301 redirects, but I'm just afraid to mess up my google rankings. For the solitaire game I re-use a domain, e.g I have http://www.solitaire-cardgame.com for Klondike solitaire (or classic solitaire), and then I have http://www.solitaire-cardgame.com/freecell for Free Cell solitaire.