New Migrate your forum to wpForo 3.0 AI Edition, the first 360° AI-powered forum platform. See how
Home / Blog / CMS Migration
CMS Migration

Why Site Owners Are Moving From Concrete CMS to WordPress

Concrete CMS has been powering websites since 2008, but each major version rewrite broke compatibility with existing add-ons, and many developers never came back. Today the marketplace is thin, the community is small, and site owners are finding it harder to get help when something breaks.

A Platform Built on a Shrinking Island

Originally released as concrete5 by PortlandLabs in Portland, Oregon, Concrete CMS built a devoted following on the strength of one genuinely innovative idea: in-context editing. Instead of switching to a backend editor to change page content, you clicked directly on the page and edited it in place. In 2008, that was remarkable. The block-and-area architecture that underpinned it was elegant, and the add-on marketplace attracted a community of developers who built themes and packages on top of it.

Then the versions changed. Concrete5 7 introduced new add-on requirements, and a significant portion of developers did not rewrite their products for the new architecture. Concrete5 8 repeated the pattern. The cumulative effect on the marketplace was severe. PortlandLabs themselves abandoned their eCommerce and discussion board add-ons, leaving site owners reliant on community replacements. By the time the platform rebranded to Concrete CMS in 2021 and version 9 was released, the add-on ecosystem had a fraction of the activity it had a decade earlier.

With the release of version 7 and continued in version 8, the add-on ecosystem was severely reduced due to new add-on requirements and some developers not wanting to rewrite their products. Portland Labs had abandoned their eCommerce and discussion board add-ons, leaving some site designers high and dry.

Verified reviewer, Capterra, Concrete CMS reviews (page 2)

The Concrete CMS ecosystem status
The Concrete CMS add-on marketplace after each major version rewrite. This is fine.

The Developer Pool and the Real Cost of Running the Platform

Concrete CMS market share is approximately 0.5%. That figure represents around 50,000 websites worldwide, a respectable number for a niche platform, but it also defines the available talent pool. Most web developers have never worked with Concrete CMS and have no reason to learn it. The developers who do know it can charge a premium for that scarcity, and as the platform ages, the pool contracts further.

We were happy at the outset of our Concrete5 journey, but it did not last long. Making us feel we were thrown into the ocean wearing concrete shoes as support was no longer available to fix problems on our site. None of the vendors with reasonable rates even recommended using this platform for creating a website.

Verified reviewer, Capterra, Concrete CMS reviews

Great for clients but they will need a ConcreteCMS developer to do the ideal setup.

Verified user review, Capterra, March 2024

Many site owners who started on Concrete5 now feel the platform getting smaller around them: fewer add-ons, fewer theme choices, and fewer developers who still work with it every day.

C5Desk, Concrete5 to WordPress Migration in 2025, August 2025

The Concrete CMS add-on marketplace today
Looking for an actively maintained Concrete CMS developer in 2025.

Concrete CMS Features and Their WordPress Equivalents

Every piece of functionality in Concrete CMS is delivered through Blocks placed in Areas on Pages. The block system is the platform’s core strength, and it maps cleanly to WordPress‘s Gutenberg block model. The difference is in ecosystem depth: WordPress has thousands of maintained block extensions, plugins, and themes where Concrete CMS has hundreds, and that gap is widening. The table below maps the most commonly used Concrete CMS features to their WordPress equivalents.

Concrete CMS Feature What It Does WordPress Equivalent Cost
Blocks (content units in Areas) Rich content sections placed into named page zones Gutenberg Block Editor + ACF Blocks Free + Pro
Page Types + Attributes Custom page structures with typed field definitions WP Custom Post Types + ACF Pro custom fields Free + Pro
In-context (inline) page editing Edit content directly on the live page view Gutenberg Block Editor (visual editing) Built in
Conversations block Threaded discussion and comment system on pages WP native comments + wpForo 360° AI for forums Free + Pro
Form block / Express Forms Form building with submissions stored in the database Gravity Forms / WPForms / Fluent Forms Free tiers
Community Store Open source e-commerce (after Portland Labs abandoned theirs) WooCommerce (8M+ active installs) Free core
Express Entries Custom data objects with typed fields (like custom CPTs) Custom Post Types + ACF Pro Free + Pro
File Manager Centralized file upload and organization WordPress Media Library (built in) Built in
Users + Groups User registration, profile attributes, and group access WordPress User Roles + MemberPress Free core
Calendar (built in) Event scheduling and display The Events Calendar (700k+ installs) Free core
Stacks Reusable global content blocks shared across pages WP Reusable Blocks / Patterns + ACF Options Built in
Concrete CMS Themes Template files controlling page design and layout Custom WordPress PHP theme Custom dev
Workflow + Permissions Content approval and granular page-level access control WP User Roles + PublishPress / custom hooks Free tiers

A note on the Conversations migration. Concrete CMS Conversations provide a threaded comment system at the page level. For organizations that want to add a full community discussion platform to their new WordPress site, gConverter implements wpForo 360° AI as part of the migration. This delivers proper forum categories, topic subscriptions, member ranks, and AI-powered moderation rather than the basic threaded comment model that Conversations provided.

What a Proper Concrete CMS Migration Involves

Concrete CMS stores its content in MySQL using a combination of core tables and dynamically generated attribute tables. Pages, blocks, file manager entries, user accounts, and form submissions are all in separate table groups that require specific knowledge to read correctly. A proper migration reads the source database directly and maps each content layer explicitly.

Pages, page types, and attributes

