BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
Merchlint – Catalog Audit for WooCommerce icon
Actively maintained Tested with WP 7.1 #9 in abilities-api

Merchlint – Catalog Audit for WooCommerce

Read-only WooCommerce product audit: goods that sold but are out of stock, duplicate SKUs, missing prices — each with the money at stake.

Active installs<10New
Downloads · 30d467▲ +28.3% vs prev. 30d
Rating—0 reviews
Health score64/100Good
All-time downloads702Since Sep 2026
Support resolved—No recent threads
RequiresWP 6.5PHP 7.4+
Downloads · 7d92▼ -46.5% week over week
Our verdict

Solid choice

Merchlint is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 6 days ago, and scores 64/100 on our health check.

  • Actively developed — last update 6 days ago
  • Tested with the latest WordPress (7.1)
  • Small user base (<10 active installs)
  • Very few reviews so far

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

153045Aug 31Sep 24Oct 19
Yesterday8
Daily average (1y)14
Peak day61Oct 2, 2026
Last 12 months714

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where Merchlint stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
abilities-api >100 2,767 Best abilities-api plugins →
catalogue audit #21 164 Best catalogue audit plugins →
duplicate gtin #20 120 Best duplicate gtin plugins →
ean #85 217 Best ean plugins →
missing gtin #22 159 Best missing gtin plugins →

About Merchlint

From the official readme · v0.3.8

Description

Merchlint reads your WooCommerce catalogue and tells you where it is losing you money. Every
finding comes with the value it was based on, so you can check it yourself instead of taking our
word for it.

It changes nothing. No product, no price, no stock level, no order. The audit reads and reports;
every fix is yours to make, in your own admin.

What it looks for

Nineteen checks, in six groups:

  • Money — products that sold in the past year and can no longer be bought; goods selling
    without a photo or hidden from the catalogue; sale prices whose scheduled end date has passed
    and are still running; products with no price at all.
  • Catalogue and navigation — products outside every category; duplicate SKUs; variable
    products with every variation sold out, or marked sold out while their variations are still in stock;
    published products WooCommerce keeps out of the shop because their parent doesn’t exist or isn’t published.
  • Content — descriptions too short to answer a customer’s question; images with no alt text.
  • Performance and media — oversized image files; bloated autoloaded options; media entries
    whose file is missing from disk.
  • Environment — PHP, WordPress or WooCommerce on a version that no longer gets security fixes;
    a scheduled-task queue that stopped running — WP-Cron and Action Scheduler are reported
    separately — which is what stalls every piece of work meant to happen later.
  • Product identifiers — products with no GTIN, UPC, EAN or ISBN, and two products carrying
    the same one. An empty or duplicated identifier is the usual reason an item quietly drops out of
    a shopping feed, and nothing in WooCommerce says a word about it.

What makes it different

  • Every finding shows its evidence. Not “12 636 problems” but the field we read, the value we
    found and the threshold we compared it against.
  • It tells you where to start. The three items with the largest amount at stake, first — before
    the full list.
  • A zero means “checked, clean”. A rule that could not run says so instead of quietly
    reporting nothing. “No data” and “no problems” are different answers, and you get the right one.
  • It never adds up currencies. A store selling in euros and dollars gets a separate figure for
    each. Adding them without an exchange rate would be inventing a number.
  • Two scans of an unchanged store give the same result, item for item. When something does
    change, a separate screen tells you what — and whether the difference came from your store or
    from a rule of ours that got smarter.
  • “Hide from report” is permanent. Seasonal stock you already know about stops coming back
    after every scan, and stays hidden across plugin updates.

Every check has a page that explains it

Nineteen checks, nineteen pages — linked from the audit screen, next to the rule they belong to.
Each page says what the problem costs, which fields the rule reads and which thresholds it
compares them against, how to fix it, and when the finding is not a problem in your store.

That last part is why the pages exist. A rule you cannot argue with is a rule you end up ignoring
wholesale, so every page names the cases where the right answer is “hide this and move on”:
seasonal goods, spare parts, products sold only by phone.

Your data stays yours

