Website Ownership: Making Sure You Actually Own Your Domain and Code
On this page
You hire a web agency to build your website. Six months or two years later, you want to make a change or move to a different vendor. You ask for access to your domain and code repository. The agency tells you there's a problem: the domain is registered under their name, or the code is in a GitHub account they control.
Now you're stuck. You can't move your site without their permission. You can't make changes without going through them. They have effective control over your digital assets, even though you paid for them.
This situation is more common than it should be. It happens because the business relationship and technical setup were never clarified. It's not always intentional on the agency's part, but the result is the same: you don't actually own your website.
The Two Critical Assets
Your website depends on two things: the domain (yoursite.com) and the code that makes it work.
The domain is your address on the internet. If you don't control it, someone else can point it anywhere they want, hold it hostage, or refuse to renew it. If you lose access to your domain, your website disappears and email stops working.
The code is the actual files and functionality that make your website work. If you don't have access, you can't make changes without the original developer. If they disappear or go out of business, you're stuck.
Both are critical. Both need to be under your control.
Domain Registration
The domain should be registered in your name with a registrar of your choice. Popular registrars include GoDaddy, Namecheap, Google Domains, and others. You create an account, register the domain in your name, and you have complete control.
When you hire a web agency or developer, the domain should remain in your account. The developer might manage it (point it to the right server, set up email), but you maintain ownership and access.
How to confirm you own it:
Log into your domain registrar account. You should see your domain listed there. You should be able to change DNS settings, update contact information, or transfer the domain without asking anyone's permission. If you can't log into the account or if a registrar account doesn't exist in your name, you don't own the domain.
If the agency registered it in their name:
This is fixable but requires their cooperation. You can request that they transfer the domain to your registrar account. A domain transfer typically takes a few days and requires an authorization code from the current registrar. The agency needs to provide that code.
If the agency refuses to transfer the domain, you have leverage if the domain is essential to your business, but it's a difficult situation. This is why it's better to prevent it from happening in the first place.
At contract time:
Make clear that the domain will be registered in your name at a registrar you control. If the agency needs to manage it, they do so with credentials you provide. Better still, you maintain the registrar account and credentials.
Code Repository Access
Your website code should live in a repository that you control. GitHub, GitLab, Bitbucket, and similar services host code repositories. You create an account, create repositories, and invite developers to collaborate.
When you hire a developer or agency, they should either:
- Work in a repository you created and own
- Transfer completed code to a repository you create and own
You should have full access to every version of the code, the ability to download it, and the ability to give it to another developer if needed.
How to confirm you own it:
Log into your GitHub (or similar service) account. You should see all repositories for your website. You should be able to download the code, view the complete history, and invite or remove collaborators. If you can't access the account or don't have repositories listed, you don't control the code.
If the agency owns the repository:
This is also fixable. The developer can give you access, or they can transfer ownership of the repository to your account. If they do this, you get the complete history and can make changes immediately.
If the developer is unwilling to transfer the code or give you access, you're in a problematic situation. You can request it in writing, escalate if there's a contract dispute, but this is much easier to prevent upfront.
At contract time:
Specify that code will be stored in a repository owned by your company. The developer should have access as needed but doesn't own the repository. Alternatively, if code must live in the developer's account during development, there's a clear deliverable of transferring it to your account upon completion.
Hosting and Servers
The server hosting your website is a third asset to consider. This is slightly less critical than domain and code because you can move to different hosting more easily than you can reclaim domain or code. But it's still worth clarifying.
Hosting accounts should be in your name or at minimum managed with credentials you control. If a developer sets up hosting under their own account and never gives you access, you're dependent on them for any server-level changes.
Confirm you have login credentials and can access server control panels, logs, and settings. If you need to move to different hosting, the hosting company can typically migrate your site for you, but having direct access makes it simpler.
The Broader Picture
These three assets—domain, code, and hosting—are the foundation of your website. Controlling them means you can make changes, switch vendors, rebuild, or pivot without anyone's permission.
The reason this matters is that business relationships change. Agencies go out of business. Developers become unavailable. Priorities shift and you need different features. Conflicts emerge. When they do, you want to have agency—the ability to make decisions and move forward without being locked in by technical constraints.
This isn't about distrust. It's about smart business practice. Clarify ownership at the beginning, ensure you have access and control, and both you and the developer are protected.
Making This Right
If you already have a website where you're uncertain about ownership:
For the domain: Contact your web agency or developer. Ask them to confirm they'll transfer the domain to your registrar account, or provide you login credentials to the account where it's registered. Get it in writing.
For the code: Ask for access to the code repository, or for the code to be transferred to a repository you own. Get it in writing.
For hosting: Ask for login credentials to the hosting account, or confirmation of the account owner and access level.
Most legitimate agencies or developers will be straightforward about this and will cooperate. If they resist or make excuses, that's a red flag worth taking seriously.
FAQ
What if the developer claims they need to keep code in their account for security?
They don't. Repositories can be kept private (not visible on the internet), but ownership can be yours. If a developer insists on maintaining ownership of your code for security reasons, that's not a legitimate reason. It's about control, not security.
Can I hire a developer to build on a domain or in a code repository I don't own yet?
Yes. You can own the domain and repository from the start. Set up a GitHub account and domain registrar account in your name before hiring the developer. This is the cleanest approach.
What if I want the developer to have continued access after the project is done?
They can have access without owning it. You own the repository and domain, and you invite them as a collaborator. They can make changes when needed, but you have the authority and can revoke access if the relationship ends.
Is this different for website builders like Wix or Squarespace?
Website builders are hosted platforms where you don't technically own the code—the platform does. But you should control the domain. You should be able to point your own domain at the Wix or Squarespace site. Make sure your account is in your name and you know the login credentials. This gives you the ability to switch to a different platform if needed.
The Essential Practice
Before any substantial web development project starts, clarify in writing:
- The domain will be registered in [your company name] at [registrar]
- The code will be stored in a repository owned by [your company name]
- You will have access to [login, credentials, permissions]
- Upon completion, [transfer of assets/access confirmation] will occur
This doesn't require legal complexity. It just requires being explicit about something that should be obvious: your digital assets belong to you.
Related service: Next.js & React Web Development Agency
Planning a new website?
Let's talk about how a fast, SEO-ready Next.js site can help your business grow.
Start Your Project