Pages in Concrete CMS are stored in the Collections and Pages tables with page type definitions in PageTypes. Each page type has a set of attributes (custom fields) stored in dynamically named tables like atBoolean, atDateTime, atSelect, and atTextarea, with values mapped back to pages via CollectionAttributeValues. A proper migration reads every page per type, maps the attribute values to their ACF Pro equivalents in WordPress, and creates posts or custom post types that replicate the original structure. No attribute value is dropped.

Block content

Every block placed in an area on a Concrete CMS page is stored in its own table (for example, btContentLocal for the Content block, btImage for the Image block, btForm for Form blocks). A proper migration reads each block table, maps the content to the equivalent Gutenberg block in WordPress, and reconstructs the page layout in the correct area-to-column order. The visual structure of every page is preserved.

Form submissions

Form block submissions are stored in FormResults and FormResultsData. Express Forms data is in the Express Entries tables. Every submission including all field values is exported and archived. No inquiry, contact, or submission record is lost during migration.

Users and groups

Concrete CMS users are stored in the Users table with custom profile attribute values in dynamically named user attribute tables. All registered users are imported to WordPress with role mapping. User attribute data is imported as WordPress user meta. Password hashes use different algorithms between the two systems, so users receive a secure reset link on first login.

File Manager and media

Concrete CMS file entries are tracked in the Files, FileVersions, and FileStorageLocations tables. All files including images, documents, and downloads are imported to the WordPress Media Library preserving filenames, folder structure, and alt text. All content that referenced these files is updated to point to the new WordPress media URLs.

URLs and SEO

Concrete CMS generates URL slugs from page names. Where these can be replicated in WordPress permalink settings, they are preserved exactly. Where the structure must change, 301 redirects are created for every affected URL. SEO metadata stored in Concrete CMS‘s SEO attributes per page is imported to Yoast SEO. No page goes live without its URL and SEO data intact.

Concrete CMS to WordPress migration
Content blocks mapped, attribute values imported, file manager transferred. A proper Concrete CMS migration.

What Bad Concrete CMS Migrations Look Like

  • Attribute values dropped. Generic migration tools do not know how to read the dynamically named attribute tables (atBoolean, atSelect, atTextarea, etc.). They grab the rendered HTML of each page and miss every structured attribute field. Custom page fields, event dates, category selections, and all structured metadata disappear silently.
  • Block content flattened. Each Concrete CMS block type has its own database table. Generic tools cannot read the individual block tables and instead scrape the rendered HTML output of the page. All structured block data, images linked through the Image block, and file downloads linked through the File block are broken or lost.
  • Form submissions abandoned. FormResults and Express Entries data is in Concrete CMS-specific tables that no standard WordPress importer handles. All submitted contact and inquiry records disappear.
  • File Manager not migrated. Files tracked in the Concrete CMS File Manager are not always imported to the WordPress Media Library. Content that linked to those files gets broken URLs after launch.
  • User attribute data lost. Custom user profile attributes stored in user attribute tables are not handled by generic migration tools. User accounts arrive in WordPress without profile data.
  • No URL redirects. Concrete CMS page slugs are replaced by default WordPress slugs with no redirects in place. All inbound links and search rankings for specific pages break immediately after launch.

GDPR and Your Data

A Concrete CMS database contains the personal data of every registered user: email addresses, hashed passwords, and all custom profile attribute values. The FormResults tables hold every field submitted through any Form block on the site, which may include names, addresses, phone numbers, and other personal information visitors provided. If Community Store was active, customer order records are in the commerce tables. For European organizations running Concrete CMS, this data is subject to GDPR.

Migrating this to WordPress requires a signed Data Processing Agreement before any provider accesses your database. gConverter is US-registered with full EU GDPR compliance. We sign a DPA before any access, store credentials in AES-256 encrypted vaults, transfer over TLS 1.3, and permanently delete all customer data within 30 days. Read the full GDPR documentation →

What Clients Say

Went FAR above and beyond to help us work through this project. We are thrilled with the final result and they were professional, great to work with, and responsive every step of the way. Would highly recommend.

Anna P., Wilmington NC – Customer Lobby, January 2026

Very few conversion issues on the first pass, and they cleaned it right. Very Impressive.

Stacy C., Katy TX – Customer Lobby, November 2025

Success after Concrete CMS to WordPress migration
Your site on WordPress: a maintained plugin ecosystem, a deep talent pool, and an editor that works without custom developer setup.
🔒

Your Concrete CMS Database Contains Personal Data. Who Are You Trusting With It?

Handing a third party your Concrete CMS credentials means giving them access to every user account, every form submission, every File Manager record, and all custom attribute values your site has ever collected. Most freelancers have no Data Processing Agreement, no deletion policy, and no breach notification obligation.


🔒 Read: How to Securely Migrate Your Concrete CMS Website to WordPress →

The Bottom Line

Concrete CMS is a genuinely well-designed CMS with a coherent block architecture, real in-context editing, and a thoughtful permissions system. For the organizations that built on it at its peak, it served them well. But the add-on ecosystem has contracted through successive version rewrites, the developer community is a fraction of what it was, and the competitive position against WordPress has only widened over time.

WordPress is where the talent pool is and where the ecosystem is actively expanding. Every Concrete CMS page, every attribute value, every block, every form submission, every file, and every user account can be migrated cleanly. And for sites that want to add a full community discussion platform, that migration includes moving to wpForo 360° AI.

Share this post:
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted

Ready to leave your outdated platform behind?

Free quote in 6–12 hours. You pay only after the migration is approved.