The free version works entirely on your server. No account, no sign-up, no phoning home: the
plugin makes no outbound connections at all, and an automated check enforces that on every build.

The links to merchlint.com are ordinary links. They open in your browser when you click them, and
the plugin sends nothing along the way — not your store’s address, not its version, not an
identifier of any kind. The only thing in the address is the language your admin is set to, so
that a Polish store gets the Polish page. Without a click, nothing leaves your store at all.

An AI assistant can read the audit only if you connect one to your store yourself; see the FAQ.

Installation

  1. Install and activate the plugin. WooCommerce must be active first — WordPress enforces this for
    you.
  2. Open Store audit in the admin menu.
  3. Press Scan now. A store with 50 000 products takes about a minute and a half on the hardware
    we measure on; a slower host takes longer. You can stop the scan at any point.

The audit reads your catalogue and writes only to its own tables. Removing the plugin removes them.

Short PHP time limit? Nothing to do — the audit reads your host’s own limit and sizes each chunk
to fit inside it, then books the next one itself. A shorter chunk means more of them, not less work:
the audit still finishes, and it still resumes from where it stopped.

If your host reports a limit it does not actually enforce, you can set the chunk yourself in
wp-config.php:

define( 'MERCHLINT_BUDGET_SECONDS', 8 );

Frequently asked questions

Does it change anything in my store?

No. It reads your catalogue and reports what it finds. Every change is made by you, in your own admin. This is enforced in the code, not just promised: an automated check refuses to build the plugin if it calls any function that would modify products, categories, media or orders.

Will it slow my store down?

The scan runs in the background, in short slices, and it only touches the admin side. Your storefront is not involved. If the scan is interrupted — a server restart, a deployment — it picks up where it left off and gives the same result as an uninterrupted run.

Can I audit a store with tens of thousands of products?

Yes. A scan of 50 000 products completes in about 90 seconds and the results are paginated, so a rule with twelve thousand findings still opens instantly.

Why does it check WP-Cron and Action Scheduler?

Because a stalled queue fails quietly. WP-Cron and Action Scheduler are what WooCommerce and its extensions book later work on — order emails, the end of a scheduled sale, stock released from abandoned carts, subscription renewals — and neither your storefront nor your order list will tell you they stopped. The store keeps selling. It just stops doing everything that was meant to happen later. The two queues are reported as separate findings, because they stop for different reasons and are fixed in different places. What the rule measures is the age of the oldest overdue action, not how many…

What does “store health” cover here?

Everything the nineteen checks touch, not only product fields: the catalogue and its categories, the media library and the files behind it, the size of your autoloaded options, and the versions of PHP, WordPress and WooCommerce you are running. A store can have faultless product data and still be losing money to a stalled queue or to an unsupported PHP version, so the report covers both.

Does it work with multilingual stores?

Yes. Translations of one product are counted as one product: their SKU is shared deliberately, and their stock is one physical stock, so we never report the same goods twice or double the amount at stake. Polylang is tested with the plugin itself; WPML is recognised through its translation table, which we test against the same data it produces.

Does it work with HPOS (High-Performance Order Storage)?

Yes, with HPOS on and off. Both modes give identical results, amounts included.

Some of the findings do not apply to my store.

Then hide them. Every rule’s page explains when the finding is NOT a problem — seasonal goods, spare parts, products sold only by phone — and hiding takes two clicks, with an optional reason. The decision survives future scans, and the hidden items stay visible as a count and in a list you can restore them from, so nothing disappears silently.

Can an AI assistant read my audit?

Only if you connect one yourself. On WordPress 6.9 or later Merchlint registers two read-only abilities through the WordPress Abilities API: the audit summary and the list of findings. An AI assistant you connect to your store, for example through an MCP plugin, can call them as a logged-in user with the manage_woocommerce permission, and gets the same results as the Store audit screen. Merchlint itself sends nothing anywhere and changes nothing in your store.

Changelog

An AI assistant you connect to your store can read the audit (WordPress 6.9 or later), and Tools → Site Health shows what the last audit found.

