{"id":335103,"date":"2026-07-20T07:11:47","date_gmt":"2026-07-20T07:11:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/markzen-seo\/"},"modified":"2026-07-20T07:23:14","modified_gmt":"2026-07-20T07:23:14","slug":"markzen-seo","status":"publish","type":"plugin","link":"https:\/\/tg.wordpress.org\/plugins\/markzen-seo\/","author":16067977,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Markzen SEO","header_author":"Markzen SEO","header_description":"Fast, clean SEO for WordPress. No bloat. No noise. Meta tags, sitemaps, schema, broken links, image audits, and Lighthouse scores in one simple plugin.","assets_banners_color":"","last_updated":"2026-07-20 07:23:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/markzen-seo\/","header_author_uri":"https:\/\/wordpress.org\/plugins\/markzen-seo\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":57,"num_ratings":0,"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":"ginmaster","date":"2026-07-20 07:11:23"},"1.0.1":{"tag":"1.0.1","author":"ginmaster","date":"2026-07-20 07:23:14"}},"upgrade_notice":{"1.0.0":"<p>Initial release. No upgrade path from prior versions.<\/p>","1.0.1":"<ul>\n<li>Updated Plugin URI to WordPress.org listing.<\/li>\n<\/ul>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard overview \u2014 four stat cards (missing meta, broken links, missing alt text, missing keyphrase), Needs Attention post list, Quick Actions panel, and Site Health at a Glance summary.","2":"Post editor meta box \u2014 SEO title and description fields with live Google SERP preview, focus keyphrase, canonical URL, noindex\/nofollow toggles, and Open Graph image override.","3":"Broken link checker \u2014 real-time scan progress bar, filterable results table with HTTP status codes, Recheck and Ignore actions per link.","4":"Lighthouse audit \u2014 score dials for Performance, Accessibility, Best Practices, and SEO; opportunities and diagnostics list with impact ratings.","5":"Settings \u2014 Sitemap configuration with post type\/taxonomy checkboxes, robots.txt virtual editor, Open Graph defaults, local business schema fields, and advanced options."}},"plugin_section":[],"plugin_tags":[154843,2988,6487,186,1557],"plugin_category":[55],"plugin_contributors":[272393],"plugin_business_model":[],"class_list":["post-335103","plugin","type-plugin","status-publish","hentry","plugin_tags-lighthouse","plugin_tags-meta-tags","plugin_tags-open-graph","plugin_tags-seo","plugin_tags-sitemap","plugin_category-seo-and-marketing","plugin_contributors-ginmaster","plugin_committers-ginmaster"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/markzen-seo.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Markzen SEO puts every SEO tool you actually need into one well-built plugin \u2014 with zero frontend performance impact.<\/p>\n\n<p><strong>Meta management<\/strong><\/p>\n\n<p>Custom SEO titles, meta descriptions, canonical URLs, and per-post noindex\/nofollow control. A live SERP preview shows exactly how your content appears in Google search results before you publish.<\/p>\n\n<p><strong>Open Graph &amp; Twitter Cards<\/strong><\/p>\n\n<p>Automatic og:title, og:description, og:image, and Twitter card meta tags, with per-post overrides. Your content looks its best when shared on social media \u2014 no extra configuration needed.<\/p>\n\n<p><strong>XML Sitemaps<\/strong><\/p>\n\n<p>Auto-generated XML sitemap covering posts, pages, categories, and tags. Automatically pings Google and Bing when you publish. Full admin control over which post types and taxonomies are included.<\/p>\n\n<p><strong>Robots.txt<\/strong><\/p>\n\n<p>Virtual robots.txt management with no file-system writes \u2014 Markzen controls robots.txt through WordPress's built-in <code>do_robots<\/code> filter. Detects and alerts you to any physical robots.txt file on disk that would override your settings.<\/p>\n\n<p><strong>Broken link checker<\/strong><\/p>\n\n<p>Background scan of every internal and external link across your site. View broken links with HTTP status codes, recheck individual links after fixing them, and mark false positives as ignored. Results persist between scans so you only see new issues.<\/p>\n\n<p><strong>Image alt text auditor<\/strong><\/p>\n\n<p>Background scan identifying images that are missing descriptive alt text. Direct edit links for every affected post \u2014 no hunting through the media library.<\/p>\n\n<p><strong>Script detector<\/strong><\/p>\n\n<p>On-demand inventory of every active JavaScript file loading on any page \u2014 first-party and third-party. Know exactly what is running on your site and where it comes from.<\/p>\n\n<p><strong>Lighthouse \/ PageSpeed Insights integration<\/strong><\/p>\n\n<p>On-demand Lighthouse audits via Google's free PageSpeed Insights API. No API key required for the free tier. Bulk audit queue processes up to 20 posts at throttled intervals to respect API rate limits. Per-post SEO score badge in the WordPress post list column.<\/p>\n\n<p><strong>Focus keyphrase tracking<\/strong><\/p>\n\n<p>Assign a focus keyphrase to each post and page. Built-in duplicate detection flags keyword cannibalization \u2014 if two or more posts target the same keyphrase, they compete against each other in search results. The Keyphrases view shows your full keyphrase map at a glance.<\/p>\n\n<p><strong>Structured data (Schema)<\/strong><\/p>\n\n<p>Automatic JSON-LD structured data output for Article, WebSite, and LocalBusiness (when local business details are configured in settings). Helps search engines understand your content type and display rich results.<\/p>\n\n<p><strong>Breadcrumbs<\/strong><\/p>\n\n<p>Schema-ready breadcrumbs via the <code>[markzen_breadcrumbs]<\/code> shortcode. Outputs JSON-LD breadcrumb markup alongside the visible trail.<\/p>\n\n<p><strong>Dashboard &amp; Site Health<\/strong><\/p>\n\n<p>Single-screen dashboard showing meta coverage, broken link count, missing image alt text, and Lighthouse SEO scores. The Site Health screen runs six cross-tool checks and shows a pass\/fail checklist with direct action links for anything that needs attention.<\/p>\n\n<h4>Zero frontend performance impact<\/h4>\n\n<p>Markzen SEO loads no JavaScript and no CSS on public-facing pages. Every frontend feature \u2014 meta tags, Open Graph, structured data, breadcrumbs \u2014 is plain HTML output. Installing this plugin does not affect your PageSpeed or Core Web Vitals scores.<\/p>\n\n<h4>Works without an API key<\/h4>\n\n<p>The Lighthouse integration uses Google's free PageSpeed Insights API. Rate limits apply to the free tier. You can optionally add a free API key in <strong>SEO \u2192 Settings \u2192 Advanced<\/strong> for higher rate limits on bulk audits.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>Markzen SEO does not track, collect, or transmit any data about your\nwebsite's visitors. No analytics, no cookies, and no fingerprinting of\nany kind are added to your public-facing pages. The plugin's output\nis limited to HTML meta tags and structured data in your page's\n element. See the External Services section below for details\non the limited, administrator-initiated connections this plugin makes\nto third-party APIs.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services in specific,\nlimited circumstances described below. No user data, visitor data,\nbrowsing history, or cookies are ever collected or transmitted by this\nplugin. All connections are initiated by the site administrator through\ndeliberate actions \u2014 nothing is sent automatically on visitor page loads.<\/p>\n\n<h4>Google PageSpeed Insights API<\/h4>\n\n<p>Used by: Markzen SEO \u2192 Lighthouse (audit feature)\nWhat is sent: The public URL of a page on your site that you choose to audit.\nWhen it is sent: Only when a site administrator clicks \"Run audit\" or\n\"Run bulk audit\". Never on visitor page loads. Never on a schedule without\nadministrator action.\nPersonal data sent: None. Only a public URL is transmitted.\nWho receives it: Google LLC.\nTerms of service: https:\/\/developers.google.com\/terms\nPrivacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h4>Google Sitemap Ping<\/h4>\n\n<p>Used by: Sitemap notification feature (optional, disabled by default)\nWhat is sent: Your sitemap URL (example: https:\/\/yoursite.com\/sitemap.xml),\nwhich is already publicly accessible. No content, no user data.\nWhen it is sent: When a post or page is published or updated, if the\n\"Ping Google\" setting is enabled in Settings \u2192 Sitemap. Rate-limited to\nonce per 60 seconds.\nPersonal data sent: None.\nWho receives it: Google LLC.\nTerms of service: https:\/\/developers.google.com\/terms\nPrivacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h4>Microsoft Bing Sitemap Ping<\/h4>\n\n<p>Used by: Sitemap notification feature (optional, disabled by default)\nWhat is sent: Your sitemap URL only. No content, no user data.\nWhen it is sent: When a post or page is published or updated, if the\n\"Ping Bing\" setting is enabled in Settings \u2192 Sitemap. Rate-limited to\nonce per 60 seconds.\nPersonal data sent: None.\nWho receives it: Microsoft Corporation.\nTerms of service: https:\/\/www.microsoft.com\/en-us\/servicesagreement\nPrivacy policy: https:\/\/privacy.microsoft.com\/en-us\/privacystatement<\/p>\n\n<h4>Broken Link Checker (outbound HTTP requests)<\/h4>\n\n<p>Used by: Markzen SEO \u2192 Broken Links (scan feature)\nWhat is sent: Standard HTTP HEAD or GET requests to URLs found in your\ncontent, to check whether those links are reachable. This is equivalent\nto a browser loading a URL \u2014 no personal data, no cookies, no site data\nbeyond the request itself.\nWhen it is sent: Only when a site administrator clicks \"Start scan\".\nNever automatically. Never on visitor page loads.\nPersonal data sent: None. The requests originate from your web server,\nnot from your visitors' browsers.\nWho receives it: The operators of any websites your content links to.\nEach site receives only a standard HTTP availability check.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>markzen-seo<\/code> directory to <code>\/wp-content\/plugins\/<\/code>, or install directly from the WordPress admin by going to <strong>Plugins \u2192 Add New<\/strong> and searching \"Markzen SEO\".<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> screen.<\/li>\n<li>Navigate to <strong>SEO \u2192 Dashboard<\/strong> to run the first background scan and review your site's current SEO status.<\/li>\n<li>Go to <strong>SEO \u2192 Settings<\/strong> to configure sitemaps, Open Graph defaults, local business schema, and advanced options.<\/li>\n<li>Open any post or page in the editor \u2014 the Markzen meta box appears in the right sidebar. Add a focus keyphrase and meta description, and review the live SERP preview.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20affect%20my%20site%27s%20page%20speed%3F\"><h3>Does this plugin affect my site's page speed?<\/h3><\/dt>\n<dd><p>No. Markzen SEO outputs zero JavaScript and zero CSS on public-facing pages. All frontend features are plain HTML. Installing or activating this plugin has no effect on your PageSpeed Insights or Core Web Vitals scores.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20api%20key%20for%20lighthouse%3F\"><h3>Do I need a Google API key for Lighthouse?<\/h3><\/dt>\n<dd><p>No. The Lighthouse integration uses Google's free PageSpeed Insights API, which works without any API key for single-page audits. If you want to run bulk audits across 20 pages, you may hit the free tier's rate limits. Add a free API key in <strong>SEO \u2192 Settings \u2192 Advanced<\/strong> to increase your limit. Instructions for getting a free API key are in the settings screen.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20already%20have%20a%20robots.txt%20file%20on%20my%20server%3F\"><h3>What happens if I already have a robots.txt file on my server?<\/h3><\/dt>\n<dd><p>WordPress serves robots.txt dynamically when no physical file exists on disk. Markzen SEO builds on this by adding its own rules through the <code>do_robots<\/code> filter. If a physical <code>robots.txt<\/code> file exists at the root of your WordPress installation, it takes precedence and the WordPress\/Markzen virtual robots.txt is never served. The plugin detects this conflict and shows a warning in the Dashboard, Site Health screen, and the Robots.txt editor.<\/p><\/dd>\n<dt id=\"is%20markzen%20seo%20compatible%20with%20yoast%20seo%2C%20rank%20math%2C%20or%20other%20seo%20plugins%3F\"><h3>Is Markzen SEO compatible with Yoast SEO, Rank Math, or other SEO plugins?<\/h3><\/dt>\n<dd><p>Markzen SEO is designed to be the only active SEO plugin on a site. Running multiple SEO plugins at once will produce duplicate meta tags, duplicate sitemaps, and conflicting structured data. Deactivate any other SEO plugins before activating Markzen SEO.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20store%2C%20and%20what%20happens%20when%20i%20delete%20it%3F\"><h3>What data does the plugin store, and what happens when I delete it?<\/h3><\/dt>\n<dd><p>Markzen SEO stores: settings (one options row), per-post SEO meta (title, description, keyphrase, canonical, noindex\/nofollow, Open Graph overrides), scan results for links and images, and Lighthouse audit history per post. All of this is removed when you delete the plugin through the WordPress admin Plugins screen. Deletion is permanent and irreversible.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20custom%20post%20types%3F\"><h3>Does the plugin work with custom post types?<\/h3><\/dt>\n<dd><p>The SEO meta box and keyphrase analysis appear on any public post type that supports a custom editor. The sitemap and broken link checker cover posts and pages by default; custom post type inclusion is configurable in <strong>SEO \u2192 Settings \u2192 Sitemap<\/strong>.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20slow%20down%20the%20wordpress%20admin%3F\"><h3>Does this plugin slow down the WordPress admin?<\/h3><\/dt>\n<dd><p>Background scans (link checker, image auditor, Lighthouse bulk audit) run via WordPress cron \u2014 they do not block page loads. The admin dashboard loads scan results from a 1-hour transient cache, so repeated page loads are fast. The first load after the cache expires triggers a fresh database count query, which is typically under 50ms.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Fast, clean SEO for WordPress. Meta tags, sitemaps, broken links, image audits and Lighthouse scores \u2014 no bloat, no noise.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/335103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=335103"}],"author":[{"embeddable":true,"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ginmaster"}],"wp:attachment":[{"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=335103"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=335103"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=335103"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=335103"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=335103"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=335103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}