Insights, ideas and inspiration. A go to wisdom hub right here.
Featured Posts
Tutorials
7 Min Read
Latest Posts
Tutorials
12 min read
How to Migrate from Ghost CMS to WordPress in 2026
Introduction
Moving your site from Ghost to WordPress can seem complex, but the process is actually much simpler than it appears. If you’re planning to make the switch, you’re in the right place.
In this step-by-step blog, you’ll learn exactly how to migrate your Ghost site to WordPress safely and quickly.
We’ll cover everything from exporting data, converting Ghost’s JSON to WordPress-compatible CSV, importing content, preserving SEO settings, and launching your new site without losing traffic. And if you’d prefer expert help, our Ghost to WordPress migration service takes care of everything delivering a smooth, safe move with no downtime or data loss.
Why Migrate from Ghost to WordPress?
Ghost is popular for being simple, fast, and clean, perfect for writers and small blogs. But, as your site grows and you need more advanced features, Ghost’s minimalist approach can start to feel restrictive.
That’s where WordPress stands out, a flexible, open-source CMS offering unmatched control over design, functionality, and long-term scalability. You can build anything from a simple blog to a full-scale business or enterprise website with ease.
With tools like Yoast SEO and Rank Math, you can optimize your content to rank in search results. And because it supports advanced content types, custom workflows, and tons of integrations, it’s a platform that’s truly built for the future.
You also gain the advantage of a massive global community, helpful documentation, and experts who can step in whenever you need support.
So if Ghost’s minimalist setup is starting to hold you back and you want more creative freedom, powerful features, and full ownership of your site, migrating to WordPress is a smart move for your growth.
Prerequisites and Preparation
Before you begin migrating your site from Ghost to WordPress, make sure you have everything ready to ensure a smooth transition:
1. Choose the Right WordPress Hosting
Choose a reliable WordPress hosting provider that offers fast performance, strong security, and daily backups. Managed WordPress hosts like Kinsta or SiteGround handle speed, backups, and security automatically.
If you prefer more control, you can also choose VPS hosting.
2. Install WordPress
Install WordPress, and after it's done, here are the next steps:
- Log in to Your WordPress Dashboard: Access your site admin by visiting mynewwebsite.com/wp-admin and entering your credentials.
- Choose a Simple Default Theme for Testing: To get started, activate a default WordPress theme such as Twenty Twenty-Four (the latest official default theme).
3. Optional: Create a Staging Environment
If you want to preview your migrated content before launch, set up a staging site. Many hosting providers include this feature, or you can use plugins like WP Staging. This allows you to:
- Test the import process safely
- Adjust design and functionality
- Fix any issues before live
Export Content from Ghost
The first step in migrating from Ghost to WordPress is to export all your existing Ghost content, including posts, tags, and authors.
- Log in to your Ghost Admin Dashboard.
- Go to Settings → Import/Export.

Screenshot 1: Settings → Import/Export
- Click Export your content.