0.3.8

  • An AI assistant can read the audit. On WordPress 6.9 or later Merchlint registers two
    read-only abilities through the WordPress Abilities API: the audit summary and the list of
    findings, most expensive first. An assistant you connect to your store yourself, for example
    through an MCP plugin, calls them with the same permission as the Store audit screen and gets
    the same numbers. They read the last finished audit and never start a new one; Merchlint sends
    nothing anywhere.

  • Site Health shows what the last audit found. Tools → Site Health gets a Merchlint item. When
    the last audit found products that were selling and can no longer be bought, the item is a
    recommended improvement that says how many there are and how much they brought in; other
    “Important” findings make it one too. An audit older than 30 days gets a warning, because the
    store may have changed since. The item only reads the saved audit and never starts a new one.
    Before the first audit it sits among the passed tests, with a link to run it.

  • Works on SQLite. Two queries used MySQL syntax that SQLite-based WordPress (WordPress
    Playground, for example) rejects, so there the “Where to start” list stayed empty and SKUs and
    GTINs with a stray space at the start or end were not compared as equal. Both queries now run on
    SQLite too; on MySQL and MariaDB the results are exactly as before.

0.3.7

  • New check: “Published, but the shop doesn’t show it”. Since WooCommerce 11.1, a product
    whose parent points to an entry that doesn’t exist or isn’t published disappears from the shop
    page, categories and search, and a simple product can’t be added to the cart – while the admin
    shows it as published and visible. A simple product doesn’t use a parent at all, but CSV imports
    and tools that create products through the REST API sometimes write one. WooCommerce itself
    decides, in the version you run, and the check follows it: from 11.3 a parent that isn’t a
    product no longer hides anything. The evidence names the parent and what it does to customers,
    and the check’s page shows how to clear it.

  • On a phone, the full list of a check shows the evidence again. Since 0.3.6 the “What we
    read” column was hidden on narrow screens with no way to open it; each row now has the button
    that shows it.

