Version control is a system for recording every change made to a set of files over time, who made each change, and why, in a way that lets you go back to any earlier point if something goes wrong. Developers use it constantly; most site owners never touch it directly. But understanding roughly what it does makes it much easier to work with a developer or agency, ask the right questions, and recognize when a safety net is or isn't actually in place.
What it actually tracks
Instead of just keeping the current state of a project's code, a version control system keeps a full history of every saved change, called a commit. Each commit records exactly what lines changed, when, and typically a short message explaining why. Over the life of a project this builds into a complete, searchable timeline: you can look back at any point and see exactly what the code looked like, and trace when and why a specific change was introduced.
The most widely used version control system today is Git, and the most common place developers store a Git project remotely is a hosted service like GitHub, GitLab or Bitbucket. When a developer says a project's code is "in a repository" or "on GitHub," they mean the code and its full change history live in a version-controlled project on one of these platforms.
Why this matters even if you never open it yourself
The direct benefit is recoverability. If a developer makes a change that breaks something, version control makes it possible to identify exactly which commit introduced the problem and revert just that change, rather than guessing at what went wrong or restoring an entire site from a much older backup. That precision, reverting one specific change instead of losing everything since the last backup, is the main practical advantage over relying on backups alone for code changes.
- A clear record of what changed, when, and by whom, useful when more than one person works on the same site.
- The ability to revert a single problematic change without losing unrelated work done since.
- A way to try a risky change on a separate branch without touching the live code until it's confirmed to work.
- An audit trail if you ever need to understand why a specific piece of custom functionality behaves the way it does.
Branches: working on something without disrupting the main version
A branch is a parallel copy of the project's code where someone can make changes in isolation, without those changes affecting the main version until they're deliberately merged in. This is how a developer can build and test a new feature over days or weeks while the main, live version of the code stays untouched and stable. Once the work on a branch is finished and reviewed, it gets merged back into the main branch, at which point it becomes part of the project going forward.
How this connects to staging and deployment
Version control and a staging environment solve related but different problems. Version control tracks and organizes changes to code over time; staging provides a safe place to actually run and test that code before it reaches the live site. Together, a typical professional workflow looks like: make a change on a branch, test it on staging, and once confirmed working, deploy that same tracked version of the code to the live site. Deployment tools can automate that last step, pushing a specific tracked version of the code live automatically once it's approved.
What to ask a developer or agency about it
If you're working with outside developers on custom functionality, it's reasonable to ask whether the custom code is kept in version control, and if so, whether you or your organization retain access to that repository rather than only the developer. This matters practically: if you ever change developers, having access to the actual repository with its full history is far more useful than starting over with only the current state of the files and no record of how they got that way.
You probably don't need to learn Git yourself
For most small business site owners, especially those running a standard WordPress site without heavily customized functionality, there's little practical need to learn Git or interact with a repository directly. The value of understanding version control at a basic level is mostly about being an informed client: knowing what questions to ask, understanding why a developer might say a change needs to go through staging and a pull request before it reaches production, and recognizing that a well-managed codebase, with a real change history, is worth more than it might initially seem when something eventually needs to be fixed, audited or handed off to someone new.
Where WordPress fits into this picture
A standard WordPress site built entirely from off-the-shelf themes and plugins usually doesn't involve version control at all in day-to-day use, since there's no custom code being written that needs its own change history; updates come from the plugin and theme authors themselves. Version control becomes relevant once a site includes custom-built functionality: a bespoke theme, a custom plugin, or specific integrations written for that business. If a developer is writing original code for your site, that's the point at which asking about version control stops being an abstract question and starts being a practical one worth actually raising.
A pull request, in plain terms
You may hear a developer mention a "pull request" as part of their process. It's simply a proposed change sitting on a branch, presented for review before it gets merged into the main version of the code. Someone else, often a more senior developer, looks over the proposed change, checks it against tests or a staging site, and either approves it or asks for adjustments first. This review step is one more layer of the same safety-first pattern that runs through version control, branching and staging together: nothing reaches the live site without someone having looked at it first.
The bottom line for a non-technical owner
You don't need to run a single Git command to benefit from your developer using version control well. What you do benefit from is asking a few grounding questions early in a working relationship: where does the code live, who has access to it besides the person currently working on it, and what happens to that history if the relationship ends. Those answers tell you a lot about how recoverable your site's custom code actually is if something changes down the line.
Choose hosting that fits the site.
Compare the shared hosting plans or explore the separate WordPress optimized range.