---
title: "Every screen"
url: "https://aeoultimate.com/docs/woocommerce/modules/"
description: "Understand what your WooCommerce SEO data can and cannot tell you. Learn the limits of each measurement tool to avoid acting on incomplete information."
published: "2026-08-30T22:21:49+00:00"
modified: "2026-08-30T22:33:47+00:00"
language: "en-US"
site: "AEO Ultimate"
---

Source: https://aeoultimate.com/docs/woocommerce/modules/

AEO Ultimate for WooCommerce

# Every screen, and what it can’t tell you

Each screen in this plugin states its own limits, on the screen, next to the number. This page collects those limits in one place — because knowing what a measurement cannot see is what stops you acting on it wrongly.

## Products Dashboard

Walks your catalogue, names what each product is missing, and generates schema in bulk. Two behaviours worth knowing before you rely on it:

**Automatic meta descriptions are opt-in.** Turn it on and the plugin writes a description for a product, post or page the first time you save it. Existing descriptions are never overwritten.

**Bulk imports deliberately skip generation.** When you upload a CSV or add products programmatically, descriptions are not generated during the upload — that would stall the import and cost a fortune in API calls at exactly the wrong moment. Run **Generate all missing** afterwards instead.

If you see **“SEO Plugin Conflict Detected”**, another plugin is publishing the same output. That is a warning, not a failure — see [Troubleshooting](https://aeoultimate.com/docs/woocommerce/troubleshooting/) for which one wins.

## Schema Detector

Read the small print on this screen

“Only Total Products counts the whole catalogue. The other cards describe the most recently added products this screen scanned, not all of them.”

This matters if you have a large catalogue: a reassuring “12 missing schema” may be 12 out of the 200 most recent products, not 12 out of 8,000. The screen says which number is which.

**Barcodes may not be checked at all.** If your WooCommerce predates the core GTIN field (9.2), the plugin cannot tell “missing” apart from “unreadable”, so it declines to report rather than guess. Upgrade WooCommerce to get that column.

## AI Visibility and citations

The AI Crawler Log proves a bot fetched your pages. It **cannot** prove any of them were used in an answer. This screen asks the answer engines directly instead — running your questions and recording whether you were cited, named or absent.

Results read like *“Ran 40 checks — cited in 12, named in 5, 3 failed”*, with skipped and unfetchable counts alongside.

Why there is no percentage

“There is no share-of-voice percentage here. Answers vary between runs, so a percentage from a handful of samples would imply a precision the data does not have.”

Other tools will show you that percentage. This one declines, for a reason worth agreeing with: ask the same question twice and you can get different answers, so a number derived from a few samples is decoration rather than measurement.

## AI traffic

Where arrivals from AI assistants came from, and how confident that attribution is. *“Shading is certainty, not category”* — a lighter row is a less certain attribution, not a different kind of visitor.

Three limits stated on the screen itself:

- **Unattributed arrivals are shown but never added to the total.** Someone arriving through an app’s in-page browser carries no referrer, so the app cannot be identified — it is recorded because it happened, not counted as if it were known.
- **Some traffic is the plugin itself** — crawler reachability tests, and engines fetching your store because you ran a citation check. That is separated out rather than inflating your numbers.
- **Full-page caching hides crawlers.** WP Rocket, LiteSpeed or Cloudflare APO mean some crawler requests never reach WordPress at all, so they go unlogged. Your real crawler traffic is higher than this screen can show.

That last one is the one to remember. If the numbers look implausibly low and you run page caching, that is why.

## Crawl waste

A crawler has a finite amount of attention for your store. This shows how much went to URLs worth indexing and how much went to filter combinations nobody asked for.

A **crawl trap** is flagged when a URL carries several stacked attribute filters — that is not a page a shopper requested, it is a crawler walking a combination space that expands faster than it can be crawled.

Crawlers are listed **per operator rather than grouped into “AI” and “search”**, because that line does not hold — several operators do both.

Blocking is not deindexing

“Blocking a URL stops crawlers fetching it. It does not take it out of Google. If a URL is already in search results and you block it, it stays.”

This catches people out constantly. To remove a URL from results you need a `noindex` the crawler can actually reach — and blocking it guarantees the crawler never sees the instruction. Same logic applies to sitemaps: excluding a URL from a sitemap stops advertising it, it does not deindex it.

## URL health

Two things search engines and shoppers hit that you cannot see from the catalogue: URLs that no longer exist, and category pages with nothing in them. When a visitor hits a dead URL, this sends them to the right product or its category instead of a dead end.

Two important caveats it states plainly:

- **Without Search Console connected, nothing here knows whether a page gets traffic.** A category listed as unused may simply be one nothing has linked to yet.
- **“Not actually empty — a stock setting is hiding them.”** A category can look empty because out-of-stock products are hidden, not because it has no products. Check that before deleting anything.

## Feed import

Imports run in the background through **Action Scheduler**, which normally ships with WooCommerce. If you see *“Action Scheduler is not available, so a feed cannot be imported in the background”*, something has disabled or removed it — usually an aggressive optimisation plugin.

Rows get skipped for stated reasons rather than failing silently:

“a later row for the same product”

Duplicate — the last one wins

“no description in the feed”

The column was empty

“description too short to compare”

A handful of words cannot be scored honestly

## Manufacturer scan

Asks an AI provider to find each product on its manufacturer’s website. Products whose brand has no confirmed manufacturer website are **held back rather than attempted** — a scan without one cannot succeed, so running it would only spend your API budget to fail.

The screen tells you the cost and the odds before you start, and says outright: **“It will not find everything.”** Products already answered are skipped, so re-running is cheap.

## Local store

Publishes Store schema from your address. **Street, city and country are all required** — a business that cannot be located cannot be published, so an incomplete address saves but publishes nothing. The message says so rather than failing quietly.

If you use WooCommerce Point of Sale, its values can be copied in, but only into fields that are **empty here**. Nothing you have typed is ever overwritten, and nothing publishes until you save.

If another plugin already publishes Store schema, leave this module off — *“This module is off, so nothing is duplicated.”* Switching it on means turning the other one off.

## The AEO score, and what it cannot see

The score reads your WooCommerce shipping zones, your published policy pages and your Company profile. **Missing policies are the most common reason for a low score** — and the easiest to fix.

It also checks whether product schema is emitting and whether a Merchant Center is connected to catch price and stock mismatches.

Its stated limit

“This measures signals that are machine-readable on your own site. It cannot see your actual customer service quality, your off-site reputation…”

A perfect score means your signals are legible, not that your store is good. Those are different claims and the plugin refuses to conflate them.

One methodological note worth understanding: **a User-Agent is a name anyone can type.** “ChatGPT-User” in particular gets impersonated, because sites let it past their firewalls. That is why a referrer scores higher than a tag as evidence — when a referrer is present it is the strongest signal available and needs no inference at all.

## “You do not have permission”

Several screens are capability-gated. If a screen refuses you, an administrator can grant access per role — which is the right fix, rather than making someone a full administrator to see one report.