0.3.6

  • Every check that found something now has its own card on the audit screen. The cards stand
    under “What we found, check by check”, below the list of checks. Each shows the first five
    items – with a thumbnail, the evidence and the amount – and what to do about them. “Show all”
    opens the full list, and the card says how many items are hidden. The check names in “Where
    to start” and in the list of checks lead to their cards.

  • The evidence reads as “field: value”, in the words WooCommerce uses. Stock status,
    catalogue visibility, product type and publication status show their WooCommerce and WordPress
    labels – “Out of stock” rather than “outofstock” – on the screen and in the CSV export. An empty
    main image field shows as “(empty)” rather than “0”, and “Product outside every category” names
    the category – “Uncategorized (#15)” rather than “15”. Revenue and prices in the evidence follow
    the number format of your admin language: “7,740.00 USD” and “195.30” on an English screen,
    where they used to read “7 740,00 USD” and “195.3”. WP-CLI output has not changed.

  • “Hide from report” takes an optional reason, and everything you have hidden has its own
    list.
    After hiding an item from a card you are back on that card. The new “Hidden items”
    button, next to “Download everything (CSV)”, opens a list of every hidden item with the date
    and the reason. The list says when a check has changed since an item was hidden, and lets you
    restore any of them – also items the latest audit no longer finds.

  • The summary gives the size of the catalogue. “Products in the catalogue” now stands next to
    the number of findings, counted when the audit ran.

  • On the “Why did this change?” screen, each example links to its item. The checks there are
    listed in code order, B4 before B10, and the screen says how many items were hidden since the
    earlier audit, with a link to the list.

  • Fixed the way back after hiding or restoring an item in a shop installed in a folder. With
    an address such as example.com/shop, the page you landed on afterwards did not exist. The item
    itself was hidden or restored.

  • “When this is NOT a problem” no longer suggests hiding where hiding is the wrong answer.
    Under “Duplicate SKU”, “Variation the customer can never pick” and “Sold out, but its variations
    are in stock” the advice to use “Hide from report” is gone: these checks have practically no
    exceptions, and the answer is to fix the product. The button itself stays on every card. The
    plugin description now calls it by its current name, “Hide from report”, rather than “Hide”.

0.3.5

  • The audit screen now starts with a summary. Above the full list: the revenue sitting in
    products that sold but can no longer be bought, and four tiles – Important, Worth fixing,
    Clean, Not checked – each with the number of checks in it. “Everything we checked” opens with
    one bar per area of the catalogue, and “Where to start” shows each product’s photo and a bar for
    its amount. Check names now come before their codes, “When this is NOT a problem” no longer
    hides behind a click, and the plugin’s box on the product page sits right under “Publish”.
    The dashboard widget shows the same four counts.

  • New check: “Sold out, but its variations are in stock”. The product is marked out of
    stock, yet at least one of its variations can still be added to the cart. Shoppers see “out of
    stock” in the shop and in search results, while the product page sells the variation – one of
    the two is wrong, and the data alone cannot tell which, so the advice starts there. “They were
    selling, now nobody can buy them” no longer lists these products, because they can be bought.

  • Checks based on sales skip products that earned nothing in the period. A product sold only
    at a price of 0 – a free gift added to orders – or whose every sale was refunded is no longer
    listed by “They were selling, now nobody can buy them”, “Selling without a photo” or “Selling,
    but hidden”. The amount at stake for it was zero anyway.

  • “Product with no price or a zero price” no longer lists products that are out of stock, or
    gift cards.
    Most such items turned out to be withdrawn products, free gifts and vouchers, not
    mistakes. The evidence now says whether the price is missing or zero, and the advice starts
    with checking whether it is intentional – and hiding the item if it is.

  • “No GTIN, UPC, EAN or ISBN” no longer lists gift cards. Gift card products from gift card
    plugins have no barcode by nature.

  • SKUs and GTINs are compared the same way on every database. A code that came with an
    invisible character or a non-breaking space – common when it is pasted from a spreadsheet – is
    now the same code as the one without it. Until now this depended on the database behind the
    shop: on MySQL 8 such a duplicate was missed, or only one product of the pair was listed. A GTIN
    field holding nothing but such characters now counts as empty.

  • “Image with no alt text” also counts a file name, a random code or digits only. Text such
    as “IMG_2034.jpg” in the alternative text field describes nothing to a person who cannot see the
    image, so it is treated like an empty field. The advice also says what WooCommerce 9.3.3 and
    later do with an empty field: the product page shows the product name there, depending on the
    theme.

  • “Where to start” counts each product’s amount once. A product both hidden from the
    catalogue and out of stock had its revenue counted twice and could rank above products that
    earned more.

  • Evidence on an English screen is in English. A few values written by the checks themselves,
    such as “yes” and “no”, “(empty)”, “(not on disk)” and the note about supported WooCommerce
    versions, appeared in Polish whatever language your admin uses. The results screen and the CSV
    export now translate them. WP-CLI keeps them as they were, because scripts read them.

0.3.4

  • The evidence now gives its reason in words, in the language of your admin. Where a check says
    why an item is listed – a product hidden from the catalogue, a task queue that stopped – the
    reason appeared as an internal code in Polish, such as “wylaczony z katalogu”, whatever language
    your admin uses. The results screen and the CSV export now say “excluded from the catalogue”,
    translated like the rest of the screen. WP-CLI keeps the code, because scripts read it.

  • Amounts and counts in the Polish admin no longer read “7,740,00” or “1,234”. The Polish
    translation of WordPress changes the decimal separator to a comma but leaves the thousands
    separator as it was, so both were the same character. When that happens, thousands are now split
    with a non-breaking space – “7 740,00” – as in the evidence. Other languages see no change.

  • The note about numbers kept in EAN for WooCommerce now names that plugin’s own copy tool. EAN
    for WooCommerce can copy its numbers into WooCommerce’s identifier field itself: WooCommerce →
    Settings → EAN → Tools → Copy to product meta. The note now says so and warns that the copy skips
    WooCommerce’s own checks, so run the audit again afterwards – the duplicate check shows any
    number that came across twice. Fields of other plugins keep the general advice.

  • On WooCommerce 9.0 and 9.1 the note about another plugin’s field no longer sends you to a field
    that is not there.
    Those versions have no field for a product identifier, yet the note advised
    moving the numbers into it. It now says the field arrived in WooCommerce 9.2 and gives the same
    advice as the identifier checks themselves: update WooCommerce, then run the audit again.

  • “wp merchlint status –format=json” now also gives the counts the table shows. “counts”
    includes the findings you have hidden, so a script reading it got other numbers than a person
    looking at the screen. “visible_counts” and “hidden_counts” now stand next to it, with every
    check of the scan, zeros included. “counts” itself has not changed.

0.3.3

  • The plugin no longer does anything at all when WooCommerce is not active. Until now it
    created its own tables on every page load, registered the audit screen and added its WP-CLI
    command even on a site with no WooCommerce – and then showed an empty screen without a word
    of explanation. It now checks first, says so in one sentence on the dashboard, and touches
    nothing. Saved results are left exactly as they were: activate WooCommerce and everything
    comes back.

  • New display name: Merchlint – Catalog Audit for WooCommerce. Only the displayed name
    changed: same plugin, same directory address, same settings, same saved audits. Nothing in
    your shop needs doing, and the screen in your admin menu is where it was.

  • The identifier checks now say when your numbers are kept in another plugin’s field. Both
    checks read WooCommerce’s own GTIN, UPC, EAN or ISBN field. When products hold their number only
    in a field of EAN for WooCommerce, Germanized for WooCommerce, Trusted Shops Easy Integration,
    Google for WooCommerce, Customer Reviews for WooCommerce or Product Feed Manager for WooCommerce,
    the audit now says how many, names the field and
    says plainly which check cannot see those numbers — on the results screen, on the check’s own
    page, in WP-CLI and in the CSV export. Germanized passes its numbers through WooCommerce’s own
    field when that field is empty, so with Germanized active only the duplicate check is affected.
    Nothing is counted differently: no finding appears or disappears, and earlier scans stay
    comparable.

  • A check’s own page now shows what that check could not see. Notes about gaps were only on
    the main results screen, above the list of checks — not next to the findings they explain.

  • “What this audit could NOT check” no longer says “these rules found nothing” about rules that
    ran.
    A rule that missed only part of what it looks at is now listed separately, with a sentence
    of its own.

  • Invisible characters in product codes now show in the evidence. Two codes that differ only
    by a non-breaking space or a zero-width character look the same on screen, so a pair of
    duplicates could show one value twice, with no way to tell which product carries the extra
    character. The evidence now writes each such character as ⟨U+00A0⟩ and similar, on the screen and
    in the CSV export. Clean codes look exactly as before.

  • Three WP-CLI commands now stop on bad input instead of guessing. With a mistyped check code,
    “findings” listed and “export” exported every finding instead of none; an invalid separator in
    “export” ended in a critical error; “cancel” reported success for a scan that does not exist.
    Each of them now says what was wrong.

  • Two WP-CLI outputs now keep gaps apart from findings. The message after “export” counted the
    rows about gaps — what the audit could not check — as findings, so a check that never ran was
    reported as one saved finding. It now counts findings only and names the gap rows separately.
    “status –format=json” now lists the gaps the same way “rule –format=json” does; until now a
    check that did not run simply disappeared from its counts.

  • The advice for missing sales data now points to a button that exists. When WooCommerce’s
    order summary table was empty, the audit told you to run “Regenerate the order lookup tables” in
    Status → Tools, and WooCommerce has no such tool. It now sends you to Analytics → Settings →
    “Import historical data”, and the WP-CLI warning gives the same advice instead of naming a script
    that is not part of the plugin.

  • One request for a review, under the results. It appears once per user after a finished
    audit and goes away for good when you open it or choose “Don’t ask again”. No reward is offered
    and no rating is suggested.

Full changelog on WordPress.org →

Screenshots

The result of the last audit on the first screen you see after logging in: the revenue sitting in
products that can no longer be bought, and how many checks are in each group — Important, Worth
fixing, Clean, Not checked.
The result of the last audit on the first screen you see after logging in: the revenue…
The top of the audit screen: the revenue from products that can no longer be bought, the checks
counted by group, and where to start — the three products with the most money at stake, one row
per product with everything that is wrong with it.
The top of the audit screen: the revenue from products that can no longer be bought, the…
Every check that found something has its own card on the audit screen: what to do about it,
then the first items, each with the evidence in WooCommerce's own words — "Out of stock", not
"outofstock" — and the money at stake.
Every check that found something has its own card on the audit screen: what to do about…
Everything we checked: a bar for each area of the store, then every rule with its count, split
into what came from your own data and what came from your theme or plugins — including the rules
that found nothing, which say "clean" rather than staying silent.
Everything we checked: a bar for each area of the store, then every rule with its count…
What changed since the previous audit — here, findings that disappeared because the store itself
was fixed. When a number moves because a rule of ours got smarter, the screen says so separately.
What changed since the previous audit — here, findings that disappeared because the store…

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best Merchlint alternatives

All abilities-api plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 MCP Adapter MCP Adapter Expose WordPress abilities as Model Context Protocol (MCP) tools, resources, and prompts… by WordPress.org 50K+ ★★★★★★★★★★ No reviews 4 days ago 74
2 SlyTranslate – AI Translation Abilities SlyTranslate – AI Translation Abilities AI translation for WordPress — admin UI, Gutenberg inline, and MCP workflows for external… by Timon 10+ ★★★★★★★★★★ No reviews 2 weeks ago 66
3 SudoWP Radar SudoWP Radar Security auditor for the WordPress Abilities API. Scans registered abilities for… by sudowp <10 ★★★★★★★★★★ No reviews 3 months ago 49
4 ModelGain Agent Readiness Audit ModelGain Agent Readiness Audit Audit whether a WordPress site is discoverable, understandable, and safely operable by AI… by upaccn <10 ★★★★★★★★★★ No reviews 2 days ago 64
5 Tessera for the Abilities API Tessera for the Abilities API Snapshot, audit, and rollback layer for plugins that register abilities via the WordPress… by Ibrahim <10 ★★★★★★★★★★ No reviews 5 months ago 42
6 Agentic Admin Agentic Admin A privacy-first AI Site Reliability Engineer running entirely in the browser via WebLLM and… by Marcel Schmitz <10 ★★★★★★★★★★ No reviews 2 weeks ago 64
7 Npcink Abilities Toolkit Npcink Abilities Toolkit Expose and inspect WordPress Abilities API capabilities for AI hosts and clients, without… by Npcink <10 ★★★★★★★★★★ No reviews 1 week ago 64
8 AbilityGuard – Abilities API Monitor AbilityGuard – Abilities API Monitor Inventory, audit, and monitor WordPress Abilities API usage. by Kushang Tailor <10 ★★★★★★★★★★ No reviews 3 months ago 55
9 HLB Ability Registry for MCP HLB Ability Registry for MCP An admin-curated ability registry for the WordPress Abilities API, with a per-ability… by Jordan Hlebarov <10 ★★★★★★★★★★ No reviews 2 weeks ago 64
10 Agentic Daisy AI Agent Firewall – Approvals, Audit & Undo for MCP Agentic Daisy AI Agent Firewall AI agent firewall for MCP and the Abilities API: hold risky agent writes for your approval… by agenticdaisy <10 ★★★★★★★★★★ No reviews 2 hours ago 64

FAQ

Merchlint: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Oct 20, 2026

Is Merchlint free?

Yes. Merchlint is free to download and use from the official WordPress.org plugin directory.

Is Merchlint safe to use in 2026?

Merchlint is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 6 days ago, and scores 64/100 on our health check.

How many websites use Merchlint?

Merchlint is active on <10 WordPress websites and has been downloaded 702 times since it launched in September 2026. It was downloaded 467 times in the last 30 days.

Does Merchlint work with WordPress 7.1?

Yes. The developer has tested Merchlint up to WordPress 7.1.3, the latest release. It requires WordPress 6.5 or newer.

What PHP version does Merchlint need?

Merchlint requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was Merchlint last updated?

The latest version, 0.3.8, was released on October 14, 2026 (6 days ago).

Who makes Merchlint?

Merchlint is developed and maintained by baltano.

What are the best alternatives to Merchlint?

The most popular alternatives to Merchlint are MCP Adapter (50K+ installs), SlyTranslate (10+ installs) and SudoWP Radar (<10 installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.