{"id":325562,"date":"2026-06-14T13:59:48","date_gmt":"2026-06-14T13:59:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/source-of-trust-ai-visibility-schema-toolkit\/"},"modified":"2026-09-25T17:39:31","modified_gmt":"2026-09-25T17:39:31","slug":"eeoom-source-of-trust","status":"publish","type":"plugin","link":"https:\/\/mlt.wordpress.org\/plugins\/eeoom-source-of-trust\/","author":23515396,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.7.4","stable_tag":"1.7.4","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"eeoom GEO - AI Search Optimization","header_author":"eeoom","header_description":"AI visibility, entity signals and structured data checks for WordPress.","assets_banners_color":"b85a3a","last_updated":"2026-09-25 17:39:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/sourceoftrust.com","header_author_uri":"https:\/\/www.eeoom.com","rating":5,"author_block_rating":0,"active_installs":10,"downloads":587,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"eeoom","date":"2026-08-18 13:42:59","revision":3652992},"1.1.0":{"tag":"1.1.0","author":"eeoom","date":"2026-08-18 13:42:59","revision":3652992},"1.2.0":{"tag":"1.2.0","author":"eeoom","date":"2026-06-19 15:02:23","revision":3578840},"1.5.0":{"tag":"1.5.0","author":"eeoom","date":"2026-08-18 14:16:25","revision":3653045},"1.6.0":{"tag":"1.6.0","author":"eeoom","date":"2026-09-19 13:54:44","revision":3703340},"1.7.0":{"tag":"1.7.0","author":"eeoom","date":"2026-09-22 10:29:43","revision":3707060},"1.7.1":{"tag":"1.7.1","author":"eeoom","date":"2026-09-24 11:13:28","revision":3711150},"1.7.2":{"tag":"1.7.2","author":"eeoom","date":"2026-09-25 10:06:38","revision":3712809},"1.7.3":{"tag":"1.7.3","author":"eeoom","date":"2026-09-25 12:11:06","revision":3713011},"1.7.4":{"tag":"1.7.4","author":"eeoom","date":"2026-09-25 17:39:31","revision":3713384}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3576728,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3576728,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3576728,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3576728,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.0","1.5.0","1.6.0","1.7.0","1.7.1","1.7.2","1.7.3","1.7.4"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[220145,281580,245227,2591,1121],"plugin_category":[49,55],"plugin_contributors":[267107],"plugin_business_model":[],"class_list":["post-325562","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-search","plugin_tags-entity-seo","plugin_tags-generative-engine-optimization","plugin_tags-geo","plugin_tags-structured-data","plugin_category-maps-and-location","plugin_category-seo-and-marketing","plugin_contributors-eeoom","plugin_committers-eeoom"],"banners":{"banner":"https:\/\/ps.w.org\/eeoom-source-of-trust\/assets\/banner-772x250.png?rev=3576728","banner_2x":"https:\/\/ps.w.org\/eeoom-source-of-trust\/assets\/banner-1544x500.png?rev=3576728","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eeoom-source-of-trust\/assets\/icon-128x128.png?rev=3576728","icon_2x":"https:\/\/ps.w.org\/eeoom-source-of-trust\/assets\/icon-256x256.png?rev=3576728","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>eeoom GEO is a Generative Engine Optimization plugin for WordPress, built to improve and monitor the signals that contribute to visibility and understanding in AI search.<\/p>\n\n<p>The plugin combines three workflows:<\/p>\n\n<ul>\n<li>Optimize machine-readable organization and entity signals.<\/li>\n<li>Connect WordPress content with centrally managed real-world entities and relationships through the optional EntityPool integration.<\/li>\n<li>Monitor selected public URLs and manually start GEO and structured-data checks through the optional Source of Trust integration.<\/li>\n<\/ul>\n\n<p>Core features include:<\/p>\n\n<ul>\n<li>AI Search Monitors for selected published public URLs.<\/li>\n<li>Manually initiated checks with centrally stored status, optional scores, findings and recommendations.<\/li>\n<li>Server-controlled check availability with clear Recheck timing in the WordPress check center.<\/li>\n<li>Local Organization schema enhancements such as sameAs, address, areaServed and knowsAbout.<\/li>\n<li>Optional EntityPool Full Graph, entity-specific Subgraph and saved Representation integration.<\/li>\n<li>Primary Entity mapping for posts, pages and public custom post types.<\/li>\n<li>Integration into supported JSON-LD output, including Yoast SEO graphs.<\/li>\n<li>Persistent EntityPool caching with revision- and ETag-based revalidation.<\/li>\n<li>Capability and nonce checks for administrative actions.<\/li>\n<\/ul>\n\n<p>Source of Trust and EntityPool are optional external services. They are not contacted until an authorized user explicitly connects the corresponding integration. Source of Trust checks are started manually; the plugin does not silently submit pages for analysis in the background. Full data-use, endpoint and privacy details are provided in the External services section below.<\/p>\n\n<h3>External services<\/h3>\n\n<p>The external services used by eeoom GEO are operated by eeoom.<\/p>\n\n<p>They provide server-side GEO analysis and centrally managed entity graph functionality that cannot be performed entirely inside the WordPress plugin.<\/p>\n\n<p>Each service is used only for the features described below.<\/p>\n\n<h4>Source of Trust API<\/h4>\n\n<p>Source of Trust is an eeoom service used for the shared Suite installation identity, centrally managed monitored pages and manually initiated GEO and structured-data checks.<\/p>\n\n<p>The integration is activated only when an authorized WordPress user explicitly enables AI Search Monitors. Plugin activation, normal page views and visits by public website users do not initiate a connection to the Source of Trust API.<\/p>\n\n<p>On the initial connection, the plugin sends:<\/p>\n\n<ul>\n<li>the public WordPress home URL<\/li>\n<li><code>wordpress<\/code> as optional client-platform metadata<\/li>\n<li>standard HTTP request metadata<\/li>\n<\/ul>\n\n<p>The service returns a Suite installation credential and identifiers for the central workspace, site, homepage Page and homepage Monitor. The credential is stored in the WordPress database and used as a Bearer credential for later authenticated requests.<\/p>\n\n<p>After the explicit connection, depending on the requested operation, the plugin may send:<\/p>\n\n<ul>\n<li>the Suite installation credential as a Bearer credential<\/li>\n<li>the current public probe URL generated by this WordPress installation<\/li>\n<li>workspace, Page, Monitor and AuditRun identifiers<\/li>\n<li>published public URLs selected for monitoring<\/li>\n<li>the requested audit type<\/li>\n<li>lifecycle status when the connected plugin is activated or deactivated<\/li>\n<li>standard HTTP request metadata<\/li>\n<\/ul>\n\n<p>The public probe URL contains an opaque random token and returns only HTTP 204 for the valid token or HTTP 404 otherwise. It does not expose installation, account, entity, configuration, version or product-status data. Source of Trust does not currently perform scheduled probes.<\/p>\n\n<p>The plugin does not send:<\/p>\n\n<ul>\n<li>draft content<\/li>\n<li>private content<\/li>\n<li>preview URLs<\/li>\n<li>WordPress post body content<\/li>\n<li>visitor data<\/li>\n<li>passwords or WordPress user credentials<\/li>\n<li>personal WordPress user data<\/li>\n<\/ul>\n\n<p>Checks are started manually by an authorized WordPress user and may be processed asynchronously. To perform the requested audit, Source of Trust may retrieve and analyze the publicly accessible response of the selected URL. The plugin itself does not transmit WordPress post body content. The plugin may receive an AuditRun ID and poll the Source of Trust API for that specific result.<\/p>\n\n<p>Returned data may include:<\/p>\n\n<ul>\n<li>central workspace, Page, Monitor and policy data<\/li>\n<li>AuditRun status and history<\/li>\n<li>optional scores<\/li>\n<li>findings, issues and recommendations<\/li>\n<\/ul>\n\n<p>Service:<\/p>\n\n<ul>\n<li>Source of Trust: https:\/\/sourceoftrust.com\/<\/li>\n<li>Production API: https:\/\/api.sourceoftrust.com\/<\/li>\n<li>Terms of Service: https:\/\/sourceoftrust.com\/en\/terms<\/li>\n<li>Privacy Policy: https:\/\/sourceoftrust.com\/en\/privacy<\/li>\n<\/ul>\n\n<h4>EntityPool<\/h4>\n\n<p>EntityPool is an eeoom service for centrally managed entities, relationships and entity graphs.<\/p>\n\n<p>EntityPool is optional. The integration is activated only when an authorized WordPress user explicitly enters an EntityPool integration key and connects the WordPress site.<\/p>\n\n<p>The integration key is sent to EntityPool as a Bearer credential and stored in the WordPress database so the site can access the graph associated with that key.<\/p>\n\n<p>Depending on the requested operation, the plugin may send:<\/p>\n\n<ul>\n<li>the EntityPool integration key as a Bearer credential<\/li>\n<li>the UID of a selected EntityPool entity as part of an entity-specific API request<\/li>\n<li>standard HTTP request metadata<\/li>\n<\/ul>\n\n<p>The plugin does not send WordPress post body content, visitor data, passwords or WordPress user credentials to EntityPool.<\/p>\n\n<p>EntityPool may return:<\/p>\n\n<ul>\n<li>graph identifiers<\/li>\n<li>graph name<\/li>\n<li>graph revision<\/li>\n<li>root entity information<\/li>\n<li>entity and relationship counts<\/li>\n<li>entities available in the connected graph<\/li>\n<li>Full Graph JSON-LD representations<\/li>\n<li>entity-specific Subgraph JSON-LD representations<\/li>\n<li>available saved Representations and their stable IDs<\/li>\n<li>Representation name, Primary Entity and semantic revision metadata<\/li>\n<li>finished saved Representation JSON-LD projections<\/li>\n<\/ul>\n\n<p>The plugin contacts EntityPool when required for actions such as:<\/p>\n\n<ul>\n<li>connecting an EntityPool graph<\/li>\n<li>manually checking the connection<\/li>\n<li>refreshing the available entity list<\/li>\n<li>refreshing an expired editor entity cache<\/li>\n<li>refreshing the available Representation list<\/li>\n<li>manually revalidating all known local EntityPool caches in one global refresh<\/li>\n<li>retrieving graph data that is not yet available locally<\/li>\n<li>revalidating the global graph revision<\/li>\n<li>refreshing a Full Graph or Subgraph after a semantic graph change<\/li>\n<li>conditionally revalidating an expired saved Representation using its own ETag<\/li>\n<\/ul>\n\n<p>EntityPool graph data is cached locally in WordPress.<\/p>\n\n<p>Public frontend requests do not contact EntityPool on every page load.<\/p>\n\n<p>A relevant frontend request can trigger a lightweight graph revalidation when EntityPool graph data is needed and the global validation interval has elapsed.<\/p>\n\n<p>If the semantic graph revision has not changed, the existing Full Graph and cached Subgraphs remain valid and are not downloaded again.<\/p>\n\n<p>Saved Representations are cached and revalidated independently. Their cache validity is determined by the semantic revision and ETag of the specific Representation rather than the global graph revision.<\/p>\n\n<p>EntityPool graph synchronization does not require WP-Cron, system cron, background workers or external schedulers.<\/p>\n\n<p>The local Schema &amp; Entity functionality and GEO readiness checks continue to work without EntityPool.<\/p>\n\n<p>Service:<\/p>\n\n<ul>\n<li>EntityPool: https:\/\/entitypool.com\/<\/li>\n<li>Application: https:\/\/entitypool.com\/app\/<\/li>\n<li>Terms of Service: https:\/\/entitypool.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/entitypool.com\/privacy<\/li>\n<li>Imprint: https:\/\/entitypool.com\/imprint<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate eeoom GEO through the WordPress Plugins screen.<\/li>\n<li>Open eeoom GEO in the WordPress admin.<\/li>\n<li>Add strategically important pages under AI Search Monitors.<\/li>\n<li>Run GEO checks from the corresponding check center.<\/li>\n<li>Open Schema &amp; Entity to configure local entity signals.<\/li>\n<li>Optional: Connect an EntityPool graph under Schema &amp; Entity \u2192 EntityPool.<\/li>\n<li>Optional: Map posts, pages and public custom post types to their Primary Entity.<\/li>\n<li>Optional: Select Custom Graph and choose a saved EntityPool Representation for individual content.<\/li>\n<\/ol>\n\n<p>A supported schema integration is required for connected EntityPool graph output on the frontend.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20eeoom%20geo%3F\"><h3>What is eeoom GEO?<\/h3><\/dt>\n<dd><p>eeoom GEO is a Generative Engine Optimization plugin for WordPress.<\/p>\n\n<p>It provides tools for improving and inspecting signals that contribute to AI search understanding and visibility, including AI Search Monitors, GEO readiness checks, entity optimization, Primary Entity mapping and connected entity graphs.<\/p><\/dd>\n<dt id=\"what%20does%20geo%20mean%3F\"><h3>What does GEO mean?<\/h3><\/dt>\n<dd><p>GEO stands for Generative Engine Optimization.<\/p>\n\n<p>It focuses on improving the signals that help generative search and answer systems understand websites, entities, relationships, relevance and context.<\/p><\/dd>\n<dt id=\"what%20are%20ai%20search%20monitors%3F\"><h3>What are AI Search Monitors?<\/h3><\/dt>\n<dd><p>AI Search Monitors are selected WordPress URLs that are strategically important for AI search.<\/p>\n\n<p>Each monitor provides access to a check center where authorized users can run GEO checks and review the latest score, status, issues and recommendations.<\/p><\/dd>\n<dt id=\"are%20ai%20search%20monitor%20checks%20automatic%3F\"><h3>Are AI Search Monitor checks automatic?<\/h3><\/dt>\n<dd><p>No.<\/p>\n\n<p>Checks are started manually by an authorized WordPress user.<\/p>\n\n<p>If the Source of Trust API processes a check asynchronously, eeoom GEO polls for the result of that specific check.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20my%20wordpress%20content%20to%20the%20checking%20service%3F\"><h3>Does the plugin send my WordPress content to the checking service?<\/h3><\/dt>\n<dd><p>No.<\/p>\n\n<p>Manual GEO checks send the public URL of the selected published content.<\/p>\n\n<p>Drafts, private posts, preview URLs, WordPress post body content and personal WordPress user data are not submitted.<\/p><\/dd>\n<dt id=\"do%20i%20need%20entitypool%3F\"><h3>Do I need EntityPool?<\/h3><\/dt>\n<dd><p>No.<\/p>\n\n<p>AI Search Monitors, GEO checks and local Schema &amp; Entity functionality work without EntityPool.<\/p>\n\n<p>EntityPool adds centrally managed entity graphs, Primary Entity mapping, Full Graph and Subgraph integration and connected entity relationships.<\/p>\n\n<p>It also provides saved Representations that can be selected as explicitly curated Custom Graphs for individual WordPress pages.<\/p><\/dd>\n<dt id=\"what%20is%20a%20primary%20entity%3F\"><h3>What is a Primary Entity?<\/h3><\/dt>\n<dd><p>A Primary Entity is the main real-world entity associated with a WordPress page, post or public custom post type.<\/p>\n\n<p>For example, a page may primarily represent a person, organization, location, product, service or topic.<\/p>\n\n<p>eeoom GEO stores the EntityPool UID with the WordPress content while the entity itself remains managed in EntityPool.<\/p><\/dd>\n<dt id=\"what%20happens%20on%20the%20homepage%20when%20entitypool%20is%20connected%3F\"><h3>What happens on the homepage when EntityPool is connected?<\/h3><\/dt>\n<dd><p>The homepage uses the complete connected EntityPool graph.<\/p>\n\n<p>The root entity can be integrated with the website's existing organization entity so that the structured graph contains one connected representation instead of duplicate definitions.<\/p><\/dd>\n<dt id=\"what%20happens%20on%20a%20mapped%20page%3F\"><h3>What happens on a mapped page?<\/h3><\/dt>\n<dd><p>eeoom GEO retrieves the EntityPool Subgraph associated with the selected Primary Entity.<\/p>\n\n<p>The entity and its relevant relationships are connected with the structured data of the current page.<\/p><\/dd>\n<dt id=\"what%20is%20a%20custom%20graph%3F\"><h3>What is a Custom Graph?<\/h3><\/dt>\n<dd><p>A Custom Graph is a saved EntityPool Representation selected for a specific WordPress post, page or public custom post type.<\/p>\n\n<p>The Representation and its finished JSON-LD projection remain managed in EntityPool. WordPress stores only its stable ID. If the Representation is unavailable, eeoom GEO does not replace it with a broader Standard Graph.<\/p><\/dd>\n<dt id=\"does%20eeoom%20geo%20download%20entitypool%20graph%20data%20on%20every%20request%3F\"><h3>Does eeoom GEO download EntityPool graph data on every request?<\/h3><\/dt>\n<dd><p>No.<\/p>\n\n<p>Graph data is cached locally.<\/p>\n\n<p>A graph-wide semantic revision is used to determine whether cached Full Graph and Subgraph data is still current.<\/p>\n\n<p>If nothing has changed, existing cached representations remain valid.<\/p>\n\n<p>If the graph changes, only the representation currently required is refreshed.<\/p>\n\n<p>Saved Custom Graph Representations are validated independently. A change to one saved Representation does not invalidate other Representation payloads.<\/p><\/dd>\n<dt id=\"does%20entitypool%20synchronization%20require%20wp-cron%3F\"><h3>Does EntityPool synchronization require WP-Cron?<\/h3><\/dt>\n<dd><p>No.<\/p>\n\n<p>Graph synchronization is request-driven and does not depend on WP-Cron, system cron, background workers, external schedulers, webhooks or loopback requests.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20entitypool%20is%20temporarily%20unavailable%3F\"><h3>What happens if EntityPool is temporarily unavailable?<\/h3><\/dt>\n<dd><p>Existing cached graph data is retained during temporary network and service failures.<\/p>\n\n<p>The plugin does not remove a good cached representation simply because a remote request fails.<\/p><\/dd>\n<dt id=\"which%20structured%20data%20integrations%20are%20supported%3F\"><h3>Which structured data integrations are supported?<\/h3><\/dt>\n<dd><p>The current schema graph integration supports Yoast SEO.<\/p>\n\n<p>When active, eeoom GEO merges its entity layer directly into the existing JSON-LD graph.<\/p>\n\n<p>AI Search Monitors, GEO readiness checks, EntityPool administration, entity caching and Primary Entity mapping are eeoom GEO features and are not dependent on the schema integration.<\/p><\/dd>\n<dt id=\"does%20eeoom%20geo%20create%20a%20second%20json-ld%20graph%3F\"><h3>Does eeoom GEO create a second JSON-LD graph?<\/h3><\/dt>\n<dd><p>With the currently supported schema integration, no.<\/p>\n\n<p>Connected EntityPool data is merged into the existing graph so entities and relationships can be represented without creating competing duplicate definitions.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20clear%20my%20website%20cache%20after%20geo%20or%20entity%20changes%3F\"><h3>Do I need to clear my website cache after GEO or entity changes?<\/h3><\/dt>\n<dd><p>If your website uses full-page caching, CDN caching or server-side HTML caching, previously generated pages may continue to contain an older JSON-LD representation.<\/p>\n\n<p>Clear or purge the relevant page cache when immediate publication of schema changes is required.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>Fixed production API endpoint configuration.<\/li>\n<li>Improved documentation of the optional EEOOM GEO Suite connection and external service communication.<\/li>\n<li>Improved WordPress coding standards compliance.<\/li>\n<li>Added the technical installation availability endpoint for future Suite connectivity checks.<\/li>\n<li>Added audit-specific server policies with a five-minute Recheck interval for Structured Data checks.<\/li>\n<li>Improved cooldown handling with clear Recheck availability and server-provided timing feedback.<\/li>\n<li>Redesigned AI Search Monitors with page cards, score and status states, clearer slot usage and an Add Page dialog.<\/li>\n<li>Restructured the Check Center with a score overview and focused audit detail sections.<\/li>\n<li>Simplified the initial AI Search Monitors connection experience and supporting privacy information.<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Improved WordPress compatibility and coding-standard compliance.<\/li>\n<li>Added a technical installation availability endpoint for future Suite connectivity checks.<\/li>\n<li>No changes to monitoring behavior or automatic checks.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Replaced the legacy local monitor and run storage with the central Source of Trust audit service.<\/li>\n<li>Added suite-wide installation identity and centrally managed sites, pages, monitors and audit history.<\/li>\n<li>Added account-wide Free monitoring for up to five Pages, including the required homepage slot.<\/li>\n<li>Added a 30-day reserved-slot period for archived Free monitors and direct reactivation with preserved history.<\/li>\n<li>Added the generic structured-data audit flow backed by central AuditRuns.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Added a global manual EntityPool data refresh in the WordPress administration.<\/li>\n<li>Added immediate revalidation of the EntityPool connection, entity list and Representation list.<\/li>\n<li>Added global refresh of the Full Graph and all indexed Subgraphs and Custom Graph Representations.<\/li>\n<li>Preserved usable stale graph and Representation payloads when remote refreshes fail temporarily.<\/li>\n<li>Fixed loading of the EntityPool graph refresh service for protected WordPress admin requests.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Added Standard Graph and Custom Graph modes for posts, pages and public custom post types.<\/li>\n<li>Added selection and manual refresh of saved EntityPool Representations in the WordPress editor.<\/li>\n<li>Added persistent graph-bound caching for finished Representation JSON-LD payloads.<\/li>\n<li>Added per-Representation semantic revision and ETag validation with 304 support.<\/li>\n<li>Added independent 24-hour revalidation, request locks and retry suppression per Representation.<\/li>\n<li>Added fail-closed Custom Graph behavior without fallback to Full Graph or Subgraph.<\/li>\n<li>Added homepage validation requiring the Representation Primary Entity to match the verified graph root.<\/li>\n<li>Added WebPage mainEntity integration for Custom Graphs while preserving Standard Graph semantics.<\/li>\n<li>Improved the shared EntityPool and Yoast merge with local document-context normalization.<\/li>\n<li>Added recursive JSON-LD ID reference rewriting and deterministic WebPage, WebSite and BreadcrumbList deduplication.<\/li>\n<li>Preserved EntityPool resolver IDs as deduplicated sameAs links when real-world entities merge with local IDs.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Redesigned the eeoom GEO administration.<\/li>\n<li>Introduced AI Search Monitors for strategically important URLs.<\/li>\n<li>Improved GEO check workflows and stored result handling.<\/li>\n<li>Expanded Schema &amp; Entity tools for entity-focused GEO optimization.<\/li>\n<li>Added EntityPool graph integration.<\/li>\n<li>Added graph-specific EntityPool connection support.<\/li>\n<li>Added EntityPool graph metadata and connection validation.<\/li>\n<li>Added Primary Entity mapping for posts, pages and public custom post types.<\/li>\n<li>Added manual EntityPool entity refresh in the WordPress editor.<\/li>\n<li>Added persistent EntityPool Full Graph and Subgraph caching.<\/li>\n<li>Added revision- and ETag-based graph validation.<\/li>\n<li>Added request-driven graph revalidation without cron or background workers.<\/li>\n<li>Added stale-cache fallback for temporary EntityPool failures.<\/li>\n<li>Added direct EntityPool integration into supported JSON-LD output.<\/li>\n<li>Added Root Entity integration with the existing website organization.<\/li>\n<li>Added Primary Entity references for mapped content.<\/li>\n<li>Improved capability-based access control and integration security.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New layout.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Improved URL Checks with a cleaner REST API based workflow and server-to-server Source of Trust API communication.<\/li>\n<li>Improved persistent check status handling and stored check results per URL\/page.<\/li>\n<li>Improved the Structured Data Check report and URL Checks overview UI.<\/li>\n<li>Added Plugin Admins with direct eeoom GEO capability assignment for selected users.<\/li>\n<li>Prevented plugin administrators from accidentally removing their own access.<\/li>\n<li>Improved the Settings page structure and responsive layout.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Redesigned the Schema Enhancements settings page for a clearer GEO workflow.<\/li>\n<li>Improved the admin interface for managing Organization schema and entity signals.<\/li>\n<li>Updated the plugin display name to eeoom GEO.<\/li>\n<li>Improved plugin description and readme wording for AI search visibility.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Added Organization schema enhancements for supported schema output.<\/li>\n<li>Added sameAs, hasMap, PostalAddress, areaServed and knowsAbout fields.<\/li>\n<li>Added parentOrganization and subOrganization fields.<\/li>\n<li>Added manual Source of Trust page checks.<\/li>\n<li>Added asynchronous Source of Trust API checks with job ID polling.<\/li>\n<\/ul>","raw_excerpt":"Improve and monitor the signals that contribute to visibility and understanding in AI search.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/325562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=325562"}],"author":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eeoom"}],"wp:attachment":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=325562"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=325562"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=325562"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=325562"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=325562"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=325562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}