How can I easily transfer ownership of a web property?
There's more to ownership of a web property than merely being able to edit the content. As Su' indicates, you should learn to build sites that have an admin interface (either by rolling your own or using a CMS) so the clients can easily change content on their own unless they want to pay you to also maintain the site. This should be discussed and planned for during your initial negotiations so that no one is making any assumptions as to what will happen once the site is launched. But before we even get to that point, let's look at what else goes into building a site:
- Registering the domain name
You or the client should register the domain name with your registrar of choice. I tend to prefer to be the one who registers the domain for the first year since I know how to point the DNS to a hosting server and trying to talk a client through that can be painful. If you register the domain, make sure the client opens a registration account somewhere because as soon as the site is up and running and your contract is ending you want to have the client request a transfer of ownership from your account to their account. This makes them responsible for renewing the domain name once your contract is up.
I almost always have the client open their own hosting account and I assist them in that process with recommendations based on budget and need, but ultimately they have to do it. This ensures that they can lock me out by changing the password on the account once I have delivered the final, approved site. As the developer all you need is FTP access for a static site and FTP + database access for a dynamic site. Shell access is also desirable once you get a little more experience with things.
Google: Except in rare cases, you will want to create the Google account and set up Webmaster Tools and Analytics for the client and then add them as a verified owner/administrator user. This allows you to do the crucial first steps of configuring the sites and embedding the GA tracking code and then you can walk the client through removing you from the accounts which transfers ownership from you to them.
Social Media: Make sure you discuss with the client if and how social media is going to be integrated with the site. Social media is an important marketing tool and sharing/following should be baked into the site which may mean helping the client create the relevant accounts. As with hosting, they should create the account and share access with you for the duration of the contract and then change the password to lock you out. For Facebook it's a little easier...you can create the page or group and add the client as an admin and then remove yourself when ready.
For other tracking or service accounts, just make sure you can either transfer the account (e.g. it's not tied to your own social profile) or have the client open it and share access with you. This is especially true for anything that requires a payment...always make the client pay.
- Common Sense: Develop the site on an hosting account YOU control
During the development phase (which doesn't always need to wait until name and hosting has been chosen) make sure you are working on a server or hosting account under your complete control. Don't transfer anything to the client-controlled hosting until your final payment for the project clears.
The points above are pretty generic and not all of them will always apply to every client. Some clients will already have a domain name and an existing site hosted with an ISP. Just use the above as a checklist as you get started in doing sites for pay and good luck!