# Add a CMS to an existing HTML site: five ways compared

> Markdown version of https://qixoo.app/add-cms-to-html-site/

## Short answer

The fastest way to add a CMS to an existing HTML website is to attach a hosted editing
layer with a single script tag. The markup, the styling and the hosting stay exactly
as they are, and the content becomes editable in place — usually in under five
minutes.

The alternatives all mean touching the build. Rebuilding in WordPress replaces how the
pages are generated. A git-based CMS needs a repository and a deploy pipeline. A
headless CMS needs a developer to model the content and wire it into templates. A
flat-file PHP CMS needs PHP on the server and write permissions on the web root.

Choose by two questions: **does the code have to change**, and **does the client need
an account somewhere**. Everything else is detail.

## The five options side by side

| | Script-tag layer | WordPress rebuild | Git-based CMS | Headless CMS | Flat-file PHP |
|---|---|---|---|---|---|
| Examples | Qixoo | WordPress + a theme | TinaCMS, Decap, CloudCannon, Sveltia | Contentful, Sanity, Storyblok, Prismic | Sitecake, CouchCMS, GetSimple |
| Realistic setup | ~5 minutes | 1–3 days | 2–6 hours | 1–2 days of dev | 1–2 hours |
| Do you touch the code? | One line | Rebuilt from scratch | Templates get annotated | Templates rewritten | Comment tags per region |
| Does the site move? | No — stays where it is | Usually yes | Needs git and a build | Needs a build or a server | Needs PHP hosting |
| Client needs an account | No — invite link | Yes, a WordPress user | Yes, usually a git login | Yes, a CMS seat | Yes, a CMS password |
| Whose brand is the editor | Neutral, or yours with the white-label module | WordPress | Varies, often the vendor's | The vendor's | The tool's |
| Ongoing maintenance | None on your side | Core, theme, plugin updates | Build pipeline upkeep | Integration upkeep | PHP updates, file permissions |
| Typical cost | $0–$99/mo, free tier covers 1 site | Hosting plus your time | Free–$100/mo | $100–$500+/mo | One-off licence |
| Content lives in the source HTML | Re-applied in the browser | Yes | Yes, at build time | Yes, if rendered server-side | Yes, written to the file |

Setup times assume a five-page brochure site handed to a non-technical client, by
someone who has used the tool before.

## When each one is the wrong choice

**Script-tag layer — skip it if the content is the product.** A blog with a post every
day, a shop with a thousand SKUs, a job board — anything where content is produced in
volume and has to be in the source HTML the moment it changes — belongs in a real CMS
with templates and a database. Skip it too if you need editorial workflow: drafts,
review, scheduled publishing, approvals. Right for brochure sites, landings and local
business sites that change a few times a month.

**WordPress rebuild — skip it if this is for one client.** Rebuilding a finished site
costs days, and the day you finish you have adopted a maintenance job: core updates,
plugin updates, security, backups. Right for sites that genuinely need plugins —
memberships, bookings, a real shop.

**Git-based CMS — skip it if the client is not technical.** Decap, Tina and CloudCannon
keep content in your repository, but they assume a repository, a build and a deploy
that runs when content changes. When the build breaks, the client's edit does not
appear and they call you. Right for developer-run sites, documentation and teams
already living in git.

**Headless CMS — skip it for a five-page site.** Contentful, Sanity and Storyblok are
built for content at scale across many surfaces. For a restaurant with a menu and an
opening-hours block you will spend a day modelling content types to solve a
one-sentence problem, at a different order of monthly cost. Right for multi-channel
content and several sites sharing one content pool.

**Flat-file PHP — skip it if the site is not on PHP hosting.** Sitecake and CouchCMS
write straight back into your HTML files, which is elegant, and it needs PHP, write
permissions on the web root and a host that tolerates both. Netlify, Vercel and
Cloudflare Pages do not. Several tools in this category have not been meaningfully
updated in years. Right for classic shared hosting with cPanel and FTP.

**Rule of thumb.** If the person editing the site is a developer, put the content in
git. If a marketing team edits it daily, buy a real CMS. If it is a restaurant owner
who wants to change a price on a Sunday and has never logged into anything, keep the
editing on the page itself. The wrong answer is always "just send me the changes and
I'll do it".

## The script-tag route, concretely

1. **One line on the page.** Paste it once before `</head>` on every page, or into the
   custom-code head field of whatever hosts the site:
   `<script src="https://qixoo.app/qixoo.js" data-key="YOUR_SITE_ID" defer></script>`
2. **Click what should be editable.** Open the live site signed in and click a
   heading, paragraph, image or link to change it. Saved content is re-applied on
   every page load.
3. **Send the client a link.** They open their own site and edit it in a reduced
   editor with no Qixoo branding. No account, no dashboard, no code.

**What "editable" covers:** text and headings, images, links, buttons, list items,
menus, galleries and sliders. You can also drop in prebuilt blocks without writing
markup.

**What it deliberately does not do:** it does not restructure your layout, and it is
not a permissions sandbox — the client editor is a reduced interface that hides
operator-only features, not a lock on the page content. It does not host your site
either; your host still serves the HTML.

**About SEO.** Your host keeps serving the HTML you wrote, so a crawler always gets a
complete page. Content edited through the layer is re-applied in the browser, which
means an edit can be picked up later than a change to the source file would be. For a
headline that changes a few times a year this is a non-issue. If a page's whole
content must be indexed the day it changes, edit the HTML too.

## FAQ

**Do I have to rebuild the site to add a CMS?**
No. A script-tag editing layer attaches to the HTML you already published — markup,
styling and hosting stay as they are. Rebuilding is only necessary on the WordPress or
headless route.

**Will adding a CMS this way hurt SEO?**
The original HTML keeps being served by your host, so the page a crawler receives is
the page you wrote. Edited wording can be seen later than a static change would be.
Fine for copy that changes occasionally; edit the source too if a page must be indexed
the day it changes.

**Does my client need an account to edit the site?**
With Qixoo, no — you send an invite link and they edit their own live site. With
Webflow Client Seats, WordPress or a headless CMS, every editor needs an account on
that platform.

**Does it work on Webflow, Framer, WordPress or Netlify?**
It works on any site that serves HTML, whatever the host. On Webflow-hosted sites the
tag goes in Site Settings → Custom Code, which needs a paid Webflow site plan.

**What happens to the site if I stop paying?**
It stays online with every saved edit intact. Only editing pauses until a plan is
active again. Nothing is deleted.

**Does it work on a React single-page app?**
Best-effort. Apps that re-render the DOM after load can overwrite injected content, so
test one page before promising it to a client.

**Is there a free way to do this?**
Several. Decap CMS and TinaCMS are free and open source if the site lives in a git
repo. Qixoo's free tier covers one site with no time limit. WordPress software is
free; hosting, migration time and maintenance are not.

See also: [Webflow legacy Editor replacement](https://qixoo.app/webflow-alternative.md) ·
[Documentation](https://qixoo.app/docs/index.md)
