Title: Visibility &#8211; Lightweight SEO, AEO and GEO for Search and AI
Author: Fernando Tellado
Published: <strong>8 de junio de  2026</strong>
Last modified: 3 de octubre de  2026

---

Buscar plugins

![](https://ps.w.org/native-aeo-pack/assets/banner-772x250-es.jpg?rev=3628420)

![](https://ps.w.org/native-aeo-pack/assets/icon-256x256.png?rev=3583628)

# Visibility – Lightweight SEO, AEO and GEO for Search and AI

 Por [Fernando Tellado](https://profiles.wordpress.org/fernandot/)

[Descargar](https://downloads.wordpress.org/plugin/native-aeo-pack.2.9.1.zip)

[Vista previa en vivo](https://es-ar.wordpress.org/plugins/native-aeo-pack/?preview=1)

 * [Detalles](https://es-ar.wordpress.org/plugins/native-aeo-pack/#description)
 * [Valoraciones](https://es-ar.wordpress.org/plugins/native-aeo-pack/#reviews)
 *  [Instalación](https://es-ar.wordpress.org/plugins/native-aeo-pack/#installation)
 * [Desarrollo](https://es-ar.wordpress.org/plugins/native-aeo-pack/#developers)

 [Soporte](https://wordpress.org/support/plugin/native-aeo-pack/)

## Descripción

**Visibility** is the SEO essentials without the suite: meta tags, canonical URLs,
Open Graph, schema, robots rules, redirects, a robots.txt editor, llms.txt, Markdown
for AI agents and control of the native XML sitemap, in about 482 KB.

 * **Free, all of it.** No Pro version, no upsell banners, no account.
 * **No tracking.** Nothing phones home.
 * **Light.** Built on WordPress core APIs, with no database tables of its own and
   no cron jobs.
 * **Easy to switch to.** One-click import from Yoast SEO, Rank Math, All in One
   SEO, SEOPress, The SEO Framework, Slim SEO and SureRank.
 * **Ready for AI search (AEO and GEO).** Clean metadata, llms.txt and a Markdown
   version of every page, for ChatGPT, Perplexity, Gemini and other AI assistants
   to read and cite.

#### Four modules, switch on only what you need

**Discover: meta tags, schema and AI discovery**

 * Meta title and meta description, with templates and per-post and per-term overrides.
 * Canonical URLs on entries and on every listing.
 * Open Graph and Twitter Cards.
 * JSON-LD schema: Article, BreadcrumbList, Person, ProfilePage, FAQPage and Site
   Identity (Organization, LocalBusiness or Person). Choose the type per content
   type, or None to leave it to another plugin.
 * Author details (job title, topics and credentials), shown with the Author details
   block or the `[visibility_author_details]` shortcode. Each author can pick a 
   page as their profile page.
 * AI discovery: llms.txt, llms-full.txt, a Markdown version of each page and a 
   robots.txt editor with AI crawler rules.
 * Respect nosnippet: content set to nosnippet stays out of the llms.txt summaries,
   llms-full.txt, Markdown and FAQPage.
 * A filter for content that has not been updated in a while.

**Indexing: noindex and clean URLs**

 * noindex, nofollow, noimageindex and nosnippet, in bulk by content type and taxonomy
   or one by one.
 * Rules for search results, 404, date, paginated, attachment and author archives,
   and for RSS feeds.
 * Keep part of a page out of Google’s snippets with `data-nosnippet`, from the 
   block editor or the classic editor.
 * Remove the base of any taxonomy, choose a WooCommerce product URL structure and
   redirect attachment pages to their parent, with 301 redirects from the old URLs.
 * Quick Edit, bulk actions and a Visibility column on your post and term lists.

**Sitemaps: control of the native XML sitemap**

 * Works on the sitemap WordPress already generates, instead of adding a second 
   one.
 * Exclude post types, taxonomies, users, posts and terms. Noindexed content stays
   out automatically.
 * Add URLs of pages served outside WordPress.
 * lastmod dates, and 301 redirects from the sitemap URLs of your previous SEO plugin.
 * Keeps `/wp-sitemap.xml` answering 200 on a site with no blog posts, which older
   WordPress versions got wrong.

**Redirects: 301, 302, 307 and 410**

 * Managed from the admin: no .htaccess editing, no custom table, no 404 log.
 * CSV import and export.
 * A suggested redirect when you delete a post.
 * Take over the redirects WordPress creates when a slug changes.

#### Good to know

 * Per-post controls live in the Block Editor sidebar and in a Classic Editor meta
   box, with a live preview of your Google result, your social card and an AI answer.
 * The **Tools** tab groups the importers and exports your configuration as JSON
   for another site.
 * AI agents can edit Visibility’s SEO fields too: EMCP Tools exposes them over 
   MCP, for example while editing a page in Elementor.
 * Visibility replaces a full SEO plugin instead of running next to one, and warns
   you if another one is active.

### Perfect companions

Visibility works on its own. These plugins pair well with it:

 * [VigIA](https://wordpress.org/plugins/vigia/): see which AI crawlers visit your
   site. Both plugins share the Site Identity schema without duplicating it.
 * [Share Buttons & AI-powered Summaries](https://wordpress.org/plugins/ai-share-summarize/):
   share buttons for social networks and AI assistants.
 * [AI Content Signals](https://wordpress.org/plugins/ai-content-signals/): tell
   AI systems how they may use your content (training, search or both) through `
   robots.txt`.
 * [Vigilante](https://wordpress.org/plugins/vigilante/): all-in-one WordPress security:
   firewall, login protection, security headers, 2FA and file integrity monitoring.

### External services

This plugin connects to **Gravatar** (operated by Automattic Inc.) to check whether
an author has a public avatar, so it can be used in Open Graph (`og:image`) and 
in Person schema (`image`).

 * **What is sent:** an MD5 hash of the author email, in a HEAD request to `https://
   www.gravatar.com/avatar/{hash}?d=404`. The email address itself is never sent.
 * **When:** on a single post or page with Open Graph on and no other image available(
   social image, featured image, WooCommerce gallery image or image in the content),
   and on an author archive with Person schema on.
 * **How often:** the result is cached for 24 hours, so later page loads do not 
   contact Gravatar again.

It is the same lookup WordPress uses for comment avatars. Gravatar’s privacy policy:
https://automattic.com/privacy/

### Performance and security

“Lightweight” should be a measurement, not a slogan. These are the real numbers 
for this release, refreshed on every update.

#### Footprint (2.9.1)

 * **Download size:** about 489 KB zipped.
 * **Codebase:** 50 PHP files, roughly 38,000 lines of PHP, plus 3,400 lines of 
   JavaScript and 2,600 of CSS, loaded only where they are used.
 * **No custom database tables.** One option for the settings and native WordPress
   meta for per-post, per-term and per-author values.
 * **No cron jobs.**
 * **No external HTTP calls**, except the cached Gravatar check described above.
 * **Built on WordPress core APIs** (`wp_robots`, `wp_sitemaps_*`, `register_post_meta`,`
   get_canonical_url`, the Block Editor).

#### Security

 * **Every release passes a security audit** of the changed code before it ships.
 * **Small attack surface:** no custom tables, no unauthenticated endpoints, escaped
   output, validated input and prepared database queries.
 * **No telemetry and no data collection.**

### Support

Need private support or custom development?

Do you need one-on-one help, priority troubleshooting, or a custom feature, integration,
or tweak built specifically for your site? I offer private support and custom development.
Just [contact me](https://es-ar.wordpress.org/plugins/native-aeo-pack/native-aeo-pack@ayudawp.com?output_format=md)
and tell me what you need.

Need help or have suggestions?

 * [Official website](https://visibility.quest)
 * [WordPress support forum](https://wordpress.org/support/plugin/native-aeo-pack/)
 * [YouTube channel](https://www.youtube.com/AyudaWordPressES)
 * [Documentation and tutorials](https://ayudawp.com)

Love the plugin? Please leave us a 5-star review and help spread the word!

### About AyudaWP

We are specialists in WordPress security, SEO, AI and performance optimization plugins.
We create tools that solve real problems for WordPress site owners while maintaining
the highest coding standards and accessibility requirements.

## Capturas

[⌊Overview tab — the four modules, on or off.⌉⌊Overview tab — the four modules, 
on or off.⌉[

Overview tab — the four modules, on or off.

[⌊Discover tab — meta tags, Open Graph and schema, with the section navigation of
the tab on the left.⌉⌊Discover tab — meta tags, Open Graph and schema, with the 
section navigation of the tab on the left.⌉[

Discover tab — meta tags, Open Graph and schema, with the section navigation of 
the tab on the left.

[⌊Indexing tab — noindex and nofollow in bulk, by content type and taxonomy.⌉⌊Indexing
tab — noindex and nofollow in bulk, by content type and taxonomy.⌉[

Indexing tab — noindex and nofollow in bulk, by content type and taxonomy.

[⌊Sitemaps tab — what goes into the sitemap and what stays out.⌉⌊Sitemaps tab — 
what goes into the sitemap and what stays out.⌉[

Sitemaps tab — what goes into the sitemap and what stays out.

[⌊Post list — the Visibility column and Quick Edit.⌉⌊Post list — the Visibility 
column and Quick Edit.⌉[

Post list — the Visibility column and Quick Edit.

[⌊Redirects tab — 301, 302, 307 and 410, with CSV import and export.⌉⌊Redirects 
tab — 301, 302, 307 and 410, with CSV import and export.⌉[

Redirects tab — 301, 302, 307 and 410, with CSV import and export.

[⌊Editor — the entry as a Google result, a social card and an AI Overview, live 
as you type.⌉⌊Editor — the entry as a Google result, a social card and an AI Overview,
live as you type.⌉[

Editor — the entry as a Google result, a social card and an AI Overview, live as
you type.

[⌊Tools tab — importers from other SEO plugins, and configuration export.⌉⌊Tools
tab — importers from other SEO plugins, and configuration export.⌉[

Tools tab — importers from other SEO plugins, and configuration export.

## Bloques

Este plugin provee 1 bloque.

 *   Author details Shows the job title, topics of expertise, credentials and profile
   links from the author's user profile.

## Instalación

 1. Upload the `native-aeo-pack` folder to `/wp-content/plugins/` or install through
    the Plugins screen.
 2. Activate the plugin.
 3. Open **Visibility** in the admin sidebar to review the active modules and tune 
    the defaults.
 4. Done. Meta tags, robots directives and sitemap filters are applied automatically
    based on your settings.

## Preguntas frecuentes

### Is Visibility an alternative to Yoast, Rank Math, All in One SEO or SEOPress?

For most sites, yes. It covers titles, meta descriptions, canonical URLs, Open Graph,
schema, robots rules, redirects and the sitemap, and it imports your data from those
plugins in one click.

It has no keyword analysis or content scoring. If you need those, keep your current
plugin: Visibility is not meant to run alongside another SEO plugin.

### How do I migrate from another SEO plugin?

 1. Install and activate Visibility. Your old plugin can be active or already deactivated.
 2. Open the **Tools** tab. The import card shows what it found, field by field.
 3. Import, check a few entries and deactivate the old plugin.

What to expect:

 * **From:** Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, 
   Slim SEO and SureRank.
 * **What comes over:** titles, meta descriptions, canonical URLs and robots rules
   of posts and terms, social titles, descriptions and images, schema types, verification
   codes and title templates.
 * **Site identity:** entity type (with its organization or business type), name,
   logo, social profiles, contact, address and company details from SEOPress, Rank
   Math and Yoast SEO. Coordinates, price range and opening hours from Rank Math.
 * **More than one plugin:** the one in use takes each value (active first, then
   installed, then the one set up last), and it decides the entity type.
 * **Redirects:** from Rank Math, All in One SEO, SEOPress and the Redirection plugin.
 * **Templates:** variables such as `%%title%%` are converted. One that needs a 
   custom field or a date is left where it is.
 * **Safe to repeat:** nothing is deleted from the old plugin, what you already 
   set in Visibility is kept, and running it again never duplicates anything.

### I used Native SEO Meta Tags, NoIndexer or Sitemap Customizer. How do I migrate?

Install and activate Visibility, open the **Tools** tab and click **Import now**.
The import copies your data and never deletes it, and what you already set in Visibility
is kept. Then deactivate the old plugins.

### Is Visibility free? Is there a Pro version?

It is free. There is no Pro version, no add-ons and no upsell banners. Everything
on this page is in the plugin you download, including the redirects, the importers,
the WooCommerce URL structures and the AI discovery files. No account and no license
key.

### Will Visibility slow down my site?

It is built not to: no database tables of its own, no cron jobs and no external 
calls apart from a cached Gravatar check. Most of the work is done by WordPress 
core functions. The numbers of each release are in “Performance and security”.

### Does Visibility track me or send my data anywhere?

No. There is no telemetry, no usage analytics and no account. The only outside request
it can make is the cached Gravatar check described in “External services”, which
sends a hash of the author email and never the address.

### Are there any database tables?

No. Settings live in one WordPress option, and per-post, per-term and per-user values
in native WordPress meta. Deleting the plugin removes the option and keeps those
values, so reinstalling does not lose your work.

### Can I disable individual modules?

Yes. The **Overview** tab switches Discover, Indexing, Sitemaps and Redirects on
and off independently.

### What are AEO and GEO, and does Visibility do them?

AEO (answer engine optimization) and GEO (generative engine optimization) mean being
found, understood and cited by AI assistants such as ChatGPT, Perplexity, Claude
and Google’s AI answers.

Nobody outside those companies knows exactly how they choose their sources, so Visibility
works on what you can check yourself:

 * **Freshness:** a filter and a Last updated column for content that has gone stale.
 * **Authorship:** author details in Person schema and on the page.
 * **Questions and answers:** FAQPage from the Q&A you have published.

No plugin can promise you a citation.

### How does Visibility help with AI (AEO / GEO)?

It gives AI search and assistants clean signals to read:

 * Site Identity schema: who is behind the site.
 * llms.txt and llms-full.txt: a Markdown index of your content.
 * A Markdown version of every page at its `.md` URL.
 * A robots.txt editor to allow or block AI crawlers by name.

The companion plugin VigIA shows which AI crawlers actually visit.

### Does Visibility generate llms.txt and a Markdown version of my pages?

Yes, both, generated on the fly from your content, so there is nothing to regenerate
when you publish:

 * `/llms.txt`: a Markdown index of your site, by content type and taxonomy, with
   WooCommerce-aware entries.
 * `/llms-full.txt`: the long version.
 * Every entry also answers at its own `.md` URL.

Keep expectations realistic: llms.txt is a proposed convention, not a standard. 
Google has said it ignores it and no major AI vendor has confirmed support.

### Does Visibility add schema markup and structured data?

Yes, as a single JSON-LD graph, with per-post and per-term overrides:

 * Article, with the type chosen per content type (BlogPosting, NewsArticle and 
   others).
 * BreadcrumbList.
 * Person and ProfilePage for authors.
 * FAQPage from Details and Accordion blocks.
 * Site Identity (Organization, LocalBusiness or Person, and WebSite) on the home
   page.

It does not add Recipe, Product, Event or HowTo. Those need data that the plugins
owning it already mark up, such as WooCommerce for Product.

### Does Visibility add local business (local SEO) schema?

Yes. In **Discover > Site Identity** pick **Local business** as the entity type:

 * Business type: Restaurant, Dentist, Store and many more, or the generic LocalBusiness.
 * Address and coordinates.
 * Phone and email.
 * Price range.
 * Opening hours, with split hours.

It is one node on the home page, shared with the rest of the schema. It is not a
store locator and it does not manage reviews.

### The Rich Results Test does not show my organization. Why?

The test only lists an organization that carries a contact detail. Add an email 
or a phone in **Discover > Site Identity** and it shows up.

Without one, the markup is still valid and Google still reads the name, the logo
and the profiles. You can see it in the page source or in validator.schema.org.

### Can I stop Visibility from writing schema and use a specialised plugin instead?

Yes, at three levels:

 * **Everything:** uncheck **JSON-LD: Article and BreadcrumbList** in the Discover
   tab.
 * **One content type:** set its schema type to **None**.
 * **One entry:** pick **None** in its Schema type field.

None adds no Article, BreadcrumbList or FAQPage to that content. Site Identity is
a separate setting and keeps working. Developers can also use the `native_aeo_pack_schema_graph`
filter.

### Does Visibility mark up author pages as ProfilePage?

Yes. The author archive of anyone with at least one published post gets a ProfilePage
with their Person: job title, topics, credentials and profiles.

An author can also pick a page, such as About me, as their profile page, and that
page becomes their ProfilePage. The Author details block or the `[visibility_author_details]`
shortcode shows those fields on the page.

### Does Visibility control the XML sitemap?

Yes. It customizes the sitemap WordPress already generates at `/wp-sitemap.xml`,
so there is no second sitemap, no cache to clear and nothing to rebuild:

 * Exclude post types, taxonomies, single posts and terms, and users by role.
 * Noindexed content stays out automatically.
 * Add URLs of pages that are not WordPress content.
 * Set lastmod dates and the number of URLs per sitemap.
 * The sitemap URLs of your previous SEO plugin (`sitemap.xml`, `post-sitemap.xml`)
   are 301-redirected to the native one.

### My sitemap looks fine in the browser but Google says it could not be read. Why?

Because it answers with a 404 status while showing the right file, and Google discards
any sitemap that does not answer 200. It happens on sites with no published blog
posts: a shop, a portfolio, a site made of pages only.

Whether it affects you depends on your WordPress version: it was fixed in WordPress
7.1.1, from a report that came out of this plugin. On older versions, Visibility
answers `/wp-sitemap.xml` with a 200 itself, with a switch for it in the Sitemaps
tab. A sitemap with nothing in it still answers 404, as it should.

### My old sitemap URLs redirect to a page that does not exist. What is wrong?

Something has switched off the sitemap WordPress generates, so the old address has
nowhere to go. The usual causes:

 * A snippet that sets `wp_sitemaps_enabled` to false, in `functions.php` or in 
   a snippets plugin.
 * Another SEO plugin serving a sitemap of its own.
 * “Discourage search engines from indexing this site” ticked in Settings > Reading.

Visibility checks before redirecting and leaves the old address alone in that case.

### Does Visibility manage redirects? Do I need .htaccess or a separate plugin?

Redirects are included and you need neither:

 * 301, 302, 307 and 410, with no `.htaccess` editing and no custom table.
 * CSV import and export.
 * A suggested redirect when you delete a post.
 * Take over or remove the redirects WordPress creates when a slug changes.

It does not log 404 errors, on purpose: that needs a table and a cleanup job. The
companion plugin VigIA records the 404s that crawlers hit.

### Does Visibility work with Elementor, Divi and other page builders?

Yes. The Visibility panel shows in the Block Editor sidebar, and as a meta box on
the classic editing screen when a builder replaces the block editor.

With Elementor, the Markdown version of a page is built from the Elementor layout,
so AI agents get the real text.

### Does Visibility work with WooCommerce?

Yes:

 * Products, categories, tags and attributes get titles, descriptions, social tags,
   schema and robots rules like any other content.
 * The product gallery image is a fallback for `og:image`.
 * llms.txt is WooCommerce-aware.
 * Cleaner product and category URLs: see “Can I clean up my WooCommerce URLs?”.

It does not add Product schema: WooCommerce already does, with price, stock and 
reviews.

### Does it work with custom post types and custom taxonomies?

Yes, with all public post types and taxonomies. WooCommerce attributes need “Enable
Archives?” switched on in their settings.

### Can I preview how my page will look on Google, social networks and AI answers?

Yes. The Visibility panel has a live preview with three views: your Google result,
your social card and an AI Overview citing your page. It updates as you type.

It shows what goes into your HTML, not a score: the final look depends on each platform.

### Can I change how the automatic title tag is composed?

Yes, with a template in the Discover tab. Combine these placeholders with your own
words:

 * `%%title%%`: the title of the page.
 * `%%sep%%`: the separator you chose.
 * `%%sitename%%` and `%%tagline%%`.
 * `%%page%%`: the page number.
 * `%%taxonomy%%`: the first category of the entry, or the product category of a
   product.

Example: `%%title%% %%sep%% %%sitename%%`.

 * The front page, each content type and each taxonomy can have a template of their
   own.
 * A Meta title typed on an entry or a term always wins.
 * The meta description works the same way, with one more placeholder: `%%excerpt%%`.
 * Custom fields and dates are not available, on purpose: they need a query on every
   page.
 * A theme that prints its own title tag, without the WordPress title API, is not
   reached by the template.

### How do I set noindex on a single post?

Open the **Visibility** panel in the editor sidebar, or the Visibility meta box 
in the Classic Editor, and tick noindex.

You can also use Quick Edit or Bulk Actions in the post list, and in the category,
tag and taxonomy lists.

### How do I keep part of a page out of Google’s snippets?

 * **Block editor:** turn on **Keep out of search snippets** in the Advanced panel
   of a Group block, or apply the format of the same name to selected words.
 * **Classic editor:** use the button of the same name in the Visual toolbar, or`
   nosnippet` in the Text tab.

Visibility also leaves that text out of the descriptions and summaries it generates.
The Markdown version and llms-full.txt keep the whole page.

The mark on a Group stops applying if you deactivate Visibility. The one on words
stays in the content.

### What does Respect nosnippet do?

nosnippet tells Google to show no snippet and not to use the text in AI Overviews
and AI Mode. Respect nosnippet (Discover tab) applies the same to the files Visibility
generates. With it on, an entry set to nosnippet:

 * is listed in llms.txt by title and link only,
 * has no text in llms-full.txt,
 * has no Markdown version,
 * gets no FAQPage.

It is on in new installs. On an update it turns on only if that changes nothing 
your site already serves.

### Does my robots.txt always work, even on a subdirectory install?

Yes. WordPress alone can answer 404 at `/robots.txt` on a subdirectory install or
when its rewrite rules are stale. Visibility serves `/robots.txt` itself, so it 
always loads.

If another plugin writes a physical `robots.txt`, Visibility adds its rules to that
file in a block of its own and leaves the rest untouched. `/?robots=1` is redirected
to `/robots.txt`.

### Does Visibility work on WordPress Multisite?

Yes, and each site keeps its own settings:

 * On a subdomain or mapped-domain network, each site serves its own `/robots.txt`
   and `/llms.txt`.
 * On a subdirectory network there is one `robots.txt` at the domain root, owned
   by the main site.
 * A physical file is written only where it belongs: a single site, or the main 
   site of a subdirectory network.
 * Is a physical `robots.txt` in the network root giving every site the same rules?
   On Apache and LiteSpeed, a button in the Discover tab routes `/robots.txt` through
   WordPress. Only a network administrator sees it.
 * On nginx, the screen gives you the directive for whoever administers the server.

Activate Visibility per site or for the whole network.

### Where does Visibility store per-post overrides?

In standard WordPress post meta (`_native_aeo_pack_*` keys). Term overrides go to
term meta and author fields to user meta.

### Can I copy my configuration to another site?

Yes. The **Tools** tab exports your settings and the per-entry and per-term values
as one JSON file, and imports it on another site.

 * Content is matched by slug, so it works between sites that are not clones.
 * On import, choose between filling in only what is empty (the default) and replacing
   what is there.
 * Nothing is created: values land on content that already exists.
 * Redirects have their own CSV export in the Redirects tab. Author profile fields
   are not included.

### How do I know which content has gone stale?

Set a threshold in the Discover tab (90 days by default). Your content lists get
a “Not updated in 90 days” filter with a count, and a sortable **Last updated** 
column. Set it to 0 to switch both off.

Why it matters: an [Ahrefs analysis of 17 million citations](https://ahrefs.com/blog/do-ai-assistants-prefer-to-cite-fresh-content/)
found that the pages AI assistants cite were updated more recently, on average, 
than the ones ranking in Google’s organic results. Google’s AI Overviews were the
exception.

### Can I clean up my WooCommerce URLs?

Yes, in the Indexing tab:

 * Remove the base of each taxonomy on its own: `/product-category/`, `/product-
   tag/`, `/brand/`.
 * Choose a product URL structure WooCommerce does not allow: the product slug alone(`/
   my-product/`), the category and the slug (`/t-shirts/my-product/`) or the full
   category path.
 * Old URLs are 301-redirected to the new ones, so a product is never reachable 
   at two URLs.

Good to know:

 * A page or a term that already uses a path keeps it.
 * Removing a base adds rewrite rules for every term. The settings screen tells 
   you how many before you save.
 * If you use Premmerce Permalink Manager, import its structure from the Tools tab,
   check your URLs and deactivate it.

### Does Visibility generate FAQ structured data?

Yes, from content you already have. Switch on **JSON-LD: FAQPage** in the Discover
tab and Visibility reads the Details and Accordion blocks of your entries: the question
from the heading, the answer from the content.

It is off by default, because a Details block is not always a question. It helps
AI assistants read your Q&A. It does not bring back Google’s FAQ rich results, retired
in 2023.

### Is there an API for plugins and themes?

Yes.

Read what Visibility resolved:

 * `Native_AEO_Pack_Frontend_Robots::is_noindex( $post_id )`, `is_nofollow( $post_id)`,`
   is_term_noindex( $term_id, $taxonomy )` and `is_term_nofollow( $term_id, $taxonomy)`.
 * `Native_AEO_Pack_Settings::get( $group, $key, $default )`.
 * `Native_AEO_Pack_Settings::is_robots_ai_blocking()` and `get_robots_ai_agents()`.

Change what is printed, with six filters:

 * `native_aeo_pack_schema_graph` (`$graph`, `$context`, `$object`): the JSON-LD
   nodes before they are printed. `$context` is `article`, `person` or `identity`.
   Return an empty array to print nothing.
 * `native_aeo_pack_identity_business_types` (`$types`): the schema.org types offered
   for a local business identity.
 * `native_aeo_pack_document_title` (`$title`): the Meta title before it reaches`
   <title>`. Return plain text, which is escaped afterwards, or an empty string 
   to hand the title back to the theme.
 * `native_aeo_pack_canonical_url` (`$url`, `$object`): the canonical of a listing.
   Return an empty string to print none. Single entries keep the core `get_canonical_url`
   filter.
 * `native_aeo_pack_meta_description` (`$description`): the final description, used
   in the meta tag, Open Graph, the Twitter card and the schema.
 * `native_aeo_pack_og_image` (`$image`, `$post`): the image chosen for a single
   entry.
 * `native_aeo_pack_schema_faq_pairs` (`$pairs`, `$post`): the question and answer
   pairs before they become FAQPage. Return an empty array to skip it.

## Reseñas

![](https://secure.gravatar.com/avatar/abf1495ed038aeca43d89aa1a65c3e93378024546f99da291a9913bed7b7be85?
s=60&d=retro&r=g)

### 󠀁[Lightweight and new default for our sites](https://wordpress.org/support/topic/lightweight-and-new-default-for-our-sites/)󠁿

 [Juanzo](https://profiles.wordpress.org/jmzolezzi/) 22 de septiembre de 2026 1 
respuesta

Finally a lightweight SEO plugin that does it's job properly without bloating.Using
it on our main domain and default for all new sites.Compatible with EMCP Tools to
do mass SEO audits and changes using IA 🙂 Only small suggestion, maybe add an optional
setting to move Visibility under Settings, as for example Slim SEO does by default,
to keep visual impact minimal hehe

![](https://secure.gravatar.com/avatar/baa244b92e9350da57a84916e049301d39bf59973cf0c72efcd0a2f42bc3389a?
s=60&d=retro&r=g)

### 󠀁[¡Liviano, veloz, con funcionalidades Pro… y gratis!](https://wordpress.org/support/topic/liviano-veloz-con-funcionalidades-pro-y-gratis/)󠁿

 [peludikus38](https://profiles.wordpress.org/peludikus38/) 19 de septiembre de 
2026 1 respuesta

Después de años de uso, decidí quitar Rank Math después de leer el amplio y detallado
estudio que el autor de Visibility recién publicó en su sitio web, titulado: "¿Qué
plugin de SEO es más ligero y que consume menos recursos?" (recomiendo leerlo). 
Allí se puede constatar, a través de datos reales, cuales son las sustanciales diferencias
que hay entre Visibility y otros conocidos plugins de SEO. Visibility es un plugin
liviano y veloz, con funcionalidades Pro, que aporta todo lo necesario para el SEO
en estos tiempos de IA. ¡Mil gracias y muchas bendiciones!

![](https://secure.gravatar.com/avatar/61f65f3fd455c819f0ab19857da529d9560f6e653e3c75367a2dbd4b2a904c90?
s=60&d=retro&r=g)

### 󠀁[Sencillez y utilidad al 100%](https://wordpress.org/support/topic/sencillez-y-utilidad-al-100/)󠁿

 [abrahamcb](https://profiles.wordpress.org/abrahamcb/) 30 de julio de 2026 1 respuesta

Para que quede claro lo que me ha gustado, he quitado Rankmath SEO pro y he puesto
este sencillo y práctico plugin de Fernando Tellado. 100% optimizado para el SEO
sin recargar ni agregar cosas innecesarias. Y, lo mejor, no veía el mapa del sitio
y utilicé el soporte y Fernando me contestó a los 5 minutos. Más no se puede pedir.
Al final no era problema del plugin sino de mi cahé. ¡Bravo por todo!

![](https://secure.gravatar.com/avatar/40c502f922f4e406a00b0693c39d894b48bd36b524d42b57d13ec40e1cffef90?
s=60&d=retro&r=g)

### 󠀁[Un buen plugin si no te quieres complicar la vida.](https://wordpress.org/support/topic/un-buen-plugin-si-no-te-quieres-complicar-la-vida/)󠁿

 [bernaldigital](https://profiles.wordpress.org/bernaldigital/) 1 de julio de 2026
1 respuesta

Llevo como 15 años en el tema de marketing y desarrollo web, y después de trabajar
con Yoast y otros plugins que al final es un lío de opciones que cada vez valen 
menos, este plugin pone lo que es útil y necesario en tu web para que sea entendible
y te puedes dedicar a lo importante. Además, el soporte es muy rápido si necesitas
algo.

![](https://secure.gravatar.com/avatar/b293ae2eada0abc7dba78cfc2563789b870536f7f5d68f4d3605de13ce3e9ef0?
s=60&d=retro&r=g)

### 󠀁[The perfect SEO plugin](https://wordpress.org/support/topic/the-perfect-seo-plugin-4/)󠁿

 [Lidia Marbán](https://profiles.wordpress.org/webvillalba/) 23 de junio de 2026

Perfect SEO plugin for anyone who wants essential SEO features without bloat. Lightweight,
fast, and fully integrated with WordPress core. Includes everything needed for modern
SEO, AEO, and AI visibility.

![](https://secure.gravatar.com/avatar/5b0a1b43796cabd58557441ad319e078e81a1cf7020562e73b1c377da0d5bd37?
s=60&d=retro&r=g)

### 󠀁[Seems to be the new thing](https://wordpress.org/support/topic/seems-to-be-the-new-thing/)󠁿

 [Héctor Tellado](https://profiles.wordpress.org/hectortellado/) 23 de junio de 
2026

From what i've seen it has a lot already and apparently it plans to be a bigger 
one having pro features from other plugins for free so definitely giving it a try
and prob gonna be my new SEO plugin from now on

 [ Leer todas las 6 reseñas ](https://wordpress.org/support/plugin/native-aeo-pack/reviews/)

## Colaboradores y desarrolladores

“Visibility – Lightweight SEO, AEO and GEO for Search and AI” es un software de 
código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

 *   [ Fernando Tellado ](https://profiles.wordpress.org/fernandot/)
 *   [ Ayuda WordPress ](https://profiles.wordpress.org/ayudawp/)

“Visibility – Lightweight SEO, AEO and GEO for Search and AI” ha sido traducido 
a 2 idiomas. Gracias a [los traductores](https://translate.wordpress.org/projects/wp-plugins/native-aeo-pack/contributors)
por sus contribuciones.

[Traduce “Visibility – Lightweight SEO, AEO and GEO for Search and AI” a tu idioma.](https://translate.wordpress.org/projects/wp-plugins/native-aeo-pack)

### ¿Interesado en el desarrollo?

[Revisa el código](https://plugins.trac.wordpress.org/browser/native-aeo-pack/) ,
echa un vistazo al [repositorio SVN](https://plugins.svn.wordpress.org/native-aeo-pack/),
o suscríbete al [log de desarrollo](https://plugins.trac.wordpress.org/log/native-aeo-pack/)
por [RSS](https://plugins.trac.wordpress.org/log/native-aeo-pack/?limit=100&mode=stop_on_copy&format=rss).

## Registro de cambios

#### 2.9.1

An organization with a phone number no longer appears twice in the Google Rich Results
Test, the second time as a local business with warnings. The phone now goes in a
contact point. A local business and a person are unchanged.

 * Fix: An organization with a phone number showed up twice in Google’s Rich Results
   Test, once as an organization and once as a local business, the second with two
   warnings for the address and the image that Google asks of a business with premises.
   It happened with every organization type, the generic Organization included, 
   because Google reads a `telephone` written on the organization itself as the 
   sign of a local business; with the email alone, or with the phone inside a contact
   point, it lists the organization only. The phone of an organization is now written
   in a `contactPoint` (customer service), which Google also documents for an organization,
   and the test lists the organization alone. A local business and a person keep
   the `telephone` on the entity. This changes the markup of every organization 
   that has a phone: `telephone` is no longer on the entity and `contactPoint` is.

#### 2.9.0

Site Identity adds Local business and Organization types, email, phone, address 
and company details. The importer brings them from SEOPress, Rank Math and Yoast,
choosing the plugin in use. The import table is clearer.

 * New: Local business as a Site Identity type. Pick the business type (Restaurant,
   Dentist, Store and more than a hundred and thirty other schema.org types, listed
   in words, or the generic LocalBusiness) and fill in the address, the coordinates,
   the price range and the opening hours, with two time ranges a day for split hours.
   It is written as one node, the same `#identity` the Article and Person graphs
   point to, so the organization is not printed twice.
 * New: An organization can carry its own type, which is what Google asks for (the
   most specific one that fits): Corporation, Online store, Online business, NGO,
   News media organization, Government organization, a school or a college, a sports
   team and some twenty more, or the generic Organization.
 * New: Contact and company details in Site Identity: email and phone for any type
   and, for an organization or a local business, the postal address, legal name,
   VAT ID, founding date and number of employees. All are optional and an empty 
   one is left out of the markup. Google’s Rich Results Test only lists an organization
   that carries a contact detail such as an email or a phone, so an identity made
   of a name, a logo and its profiles was valid and read, and still did not show
   up in that test.
 * New: The importer brings the site identity from SEOPress, Rank Math and Yoast
   SEO: entity type with its organization or business type, name, description, logo,
   social profiles, email, phone, address and company details, and from Rank Math
   also the coordinates, price range and opening hours. A field is imported only
   while yours is still empty, and only what the plugin itself prints for that entity:
   a Person carries no address or company details, a Yoast Person is the WordPress
   user it is linked to (its name, bio and profiles), SEOPress with its Knowledge
   Graph off brings nothing, and the opening hours, price range and coordinates 
   of Rank Math come over only for a local business, because it ships a placeholder
   week of 09:00 to 17:00 that nobody entered and drops the hours and the price 
   range of an organization type itself. Hours are read as people type them (9:00,
   9h30, 5 pm, a dash or the word to; two bare hours such as 9-14 only when they
   make a day, and 9-5 is left out because it does not say which half of the day),
   and a name that is only the site title is not copied.
 * New: When more than one plugin has data, the one in use takes each value: the
   plugin that is active first, then the ones installed, then the one whose settings
   were created last, which is what the database says about which was set up after
   which. That plugin also decides the entity type, even when it is a plain Organization,
   and what only a local business has (its subtype, coordinates, price range and
   hours) is offered only when the entity is one, so a Person from one plugin is
   not given the Restaurant of an older one. Until now the plugins were always read
   in the same order, whichever one was in use.
 * New: `native_aeo_pack_identity_business_types` and `native_aeo_pack_identity_organization_types`
   filters, to add or remove the types offered.
 * Improved: The import card and the notice that follows it. The table has one row
   per kind of data and one column per plugin, only the rows that have something,
   with a total, and under it a line says what the Site identity and Site settings
   numbers are made of (Address (5), Opening hours (5), Verification codes (2)).
   Each column says whether its plugin is active, installed or data only, and the
   columns go in the order in which they win a value. What two plugins both store
   is counted once, under the first, which is how the import then goes, so the numbers
   the card promises are the ones the import copies. The explanation is shorter 
   and the detail of what gets imported folds under it. A line warns when Site Identity
   is off, because an imported identity is not printed until it is on.
 * Fix: After importing from the AyudaWP plugins (Native SEO NoIndexer, Native SEO
   Meta Tags and Native SEO Sitemap Customizer), the card kept offering the same
   data, with the same numbers, under the notice of the import that had just copied
   it. It counted what the old plugins hold, not what is left to copy. It now counts
   what is pending, as the SEO-suite import already did, so the offer goes away 
   once it is copied and comes back only if the old plugin saves something new, 
   and the result counts the same way, so the notice reports what the card offered.
   The Run import again button goes with it.
 * Fix: Pressing Import now twice, a double click or a retry, replaced the result
   of the first import with the empty result of the second, and the notice of what
   had been copied never appeared. The result of the first one is kept.

For older changelog entries, please check the [changelog.txt](https://plugins.svn.wordpress.org/native-aeo-pack/trunk/changelog.txt)
file

## Meta

 *  Versión **2.9.1**
 *  Última actualización **hace 4 días**
 *  Instalaciones activas **300+**
 *  Versión de WordPress ** 6.1 o superior **
 *  Testeado hasta **7.1.3**
 *  Versión de PHP ** 7.4 o superior **
 *  Idiomas
 * [English (US)](https://wordpress.org/plugins/native-aeo-pack/), [Spanish (Chile)](https://cl.wordpress.org/plugins/native-aeo-pack/),
   y [Spanish (Spain)](https://es.wordpress.org/plugins/native-aeo-pack/).
 *  [Traducir a tu idioma](https://translate.wordpress.org/projects/wp-plugins/native-aeo-pack)
 * Etiquetas:
 * [ai seo](https://es-ar.wordpress.org/plugins/tags/ai-seo/)[noindex](https://es-ar.wordpress.org/plugins/tags/noindex/)
   [redirects](https://es-ar.wordpress.org/plugins/tags/redirects/)[schema](https://es-ar.wordpress.org/plugins/tags/schema/)
   [sitemap](https://es-ar.wordpress.org/plugins/tags/sitemap/)
 *  [Vista avanzada](https://es-ar.wordpress.org/plugins/native-aeo-pack/advanced/)

## Valoraciones

 5 de 5 estrellas.

 *  [  6 valoraciones de 5 estrellas     ](https://wordpress.org/support/plugin/native-aeo-pack/reviews/?filter=5)
 *  [  0 valoraciones de 4 estrellas     ](https://wordpress.org/support/plugin/native-aeo-pack/reviews/?filter=4)
 *  [  0 valoraciones de 3 estrellas     ](https://wordpress.org/support/plugin/native-aeo-pack/reviews/?filter=3)
 *  [  0 valoraciones de 2 estrellas     ](https://wordpress.org/support/plugin/native-aeo-pack/reviews/?filter=2)
 *  [  0 valoraciones de 1 estrellas     ](https://wordpress.org/support/plugin/native-aeo-pack/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/native-aeo-pack/reviews/#new-post)

[Ver todas las reseñas](https://wordpress.org/support/plugin/native-aeo-pack/reviews/)

## Colaboradores

 *   [ Fernando Tellado ](https://profiles.wordpress.org/fernandot/)
 *   [ Ayuda WordPress ](https://profiles.wordpress.org/ayudawp/)

## Soporte

Problemas resueltos en los últimos dos meses:

     7 de 7

 [Ver el foro de asistencia](https://wordpress.org/support/plugin/native-aeo-pack/)