Screenshot 2: Export Content
- Ghost will generate a JSON file that contains all your posts, pages, and metadata.
- Download and save this file safely; you’ll need it in the next step.
Convert Ghost Export for WordPress
WordPress does not directly import Ghost’s JSON format, so you’ll need to convert it into a CSV file.
Clean the Ghost JSON File
Ghost exports the entire database, not just your posts. This means it also includes a lot of Ghost-specific system data, such as:
- Theme configuration and design settings
- Memberships, newsletters, and subscription products
- Roles, permissions, and internal integrations
- Site settings, API keys, and system metadata
These are not supported by WordPress and can cause unwanted clutter or errors during CSV conversion and import.
Before converting the file to CSV, open the .json file in a JSON formatter (eg. https://jsonformatter.org/) and remove the following sections:
- meta
- custom_theme_settings
- newsletters
- products, offers, and billing data
- roles, roles_users
- settings
- Authentication keys and internal system records

Screenshot 3: JSON Formatter
| Note: This cleanup does not affect your posts or pages; it only removes Ghost-specific system data that WordPress cannot use. |
Convert JSON to CSV
Once the JSON file has been cleaned:
- Upload the simplified .json file to an online conversion tool
https://convertcsv.com/json-to-csv.htm

Screenshot 4: JSON to CSV Converter
- Before you convert, review and adjust the settings before converting to ensure the CSV is WordPress-friendly.

Screenshot 5: Choose output options
Enable - Include header in first row and Pivot data down instead of flattening.
| Note: These settings prevent formatting issues and generate a CSV that imports cleanly into WordPress. |
- Convert the file directly to CSV
- Download the generated CSV file

Screenshot 6: Download CSV file
Ghost saves content in nested JSON objects. When converting, these nested structures are flattened into long, path-based column names, like: db/data/posts/0/title
Since WordPress import tools do not recognize Ghost’s internal data structure, these column headers must be renamed to WordPress-compatible fields.
Ghost to WordPress Column Mapping
| Ghost CSV Column | WordPress Field |
| db/data/posts/0/title | post_title |
| db/data/posts/0/slug | slug |
| db/data/posts/0/html | post_content |
| db/data/posts/0/feature_image | featured_image |
| db/data/posts/0/type | post_type |
| db/data/posts/0/status | post_status |
| db/data/posts/0/published_at | post_date |
After downloading the CSV file:
- Upload the CSV file to Google Sheets
- Open the file and review the first row (column headers)
- Rename Ghost-specific, path-based column names to WordPress-compatible fields.
- Save the changes and download the file again as a CSV
This step makes it easier to review, edit, and validate column names before import.
Changing column names won’t affect your content; it just helps map the data correctly for a smooth, error-free WordPress import.
Prepare Author Column in CSV
Before importing posts, ensure the CSV file includes an author-related column (for example, post_author) containing the intended author username.
If authors do not yet exist in WordPress, posts can still be imported and will be assigned to a default user. Once authors are created, posts can be reassigned or re-imported with correct author mapping.
Import Content into WordPress
There are multiple ways to move content from Ghost to WordPress. You can use the built-in WordPress importer for XML/WXR files, rely on WP-CLI or command-line tools if you’re a developer, or use import plugins for CSV files.
We’ll use the WP Import Export Lite plugin because it offers an easy, non-technical way to import Ghost CSV files while properly managing HTML content, images, authors, and duplicate posts.
1. Install the WordPress Importer Exporter Lite plugin and activate it.
2. Go to WP Imp Exp → New Import
Open the WP Import Export Lite plugin from the WordPress admin menu and click New Import.
3. Upload Your Converted Ghost CSV
Upload your CSV file containing Ghost data (converted from JSON → CSV).

Screenshot 7: New Import
Click Continue to Step 2.
4. Select "Post" as the Import Type

Screenshot 8: Select Post
In the dropdown, choose: Post
Select the option: Import new items only and Skip existing items."
(This ensures no duplicates if you re-run the import.)
Click Continue to Step 3.
5. Map Your Ghost Fields to WordPress Fields
Post Title, Content, and Excerpt
- Map post_title to {post_title[1]}
- Map Post Content to {post_content[1]}
- Map Post Excerpt to {post_excerpt[1]}
Enable: Search image through content and import images wrapped in <img> tags.

Screenshot 9: Map Title and Content
| Note: Ghost’s Mobiledoc is an internal editor format and is not always included in exports. WordPress cannot read Mobiledoc data. For this reason, always use the HTML content field, which is fully rendered and universally supported for WordPress imports. |
Import Images
Your converted CSV includes a featured image column, so you can map it directly during import. In WP Import Export Lite, map the featured image field (e.g., _feature_image) to WordPress’s _thumbnail_id.
Enable: Download images hosted elsewhere
This enables image downloading so that WordPress imports the image into the Media Library.
Image Options
- Enable: Search through content and import images wrapped in <img> tags
- Enable: Set the first image as the Featured Image (_thumbnail_id)

Screenshot 10: Map Featured Image
Map the Publish Date and the Slug
- In Other Post Options→Post Dates → As specified, enter: {post_date[1]}
- This uses Ghost’s original publish date.
- The date field must use a format supported by WordPress. Example: 2024-11-10 13:00:00 (YYYY-MM-DD HH:MM: SS)
- Scroll down to Post Slug and map: {slug[1]}

Screenshot 11: Map Publish Date and Slug
Map Ghost Roles to WordPress Roles
| Ghost Role | Wordpress Role | Notes |
| Administrator | administrator | Full access to content and settings |
| Editor | editor | Can publish/manage posts, including others’ content |
| Author | author | Can publish/manage own post only |
| Contributor | contributor | Can write/manage own posts, but cannot publish |
| Owner | administrator (closest match) | Closest match for full permissions |
| Super Editor | editor | Limited to editorial capabilities |
| Note: Ghost exports may include entries such as Blog Owner, Admin Integration, Ghost Explore Integration, Self-Serve Migration Integration, DB Backup Integration, and Scheduler Integration. These are system accounts and internal integrations, not real users. WordPress handles them through plugins, APIs, and WP-Cron, so they aren’t transferred as users. |
When importing posts from Ghost, WordPress does not automatically create users. To ensure posts are assigned correctly and authors have proper permissions, manually add each author.
Add Authors Manually
- In WordPress, go to: Users → Add New

Screenshot 12: Add New User
- Fill in the author details:
- Username → unique login name
- Email → author’s email
- First and Last Name → optional
- Display Name → author’s public name
- Password → set manually or let WordPress generate
- Role → assign according to the mapping table above
- Bio → optional, adds extra author info
- Click Add New User. Repeat for each author.
- Map Author in Post Import: When importing posts, map the author field to {post_author[1]} so each post is assigned to the correct user.

Screenshot 13: Map Post Author
6. Choose How to Handle Existing Items
- In Search Existing Item, select the field you want to use for detecting duplicates.
- Choose Slug because each slug is unique.
- In the input box, map the slug column from your CSV: Eg: {slug[1]}
- This ensures posts with the same slug will be updated, not duplicated.

Screenshot 14: Search Existing Item
7. Update Existing Items Fields
- Choose which parts of your content to update, or choose 'update all' if you want.
- Post status
- Title
- Author
- Slug
- Content / Description
- Excerpt / Short Description
- Dates
- Menu order
- Parent post
- Post type
- Comment status
- Ping Status
- Post Password
- Attachments
- Images
- Custom Fields
- Taxonomies (incl. Categories and Tags)
- For your first import, you’ll need to select at least one field, as the plugin requires it.
- Check Title, Content, and Images as these are essential fields and safe to include.
- Keep other fields unchecked to avoid overwriting titles, slugs, images, etc.

Screenshot 15: Update Existing Items Fields
8. Configure Advanced Options
- Enable Iterative, Piece-by-Piece Processing.
- Set the number of records to process in each iteration.
- For example: 5 records per iteration (as shown in the screenshot).
- This helps avoid server timeout issues during heavy imports.
- Click Continue to move to the next step.

Screenshot 16: Configure Advanced Options
9. Run the Import
- Click Continue and start the import.
- The plugin will process the records in batches (e.g., 5 at a time).

Screenshot 17: Run the Import
10. Verify Results
- Go to Posts → All Posts.
- Check if:
- Existing posts were updated correctly.
- New posts were created as expected.
- No duplicates were generated.
- Open individual posts to confirm the content has been updated (only the fields you selected).
Update URLs and Permalinks
To maintain SEO rankings and prevent broken links, it’s crucial to match your old Ghost URLs with your new WordPress permalinks.
- Go to Settings → Permalinks in your WordPress dashboard.
- Choose a structure similar to your Ghost URLs, such as:
/blog/postname/ - Save changes.

Screenshot 18: Set Permalinks
Point Your Domain to WordPress
Once everything is imported and tested, it’s time to make your WordPress site live.
If You Used a Ghost Subdomain
If your old site was hosted on a Ghost-provided subdomain, you can’t directly redirect that domain to your new WordPress site.
Instead, update your Ghost site’s homepage with a banner notifying visitors that your website has moved to a new address.
If You Used a Custom Domain
If your Ghost site uses a custom domain like mynewwebsite.com, you can easily point it to your new WordPress hosting provider by updating the DNS settings.
Steps to Point Your Domain:
- Log in to your domain registrar (GoDaddy, Namecheap, Google Domains, etc.).
- Remove existing Ghost DNS/Nameserver records.
- Add your new WordPress host’s nameservers or A record.
- Wait for DNS to propagate (up to 24 hours).
- Confirm your domain loads your WordPress site.
SEO, Plugins, and Final Checks
It’s time to fine-tune your new WordPress site for performance, visibility, and consistency.
1. Install Essential SEO Plugins
Ghost handles basic SEO, but WordPress gives you far more control.
Install a plugin like Yoast SEO or Rank Math to manage:
- Meta titles and descriptions
- XML sitemaps
- Canonical URLs
- Schema markup and social tags
If you’ve imported metadata from Ghost using WP All Import, verify that it appears correctly in your SEO plugin.
2. Check Internal Links and Redirects
Ensure all internal links point to the correct WordPress URLs.
Use a plugin like Better Search Replace to update any old Ghost URLs within posts.
Then, set up 301 redirects (using the Redirection plugin or your .htaccess file) to preserve SEO value from old Ghost links.
3. Reinstall Analytics and Tracking
Reconnect Google Analytics, Search Console, and any marketing or tracking scripts that were active on your Ghost site.
4. Optimize Speed and Performance
- Install caching and optimization plugins like WP Rocket, LiteSpeed Cache, or W3 Total Cache.
- Compress and serve images via Smush, EWWW Image Optimizer, or a CDN such as Cloudflare.
5. Test Responsiveness and Design
Check every page on mobile, tablet, and desktop to ensure layout, typography, and navigation look perfect.
Potential Challenges and How to Solve Them
- Content Structure Differences: Ghost uses a minimalist content model focused mostly on simple posts and tags, while WordPress supports complex content types, categories, and custom taxonomies. Mapping Ghost content properly during migration and using converter tools that maintain relationships helps avoid lost or miscategorized content.
- Broken URLs: Ghost’s permalink structure might differ from WordPress’s. Without proper 301 redirects, users risk broken links. Setting WordPress permalinks to reflect the original URLs and using redirection plugins like Redirection ensures SEO value is preserved.
- Theme and Design Differences: Ghost themes cannot be used in WordPress, and replicating your Ghost site’s look may require customization. Choose a modern WordPress block theme or page builder (like Gutenberg or Elementor) to recreate the layout.
See how we helped CARS24 Australia overcome migration challenges and preserve SEO in our Ghost CMS to WordPress migration case study.
Conclusion
Migrating from Ghost to WordPress isn’t just shifting your content; it’s leveling up to a platform built to grow with you.
With a smooth import process, your posts, media, and SEO value come over cleanly, and WordPress gives you far more freedom to customize and expand your site. Whether you're introducing new functionality or enhancing your digital presence,
WordPress provides the freedom and control to shape your website exactly the way you want. You’re now set up on a platform that’s ready for the future.
Tutorials
14 min read
How to Set Up Matomo in WordPress for Complete Website Tracking (Part 3)
Introduction
In Part 2, we went deeper into Matomo’s advanced reporting capabilities. You learned how to analyze detailed user behaviour, traffic sources, conversions, and e-commerce performance to make data-driven decisions. These reports included:- Behaviour Reports
- Acquisition Reports
- E-commerce Reports
- Goals & Conversions
- Tag Manager
- Settings
- General Tracking Settings
- <script> Tag Settings
- Access
- Manage user roles, permissions, and access control.
- Privacy & GDPR
- Ensure full compliance with privacy laws and user consent requirements.
- Exclusions
- Control which users, roles, or IPs should be excluded from tracking.
- Geolocation
- Enable accurate location tracking for advanced reporting.
- Advanced Settings
- Fine-tune performance, database options, and system-level behaviors.
- Matomo Admin section
- Matomo Marketplace
- Install powerful plugins and manage subscriptions.
- Diagnostics section
- Help section
Settings for Auto Tracking mode
The Auto Tracking mode automatically creates and inserts the Matomo tracking JavaScript based on your selected settings. Simply choose what you want to track, and Matomo for WordPress will handle the rest. There is a “show generated tracking code” link. It displays the tracking code as shown below.Screenshot 1: Settings → Tracking → Settings for Auto Tracking mode
- Tracking code: This is a preview of the tracking code generated from your current configuration. The tracking code will be automatically added to your site and will send visitor data to Matomo.
- <noscript> code: This is a preview of your <noscript → code, which forms part of your tracking setup. It will only be added to your website if the noscript feature is enabled.
Privacy
The Privacy settings help you configure data protection options, such as consent handling and anonymization, to ensure your tracking complies with privacy regulations.- Disable Cookies: Enable/Disable
- Completely turns off the use of tracking cookies. This can help improve privacy compliance, but it may reduce Matomo’s ability to identify returning visitors accurately.
- Limit Cookie Lifetime: Enable/Disable
- Set a shorter cookie duration if you want to minimize how long user activity is tracked over time.
Subdomain
The Subdomain settings allow you to track visitors across your site’s subdomains as a single visit, ensuring accurate cross-subdomain analytics.- Treat Subdomains as One Website: Enable/Disable
- Enable this option to track visitors seamlessly across all subdomains by adding a *.-prefix to the cookie domain.
- Do not count subdomains as outlinks: Enable/Disable
- Treat all subdomains as part of a single website instead of external links by using a *.-prefix for the tracked domain.
- Enable Cross-Domain Linking: Enable/Disable
- When turned on, this ensures the same visitor ID is used across multiple domains. Since cookies can’t be shared between domains, Matomo appends a “pk_vid” parameter to URLs linking to your other domains. To make this feature work, be sure to configure which domains should be considered local in your Matomo settings.
Link Tracking
Link Tracking automatically records clicks on outbound links, downloads, and special link interactions to help you understand how visitors engage with your site.- Add New File Types for Download Tracking
- Matomo automatically tracks downloads for files with extensions included in its list. To track additional file types, add their extensions here, separated by a vertical bar (|).
- Define All File Types for Download Tracking
- Replace Matomo’s default list of file extensions for download tracking with your own, separated by a vertical bar (|). Leave this field blank to keep the default settings (recommended).
- Set CSS Classes to Track as Downloads:
- Specify CSS classes for links that should be tracked as downloads (in addition to ‘piwik_download’). Enter multiple class names separated by a vertical bar (|). Leave blank to use Matomo’s default settings.
- Set CSS Classes to Track as Outlinks
- Specify CSS classes for links that should be tracked as outlinks (in addition to ‘piwik_link’). Enter multiple class names separated by a vertical bar (|). Leave blank to keep Matomo’s default settings.
Other Tracking
Other Tracking includes additional automatic tracking options that capture extra user interactions, giving you more detailed and comprehensive analytics data.”-
- Track JavaScript Errors: Enable/Disable
- Enable this option to record JavaScript errors on your website as Matomo events.
- Track JavaScript Errors: Enable/Disable
- Enable Content Tracking:
-
-
- Turn on content tracking to monitor user interactions with specific pieces of content across your website.
- Options are
- Disabled
- Track all content blocks
- Track only visible content blocks
- Options are
- Turn on content tracking to monitor user interactions with specific pieces of content across your website.
-
- Enable Heartbeat Timer (enable with Care):
-
-
- Activate a heartbeat timer to measure visit duration more accurately by sending periodic ping requests while a visitor remains on your site.
- Specify the interval in seconds (default: 15) or set to 0 to disable.
-
Advanced
The Advanced settings let you customize deeper tracking behaviours and technical options to fine-tune how Matomo collects your website’s analytics data.-
- Force POST requests: Enable/Disable
- When enabled, Matomo will use POST requests for trackCookie. This option is useful if you encounter “HTTP 414 URI Too Long” errors in your tracking code.
- Custom consent screen:
- Enables a specific Matomo consent mode. Configure this only if you are using your own consent screen, as it requires a custom WordPress setup. By default, no consent mode is activated.
- Options are
- None
- Require cookie consent
- Require tracking consent
- Endpoint for HTTP Tracking API:
- Options are
- Default
- Through WordPress Rest API
- By default, the HTTP Tracking API uses the Matomo plugin directory URL: https://yourwebsite.com/wp-content/plugins/matomo/app/matomo.php.
- You can switch to the WP REST API if you want to hide matomo.php or if the default URL isn’t working. https://yourwebsite.com/wp-json/matomo/v1/hit/
- Options are
- Endpoint for JavaScript tracker :
- By default, the JS tracking code is served from “https://yourwebsite.com//wp-content/uploads/matomo/matomo.js.”
- Options are
- Default
- Through WordPress's Rest API (Slower)
- Plugin
- Options are
- You can choose to deliver it through the WP REST API (“https://tymescripts.com//wp-json/matomo/v1/hit/”) to hide matomo.js.
- However, this method launches WordPress PHP on every request, making it slower than serving the file directly from your web server.
- By default, the JS tracking code is served from “https://yourwebsite.com//wp-content/uploads/matomo/matomo.js.”
- Force POST requests: Enable/Disable
Screenshot 2: Settings → Tracking → Settings for Auto Tracking Mode
Settings for Manual Tracking mode (Inactive)
In Manual tracking mode, you can create and customize your own JavaScript tracking code as needed. Matomo for WordPress will then automatically embed this script into your site’s HTML.Tracking code
Displays the JavaScript tracking script that collects visitor data for Matomo.Noscript code
Provides a fallback tracking method for visitors who have JavaScript disabled.Screenshot 3: Settings → Tracking → Settings for manual tracking Mode
Script Tag Settings
These settings apply to most tracking modes and determine how Matomo for WordPress embeds <script> elements into your pages. In most cases, the default options are sufficient and don’t need to be changed.Force Matomo to use a specific protocol
Options are- Disable (Default)
- https (SSL)
JavaScript code position
- Footer/Header
Add data-cfasync=false; Enable/Disable
- Adds data-cfasync="false" to the script tag to prevent Cloudflare’s Rocket Loader from modifying the script. This option is not applicable when using the Manual tracking mode.
Screenshot 4: Settings → Tracking → <script> → Tag Settings
Developer Settings
If your tracking code isn’t functioning properly, enabling this setting can help identify the issue. When activated, the tracker debugs the diagnostic details in tracking requests. It’s best to use this option only when troubleshooting and disable it immediately afterwards.Tracker Debug Mode:
Options are- Disabled (recommended)
- Always enabled
- Enabled on demand.
JavaScript tracking code
Want to manually add the tracking code to your site or use another plugin? No problem! Just copy and paste the tracking code below; you can customize it if needed.Noscript tracking code
Adds a fallback tracking code for visitors who have JavaScript disabled.Screenshot 5: Settings → Tracking → Developer Settings
Access
Control which user roles have permission to view and manage your reporting data.- WordPress Role Matomo Role
- Editor: None/View/Write/Admin
- Author: None/View/Write/Admin
- Contributor: None/View/Write/Admin
- Subscriber: None/View/Write/Admin
- Customer: None/View/Write/Admin
- Shop manager: None/View/Write/Admin
Roles
You can grant individual users access to Matomo in one of the following roles:- Matomo View
- Matomo Write
- Matomo Admin
- Matomo Super User
Capabilities
You can also use a WordPress plugin to manage Matomo capabilities for individual users. The following capabilities are supported:- superuser_matomo
- admin_matomo
- write_matomo
- View_matomo
Screenshot 6: Settings → Access
Privacy & GDPR
This setting tab helps set your privacy and GDPR settings. Matomo Analytics is built with privacy by design. All collected data is stored exclusively in your own MySQL database; no external business or Matomo team member can access it, and your logs or reports are never sent to other servers.Ways Matomo protects the privacy of your users and customers
Key privacy features include:- Anonymise data and IP addresses
- Configure data retention
- Matomo has an opt-out mechanism that lets users opt out of web analytics tracking (see below for the shortcode)
- Asking for consent
- GDPR overview
- GDPR tools
Let users opt out of tracking
You can embed the opt-out iframe on your website in two ways:- Use the shortcode [matomo_opt_out_form].
- You can customize it with the language option (e.g., "de" or "en").
- By default, the language is automatically detected from the user’s browser.
- Example: [matomo_opt_out_form language=de]
- Add the “Matomo Opt-Out” block directly to your page.
Screenshot 7: Settings → Privacy And GDPR
Exclusions
You can configure exclusions in this tab for which the data won't be collected.Tracking filter:
Select the user roles you do not want Matomo to track.- Administrator
- Editor
- Author
- Contributor
- Subscriber
- Customer
- Shop manager
- Matomo View
- Matomo Write
- Matomo Admin
- Matomo Super User
Global list of Excluded IPs:
Enter the list of IP addresses you want Matomo to exclude from tracking, with one IP per line.- You can use CIDR notation (e.g., 1.2.3.4/24) or wildcards (e.g., 1.2.3.* or 1.2.*.*).
- Your current IP address is 58.84.60.127.
Global list of URL query parameters to exclude:
List each URL parameter you want to exclude from tracking and reports on a separate line.- Regular expressions (e.g., /^sess.*|.*[dD]ate$/) are supported.
- Matomo automatically excludes common session parameters like phpsessid and sessionid.
Global list of user agents to exclude:
Enter a list of user agents you want Matomo to exclude from tracking.- If a visitor’s user agent string contains any of the specified values, that visitor will not be tracked.
- This is useful for excluding bots or crawlers.
- You can also use regular expressions, such as /bot|spider|crawl|scanner/i.
Keep Page URL fragments when tracking Page URLs: Check/uncheck
If the checkbox below is unchecked, URL fragments (the part after “#”) will be excluded from tracking. For example, example.org/index.html#first_section will be recorded as example.org/index.html.
Screenshot 8: Settings → Exclusions
Geolocation
On this tab page, you can configure how Matomo determines your visitors’ locations. Matomo identifies visitor locations using a geolocation database. By default, it uses DB-IP, but accuracy may vary. You can switch to MaxMind (free or paid), though Matomo can’t auto-configure it due to GDPR. Simply enter your MaxMind license key below to enable it.MaxMind License Key:
Leave the field blank to continue using DB-IP. If you add a MaxMind license key, WordPress will fetch a ~60 MB database from MaxMind and store it in wp-content/uploads/matomo.
Screenshot 9: Settings → GeoLocation
Advanced
The Advanced settings provide additional configuration options for customizing how Matomo works, offering more control over tracking, performance, and technical behaviour.Proxy IP headers
Set Proxy IP headers, choose one of the options below- REMOTE_ADDR YOUR_IP (Default)
- HTTP_CLIENT_IP No value found
- HTTP_X_REAL_IP YOUR_IP58
- HTTP_X_FORWARDED_FOR YOUR_IP58
- HTTP_X_FORWARDED No value found
- HTTP_FORWARDED_FOR No value found
- HTTP_FORWARDED No value found
- HTTP_CF_CONNECTING_IP No value found
- HTTP_TRUE_CLIENT_IP No value found
- HTTP_X_CLUSTER_CLIENT_IP No value found
Delete all data on uninstall:
By default, uninstalling the Matomo plugin permanently deletes all data, unless you have a backup. If you disable this option, the tracked data in your database will be preserved. This helps protect your historical analytics data from being accidentally deleted during uninstallation.Enable archiving via HTTP Server-side.
If you’re having issues with archiving (report generation), enabling this option may help resolve the problem.Server-side tracking delay
Specifies the delay (in seconds) before server-side tracking is triggered.- When e-commerce actions (like cart updates or orders) happen via AJAX or REST, Matomo tries to track them with JavaScript on the next page view. If no page view occurs within the set time, it falls back to server-side tracking. This setting controls how long Matomo should wait before switching.
Screenshot 10: Settings → Advanced
Matomo Admin
This tab takes you to the Matomo admin dashboard settings menu
Screenshot 11: Matomo Admin setting menu
Marketplace
The Marketplace lets you browse, install, and manage additional Matomo plugins and features to extend your analytics capabilities.Overview
Here you can activate free and premium features of Matomo Analytics- Top free plugins
- Marketing Campaigns Reporting
- Evaluate the performance of your marketing campaigns by tracking up to five channels: campaign, source, medium, keyword, and content, instead of just two.
- Custom Alerts
- Set up custom alerts to get notified about important changes on your website or app!
- Free Plugins are available here: https://plugins.matomo.org/free
- Premium features
- Heatmap & Session Recording
- Custom Reports
- Premium Bundle
- Most popular content engagement
- Form Analytics
- Video & Audio Analytics
- Users Flow
- Most popular acquisition & SEO features
- Search Engine Keywords Performance
- SEO Web Vitals
- Advertising Conversion Export
- Multi Attribution
- Other premium features
- Funnels
- Cohorts
- Crash Analytics
Screenshot 12: Marketplace → Overview
Install Plugins
Matomo Marketplace is a central platform where you can find and install plugins, themes, and integrations that extend the capabilities of Matomo. It includes both free and premium add-ons created by Matomo and third-party developers, helping you customize analytics for your specific needs. You can download the Matomo Marketplace for the WordPress plugin and install it, or upload and install the plugin.- If you prefer not to use the Matomo Marketplace, you can manually download plugins. Automatic updates work only when the Marketplace plugin is enabled.
Screenshot 13: Marketplace → Install Plugins
Once installed, it will list all the marketplace plugins that can be installed
Screenshot 14: List of Marketplace
Subscriptions
Here, you can see all the subscripts for Plugins that are activated
Screenshot 15: Premium Feature Subscriptions
Diagnostics
Diagnostics provides system checks, error logs, and troubleshooting tools to help you identify and fix issues with your Matomo setup.System Report
This page generates a system report, which can then be shared with the Matomom support team if needed. Note: Be careful when sharing this since it contains a lot of information about your WordPress setup.
Screenshot 16: Diagnostics → System Report
Troubleshooting
The Troubleshooting section offers tools to identify, debug, and resolve common issues in your Matomo installation.- Archive reports: Process and update your analytics reports to ensure fresh, accurate data.
- Clear Matomo cache: Removes stored cache files so the system can rebuild fresh data and improve performance.
- Install/update Geo-IP DB: Downloads or updates the GeoIP database used to detect visitor locations.
- Sync users: Matches and updates WordPress user data with Matomo’s user records.
- Sync site (blog): Ensures the WordPress site information is correctly synced with Matomo’s site settings.
- Run Updater: Executes pending updates for Matomo’s database or internal components. Regenerate tracking code: Creates a fresh tracking code snippet in case any configuration has changed.
- Run scheduled task: Manually triggers Matomo’s scheduled tasks that usually run automatically (like processing reports).
Screenshot 17: Diagnostics → Troubleshooting
Help
This page provides all the resources you need for Matomo.
Screenshot 18: Help
Conclusion
Mastering Matomo inside WordPress isn’t a one-time setup; it’s an ongoing optimization process. Each part of this series has taken you step-by-step from installation to insights to advanced configuration and finally to extending Matomo with add-ons and diagnostics. In Part 1, we learned how to install, set up, and update Matomo properly, as well as how to enable accurate tracking and explore the essential visitor reports that provide a clear picture of who visits your site and how they behave. In Part 2, we delved deeper into behavioral analysis, performance metrics, acquisition channels, campaigns, and complete e-commerce analytics. You also learned how to create goals, track conversions, and understand what drives meaningful actions on your site. In Part 3, we configured Matomo’s administrative and technical settings from tracking modes and script tags to GDPR, geolocation, exclusions, and backend container management. This part ensured your tracking is accurate, compliant, and optimized for your site’s structure. We also explored the Matomo Marketplace, where you can install powerful plugins, manage subscriptions, generate system reports, diagnose issues, and access troubleshooting and help resources. These tools extend Matomo’s capabilities and help maintain a stable, scalable analytics environment. Across all these parts, you’ve built a complete, enterprise-grade analytics system that goes far beyond basic tracking. But just like SEO, analytics is never “finished.” You’ll need to continually analyze your data, experiment with improvements, and refine your tracking as your website evolves. With all four parts of this series, you now have a complete roadmap to install, configure, extend, and maximize Matomo inside WordPress, giving you clear insights and long-term measurement power for 2025 and beyond.
Tutorials
19 min read
How to Set Up Matomo in WordPress for Complete Website Tracking (Part 2)
Introduction
In Part 1 of this series on using the Matomo Plugin in WordPress, we focused on building the foundation for accurate, privacy-friendly analytics. We walked through how to get started with Matomo, update your privacy page, and enable tracking to ensure your data collection is fully compliant. We also explored key Matomo reports, Now it’s time to take the next step. In Part 2, we’ll go beyond basic tracking and dive into the deeper reporting features inside Matomo that help you uncover behavior patterns, identify what drives traffic, track conversions, and optimize your site for growth. In this part, we’ll cover advanced insights across:- Behaviour Reports
- Get a detailed view into how people engage with your site
- Acquisition Reports
- Understand exactly where your visitors are coming from
- E-commerce Reports
- Track user journey, revenue sources, and product-level performance
- Goals & Conversions
- Measure actions that matter most to your business
Behavior
The behavior settings let you control how visitor interactions are tracked, including link tracking, downloads, site search, and other engagement actions.”Pages
This screen shows which pages visitors viewed and how often. It shows the following data:- Pageviews
- Unique Pageviews
- Bounce Rate
- Avg. time on page
- Exit rate
- Avg. page load time
Screenshot 1: Behaviour → Pages
Entry pages
This screen shows which pages visitors land on first during a session. It shows the following data:- Entrances (the number of visits that were started on the page)
- Bounces
- Bounce Rate
- Avg. page load time
- Entry Page Titles (Related Report)
- Lists landing pages by page title instead of URL.
Screenshot 2: Behaviour → Entry Pages
Exit pages
Shows the pages where visitors most commonly leave your site. It shows the following data:- Exits
- Unique Pageviews
- Exit rate
- Avg. page load time
- Exit Page Titles (Related report)
- Displays exit pages by page title instead of URL.
Screenshot 3: Behaviour → Exit Pages
Page titles
Shows how often each page title was viewed. It shows the following data:- Page Title
- Pageviews
- Unique Pageviews
- Bounce Rate
- Avg. time on page
- Exit rate
- Avg. page load time
- Entry Page Titles (Related Report): Shows first-visited pages by title.
- Exit Page Titles (Related Report): Shows last-visited pages by title.
Screenshot 4: Behaviour → Page Title
Site Search
The Site Search settings allow you to track what visitors search for on your website, helping you understand their interests and improve content discovery.- Site Search Keywords: Shows keywords visitors searched for on your site.
- Search Keywords with No Results: Lists search terms that returned no results.
- Pages Following a Site Search: Displays which pages users visited after searching.
- Page Titles Following a Site Search (Related Report): Shows post-search destinations by page title.
- Search Categories: Groups internal searches by category.
Screenshot 5: Behaviour → Site Search
Outlinks
Shows links clicked that lead visitors to external websites.
Screenshots 6: Behaviour → Outlinks
Downloads
Shows files that visitors downloaded from your site.
Screenshots 7: Behaviour → Downloads
Events
Tracks user interactions like clicks, video plays, and more.- Event Categories: Groups events by category (e.g., video, button).
- Event Actions: Shows the specific action taken (e.g., play, download).
- Event Names: Provides detailed labels identifying each event.
| Note: Currently, no custom events are configured. You can learn more about setting them in the Event Tracking guide. We’ll cover creating custom events using Matomo Tag Manager in a separate tutorial, since it requires an in-depth explanation and deserves a full blog of its own. |
Screenshot 8: Behaviour → Events
Contents
Content tracking helps you understand which pieces of content are most engaging on any page of your website or app. This section shows how often each content element is viewed (impressions) and interacted with.- Content Name: Identifies the specific content block or widget being tracked.
- Content Piece: The actual item displayed (e.g., image, text, button) within the content name.
Screenshot 9: Behaviour → Contents
Engagement
The Engagement settings track how visitors interact with your site, including actions like time spent, scroll depth, and repeat visits, helping you measure user involvement.”- Returning Visits Over Time: This chart shows returning visits over time. You can view by day, week, month, or year.
- Frequency Overview: Summary of engagement for new vs returning visitors.
- It shows the following data:
- Returning Visits: Number of visitors returning to the site.
- Avg. Visit Duration (Returning): Average time returning visitors stayed.
- Actions per Returning Visit: Average actions done by returning visitors.
- Returning Bounce Rate: The percentage of returning visitors who left after one page.
- (Total) Actions (Returning): Total actions taken by returning visitors.
- New Visits: Number of first-time visitors.
- Avg. Visit Duration (New): Average time new visitors stayed.
- Actions per New Visit: Average actions done by new visitors.
- New Visitor Bounce Rate: Percentage of new visitors who left after one page.
- (Total) Actions (New): Total actions taken by new visitors.
- Visits per Visit Duration: Shows the Tag cloud of Group visits by time spent.
- Visits per Number of Pages: Shows the Tag cloud of group visits by number of pages viewed.
- Visits by Visit Number: Shows how often visitors return (1st, 2nd, 3rd visit, etc.).
- Visits by Days Since Last Visit: Shows how long it has been since each returning visitor last visited.
Screenshot 10: Behaviour → Engagement
Transitions
Transitions show what visitors did right before and after viewing a specific page, helping you understand where they came from and where they went next. Action Type- Page URLs: View transitions based on page URLs.
- Page Titles: Shows how users arrived at a page (by title) and where they went next.
- Top 100 Labels: Displays the most common sources and destinations.
Screenshot 11: Behaviour → Transitions
Screenshot 12: Transition before and after viewing a specific page
Performance
The Performance settings help optimize how tracking loads on your site, ensuring accurate analytics- Evolution of Page Performance Metrics: This graph shows how page speed metrics change over time.
- Performance Overview
- Avg. network time: time to establish network connection.
- Avg. transfer time: Time to download page resources.
- Avg. DOM completion time: Time for the HTML document to finish loading.
- Avg. page load time: Total time for a page to fully load.
- Avg. server time: The time the server takes to respond.
- Avg. DOM processing time: Time the browser spends processing the page.
- Avg. on-load time: Time until the browser on-load event finishes.
- Page URLs: Shows performance metrics for individual page URLs.
- Entry pages / Exit pages (Related reports): View load performance for landing and exit pages.
- Page titles: Displays performance metrics by page title.
- Entry page titles / Exit page titles (Related reports): Shows performance for landing/exit pages by title.
Screenshot 13: Behaviour → Performance
Acquisition
Shows how visitors find your website, including traffic sources like search engines, social media, referrals, campaigns, and direct visits.Overview
This screen shows an overview of the visits channel-wise.- Evolution Over the Period: This graph provides a snapshot of the referral sources that brought visitors to your website.
- Channel Type: Shows which traffic channels (Direct, Search, Social, Referral, Campaigns) are bringing visitors to your site.
- Direct Entries: Visits that came directly (no referrer).
- Search Engines: Visits from search engine results.
- Campaigns: Visits from tracked marketing campaigns.
- Social Networks (Distinct): Number of unique social platforms sending traffic.
- Keywords (Distinct): Number of unique search keywords used.
- Websites: Visits from external websites.
- Social Networks: Traffic from social media sites.
- Search Engines (Distinct): Unique search engines bringing traffic.
- Websites (Distinct): Unique referring external sites.
- Campaigns (Distinct): Unique campaign IDs sending traffic.
Screenshot 14: Acquisition → Overview
All Channels
Displays a breakdown of all traffic sources, showing how visitors arrived on your site across every channel type.- Channel Types: Displays how visitors arrived (e.g., direct, search, social, campaigns).
- Referrers: Shows external websites or sources that sent visitors to your site.
Screenshot 15: Acquisition → All Channels
Search Engines & Keywords
Shows which search engines send traffic to your site and which keywords visitors use to find you.- Keywords: Shows search terms users typed to find your website in search engines.
- Search Engines: Lists which search engines (Google, Bing, etc.) brought visitors to your site.
Screenshot 16: Acquisition → Search Engines and Keywords
Websites
Shows which external websites sent traffic (referrals) to your site.
Screenshot 17: Acquisition → Websites
Social networks
Displays traffic coming from social platforms like Facebook, LinkedIn, or Twitter.
Screenshot 18: Acquisition → Social Network
Campaigns
Shows visits generated through marketing campaigns tracked using campaign parameters.
Screenshot 19: Acquisition → Campaigns
Campaign URL Builder
A tool to create trackable URLs for measuring campaign performance in Matomo.- Page URL: The landing page address where users will arrive through the campaign.
- Campaign Name: A unique identifier used to label and differentiate the campaign.
- Campaign Keyword: An optional tag to classify or distinguish multiple campaigns under the same campaign name.
Screenshot 20: Acquisition → Campaign URL Builder
E-commerce
The E-commerce settings allow you to enable and configure tracking for online sales, product views, and customer actions to measure your store’s performance.| Note: This blog was written specifically for website tracking, not e-commerce (hence, no data available in the reports). However, we’ve included the basics for continuity with the Matomo WordPress plugin dashboard. E-commerce tracking is more advanced and will require a dedicated blog. |
Overview
The E-commerce Overview shows key sales metrics, product performance, and customer behaviour to help you monitor and optimize your online store’s results.- Evolution over the period: This graph shows a snapshot of the conversions generated for a specific goal. A selected date range.
- The widget card shows the following data:
- E-commerce Orders: Total orders placed during the selected period.
- Total Revenue: The overall revenue generated from completed orders.
- Average Order Value: The average value of each completed order.
- E-commerce Orders Conversion Rate: Percentage of visits that resulted in an order.
- Purchased Products: Total number of items bought.
- Abandoned Carts: Carts created but not completed.
- Visits with Abandoned Cart: Total visits where a cart was abandoned.
- Revenue Left in Cart: Total value of abandoned carts.
- Visits with Abandoned Cart: The percentage of visits that resulted in cart abandonment.
Screenshot 21: E-Commerce → Overview
E-commerce Log
Displays a detailed list of all e-commerce actions and transactions recorded on your site.- Order & Cart Activity: Shows individual orders, abandoned carts, and related visitor interactions.
- Visitor-Level Insights: Let you review which users purchased, what they viewed, and how they reached checkout.
- Product & Revenue Details: Includes product names, revenue generated, quantities, and order values.
Screenshot 22: E-Commerce → E-Commerce Log
Products
Displays detailed statistics for each product sold or viewed on your site.- Product Name: Lists all products with metrics like views, purchases, and revenue.
- Product SKU: Tracks e-commerce performance using unique product identifiers.
- Product Category: Group products by category to analyse which sections perform best.
- Performance Insights: Helps understand popular products, sales trends, and conversion rates.
Screenshot 23: E-Commerce → Products
Sales
The Sales settings let you track completed orders, revenue, and transaction details so you can measure your store’s overall sales performance.”Sales by Referrers
Shows which traffic sources (direct, search, campaigns, websites, social) led to purchases.- Channel Type: Breaks down revenue by acquisition channel, such as direct, search, referral, or campaigns.
- Keywords: Shows search keywords that resulted in sales.
- Search Engines: Displays which search engines drove visitors who made purchases.
- Websites: Shows external websites that referred users who completed a purchase.
- Campaigns: Tracks sales generated from marketing or advertising campaigns.
Sales by Pages
Shows which pages generate sales and how much revenue each page contributes.- Page URLs: Lists the pages customers viewed before converting and tracks revenue per page.
- Entry Pages: Shows the first page users viewed before making a purchase.
- Entry Page Titles: Displays product-related page titles that started a converting visit.
- Page Titles: Shows page titles associated with purchases and the total revenue influenced.
Sales Engagement
Shows how visitors interact with your products, including views, cart actions, and purchase behaviour.- Visits to Conversion: Shows how many visits it took for a user to convert.
- Days to Conversion: Displays the time (in days) from first visit to purchase.
Sales by User Location
Shows sales performance based on where your customers are located, including countries, regions, and cities.- Country / Continent / Region / City: Breaks down sales performance by geographical location to identify strong markets.
- Device Type: Which devices (desktop, mobile, or tablet) did users purchase from?
- Device Model: Identifies specific device models that generated sales.
- Device Brand: Shows which device manufacturers drove e-commerce conversions.
- Browsers: Displays visitor browser types that resulted in purchases.
Sales by User Attribute
Shows sales grouped by customer attributes such as user roles, segments, or defined profile characteristics.- Visits per hour in the site’s timezone: Shows at what hours sales typically occur.
- Channel Type: Shows which user attributes contributed to sales (e.g., traffic source). No data may appear if tracking has not yet captured e-commerce conversions.
Screenshot 24: E-Commerce → Sales
Goals
Allows you to create and manage goals to track important visitor actions such as sign-ups, downloads, purchases, or form submissions.Overview
The Goals Overview provides insights into how each of your website’s goals is performing. It displays conversion rates and total revenue generated and gives you access to detailed reports for every goal.- Evolution Over the Period: This graph shows how goal completions and revenue change over a selected timeframe.
- The card widgets show.
- Conversions: Displays the total number of times defined goals were completed.
- Overall Revenue: Shows total revenue generated from goal completions.
- Overall Conversion Rate: Indicates the percentage of visits that completed at least one goal.
Screenshot 25: Goals → Overview
Add a New Goal
Create a new conversion objective to measure important visitor actions.- Goal Name: Enter a title to identify the goal (e.g., “Newsletter Signup”).
- Description: Optional text explaining the purpose of the goal.
- Goal is Triggered When: Defines what visitor action should count as a conversion.
- when visitors (do some action)
- manually
Screenshot 26: Goals → Add a new Goal
When Visitors
- Visit a given URL (page or group of pages)
- Contains: add the pattern for the URL.
- is exactly
- matched by the expression
Screenshot 27: When Visitors → Visit a given URL
- Visit a given Page
- Where the Page title
- contains: add the pattern for Title
- is exactly
- matches the expression
- Where the Page title
Screenshot 28: When Visitors → Visit a given page title
- Send an event
- Where the
- Event category / Event Action / Event Name
- Contains ('video': Triggers when “video” appears in the event category)
- is exactly (‘'click': triggers only if the event category matches the exact word click.)
- matches the expression ('(.*)_banner': uses regex to match advanced event) patterns.
- Where the
Screenshot 29: When Visitors → Send an event
- Download a file
- Where the filename
- contains (files/brochure.pdf': triggers when visitors download a file containing this path or name)
- is exactly ('http://example.com/files/brochure.pdf': triggers only if the file URL is an exact match.)
- matches the expression ('(.*)\.zip': uses regex to match any .zip file download.)
- Where the filename
Screenshot 30: When Visitors → Download a file
- Click on a link to an external website
- where the external website URL
- Contains (‘amazon.com': tracks outbound clicks to Amazon-related links).
- is exactly ('http://myaffiliate.com/landing.html': tracks clicks only to this exact URL.)
- matches the expression ('http://www.amazon.com/(.*)/yourAffiliateId': uses regex to match affiliate or structured outbound URLs.)
- where the external website URL
Screenshot 31: When Visitors → Click on a Link to an External Website
- Stay for a certain amount of time
- where the visit duration is
- Greater than time in minutes
- Example: Enter 5 to trigger a conversion after 5 minutes. Supports decimals. e.g., 0.5 = 30 seconds
- Greater than time in minutes
- where the visit duration is
Screenshot 32: When Visitors → Stay for a certain amount of time
Manually
Let's you trigger the goal manually. You must add trackGoal() in your site’s JavaScript to record the conversion event.
Screenshot 33: The goal is triggered manually
- Case-sensitive Match (optional): Matches the URL exactly as typed, treating uppercase and lowercase letters as different values.
- Allow multiple conversions per visit.
- Goal can only be converted once per visit (default): Let the same visitor trigger a goal more than once during a single session.
- Allow Goal to be converted more than once per visit: Goal will be tracked for every time the page is loaded during the visit.
- Goal Revenue (optional): Assigns a monetary value to each completed goal for revenue reporting.
- Example: A whitepaper download could be valued at $50 for lead-generation measurement.
Tag Manager
| Note: This blog was written specifically for the Matomo basic analytics setup. Matomo Tag Manager is advanced and would require a dedicated blog to explore all the functionality in it. Still, we have covered just the basics of containers in the upcoming section. |
Manage Containers
With Matomo Tag Manager (MTM), you can update your tracking configurations without modifying your website’s code. These configurations are stored in containers. Typically, one container is used per site, but you can create multiple containers for complex setups involving multiple domains or teams. Matomo automatically sets up the first container for your site. This section lists all your containers with their ID, name, description, and creation date, along with quick actions to manage or edit each container.
Screenshot 34: Tag Manager → Manage Containers
Click On Create New Container
Screenshot 35: Manage Containers → Click on Create New Container
- Context: Web
- Specifies the context in which the container will be used. Currently, only “Web” containers are supported.
- Name: The name of the container
- Set a unique identifier for this container. Note that this name can be accessed as a variable and is publicly visible in the analytics tag’s source code.
- Description (Optional): The description of the container
- You can optionally add a description to explain the purpose of this container, which is particularly helpful when managing multiple containers on a single site.
- Ignore Google Tag Manager Data Layer: (Check / Uncheck)
- When enabled, Matomo Tag Manager will ignore data layer values previously defined by Google Tag Manager. By default, these values are retained for compatibility purposes.
- Actively Synchronise From the Google Tag Manager Data Layer: Check/Uncheck
- When enabled, any new values added to the Google Tag Manager data layer will automatically sync with the Matomo Tag Manager data layer.
- Enable tag fire limits to work in preview mode: Check/Uncheck
- Enable this option to check if fire limits, such as once-per-lifetime, work as expected when preview mode is enabled.
Screenshot 36: Manage Containers → Create a new container
Settings (WordPress backend)
| Note: There are two settings: one in the WordPress backend dashboard (Matomo Analytics → Settings) and one in the Matomo Analytics admin dashboard. We are discussing the first one in the upcoming section. |
Tracking
Here you can customize how visit tracking works on your site. You can either enable tracking using the default settings or adjust the configuration to fit your needs. Tracking Mode Options:- Auto (Recommended): Matomo automatically generates and embeds the tracking code based on your Auto Tracking settings. This is the best option for most users.
- Manual: Write your own custom tracking JavaScript below, and Matomo will insert it into your website.
- Tag Manager: If you’ve created containers in the Tag Manager, you can use this mode to automatically embed one or more of them on your site. This option will only be available once containers exist.
- Disabled: Matomo won’t add any tracking code. Choose this if you prefer to insert the tracking code manually into your template files or use another plugin for e-commerce.
Screenshot 37: Settings → Tracking
General Tracking Settings
Here you can adjust visit tracking as you prefer, or just enable tracking and use the default settings.Tracking mode:
You have to select one of the following- Auto (recommended): Select/deselect
- Manual: Select/deselect
- Tag Manager: Select/deselect
- Disabled: Select/deselect
E-commerce Tracking
E-commerce Tracking enables Matomo to record product views, cart updates, and completed orders, giving you detailed insights into your store’s sales activity.Enable E-commerce
Turn this on to track e-commerce activity, such as orders and abandoned cart views, for platforms like WooCommerce, Easy Digital Downloads, MemberPress, and others. Disabling this option will stop e-commerce and remove related reports from Matomo. Currency: The Options are- Us Dollar
- Euro
- Japanese yen
- British pound and many more
- When enabled, Matomo will assign a temporary server-generated visitor ID if no Visitor ID cookie is found. This ensures e-commerce events are correctly linked to visits, even when cookies are blocked or cookieless tracking is active. The ID remains valid only for that session.
Other Tracking
Other Tracking provides additional options to record extra visitor actions and behaviours, giving you more flexibility in how analytics data is collected.- Track Admin Pages: Enable/Disable
- Enable this option to track user activity within the WordPress admin area. Be sure to configure the tracking filter to suit your needs.
- Track WordPress User ID:
- When enabled, Matomo records the logged-in user’s “User ID.” You can choose which field from the user’s profile should be used as the ID. The options to choose from are
- WP User ID
- Email Address (The user might change their email address.)
- User name (chose this since this is unique for every user in WordPress)
- Display Name (Not recommended)
- When enabled, Matomo records the logged-in user’s “User ID.” You can choose which field from the user’s profile should be used as the ID. The options to choose from are
- Track Search:
- Activate Matomo’s advanced Site Search Analytics to monitor what visitors search for on your website.
- Track 404 Pages:
- Matomo can automatically categorize and track visits to “Page Not Found” (404) errors to help you identify broken links.
- Track RSS Feeds:
- Enable this setting to insert a tracking pixel that monitors how often your posts are viewed in RSS feed readers.
- Track RSS Feed Links as Campaigns:
- Adds Matomo campaign parameters to links in your RSS feeds so you can track traffic coming from those links more accurately.
Create Matomo annotations on a new post of type:
This option automatically creates Matomo annotations whenever a new post of the selected type is published, helping you track content-related events in your analytics.- Posts
- Pages
- Media
- Revisions
- Navigation Menu Items
- Custom CSS
- Changesets
- oEmbed Responses
- User Requests
- Patterns
- Templates
- Template Parts
- Global Styles
- Navigation Menus
- Font Families
- Font Faces
- Taxonomies
- Custom Post Types
Advanced
The Advanced settings let you fine-tune technical tracking options, offering more control over how Matomo collects and processes analytics data.- Add <noscript → to track visitors without JavaScript: Enable/Disable.
- Adds a <noscript → tracking code to your site’s footer. This code is automatically generated or can be manually defined, depending on your selected tracking mode. It helps capture visits from users who have disabled JavaScript.
Screenshot 38: Settings → Tracking → General Tracking Settings
Conclusion
Exploring Matomo’s advanced reporting features gives you a complete, data-rich understanding of how visitors behave on your WordPress site. In this part, we covered the full set of behaviour, acquisition, e-commerce, and goals reports that help you evaluate performance, identify opportunities, and measure your most important outcomes. You now have a deeper view into the following:- Behaviour Reports
- Acquisition Reports
- E-commerce Reports
- Goals & Conversions
- Tag Manager
- Settings
Tutorials
13 min read
How to Set Up Matomo in WordPress for Complete Website Tracking (Part 1)
Introduction
Matomo for WordPress is an official plugin that brings Matomo’s open-source, privacy-focused web analytics directly to your site. It allows you to collect and view visitor data under your control (hosted on your server or Matomo Cloud), ensuring you maintain ownership of analytics data, manage retention and privacy settings, and avoid sending raw user data to third-party platforms.Key Features Of Matomo Plugin
- Data ownership & hosting options: Host analytics on your WordPress site, on a separate self-hosted Matomo server, or use Matomo Cloud so you control the data.
- Integrated dashboard & WP admin widgets: view core reports and KPIs inside your WordPress admin without switching tools.
- Real-time visitor tracking: See live visits, active pages, referrers, and locations as they happen.
- Pageviews, events & custom dimensions: Track pageviews, clicks, downloads, and custom events, and add custom dimensions for richer segmentation.
- Goals & conversion tracking: define goals (form submit, URL, events) and measure conversion rates and funnels.
- E-commerce tracking tracks product views, cart actions, transactions, revenue, and product-level metrics.
- Funnels & A/B testing: build conversion funnels and run experiments to optimize user journeys.
- Heatmaps & session recordings: visualize where users click/scroll and replay sessions to spot UX issues (optional modules).
- Form analytics: analyze form interactions, drop-offs, and field-level friction.
- Privacy & compliance controls: IP anonymization, cookie controls, tracking opt-out, and settings to help meet GDPR/CCPA requirements.
- Consent manager and cookie handling ability to respect consent banners and conditionally enable tracking based on user consent.
- APIs, developer hooks & plugin integrations: REST APIs, WP filters/actions, and integrations so themes/plugins can send custom data or extend Matomo.
- Multi-site & user permissions support for multisite setups and role-based access to analytics data.
- Reporting & export: scheduled reports, CSV/PDF exports, and custom report creation.
- Performance/configuration options to disable cookies, reduce data retention, and tune which modules run to limit server load.
- How to install the Matomo Plugin in WordPress
- A step-by-step guide to installing, activating, and configuring Matomo correctly.
- Get Started
- Initial setup, first-time configuration, and important settings every site should enable.
- Update your privacy page.
- Why your Privacy Policy must be updated, and how Matomo helps you stay compliant.
- Enable tracking
- How to activate visitor tracking, verify that Matomo is recording data, and avoid common setup mistakes.
- Summary Reporting
- A top-level view of your key metrics and website performance.
- Visitors Reports
- Overview
- Visits Over Time
- Visits Overview
- Understand total visits, engagement metrics, patterns, and behaviour trends.
- Visits Log
- See detailed session-level visitor data.
- Real-time Tracking
- Real-time dashboard
- Locations
- Where your visitors come from and which regions drive the most engagement.
- Devices
- Breakdown of devices, screen sizes, and user technology.
- Software
- See which browsers, operating systems, and technologies your audience uses.
- Times
- Insights into peak activity hours and user behaviour throughout the day.
- User IDs
- Track logged-in users (optional) for deeper analytics and behavioural insights.
How to install the Matomo Plugin in WordPress
Go to the WordPress Dashboard of your website.
Screenshot 1: Dashboard of WordPress
From the left-hand navigation menu, go to the Plugin menu and click on it.
Screenshot 2: Plug-in Menu
You will see a Plugins Dashboard. Click on Add plugin.
Screenshot 3: Add a Plugin
Search for the Matomo plugin in the Add Plugin screen
Screenshot 4: Search for Matomo Plugin
Click on Install Now in the Matomo Plugin.
Screenshot 5: Install Now Plugin
Click on the Activate Button.
Screenshot 6: Activate Matomo plugin
After installing the Matomo Plugin, you will see the menu of Matomo Analytics menu in the left-hand navigation.
Screenshot 7: Matomo Analytics
Navigate to the Matomo plugin's dashboard.1. Get Started
This menu lists all the steps required for getting started using the Matomo plugin.Update your privacy page
Before you begin tracking, you have to update your privacy page with information about how you will respect user privacy to comply with laws like the GDPR or ePrivacy. You may also need to mention that you are using Matomo Analytics by having an Analytics section on your privacy page. Next, provide your visitors with an easy opt-out option by adding the [matomo_opt_out] shortcode to your privacy page or using the Matomo opt-out Gutenberg block.
Screenshot 8: Matomo opt-out Gutenberg block
Screenshot 9: Matomo opt-out option added to privacy page
Note: If you disable cookies in the tracking settings (it will be discussed later), you may not need to request cookie consent under GDPR/ePrivacyEnable tracking
Turn on tracking using the default configuration by clicking the Enable tracking button.Screenshot 10: Enable Tracking Now
Once the button is clicked, you will see a message: Tracking is enabled.Screenshot 11: Tracking Is Enabled
This means your tracking is up and running: no further setup is needed. If you’d like, you can click here to customize the tracking code, though it’s completely optional. After some visits are recorded, your reports will appear in the dashboard. At this step. We will be discussing this in depth in the upcoming section.
Screenshot 12: Dashboard Of Matomo Plugin
You can hide this page (Getting Started menu) once all the Getting Started steps are completed.2. Summary
This menu gives a bird's-eye view of all the metrics that are tracked by Matomo Analytics.- Country: Shows where your visitors are located geographically.
- Device type: Identifies whether users visit from desktop, mobile, or tablet devices
- Screen Resolution: Displays the screen sizes and resolutions your visitors use.
- Browsers: Lists the web browsers your audience uses to access your site.
- Page titles: Report analytics based on individual page titles viewed by users.
- Exit page titles: Shows the pages where visitors most often leave your site.
- Outlinks: Tracks clicks on links that lead users to external websites.
- Social Networks: Displays traffic and engagement coming from social media platforms.
- E-commerce Orders: Tracks online sales, transactions, and order details.
- Visits Summary: Provides an overview of total visits, unique users, and key metrics.
- Actions-main Metrics: Measures user actions such as pageviews, clicks, and events.
- Goals: Tracks how often visitors complete defined objectives like signups or purchases.
- Operating System Families: Identifies the operating systems visitors use (e.g., Windows, iOS, Android).
- Visits per hour in the site’s timezone: Displays visit trends across different hours of the day.
- Entry page titles: Shows which pages visitors first land on when entering your site.
- Downloads: Tracks files or documents downloaded from your website.
- All Channels: Summarizes traffic sources such as direct, search, social, and referrals.
- Campaigns: Measures visits and conversions generated by marketing campaigns.
- Product Name: Displays performance data for each product in your e-commerce tracking.
- Yesterday
- Today
- This week
- Last week
- This month
- Last month
- This year
Screenshot 13: Matomo Analytics Summary
3. Reporting
The Reporting section provides detailed insights into your website’s traffic, visitor behavior, and performance metrics, helping you analyze and understand your site’s analytics in one place. This menu will open the Matomo plugin's dashboard in a new tab. It will show the following cards.- Visits in real time: Displays live visitor activity on your website in real time.Click on View detailed visit log.
- Welcome card: You can view all Matomo video tutorials. You can close this widget anytime by clicking the ‘X’ icon at the top.
- Visits Over Time: Shows the number of visits to your website over a selected period of time.
- The following are the Metrics available to plot
- Visits
- Unique visitors
- Users
- Avg. Visit Duration (in seconds)
- Bounce Rate
- Actions per Visit
- Maximum actions in one visit
- Visits with Conversions
- Pageviews
- Unique views
- Downloads
- Unique Downloads
- Outlinks
- Unique Outlinks
- Avg. generation time
- Searches
- Unique keywords
- Also, you can view data by day, week, month, and year.
- The following are the Metrics available to plot
- Movers and Shakers: Shows which pages, campaigns, or keywords have experienced the biggest changes in traffic or performance compared to a previous period.
- Visits Overview: The Visits Overview card provides a quick snapshot of your key visitor metrics for whatever date range you’ve selected. Instead of diving into full reports, you get the essentials right at a glance.
- Each metric is paired with a mini trend line that shows how that metric has behaved over time.
- The blue dot marks the peak, the day or moment traffic was strongest.
- The orange dot shows the low point, where activity dipped.
- These tiny visual cues make it easier to understand performance patterns instantly, without needing to interpret a large chart.
- The following data is available:
- Unique visitors
- Visit duration
- Visits have bounced (left the website after one page)
- Actions (page, views, downloads, outlinks, and internal site searches)
- Max actions in one visit
- Pageviews
- Unique pageviews
- Unique keywords
- Downloads
- Unique downloads
- Outlinks
- Unique outlinks
- Each metric is paired with a mini trend line that shows how that metric has behaved over time.
- Become a Matomo expert: This card guides you on your journey to becoming a Matomo expert.
- Visitor Map: Displays the geographic locations of your website visitors, showing where your traffic comes from around the world.
- Channel Types: Shows how visitors reach your website by categorizing traffic sources such as direct visits, search engines, social networks, and campaigns.
- Matomo.org Blog: Provides the latest news, updates, and tips from the official Matomo team to help you make the most of your analytics.
Screenshot 14: Reporting → Dashboard
Visitors
Shows who is visiting your site, their location, device, and behaviour, and how they interact during their visits.Overview
Screenshot 15: Visitors → Overview
Visits Over Time
This graph shows how many people visited your site within a selected date range.
Screenshot 16: Annotations for date range
Visits Overview
This card gives a summary of key visitor statistics.- Unique visitors, Number of total visits
- Average visit duration: Average time users stayed on your site.
- Bounce rate: Percentage of users who left after viewing only one page.
- Actions per visit: Average actions (pageviews, downloads, searches) per visit.
- Max actions in one visit: The highest number of actions taken by a single visitor.
- Pageviews, unique pageviews: Number of pages viewed and unique pages viewed.
- Total searches, unique keywords: Count of internal searches and distinct keywords used.
- Downloads, unique downloads: Number of file downloads and unique files downloaded.
- Outlinks, unique outlinks: Number of outbound link clicks and unique link destinations.
Visits Log
This screen shows a detailed list of each visitor’s activity.
Screenshot 17: Visitors → Visit Logs
In the single row, it shows.- Visit Time: Timestamp of when the visit occurred.
- IP: IP Address
- Location: Visitor’s country, region, or city.
- Referrer: Shows how the visitor arrived (search, social, direct, or link).
- Browser/OS/Device: Shows the browser and operating system used and device (desktop, tablet, mobile).
- Visitor Type (New/Returning): Indicates whether the visitor is first-time or returning.
- Actions Taken: Action with duration. Below is a list of all pages the visitor opened during the session.
- View Visitor Profile: This opens a new pop-up panel where the full activity history of a specific visitor is displayed.
Screenshot 18: View Visitor profile
- Conversion Details: Displays goals or e-commerce conversions triggered.
- Custom Variables/Dimensions: Any additional custom data attached to the visit.
- Reload/Refresh: Updates the latest visits in real time.
- Segment/Filter: Allows filtering by visitor attributes or behaviour.
- Export/Download: Download raw visit data in different formats.
Real-time
This screen shows live visitor activity as it happens.
Screenshots 19: Visits in real time
The first two rows are- Date
- Last 24 Hours: Live stats from the past 24 hours.
- Last 30 Minutes: Live stats from the past 30 minutes.
- Visits: Number of visitors within the selected time range.
- Actions: Total interactions (pageviews, clicks, downloads) in that period.
- The next row shows all the visits in real time.
- There is a button to start or pause visits in real time.
Real-time map
This screen shows live visitors on an interactive world map.
Screenshot 20: Visitors → Real Time Map
Locations
The Locations report shows where your visitors come from, displaying countries, regions, and cities to help you understand your audience’s geographic distribution.- Visitor Map: This is the first card shown. It shows where visitors are located on a world map.
- Country: Lists visits by country.
- Continent: Group visits by continent.
- Region: Shows visits sorted by region/state.
- Distinct Countries: Number of unique countries visitors came from
- City: Shows visits grouped by city.
- Web-browser Language: Displays the language set in visitors’ browsers.
- Language Code (Related Report): Shows language codes used by visitors.
Screenshot 21: Visitors → Location
For all the cards, data can be displayed in the following formats:- Displays a simple table
- Display a table with Visitor engagement metrics
- Display a table with Goals metrics
- Insights
- Vertical bar graph
- Pie chart
- Tag cloud
Devices
The Devices report shows the types of devices, operating systems, and screen resolutions your visitors use, helping you optimize your site for different user experiences.
Screenshot 22: Visitor → Devices
Device Type: This shows the category of devices used- Desktop
- Camera
- Car browser
- Console
- Feature phone
- Peripheral
- Phablet
- Portable media player
- Smart display
- Smartphone
- Smart speaker
- Tablet
- Tv
- Wearable
- Device Model: Shows the exact model of the visitor’s device.
- Device Brand: Displays the manufacturer of visitor devices.
- Screen Resolution: Lists screen sizes used by visitors.
Software
The Software report displays the browsers, browser versions, and operating systems your visitors use, helping you understand their technical environment.- Operating System Versions: Shows the specific OS versions used by visitors.
- Operating System Families (Related report): Groups visitors by OS family (Windows, macOS, Linux, etc.).
- Browsers: Shows which web browsers visitors used.
- Browser Version (Related Report): Lists versions of each browser.
- Configurations: Lists detailed browser + OS + device combinations.
- Screen Resolution (Related Report): Shows visitors’ screen sizes.
- Browser Plugins: Displays browser plugins detected for visitors. (Note: Not tracked for IE < 11; only for modern browsers.
- Browser Engines: Shows which rendering engines (e.g., Blink, WebKit, Gecko) were used.
Screenshot 23: Visitors → Software
Times
The Times report shows when visitors access your site, highlighting peak hours and daily activity patterns to help you understand user behaviour over time. The first graph shows the local time in each visitor’s own time zone when they accessed your site. The second graph shows the corresponding times based on your site’s time zone.- Visits per Local Time: Shows visits based on each visitor’s local time.
- Visits by Day of the Week (Related Report): Displays how traffic varies across weekdays.
- Visits per Hour in the Site’s Timezone: Shows visit distribution by hour using your site’s timezone.
Screenshot 24: Visitors → Times
User IDs
The User IDs report tracks activity from logged-in or identified users, allowing you to view individual user journeys and behavior across your site. This screen lists visits grouped by assigned user identifiers (such as a username or email). Note: If no data is displayed, a User Guide Link is shown, which provides instructions for enabling and generating User ID data. This is discussed in the next section of the Settings menu.
Screenshot 25: Visitors → User IDs
Conclusion
Setting up your WordPress site with Matomo isn’t just about installing another analytics plugin; it’s about building a strong, privacy-friendly, fully owned data foundation. In this first part, we covered how to install the Matomo plugin, update your privacy page, enable tracking, and understand the core reporting areas that will guide your decision-making. With your analytics framework in place, you now have the clarity, accuracy, and control needed to understand how users interact with your website. This foundation ensures your tracking is compliant, your insights are reliable, and your decisions are based on real behavior, not guesswork. Next up in Part 2, we’ll dive deeper into Matomo’s advanced reporting features. You’ll learn how to interpret user behavior, track performance across channels, measure conversions, and unlock powerful insights across:- Behaviour Reports
- Acquisition Reports
- E-commerce Reports (if enabled)
- Goals
- Tag Manager
- Settings
Tutorials
16 min read
How to Migrate Webflow to WordPress in 2026
Introduction
If you’ve started to feel like Webflow is holding your website back & want more flexibility to grow, customize, and take full control of it, migrating to WordPress is a smart move. The process might seem complicated at first, but with the proper planning, it becomes much easier.
Whether you’re a marketer or a business owner, this guide will help you move everything over smoothly. We’ll walk you through every stage, from preparing and exporting your content to rebuilding your design and launching your new WordPress site with confidence.
Why Consider Migrating from Webflow to WordPress in 2026?
Webflow makes it easy to create visually stunning websites with simple design tools right from the start. But as your business grows, you might find its features, integrations, & pricing too limiting.
On the other hand, WordPress gives you full control & flexibility. It scales effortlessly with your growth and opens the door to thousands of plugins and themes, making it a perfect fit whether you’re running a blog, an online store, or a large enterprise website.
Flexibility and Customization Options
WordPress’s open-source setup gives you complete freedom to shape your website however you want. You can create custom content types, add advanced features, and tweak the code to fit your needs without restrictions.
Plugin Ecosystem and Integrations
Webflow offers limited integrations, but WordPress supports almost any tool you can think of. From WooCommerce for eCommerce to Yoast SEO, marketing automation & CRM platforms that help your site grow.
Cost Efficiency and Long-Term Value
From a total cost of ownership perspective, WordPress offers significantly better long-term value. Your initial investment covers hosting, setup, and essential tools, but ongoing costs remain stable even as your website scales. Unlike Webflow’s usage-based pricing, where expenses rise with additional pages, traffic, CMS Collections, or users.
SEO Capabilities and Site Ownership
WordPress offers advanced SEO plugins (Yoast, Rank Math) to automate technical SEO sitemaps, schema, and redirects far beyond Webflow’s basics. Since it’s self-hosted, you fully own your data, code, and SEO with no vendor lock-in.
Preparing for Your Migration: What You Need Before You Start
Before moving from Webflow to WordPress, take time to organize and back up your existing site. This preparation ensures nothing gets lost during migration & helps you rebuild your site in WordPress with accuracy & efficiency.
Assessing Your Current Webflow Site Structure
- Check the Sitemap: - Export your Webflow sitemap with a crawler (e.g., Screaming Frog) or online tools and document every URL, hierarchy, and internal link.
- Forms and Interactive Elements: - List all forms & animations, & you’ll need to rebuild in WordPress.
- Custom Code & Integrations: Document all custom HTML/CSS/JS, analytics configurations, and API integrations implemented on your Webflow site.
- Check Images and Media Assets: - Create a full list of all images, videos, and documents with file names and alt text so you can verify them in WordPress, preventing missing visuals, broken URLs, and SEO loss during migration.
Choosing Reliable WordPress Hosting
- Choose a managed WordPress host (like Awesome Ops, WP Engine, Kinsta, or Cloudways) for better performance and security.
- Ensure compatibility with PHP 8+ and MySQL 8+.
- Set up WordPress on a staging site, create secure admin credentials, and enable HTTPS and automatic updates.
Exporting Content and Media from Webflow
You can export that data (like blog posts, case studies, or a team directory) as a CSV file. Open the CMS Collections section in Webflow, select the collection you want, & click Export. This CSV file will be your key to importing everything into WordPress.
Map the Content Structure
Before importing, decide how your Webflow content will live inside WordPress:
- Blog posts → Posts
- Case studies or portfolio items → Custom Post Type (CPT)
Document which Webflow fields should map to which WordPress fields. Here’s a simple example you can follow:
| Webflow Field | WordPress Field | Notes |
| name | Post Title | Main title of the post/page |
| slug | Post Slug | URL slug for the post |
| postcontent | Post Content | Main body content |
| postsummary | Post Excerpt | Short description/summary |
| image | Images → Image filenames | Will import to Media Library |
| published on | Post Date | Controls the “Published On” date |
| author | Post Author | Must match an existing WordPress username |
| maintag[1], tag2[1], tag3[1] | Taxonomies → Tags | Add tags if needed |
| poststatus | Post Status | Normally set manually to “Published.” |
| ctabuttontext, ctadescription featured |
Custom Fields | Adds a custom field value |
Table 1: Sample Content Mapping from Webflow to WordPress
Export each Webflow CMS Collection as its own CSV file. If the CSV includes images, WP Import Export Lite can download and attach them to the WordPress Media Library.
Save Static Pages & Custom Elements
Static pages (like Home, About, and Services) are included in Webflow’s Code Export as static HTML, CSS, JS, and assets. This option is only available on paid Webflow plans. Since WordPress can’t directly import these exported files, the practical approach is to manually move over the text content and re-upload your images during the migration.
Custom layouts, forms, and animations are included in the exported code, but they aren’t directly usable in WordPress and typically need to be rebuilt or reconfigured. These elements can be recreated in WordPress using page builders like Gutenberg or Elementor.
Step-by-Step Process to Migrate from Webflow to WordPress
Installing and Setting Up WordPress
Start by installing WordPress on your hosting account. Most hosts offer a one-click installer. Create an admin account with a strong password and a valid email address.
Once installed, log in to your WordPress dashboard, your new control center for managing pages, posts, media, and plugins.
Before importing your content, adjust a few key settings:
- Timezone and Date/Time Format: Go to Dashboard → Settings → General and match your local time.

Screenshot 1: Date/Time Setting
- Permalinks: Under Settings → Permalinks, choose a clean structure like Post name. Match your Webflow URLs to preserve SEO value.

Screenshot 2: Permalinks
- Media Settings: Adjust upload file size limits and image sizes if needed.
- SSL: Enable HTTPS using your host’s SSL and a plugin like Really Simple SSL.
- Turn on automatic updates: Turn on automatic updates (Dashboard → Updates ) for WordPress core, plugins, and themes.
Once WordPress is installed, add a few essential plugins to get ready for migration:
- Migration: Use something like WP All Import Export (premium or the new name)to import your CSV exports.
- SEO plugin: Tools like Yoast SEO, Rank Math, or AIOSEO help maintain your search visibility.
- Security plugins: Wordfence or Sucuri helps in keeping your site secure.
- ACF (Advanced Custom Fields): Lets you create custom fields to match your Webflow content structure, best for migrating extra data like images, repeaters, text fields, and more.
- Custom Post Type UI (CPT UI): Helps you create custom post types & taxonomies by replicating Webflow CMS Collections like Blogs, Case Studies, Services, or Team Members.
Your WordPress setup is now ready for migration.
Importing Webflow Content to WordPress
Step 1: Install the WP Import Export Lite Plugin
- Go to your WordPress Dashboard → Plugins → Add New.
- Search for “WP Import Export Lite.”
- Click Install Now and then Activate the plugin.

Screenshot 3: WP Import Export Lite
Step 2: Create a New Import
- Navigate to WP Imp Exp → New Import in your WordPress admin panel.
- Choose Upload from Desktop, then click Select Files to upload your CSV file.
- After the file uploads successfully, click Continue to Step 2.

Screenshot 4: New Import
Step 3: Select Post Type
- Under Import each record as, choose Post, Page, or any custom post type depending on your data.
- In Handle New and Existing Items, select:
- Import new items only & skip existing items (recommended for first-time import).

Screenshot 5: Select Post Type
Then click Continue to Step 3.
Step 4: Map Title and Content Fields
In the Title & Content section, map your CSV fields:
- In the Title & Content section, map your CSV fields:
- Post Title → {name[1]}
- Post Content → {postcontent[1]}
- Enable “Search image through content and import images wrapped in <img> tags” if your posts contain inline images.

Screenshot 6: Map Title and Content Fields
Step 5: Configure Image Settings
- Scroll to the Images section.
- Enable Download images hosted elsewhere and add your image field (e.g., {image[1]}).
- Check Set the first image to the Featured Image (_thumbnail_id) to automatically assign featured images.

Screenshot 7: Image Settings
Handling AVIF Image Formats During Migration
Webflow often exports images in .avif format, which is good for keeping your visuals sharp and your site fast, but WordPress doesn’t fully support AVIF yet, so those images might not upload during migration.
You can easily enable AVIF support with a quick code snippet added through the Code Snippets plugin.
| // Allow AVIF in media uploads function allow_avif_uploads($mime_types) { $mime_types['avif'] = 'image/avif'; return $mime_types; } add_filter('upload_mimes', 'allow_avif_uploads'); // Fix file type detection for AVIF function fix_avif_filetype_check($data, $file, $filename, $mimes) { $ext = pathinfo($filename, PATHINFO_EXTENSION); if (strtolower($ext) === 'avif') { $data['ext'] = 'avif'; $data['type'] = 'image/avif'; } return $data; } add_filter('wp_check_filetype_and_ext', 'fix_avif_filetype_check', 10, 4); |

Screenshot 8: Handling AVIF Image
This code helps WordPress recognize .avif images properly. It not only allows you to upload AVIF files but also prevents those “file type not allowed” errors.
Once added, you can safely re-import or manually upload your .avif images through the media library without issues.
Step 6: Title & Meta Description
Scroll to the Yoast SEO section and map:

Screenshot 9: Title & Meta Description
Step 7: Custom Fields (If Applicable)
- Scroll to the "Custom Fields" section.
- Click Add New and create a mapping for each field.
- Enter the custom field name or WordPress ACF field name (e.g., cta_description, cta_button_text, featured) (from the Table 1 Fields that were mapped)
- In Value, insert the matching source placeholder
(e.g., {ctadescription[1]}, {ctabuttontext[1]}). - Set Options as Normal Data.
- Repeat for every field that you want to be imported.

Screenshot 10: Map Custom Fields
Step 8: (Optional) Set Up Missing ACF Fields
Perform this step only if the ACF fields you need are not created in WordPress:
- Go to Plugins → Add New
- Install and activate Advanced Custom Fields

Screenshot 11: Install ACF
- Create a Field Group for your imported fields.
- Assign the Field Group to the correct Post Type.
- Save the field group.

Screenshot 12: Field Groups
Step 9: Configure Taxonomies
Taxonomies organize your imported content in WordPress by grouping posts in categories, tags, or any custom taxonomies your theme or plugins use.
- Scroll down to the Taxonomies section.
- You’ll see options such as:
- Categories
- Tags
- Any custom taxonomy (e.g., “Topic,” “Industry,” “Location,” etc.) registered on your site.
- Enable the taxonomy you want to import (for example, Tags or Categories).
- In the mapping field, insert the corresponding columns from your CSV file. For example: {maintag[1]}, {tag2[1]}, {tag3[1]}

Screenshot 13: Taxonomies, Categories, Tags
Step 10: Configure Post Status, Date & Discussion Options
Under Other Post Options, set the following:
- Post Status -> Published
- Post Dates -> {publishedon[1]}
The date field must use a format supported by WordPress. Example: 2024-11-10 13:00:00

Screenshot 14: Post Status, Date & Discussion
Next, map Slug and Post Author.

Screenshot 15: Slug & Author
- Match the author column from your CSV to the WordPress Author field. Eg: {author[1]}
- Before importing, make sure all the authors in your CSV are already users in WordPress.
- If an author doesn’t exist, create their user profile first.
- This way, every post you import will automatically show the right author.
Step 11: Handle Existing Items & Update Options
- In step 11, scroll to Search Existing Items.
- Choose how to detect duplicates on your site using one or more fields, for example, by slug, title, Post meta, or Post ID.

Screenshot 16: Search Existing Items
Update Existing Item Fields
- Choose which parts of your content to update, or choose 'update all' if you want.
- Post status
- Title
- Author
- Slug
- Content / Description
- Excerpt / Short Description
- Dates
- Menu order
- Parent post
- Post type
- Comment status
- Ping Status
- Post Password
- Attachments
- Images
- Custom Fields
- Taxonomies (incl. Categories and Tags)
- For your first import, you’ll need to select at least one field, as the plugin requires it.
- Check Title, Content, & Images as these are essential fields & safe to include.
- Leave other options like Dates, Slug, Custom Fields, or Taxonomies unchecked unless you need to update them.

Screenshot 17: Update Existing Item Fields
Speed Optimization
Enable iterative processing and processing around 20 records per batch (adjust as per server capacity).
Set a friendly name for the migration process, such as Webflow to WordPress migration {datetime}
You will be shown the Import Summary with all the settings that were set in the previous steps. To complete the import, you once in the import in background or run it as it is.

Screenshot 18: Import Summary
Click Continue to start the import.

Screenshot 19: Import Complete for a Particular Collection
| Note: Repeat these steps (till Step 11) for all the CMS collections. Blogs in Webflow will be migrated to posts in WordPress. All other CMS collections should be migrated to custom post types. |
Rebuild Your Webflow Design in WordPress in Parallel
While your content migration is in progress, also start rebuilding your Webflow designs in WordPress. Doing both in parallel helps you save time, maintain design consistency, and ensure the new site is ready for launch as soon as your data migration is complete.
Decide how you want to build the site, like a custom theme, or customize a pre-built theme with a page builder like Elementor.
Choose a Theme
Pick a lightweight, flexible, mobile-friendly theme compatible with your plugins or builder. Avoid bloated themes.
Use the WordPress Customizer to:
- Upload your logo and brand assets
- Adjust colors, fonts, and layouts
- Configure headers, footers, and responsive settings
Replicating CMS Collections and Static Pages
First, note how many unique design pages there are. Then develop single and archive templates for all of them.
For blogs, use WordPress Posts, and for CMS collections, use Custom Post Types. Replicate them exactly as the original design.
Use Gutenberg or a page builder such as Elementor to replicate each webpage visually.
Similarly, for static pages, replicate them as WordPress pages.
When rebuilding your Webflow site in WordPress, the goal is to replicate every element visually, structurally, and functionally to achieve a seamless transition.
Here are a few things to consider
- Recreate the headers, footers, and navigation menus according to the Webflow layout.
- Recreate layout grids and sections to mirror Webflow’s structure.
- Match font families, font weights, and line heights
- Replicate color palettes and gradients for consistency across pages and components.
- Recreate spacing and alignment, and maintain the same padding, margins, and hierarchy used in Webflow.
- Rebuild animations and transitions using CSS, GSAP, or your WordPress page builder’s animation options.
- For category filters or sorting options, you can write custom WordPress queries or use plugins like FacetWP, SearchWP, or Relevanssi WordPress plugins.
- Recreate the forms using the Gravity Forms or Formidable Forms WordPress plugins.
Post-Migration Checklist: Ensuring a Smooth Transition
You're almost at the finish line! With your content migrated and your design in place, the last step is to test everything & make sure it runs perfectly.
Testing Site Functionality and Performance
Check every page & feature to make sure they’re working properly:
- Navigation & Links: Check all internal and external links to ensure nothing is broken.
- Forms: Submit every contact or lead form to confirm it is working.
- Interactive Elements: Test sliders, buttons, pop-ups, & other dynamic features.
- User Accounts: Verify login, registration, & profile functionality if applicable.
View your website on different browsers & devices to ensure responsiveness.
A fast website improves both UX and SEO:
- Test page load times (GTMetrix, PageSpeed Insights)
- Check layouts on mobile and tablet
- Confirm cross-browser compatibility (Chrome, Safari, Firefox, Edge)
- Review Core Web Vitals: LCP, FID, CLS
Make sure your content is transferred correctly:
- Review each page & post to fix any formatting issues
- Check that all images, videos, and downloadable files appear and function properly
- Test internal & external links to ensure nothing is broken
Point your Webflow domain to WordPress
The final step is to connect your domain to your WordPress site. This just means updating your DNS settings so visitors & search engines are directed to your new WordPress hosting instead of Webflow. Follow these steps:
- Get DNS Records from Your WordPress Host: Log into your hosting account & locate the required DNS settings, usually nameservers (e.g., ns1.yourhost.com, ns2.yourhost.com), A record (server IP), or a CNAME for the www version.
- Access Your Domain Registrar: Sign in to the platform where your domain is registered (e.g., GoDaddy, Namecheap, Google Domains, Cloudflare). This is where you manage DNS & domain settings.
- Remove Webflow DNS Records: Delete any DNS records or nameservers that are still pointing to Webflow. Then, add the new nameservers, or update the A record/CNAME—provided by your WordPress host to make sure your domain connects to the correct server.
- Save & Allow DNS Propagation: Save your updated DNS settings, then allow DNS propagation. DNS propagation may take anywhere from a few minutes to 24–48 hours, during which your site may temporarily show the old version.
- Test Your Domain & Site: Once DNS propagation is complete, open your domain in a browser & make sure your WordPress site loads properly. Check a few pages, links, forms, and media to confirm everything is working as it should.
Conclusion
Migrating from Webflow to WordPress opens the door to more growth, freedom, and endless customization. With the right tools and proper planning, you can smoothly migrate your content, continue your unique design, and expand your site with ease.
Ready to make the move? Start your migration today and see just how far WordPress can take your website.
Want us to handle your Webflow-to-WordPress migration? Schedule a free consultation with our migration experts.
Frequently Asked Questions
No, you cannot directly transfer your Webflow design. The migration process requires you to recreate the design using a WordPress theme/template, a page builder, & custom HTML, JS, and CSS. This allows you to either replicate your old look or create a new one while ensuring high quality & responsiveness on your new platform.
The time it takes to migrate from Webflow to WordPress really depends on your site’s size, the amount of content, design complexity, & any custom features you want to include.
For a small to medium Webflow site with standard pages & blog posts, the migration usually takes around 5-6 weeks.
For bigger, more complex sites with custom layouts, e-commerce, or advanced features, the migration can take 10–12 weeks, including testing and SEO checks to ensure a smooth transition without any data loss.
Switching your website from Webflow to WordPress comes with several key advantages:
1. WordPress lets you customize your site freely with an extensive range of themes, plugins, and integrations.
2. As your website grows, WordPress scales effortlessly to handle increased traffic.
3. WordPress can be more cost-effective, too, avoiding the rising, tiered fees that Webflow charges as your site expands.
4. It gives you advanced SEO plugins like Yoast or Rank Math, helping your site perform better in search engines.
5. Most importantly, with WordPress, you fully own your website and all its data, with no platform restrictions





















































































