Compatibility · v0.6.1
Running alongside the other SEO plugins
Measured, not assumed. Every number below came from activating the pairing on a real install and reading what came out of the page.
Scope
What was tested
The short answer has not changed: run one SEO plugin at a time. This page exists so you can see exactly what happens when you do not, and so a bug report can say "this pairing, this version, this tag" instead of "it conflicts".
Four things were checked for each of the four plugins:
- What the
<head>of a single post looks like with both plugins active, tag by tag. - Which plugin ends up owning
/sitemap.xml, and whatrobots.txtends up advertising. - How many per-post fields the one-click migration actually carries over.
- How many fields the read-fallback picks up while both plugins are still installed.
Reproducibility
The test baseline
Results below were produced on 17 October 2026 against these exact versions. If you are reporting something that disagrees with this page, please include your equivalent list.
| Component | Version |
|---|---|
| WordPress | 7.1.3 |
| PHP | 8.5.3 |
| WooCommerce | 11.0.1 |
| Flexa SEO - AEO | 0.6.1 |
| Yoast SEO | 28.7 |
| Rank Math | 1.0.270 |
| All in One SEO | 5.0.3 |
| SEOPress | 10.1 |
Each competitor was activated on its own, alongside Flexa SEO, with default settings and no setup wizard run. A single published post was requested over HTTP and the head tags counted. The plugin was then deactivated before the next one was activated, so no two competitors were ever live together.
Default settings only
None of the four were configured. A plugin you have actually set up may emit more than it did here, not less, so treat these counts as the floor.
What this re-run changed
Every number on this page was measured again for 0.6.1, on the same install and the same post as the 0.5.5 run. One of them moved. Flexa now writes its robots directives through WordPress’s own wp_robots filter instead of printing its own tag, so the Rank Math and All in One SEO pairings now produce one meta name=robots tag where they used to produce two. That one tag is theirs, not a merged one. Read the note under the table before counting it as a clean result.
Sitemap ownership and the robots.txt lines were measured again and came out the same. The migration and read-fallback tables below were not re-run on a test post this time; they were checked against the field maps 0.6.1 actually ships, which are the same maps the 0.5.5 run measured. Rank Math 1.0.280 and SEOPress 10.3 were released after this run and have not been tested, so the versions in the table above are the ones every number below came from.
Summary
Compatibility matrix
| Plugin | Safe to run together | Migration | Read-fallback | Detected as a conflict |
|---|---|---|---|---|
| Yoast SEO 28.7 | No | Yes | Yes | Yes |
| Rank Math 1.0.270 | No | Yes | Yes | Yes |
| SEOPress 10.1 | No | Yes | Yes | Yes |
| All in One SEO 5.0.3 | No | No | No | Yes |
| Column | What it means |
|---|---|
| Safe to run together | Whether the pairing produces a clean page. It never does: every one of the four duplicates head tags. |
| Migration | Settings → Migration can read this plugin’s per-post fields and write them into Flexa’s. |
| Read-fallback | Flexa reads this plugin’s meta directly when it has none of its own, so the front end keeps working mid-move. |
| Detected as a conflict | The Setup Assistant notices the plugin is active and warns about duplicate output. |
One gap worth knowing about
All in One SEO is not supported in either direction. Flexa warns you that it is active, so you will not be left guessing why the head has two of everything, but there is no migration to run and no read-fallback to carry you through the move. Copy the fields you care about by hand before you switch off.
Measured
Sitemaps and robots.txt
Flexa SEO serves its sitemap index at /sitemap.xml. That is the same address SEOPress and All in One SEO want, while Yoast and Rank Math use /sitemap_index.xml.
While Flexa’s sitemap is on, core’s own /wp-sitemap.xml is switched off, so the site has one index rather than two listing the same URLs, and robots.txt advertises one address. If you need core’s back, return true from flexa_seo_aeo/sitemap/keep_core_sitemap.
| Active alongside | /sitemap.xml serves | robots.txt advertises |
|---|---|---|
| Nothing | Flexa | sitemap.xml |
| Yoast | Flexa | sitemap.xml and sitemap_index.xml |
| Rank Math | Flexa | sitemap_index.xml and sitemap.xml |
| All in One SEO | AIOSEO, not Flexa | sitemap.rss only |
| SEOPress | Flexa | sitemap.xml and sitemaps.xml |
All in One SEO is the one hard route conflict in the set. It claims /sitemap.xml and wins it, so Flexa’s sitemap becomes unreachable, and its robots.txt handling drops Flexa’s sitemap line entirely. Nothing in either plugin tells you this has happened.
Flush rewrites before you judge a 404
Activating or deactivating any of these plugins leaves the rewrite rules stale, and a sitemap URL will 404 until they are rebuilt even though nothing is actually conflicting. Rank Math’s /sitemap_index.xml did exactly that during testing, and served a 200 straight after a flush. Re-save Settings → Permalinks, or run wp rewrite flush, before reporting a missing sitemap.
Measured
Migration coverage
Settings → Migration copies another plugin’s per-post fields into Flexa’s own. Eleven fields were written on a test post for each source, then migrated and read back.
| Field | Yoast | Rank Math | SEOPress | AIOSEO |
|---|---|---|---|---|
| SEO title | Yes | Yes | Yes | No |
| Meta description | Yes | Yes | Yes | No |
| Canonical URL | Yes | Yes | Yes | No |
| OG title | Yes | Yes | Yes | No |
| OG description | Yes | Yes | Yes | No |
| OG image | Yes | Yes | Yes | No |
| Twitter title | Yes | Yes | Yes | No |
| Twitter description | Yes | Yes | Yes | No |
| Twitter image | Yes | Yes | Yes | No |
| noindex | Yes | Yes | Yes | No |
| nofollow | Yes | Yes | Yes | No |
Template tokens are converted as part of the move. Rank Math’s single-delimiter %sitename% becomes %%sitename%%, and names that differ between vocabularies are mapped across, so SEOPress’s %%post_title%% becomes %%title%% and its %%sitetitle%% becomes %%sitename%%. A token with no equivalent resolves to an empty string rather than printing itself.
SEOPress migration shipped in 1.0.0. Its column was measured on 20 October 2026, against SEOPress 10.1 on the same install: all eleven fields were written on a test post, migrated and read back, and a second run skipped the post as already migrated. The Yoast and Rank Math columns are from the earlier runs described above.
Migration never deletes the source plugin’s meta. You can run it, check the result, and deactivate the old plugin afterwards, in that order.
Measured
Read-fallback coverage
Separately from migration, Flexa reads another plugin’s meta on the fly when a post has nothing of its own. This is what keeps the front end intact the moment you activate Flexa, before any migration has run. It covers fewer fields:
| Field | Yoast | Rank Math | SEOPress | AIOSEO |
|---|---|---|---|---|
| SEO title | Yes | Yes | Yes | No |
| Meta description | Yes | Yes | Yes | No |
| Canonical URL | Yes | Yes | Yes | No |
| OG title | Yes | Yes | Yes | No |
| OG description | Yes | Yes | Yes | No |
| OG image | Yes | Yes | Yes | No |
| Twitter fields | No | No | No | No |
| noindex / nofollow | No | No | No | No |
Robots flags are not covered by the fallback
A post you marked noindex in Yoast, Rank Math or SEOPress is not noindex to Flexa until you either run the migration or tick the box again. The migration carries it from all three, so run it before you deactivate the old plugin.
Open
Known issues
| Issue | Affects | Status |
|---|---|---|
All in One SEO takes over /sitemap.xml and Flexa’s sitemap becomes unreachable, with no warning in either plugin. | Flexa + All in One SEO | Open, will not be fixed: run one SEO plugin |
The single meta name=robots tag is the other plugin’s. Both remove every wp_robots filter, Flexa’s included, so a post set to noindex in Flexa can still be indexed. | Flexa + Rank Math, Flexa + AIOSEO | Open, will not be fixed: run one SEO plugin |
SEOPress prints a second robots tag. On a post set to noindex in Flexa, one tag says noindex and the other says index. | Flexa + SEOPress | Open, will not be fixed: run one SEO plugin |
Feedback
Reporting a conflict
A report that can be acted on without a round trip contains these five things:
- Versions of WordPress, PHP, Flexa SEO and the other plugin, in the shape of the baseline table above.
- The URL of a page where you can see it, if the site is public.
- Which tag or route is wrong, and what you expected instead. A
grep -ccount is worth a paragraph of description. - Whether the other plugin was configured or left at defaults.
- Whether it still happens with every other plugin deactivated and a default theme active.
Pairings already on this page do not need re-reporting unless your result differs from what is written here. A result that differs is exactly the interesting case.