{"id":393259,"date":"2026-10-29T17:25:31","date_gmt":"2026-10-29T17:25:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/spokora-free\/"},"modified":"2026-10-29T17:25:23","modified_gmt":"2026-10-29T17:25:23","slug":"spokora-seo-toolkit","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/spokora-seo-toolkit\/","author":23592922,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.30","stable_tag":"0.1.30","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Spokora SEO Toolkit","header_author":"That One Firm","header_description":"SEO toolkit for WordPress websites: titles, schema, sitemap, and redirects. No account and no license key.","assets_banners_color":"fbfbfd","last_updated":"2026-10-29 17:25:23","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/spokora.com\/#licenses","header_plugin_uri":"https:\/\/spokora.com","header_author_uri":"https:\/\/thatonefirm.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.30":{"tag":"0.1.30","author":"chrismcmanus","date":"2026-10-29 17:25:23","revision":3773622}},"upgrade_notice":{"0.1.28":"<p>Menu sits with Spokora Pro, after Comments. The side list stays on screen.<\/p>","0.1.27":"<p>WordPress.org review build. Business Info from older installs is kept and renamed automatically.<\/p>","0.1.26":"<p>Multisite-ready: Network Activate; SEO fields travel with ThreeWP Broadcast.<\/p>","0.1.25":"<p>WordPress.org: Tested up to lives only in the readme.<\/p>","0.1.24":"<p>Plugin Check PHPCS fixes for WordPress.org review.<\/p>","0.1.23":"<p>More business types in Quick setup and Business Info.<\/p>","0.1.22":"<p>Submit this build.<\/p>","0.1.21":"<p>WordPress.org account chrismcmanus.<\/p>","0.1.20":"<p>Updates now come from WordPress.org. Custom checks against spokora.com are removed. Turn on Search ping or the cookie banner if you still want those.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3773764,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3773764,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3773726,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3773726,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.30"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[726,1117,186,1557,6358],"plugin_category":[55],"plugin_contributors":[289540],"plugin_business_model":[],"class_list":["post-393259","plugin","type-plugin","status-publish","hentry","plugin_tags-redirects","plugin_tags-schema","plugin_tags-seo","plugin_tags-sitemap","plugin_tags-xml-sitemap","plugin_category-seo-and-marketing","plugin_contributors-chrismcmanus","plugin_committers-chrismcmanus"],"banners":{"banner":"https:\/\/ps.w.org\/spokora-seo-toolkit\/assets\/banner-772x250.png?rev=3773726","banner_2x":"https:\/\/ps.w.org\/spokora-seo-toolkit\/assets\/banner-1544x500.png?rev=3773726","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/spokora-seo-toolkit\/assets\/icon-128x128.png?rev=3773764","icon_2x":"https:\/\/ps.w.org\/spokora-seo-toolkit\/assets\/icon-256x256.png?rev=3773764","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Spokora SEO Toolkit is a GPL SEO plugin for WordPress websites: titles and meta, JSON-LD schema, an XML sitemap, exact 301 redirects, import from Yoast \/ Rank Math \/ AIOSEO \/ SEOPress, a one-button backup zip, search SEO scoring in the editor, <code>\/llms.txt<\/code> and markdown URLs, optional IndexNow pings, an optional cookie banner with optional GA4 after Accept, and light performance helpers.<\/p>\n\n<p>No Spokora account. No license key. SEO features in this plugin are not locked behind payment.<\/p>\n\n<p><a href=\"https:\/\/spokora.com\">Spokora Pro<\/a> is a <strong>separate<\/strong> commercial plugin (agency week, API vault, Search Console, rank tracking). Do not run this plugin and Spokora Pro at the same time; Pro already includes this SEO surface.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Titles, meta descriptions, canonical URLs, robots, editor metabox<\/li>\n<li>JSON-LD schema with site defaults and per-page overrides<\/li>\n<li>XML sitemap<\/li>\n<li>Exact 301 redirect rules<\/li>\n<li>Import titles, descriptions, keyphrases, and exact 301s from major SEO plugins (you confirm before deactivating the old plugin)<\/li>\n<li>Quick setup wizard (backup first when migrating)<\/li>\n<li>One-click database + <code>wp-content<\/code> zip (does not include <code>wp-config.php<\/code>)<\/li>\n<li>Optional cookie banner (off until you turn it on)<\/li>\n<li>Optional GA4 Measurement ID \u2014 loads only after the visitor accepts non-essential cookies<\/li>\n<li><code>\/llms.txt<\/code>, <code>\/ai-docs\/{slug}.md<\/code>, <code>\/md\/{slug}.md<\/code><\/li>\n<li>Optional IndexNow pings (off until you turn them on)<\/li>\n<li>In-editor search SEO + AI readiness scores (model drafting and JSON-LD generation stay in Spokora Pro)<\/li>\n<\/ul>\n\n<p>Product site: <a href=\"https:\/\/spokora.com\">spokora.com<\/a>\nSource: <a href=\"https:\/\/github.com\/TOFChris\/Spokora-SEO-Toolkit\">github.com\/TOFChris\/Spokora-SEO-Toolkit<\/a><\/p>\n\n<h4>External services<\/h4>\n\n<p><strong>IndexNow<\/strong> (optional, off until you enable Spokora \u2192 Search ping). When a public page is published, updated, or unpublished, the plugin sends that page URL, this site\u2019s host, and an IndexNow key to <code>https:\/\/api.indexnow.org\/indexnow<\/code>. Participating search engines (not Google) use that to recrawl. Nothing is sent while Search ping is off.<\/p>\n\n<p>Service: <a href=\"https:\/\/www.indexnow.org\/\">IndexNow<\/a>. Documentation and protocol terms: <a href=\"https:\/\/www.indexnow.org\/documentation\">indexnow.org\/documentation<\/a>. The shared endpoint is operated with Microsoft Bing: <a href=\"https:\/\/privacy.microsoft.com\/privacystatement\">Microsoft Privacy Statement<\/a>.<\/p>\n\n<p><strong>Google Analytics 4<\/strong> (optional). If you paste a Measurement ID under Cookies &amp; privacy and a visitor clicks Accept on the cookie banner, the browser loads <code>https:\/\/www.googletagmanager.com\/gtag\/js<\/code> and sends page-view data to your Google Analytics property. The tag does not load until Accept. Spokora does not receive that analytics data.<\/p>\n\n<p>Google Analytics terms: <a href=\"https:\/\/www.google.com\/analytics\/terms\/\">google.com\/analytics\/terms<\/a>. Google Tag Manager use policy: <a href=\"https:\/\/marketingplatform.google.com\/about\/analytics\/tag-manager\/use-policy\/\">tag manager use policy<\/a>. Google privacy policy: <a href=\"https:\/\/policies.google.com\/privacy\">policies.google.com\/privacy<\/a>.<\/p>\n\n<p>Support on WordPress.org: <a href=\"https:\/\/wordpress.org\/support\/plugin\/spokora-seo-toolkit\/\">wordpress.org\/support\/plugin\/spokora-seo-toolkit\/<\/a>\nOptional extra forum: <a href=\"https:\/\/forum.spokora.com\/\">forum.spokora.com<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install from Plugins \u2192 Add New, or upload the <code>spokora-seo-toolkit<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>Spokora SEO Toolkit<\/strong>. On <strong>multisite<\/strong>, use <strong>Network Activate<\/strong> so every site in the network gets SEO, sitemap, redirects, and <code>\/llms.txt<\/code>.<\/li>\n<li>Open <strong>Spokora \u2192 Quick setup<\/strong> on each site that needs its own Business Info (shop NAP is per site).<\/li>\n<li>Optional: <strong>Cookies &amp; privacy<\/strong> to show a banner; <strong>Search ping<\/strong> to enable IndexNow.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20phone%20home%20to%20spokora.com%3F\"><h3>Does this plugin phone home to spokora.com?<\/h3><\/dt>\n<dd><p>No. Directory builds update through WordPress.org. Optional emails on spokora.com\/updates are a form you fill in yourself.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20account%20or%20license%3F\"><h3>Do I need an account or license?<\/h3><\/dt>\n<dd><p>No for Spokora SEO Toolkit.<\/p><\/dd>\n<dt id=\"can%20i%20run%20this%20next%20to%20spokora%20pro%3F\"><h3>Can I run this next to Spokora Pro?<\/h3><\/dt>\n<dd><p>No. Activate Pro and leave this plugin off. Pro includes this SEO layer.<\/p><\/dd>\n<dt id=\"does%20it%20deactivate%20yoast%20or%20rank%20math%20by%20itself%3F\"><h3>Does it deactivate Yoast or Rank Math by itself?<\/h3><\/dt>\n<dd><p>No. Import copies data into Spokora. Deactivating the old plugin is a separate, confirmed step.<\/p><\/dd>\n<dt id=\"is%20the%20cookie%20banner%20required%3F\"><h3>Is the cookie banner required?<\/h3><\/dt>\n<dd><p>No. It is off on new installs until you enable it under Cookies &amp; privacy.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20wordpress%20multisite%20%2F%20subdomains%3F\"><h3>Does it work on WordPress multisite \/ subdomains?<\/h3><\/dt>\n<dd><p>Yes. Network Activate so each site in the network runs the plugin. Titles, schema, sitemap, redirects, and <code>\/llms.txt<\/code> are per site \u2014 a shop subdomain keeps its own Business Info. If you use ThreeWP Broadcast, SEO box fields copy with the post. Do not run this plugin next to Spokora Pro.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.30<\/h4>\n\n<ul>\n<li>Canonical URLs and robots are implemented in the SEO module: a canonical link on public pages, a per-page canonical override, and robots meta plus an X-Robots-Tag header from the editor (default remains index, follow). Noindex pages are omitted from the XML sitemap.<\/li>\n<li>PHP 7.4: polyfills for str_contains(), str_starts_with(), and str_ends_with() so those calls do not fatal on the declared PHP version.<\/li>\n<li>Admin: welcome note sits at the top of Home. Code fields use the light dashboard theme. AI index (llms.txt) and Markdown copies live under Configure.<\/li>\n<\/ul>\n\n<h4>0.1.29<\/h4>\n\n<ul>\n<li>AI readiness scores update correctly when you enable Public AI document and save in the block editor.<\/li>\n<li>JSON-LD: use starter presets or paste JSON here; Spokora Pro adds model-generated per-page and global JSON-LD (Configure \u2192 Keys).<\/li>\n<\/ul>\n\n<h4>0.1.28<\/h4>\n\n<ul>\n<li>Admin menu sits after Comments and before Appearance, same place as Spokora Pro. A tall side list shifts up and scrolls instead of running off the screen.<\/li>\n<\/ul>\n\n<h4>0.1.27<\/h4>\n\n<ul>\n<li>Directory review: display name Spokora SEO Toolkit, text domain spokora-seo-toolkit.<\/li>\n<li>Setup screen styles are enqueued. JSON-LD is encoded inside the script tag. Business Info saves only known fields.<\/li>\n<li>Admin menu sits after Settings. IndexNow and Google Analytics terms are documented above. Both stay off until you opt in.<\/li>\n<li>Legacy HW Core option and post-meta keys are copied once to Spokora keys.<\/li>\n<\/ul>\n\n<h4>0.1.26<\/h4>\n\n<ul>\n<li>Multisite: Network Activate seeds every site; Broadcast copies hidden SEO\/LLMS post meta.<\/li>\n<\/ul>\n\n<h4>0.1.25<\/h4>\n\n<ul>\n<li>Remove \u201cTested up to\u201d from the plugin PHP header (WordPress.org scan: that field belongs only in readme.txt).<\/li>\n<\/ul>\n\n<h4>0.1.24<\/h4>\n\n<ul>\n<li>WordPress.org Plugin Check: PHPCS fixes (i18n, escaping, redirects, backup export, GA4 enqueue).<\/li>\n<li>Admin menu icon scaled to match other dashboard icons.<\/li>\n<\/ul>\n\n<h4>0.1.23<\/h4>\n\n<ul>\n<li>Broader Business type list on Quick setup and Business Info (software, trades, retail, and more schema.org types).<\/li>\n<\/ul>\n\n<h4>0.1.22<\/h4>\n\n<ul>\n<li>Encode &lt; and &amp; in JSON-LD so custom schema cannot break out of the script tag.<\/li>\n<\/ul>\n\n<h4>0.1.21<\/h4>\n\n<ul>\n<li>WordPress.org Contributors username: chrismcmanus.<\/li>\n<\/ul>\n\n<h4>0.1.20<\/h4>\n\n<ul>\n<li>WordPress.org-ready: removed custom spokora.com updater and Update URI.<\/li>\n<li>Text domain matched the directory slug at that time.<\/li>\n<li>Cookie banner and IndexNow are opt-in.<\/li>\n<li>Public UI says Import SEO (not Hijack).<\/li>\n<li>Added readme.txt and license.txt.<\/li>\n<\/ul>\n\n<h4>0.1.19<\/h4>\n\n<ul>\n<li>Stay out of the way when activating Spokora Pro so both plugins are not loaded in the same request.<\/li>\n<\/ul>\n\n<h4>0.1.18<\/h4>\n\n<ul>\n<li>Honest copy about version checks (removed in 0.1.20 for the directory).<\/li>\n<\/ul>","raw_excerpt":"SEO toolkit for WordPress: titles, schema, sitemap, and redirects. No account and no license key.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/393259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=393259"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/chrismcmanus"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=393259"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=393259"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=393259"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=393259"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=393259"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=393259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}