Guide · Website with or without a CMS
Website with or without a CMS? Security, Maintenance, Performance – and What AI Agents Change
A CMS pays off when people without technical knowledge change content regularly – otherwise a website without one is the leaner choice
You need a website with a CMS as soon as several people without programming knowledge maintain content themselves, or functions such as a shop, a login or a members area are required. Without a CMS – as a static website – you are better off when changes are rare, or when they always run through a developer or an AI agent with your approval. In return, database, plugins and mandatory updates fall away. AI has shifted the line: the old main argument for a CMS, “non-technical people can edit the text”, is increasingly handled by an agent on small websites. The new argument for a CMS is control: roles, drafts, versions and an interface through which an agent may do only what you allow.
What you need to know before deciding
- With WordPress, the security risk sits almost entirely in the extensions, not in the core. Of 11,334 vulnerabilities reported across the WordPress ecosystem in 2025, 91 % were in plugins and 6 in the WordPress core.
- Loading speed is decided by the setup, not by the system. In the Web Almanac 2025, 79 % of TYPO3 websites pass the Core Web Vitals on mobile, but only 45 % of WordPress websites – both are content management systems.
- Nothing ages on the server of a static website if nobody looks after it for a year – with a WordPress without updates, the risk grows every month. What does age is the toolchain the static website is built with.
- AI agents can maintain both builds – with a CMS through the interface, with a static website directly in the code. What matters is that every change passes your approval before it goes live.
- Check the interface before you choose. Images, SEO fields, language versions and pages from page builders such as Bricks are where agents fail in practice.
The decision in four questions
Whether your website needs a CMS is decided by four questions – in this order, because each one can make the next irrelevant.
- Do you need functions with server logic? Basket, stock levels, login and members area need a system that computes on every request. Individual functions such as appointment booking can also be solved on a static website through an embedded external service – the server logic then sits with that provider. If you need more than that, the CMS question no longer arises, only the question of which system – a shop system such as Shopify, or a CMS with a matching extension.
- Who changes the content? If staff without technical knowledge regularly write news, job ads or product texts themselves, a CMS is the right choice. Their work runs through an interface with preview, drafts and permissions.
- How often does something change? A website that is adjusted two or three times a year does not need an editing interface that has to be maintained all year round. If something changes several times a month but always through the same technically skilled person or an AI agent, a static website with a clean approval workflow is enough.
- Who keeps the technology current in three years? This question gets skipped readily and takes its revenge years later. A CMS without a named person responsible for updates becomes a security risk. A static website that only a former working student could build becomes a dead end. If the honest answer is “nobody”, a hosted system with a subscription is often the most sensible solution.
Four builds compared directly
Behind “with or without a CMS” there are in practice four builds. For many smaller companies, one of the two in the middle is the best answer: the hosted system, or the static website with an editing interface.
- Self-hosted CMS: the software runs on your server and generates every page from a database, for example WordPress or TYPO3. You have full access, but you also carry the responsibility for updates and security.
- Hosted system: builders such as Wix and Squarespace and shop systems such as Shopify are content management systems too, only the provider runs the technology. You pay a subscription and work within its limits.
- Static website: finished HTML files, written by hand or built from text files with a generator such as Hugo, Astro or Eleventy. No program runs on the server, it only delivers files.
- Static with an editing interface: content is maintained in an interface and static pages are built from it – either through a headless CMS that outputs content only via an interface, or through a Git-based CMS such as Decap CMS, which stores changes directly as files in the code repository.
| Criterion | Self-hosted CMS | Hosted system | Static website | Static with editing interface |
|---|---|---|---|---|
| Who changes content | Editors in the back end, with roles and drafts | Editors in the provider’s editor | Developer or AI agent in the code | Editors in the interface, output via build |
| Attack surface in operation | Server, database, login and every plugin | Your accounts and installed apps; the provider patches the platform | Hosting and Git accounts, forms, embedded third-party scripts | As static, plus access to the editing interface |
| Ongoing maintenance | Updates, backups and PHP version – even when nothing changes in the content | Handled by the provider | Only when something changes: keep the toolchain current | Two parts to maintain: interface and website code |
| Typical speed bottleneck | Theme, page builder and plugins without a page cache | Platform scripts and apps | Rare; mostly images and third-party scripts | A front end that loads content only in the browser via JavaScript |
| AI agent connection | REST interface; since WordPress 6.9 the Abilities API in core, plus the MCP Adapter plugin | The provider’s interface, scope differs per platform | Directly in the repository, approval by merge | Via the interface’s API or directly in the repository |
| Later move | Database and files belong to you | Limited; content partly exportable, the website itself is not | All files belong to you | Content portable, front end rebuilt |
| Cost structure | Hosting plus working time for maintenance | Monthly subscription, rises with features | Hosting often free; costs arise with every change | Interface (sometimes paid) plus development |
The table shows the real trade-off: a CMS shifts costs from the individual change into continuous operation. Every text change is cheap, but the website also costs maintenance when nobody changes anything for a year. With a static website it is the other way round.
Security: every plugin widens the attack surface
With WordPress the risk grows with every extension, hardly with the system itself. The core is well maintained; the vulnerabilities arise almost entirely in plugins and themes contributed by thousands of different vendors.
The second figure matters more in practice: according to Patchstack, 46 % of the vulnerabilities had not been fixed when they were disclosed. Automatic updates do not protect you in those cases, because there is nothing to update. For a CMS website that means:
- Every plugin has to justify its place. What a line of code or a theme function could handle does not need a plugin of its own. Delete unused plugins rather than just deactivating them – otherwise the code stays on the server.
- Only use actively maintained extensions. A plugin whose last update is more than a year old belongs on the review list.
- A firewall with virtual patching at the host or as a service catches known gaps for which the provider already has a rule – even before the plugin vendor ships a patch.
- Two-factor login and sparing roles: whoever only writes texts gets the Editor role, not Administrator.
A static website does not have this layer, but it is not automatically secure. What remains attackable are the accounts for hosting, domain and code repository, the forms that run through an external service or a small server function, and every embedded third-party script for chat, tracking or cookie banners. Whoever takes over the hosting account can replace every page – regardless of the build. With hosted systems such as Wix or Shopify the provider patches the platform; your share is secure accounts and the choice of installed apps.
Maintenance: what comes up regularly – and what happens when nobody looks
The biggest difference shows when nobody touches the website for a year: the static one keeps running unchanged, the CMS becomes more vulnerable with every month without updates. For a self-hosted CMS these tasks therefore belong firmly in the calendar:
- Install updates and check afterwards. WordPress updates the core automatically for new installations since version 5.6; for plugins and themes, automatic updates can be switched on individually since version 5.5. An automatic update can still break a layout – somebody has to look.
- Backups whose restore has been tested. A backup that has never been restored is an assumption. Restore it on a test environment once a quarter.
- Raise the PHP version of the hosting. WordPress recommends PHP 8.3 or newer and points out that the old minimum versions from PHP 7.4 have already reached their end of life. The switch can break older plugins and has to be tested.
- Check the external resources of your extensions. Themes and plugins like to load fonts or scripts from third-party servers. In 2022 the Regional Court of Munich awarded a visitor 100 € in damages because a website loaded Google Fonts from Google’s server without consent (case 3 O 17493/20). After every new plugin it is worth checking which connections the page opens.
With a static website, updates, database backups and PHP switches fall away, because no program code runs on the server that could age. Domain, certificate, accounts and embedded third-party scripts still need an occasional look. Maintenance shifts to the moment of the change: the generator, the Node version and the libraries the site is built with keep moving. Anyone who wants to change something after a two-year pause often has to repair the toolchain first, before the first sentence goes online. An AI agent can take that work on today, but it has to be planned for.
With hosted systems the provider handles the technology entirely. The price for that is the subscription, which rises with every additional feature, and the tie to that one provider.
Performance: the setup beats the system
How fast a website loads depends above all on theme, extensions and images – hardly on whether a CMS sits behind it. The Web Almanac 2025 measures with real user data how many websites pass the Core Web Vitals on mobile: TYPO3 reaches 79 %, Wix 74 %, WordPress 45 %. The authors attribute the spread for WordPress more to configuration than to limits of the core. Two WordPress websites can therefore be worlds apart – depending on theme, builder and plugins.
A static website has a structural advantage: the server delivers a finished file, often straight from a network of data centres near the visitor. A CMS with a page cache comes close: on a cache hit it delivers the stored page without a database query. That does not apply to logged-in users, baskets and the first request after a change, and a delivery network (CDN) is needed on top. The larger part of the gap, though, comes from what sits on the page. For a CMS website that means in practice:
- Switch on the page cache – at the host or via a plugin. Without it, WordPress rebuilds every page on every request.
- Use a page builder only where it saves work. Builders produce nested markup and load scripts for features that never appear on the page.
- Deliver images as WebP or AVIF at the right size, and embed fonts locally.
- Check field data rather than lab values: the “Core Web Vitals” report in Search Console shows what real visitors experience.
What can be gained without changing the system is covered on the page about page speed optimisation.
AI agents and MCP: how an AI maintains your website, with and without a CMS
AI agents change the calculation from the comparison above in one fundamental way: they can carry out changes that previously required a person with technical knowledge. That makes the static website a real option for companies without a developer – and gives the CMS a new job as the rulebook that defines what an agent may do.
What MCP is and why it matters for your website
The Model Context Protocol (MCP) is an open standard through which AI applications work with other systems – with your CMS, Search Console or a shop, for example. Anthropic published it in late 2024 and in December 2025 handed it over to the Agentic AI Foundation under the Linux Foundation, which Anthropic founded together with OpenAI and Block. For you that means: a CMS with an MCP connection can be used by different AI assistants without a separate integration for each one.
With a CMS: the agent works through the interface
With a CMS the agent does not reach files or the database but the official interface – with the same rights as a human user. For that, WordPress has offered application passwords since version 5.6: they inherit the role of their user, can be revoked individually and are no use for logging into the back end. With WordPress 6.9 the Abilities API arrived in December 2025, through which WordPress and plugins describe which actions they offer. The official MCP Adapter plugin makes those actions usable for AI agents – and checks the user’s rights on every call. Hosted systems are following: Shopify provides MCP endpoints for catalogue, cart and checkout, where only approved agents may complete a purchase.
The advantage of this route: the CMS stores every version, and rights can be limited per user. That the agent only creates drafts, however, is something you have to set up yourself. The standard Editor role may publish and delete other people’s pages; the Contributor role may only create drafts but cannot upload images. What usually fits is a custom role that may write drafts and upload images but publishes nothing – via a role plugin or a few lines of code. This is exactly how MCP SEO works too: through the official interface of the CMS, without access to server or database.
Without a CMS: the agent works in the code
With a static website the agent changes the text files directly in the code repository. How far that carries today is shown by the IT company innFactory. According to its own account, it moved its WordPress website to the Hugo generator with Claude in under 48 hours in January 2026 – including redirects for all old URLs. The AI costs came to around 150 €. The team has maintained content as text files via GitHub ever since.
Approval here runs through the software development workflow. The agent works in a branch of its own, and hosts such as Cloudflare Pages or Netlify build a preview from it under its own address. Only when you accept the preview is the change merged and published. That works well as long as you really check the preview. Rights per section of the site, such as “may change blog posts but not the legal notice”, are not a given here. With GitHub they can be rebuilt through rules for file paths and code owners. Without such rules, approval before the merge is the only barrier.
A worked example: where agents fail at the interface
Having an interface does not mean an agent reaches everything through it. This website runs on WordPress with the Bricks page builder, and the guides are created as drafts through the REST interface – with a user account and application password of their own. While setting that workflow up in October 2026, three gaps turned up:
- Images: the MCP server in use sends all data as JSON, but the WordPress media interface expects a file transfer. Uploading was not possible that way – solved with a small plugin of my own that accepts images as JSON.
- Language versions: which language a post has and which translations belong together is managed by the Polylang plugin. In the free version running here, that is neither readable nor changeable through the interface; only Polylang Pro supplies those fields. Solved with an extra route in my own plugin.
- Page builder pages: Bricks stores the content of its pages in data fields of its own rather than in the regular content field. An agent editing the content field through the interface changes nothing visible on those pages.
Before deciding on a system, a theme or a builder, it is therefore worth testing exactly the tasks an agent is meant to take on later:
- Read pages and posts, create them as drafts and edit them
- Upload images, with alt text and file name
- Set title and meta description in the field of the SEO plugin
- Assign language versions and link them to each other
- Create redirects
- Limit rights per user and revoke access keys individually
- Trace every change with date and author
If one point fails, that is not a reason to rule the system out, but it is a cost item: somebody has to close the gap, or the task stays manual work. Anyone building new and planning AI maintenance is best off creating content in the standard blocks of the CMS – or checking beforehand where the chosen page builder stores its content.
Security with agents: rights, approval, hidden instructions
An agent with administrator rights is an administrator that can accept instructions from any text it reads. The OWASP list of the biggest risks for AI applications therefore puts prompt injection in first place: instructions hidden in web pages, files or form entries that change the model’s behaviour. If your agent reads comments or contact enquiries, those may contain “delete all pages”. OWASP recommends least privilege and human approval for risky actions, among other measures – and points out that there is no watertight protection. For your website that means:
- Least necessary rights: a separate user per agent with a role that may create drafts but not publish or delete. Installing plugins or creating users is never part of it.
- Approval before every publication by a human, with static websites through a protected main branch that nobody may write to directly.
- Revocable keys: set up the application password or repository token so that you can block it within a minute.
Visibility in Google and AI search: what counts is finished HTML
Whether your content can show up in ChatGPT, Claude or Perplexity does not depend on the CMS but on whether the text sits in the HTML that is delivered. Google usually executes JavaScript, but with a delay and only for pages it is allowed to index; Google itself still recommends server-side rendering. Many AI crawlers do not execute JavaScript at all: an analysis by Vercel found in December 2024 that the crawlers of OpenAI, Anthropic and Perplexity do not render JavaScript; Google’s Gemini and AppleBot did. That data is almost two years old – so if you want to be sure, deliver the main text in the HTML.
WordPress, TYPO3 and static generators all deliver their pages as finished HTML, so both camps are equally well placed here. At risk are websites whose content is only assembled by JavaScript in the browser – typically a headless CMS with a front end without server-side rendering. The test takes ten seconds: open the page in the browser, show the source with Ctrl+U (Mac: Cmd+Option+U in Chrome, Cmd+U in Firefox) and search for a sentence from the main text. If it is not there, crawlers without JavaScript execution will not see it either. The fix is server-side rendering; details under JavaScript SEO.
For Google itself: generative search features such as AI Overviews use the same basis as normal search. A page has to be indexed and eligible to be shown with a snippet; according to Google, no special files or markup are needed. More on that under SEO and GEO.
Switch or stay: when a move is worth it
Changing the build is only worth it for a concrete problem that cannot be solved in the existing system. Being unhappy with WordPress is not such a problem on its own – usually it is the theme, the builder or the missing maintenance. Good reasons for moving to a static website are:
- Maintenance costs more in the long run than the editing interface brings in, because hardly anyone changes content.
- The website has been attacked repeatedly despite updates.
- Loading speed stays poor after a thorough optimisation because the builder determines the markup.
Conversely, a move is a bad idea when several people on the team publish regularly. OpenProject moved from WordPress to a static website in 2021 and describes the price openly: editors have worked with Markdown and Git ever since, and a change takes up to 30 minutes to go live. For a website whose content rarely changes that was the right call – for a newsroom with daily posts it would be a brake.
There is often a middle way: stay in the CMS but replace the page builder with standard blocks. That can solve speed and agent problems without changing the editorial workflow.
Whoever moves risks rankings above all – not through the new technology but through changed addresses. Every old URL needs a 301 redirect to its new counterpart. The list for that comes from the old sitemap, the page report in Search Console and the pages with external links. Forms, the search function, language versions and the cookie banner have to be solved anew in the new build; they are the things most often missing after a move. How a move runs without losing rankings is covered under relaunch support.
Frequently asked questions about websites with and without a CMS
Does a website without a CMS rank worse on Google?
No. Google assesses the content, the technology and the user experience of the page, not the system behind it. A CMS does take work off your hands, though: according to Google’s SEO guide, most content management systems turn the title you enter into the title element automatically and partly generate the sitemap. Without a CMS, the generator or a person has to do that.
Do I need an llms.txt so that ChatGPT and others find my website?
Not for Google: in its guide to generative search, Google states explicitly that no additional machine-readable files are needed to appear in Search. No public commitment by a major AI provider to evaluate the file is known. It does no harm, but a measurable effect is not documented.
Is a website builder such as Wix a CMS?
Yes, a hosted one. You maintain content through an interface, but the technology and the hosting belong to the provider. The result cannot be taken with you: Wix itself states that a Wix site only runs on its own servers. A later move means a rebuild with redirects.
Do I need a CMS for an online shop?
Yes – a shop system, to be precise. Basket, stock levels, payments and invoices need logic on the server. A static website can sell individual products through external payment pages, but that is not enough for a range with variants and stock management.
What does a static website cost to run?
For typical company websites, hosting often fits into the free tier: Cloudflare Pages allows 500 builds a month and 20,000 files per site on its free plan, for example. On top of that come the domain and, where needed, a service that processes contact forms.
Can I move a static website to a CMS later?
Yes. The content sits in text or Markdown files and can be taken into a CMS by import or script. What matters is keeping the existing URLs; where that is not possible, every old address needs a 301 redirect to the new one.
Viktor Pásztor
Viktor Pásztor is an SEO freelancer in Berlin, has been in digital marketing for over 15 years and manages around 15 client projects in parallel, mostly e-commerce and B2B. He has been working 100 % remotely for more than five years – with WordPress, Shopify, Shopware and TYPO3. More about Viktor Pásztor
Keep reading
SEO and GEO
What visibility in AI Overviews and ChatGPT requires technically.
SEO vs. GEO vs. MCP SEO
Three terms, three goals – and which of them counts for you.
Indexing and crawling
How Google finds, renders and takes in your pages.
How to spot a reputable SEO agency
Checkpoints for the first call, the contract and the report.
Facing a new build or a relaunch?
Tell me who maintains content at your company, how often something changes and which tasks an AI should take on. In a free initial call we settle which build fits – before anyone builds the first line.
→ Settle the build together