{"id":354340,"date":"2026-08-25T06:59:18","date_gmt":"2026-08-25T06:59:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/4wp-seo-helper\/"},"modified":"2026-08-25T06:58:59","modified_gmt":"2026-08-25T06:58:59","slug":"4wp-seo-helper","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/4wp-seo-helper\/","author":17741300,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"4WP SEO Helper","header_author":"4wp.dev","header_description":"SEO Inventory for WordPress \u2014 audit and prioritize SEO fields site-wide. Works with Yoast SEO and All in One SEO.","assets_banners_color":"0d101d","last_updated":"2026-08-25 06:58:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"4wpdev","date":"2026-08-25 06:58:59"}},"upgrade_notice":{"1.0.2":"<p>Security fix for GSC report range preference (nonce required before saving site option).<\/p>","1.0.1":"<p>Plugin Review compliance fixes for CSS enqueue, JSON-LD escaping, and external services documentation.<\/p>","1.0.0":"<p>Initial release \u2014 SEO Inventory and REST API for Yoast and All in One SEO sites.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3664790,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3664790,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3664790,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3664790,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"forwp-seo\/techarticle-steps":{"name":"forwp-seo\/techarticle-steps","title":"TechArticle Steps"},"forwp-seo\/techarticle-step":{"name":"forwp-seo\/techarticle-step","title":"TechArticle Step"}},"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"SEO Inventory table with completeness scores and P1\u2013P3 priority lanes","2":"Missing-field filters and quick edit for SEO title and meta description","3":"Settings \u2014 inventory API toggle and configurable priority tier names","4":"Inventory API connection details and sync token"}},"plugin_section":[],"plugin_tags":[8533,6601,5777,186,2227],"plugin_category":[45,55],"plugin_contributors":[262731,262732],"plugin_business_model":[],"class_list":["post-354340","plugin","type-plugin","status-publish","hentry","plugin_tags-audit","plugin_tags-inventory","plugin_tags-meta-description","plugin_tags-seo","plugin_tags-yoast","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-4wpdev","plugin_contributors-anatolikkk","plugin_committers-4wpdev"],"banners":{"banner":"https:\/\/ps.w.org\/4wp-seo-helper\/assets\/banner-772x250.png?rev=3664790","banner_2x":"https:\/\/ps.w.org\/4wp-seo-helper\/assets\/banner-1544x500.png?rev=3664790","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/4wp-seo-helper\/assets\/icon-128x128.png?rev=3664790","icon_2x":"https:\/\/ps.w.org\/4wp-seo-helper\/assets\/icon-256x256.png?rev=3664790","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>4WP SEO Helper<\/strong> gives you a <strong>site-wide SEO Inventory<\/strong> for WordPress: see missing titles and meta descriptions, score completeness, and mark business priority with drag-and-drop <strong>P1 \/ P2 \/ P3<\/strong> lanes.<\/p>\n\n<p>Built for teams that use <strong>Yoast SEO<\/strong> or <strong>All in One SEO<\/strong> and need one place to audit SEO fields across posts, pages, and public custom post types.<\/p>\n\n<p>A plugin by <a href=\"https:\/\/4wp.dev\/\">4wp.dev<\/a>.<\/p>\n\n<h4>Perfect for<\/h4>\n\n<ul>\n<li><strong>SEO audits<\/strong> \u2014 filter by missing title, meta description, or focus keyword<\/li>\n<li><strong>Content ops<\/strong> \u2014 drag rows into P1\u2013P3 lanes (business priority, not SEO score)<\/li>\n<li><strong>Bulk workflows<\/strong> \u2014 quick edit SEO fields from the inventory table<\/li>\n<li><strong>External sync<\/strong> \u2014 REST API for Google Sheets or custom dashboards<\/li>\n<li><strong>Multilingual sites<\/strong> \u2014 Polylang, WPML, or single-language<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Activate the plugin (Yoast or All in One SEO recommended for read\/write).<\/li>\n<li>Open <strong>4WP SEO \u2192 SEO Inventory<\/strong>.<\/li>\n<li>Review completeness scores and missing SEO fields site-wide.<\/li>\n<li>Drag rows into <strong>P1 \/ P2 \/ P3<\/strong> to mark business priority.<\/li>\n<li>Optional: enable the REST API under <strong>Settings<\/strong> and connect Sheets or your dashboard.<\/li>\n<\/ol>\n\n<p>Priority reflects <strong>business importance<\/strong> (e.g. main service pages), not SEO score\u2014a page can stay in P1 at 100% completeness.<\/p>\n\n<h4>Modules<\/h4>\n\n<p><strong>SEO Inventory<\/strong>, <strong>Inventory REST API<\/strong>, and <strong>Google Search Console<\/strong> (OAuth, property picker, URL inspection, search analytics) are available in wp-admin. TechArticle schema, LLMS.txt, and cross posting appear as <strong>Coming soon<\/strong> until a future release.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin optionally connects to <strong>Google APIs<\/strong> when a site administrator enables <strong>Google Search Console<\/strong> integration under <strong>4WP SEO \u2192 Settings<\/strong>.<\/p>\n\n<p><strong>Google OAuth 2.0<\/strong> (<code>accounts.google.com<\/code>, <code>oauth2.googleapis.com<\/code>)<\/p>\n\n<p>Used so an administrator can connect their Google account to WordPress. When the admin clicks <strong>Connect Google<\/strong>, the plugin redirects to Google sign-in and exchanges an authorization code for access and refresh tokens. Tokens are stored in the WordPress database and used only for Search Console features initiated in wp-admin.<\/p>\n\n<p><strong>Google Search Console API<\/strong> (<code>searchconsole.googleapis.com<\/code>)<\/p>\n\n<p>Used to list verified properties, inspect URLs, and fetch Search Analytics for the connected property. The plugin sends the selected property URL, requested page URLs, and date ranges when an administrator runs sync, URL inspection, or live analytics tools in wp-admin. Synced metrics are stored locally in WordPress for reporting screens.<\/p>\n\n<p>No Google API calls are made until an administrator configures OAuth credentials and connects an account. The plugin does not send site visitor or front-end user data to Google.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/terms\/api-services-user-data-policy\">Google API Services User Data Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>wp-content\/plugins\/<\/code> or install through <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate <strong>4WP SEO Helper<\/strong> through the Plugins screen.<\/li>\n<li>Install and activate <strong>Yoast SEO<\/strong> or <strong>All in One SEO<\/strong> for full inventory read\/write.<\/li>\n<li>Open <strong>4WP SEO \u2192 SEO Inventory<\/strong> to start auditing.<\/li>\n<\/ol>\n\n<p>On activation, the inventory API token is created and the module is enabled by default.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20yoast%20seo%20or%20all%20in%20one%20seo%3F\"><h3>Do I need Yoast SEO or All in One SEO?<\/h3><\/dt>\n<dd><p><strong>Recommended.<\/strong> The inventory reads and writes SEO meta through adapter plugins. Without Yoast or AIOSEO, the table still loads but bulk updates and meta writes are limited.<\/p><\/dd>\n<dt id=\"what%20is%20p1%20%2F%20p2%20%2F%20p3%20priority%3F\"><h3>What is P1 \/ P2 \/ P3 priority?<\/h3><\/dt>\n<dd><p>Three configurable business tiers in the inventory table. <strong>Priority is not SEO score<\/strong>\u2014you might keep a fully complete page in P1 because it is a key landing page.<\/p><\/dd>\n<dt id=\"can%20i%20export%20the%20inventory%3F\"><h3>Can I export the inventory?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Export CSV<\/strong> on the SEO Inventory screen to download titles, meta fields, completeness, priority, and missing-field flags.<\/p><\/dd>\n<dt id=\"is%20there%20a%20rest%20api%3F\"><h3>Is there a REST API?<\/h3><\/dt>\n<dd><p>Yes. Base URL: <code>\/wp-json\/forwp-seo-helper\/v1\/seo-inventory<\/code><\/p>\n\n<p>Routes include <code>GET \/meta<\/code>, <code>GET \/items<\/code>, and <code>PUT \/priority-queue<\/code>. Authenticate with a Bearer token from <strong>4WP SEO \u2192 Inventory API<\/strong> (Settings tab), or as a logged-in administrator with <code>manage_options<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20polylang%20or%20wpml%3F\"><h3>Does it work with Polylang or WPML?<\/h3><\/dt>\n<dd><p>Yes. Language filters and per-language rows are supported when a multilingual plugin is active.<\/p><\/dd>\n<dt id=\"which%20post%20types%20are%20included%3F\"><h3>Which post types are included?<\/h3><\/dt>\n<dd><p>Public post types with <code>show_ui<\/code> are discovered automatically. Exclude types with the <code>forwp_seo_inventory_exclude_post_types<\/code> filter.<\/p><\/dd>\n<dt id=\"what%20modules%20are%20coming%20soon%3F\"><h3>What modules are coming soon?<\/h3><\/dt>\n<dd><p>TechArticle schema and blocks, LLMS.txt, and cross posting are in the codebase but hidden behind <strong>Coming soon<\/strong> badges until a future release.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20google%20search%20console%3F\"><h3>How do I connect Google Search Console?<\/h3><\/dt>\n<dd><p>Open <strong>4WP SEO \u2192 Search Console<\/strong>. Add OAuth Client ID and Secret from Google Cloud Console, use the redirect URI shown on that screen, then connect and select your property.<\/p><\/dd>\n<dt id=\"does%20it%20depend%20on%20other%204wp%20plugins%3F\"><h3>Does it depend on other 4WP plugins?<\/h3><\/dt>\n<dd><p>No. <strong>4WP SEO Helper<\/strong> runs on its own. The REST API can integrate with external tools such as Google Sheets or the 4WP Analytics Dashboard.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20affiliated%20with%20yoast%20or%20wordpress%3F\"><h3>Is this plugin affiliated with Yoast or WordPress?<\/h3><\/dt>\n<dd><p>No. Yoast SEO and All in One SEO are separate products. <strong>4WP<\/strong> is our project brand name\u2014<strong>WP<\/strong> appears only as part of that name and is not a reference to WordPress. This plugin is not affiliated with, endorsed, or sponsored by WordPress.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Security: GSC date range preference saves only with nonce + manage_options (fixes CSRF on ReportPeriod range GET).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Plugin Review fixes: enqueue inventory admin CSS, safe JSON-LD output, block render escaping, Google API disclosure in readme.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial WordPress.org release: <strong>SEO Inventory<\/strong> admin table with filters, CSV export, and quick edit.<\/li>\n<li><strong>P1 \/ P2 \/ P3<\/strong> drag-and-drop priority queue with configurable tier names.<\/li>\n<li>SEO adapters for <strong>Yoast SEO<\/strong> and <strong>All in One SEO<\/strong>.<\/li>\n<li>Multilingual support: Polylang, WPML, single-language.<\/li>\n<li><strong>REST API<\/strong> (<code>forwp-seo-helper\/v1\/seo-inventory<\/code>) for external sync.<\/li>\n<li><strong>Google Search Console<\/strong> \u2014 OAuth, property picker, URL inspection, 28-day search metrics.<\/li>\n<li>Future modules (TechArticle, LLMS.txt, cross posting) visible as Coming soon in admin.<\/li>\n<\/ul>","raw_excerpt":"Audit SEO titles and meta site-wide, set P1-P3 priorities, export CSV, and sync via REST. Works with Yoast SEO and All in One SEO.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=354340"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/4wpdev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354340"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354340"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354340"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354340"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354340"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}