Lunar SEO v1.0.1 - Security & Maintenance Update
Lunar SEO v1.0.1 is now officially available! This patch release focuses on fixing a critical security vulnerability related to JSON-LD output, resolving multiple admin UI bugs, improving sitemap cache efficiency, and cleaning up unused legacy code.
We highly recommend all users to upgrade to this version immediately.
Security
- JSON-LD Stored XSS Patch: Removed
JSON_UNESCAPED_SLASHESfrom the Schema module's JSON-LD output. This flag disabled PHP's default protection against a</script>sequence (e.g. inside a post title, category name, or author name) prematurely closing the JSON-LD<script>tag, which could lead to stored XSS.
Fixed
-
General Module & Admin UI:
- The "Show in search results" toggle (Categories & Tags) now actually affects the
robotsmeta tag on category/tag archives — previously the setting was saved but never read anywhere, so disabling it had no effect. - Fixed issue where the "Show in search results" toggle would visually default to off on a fresh install when nothing had been saved yet.
- SEO Title and Meta Description fields (Admin Settings and Editor sidebar) now have a proper accessible label for screen readers.
- Bundled translations will now actually load (
load_plugin_textdomain()was never called). - Translated remaining Indonesian UI strings to English for consistency.
- Removed an unnecessary
wp_enqueue_media()call on the Sitemap settings page. - Settings pages no longer get stuck on an endless loading spinner if the initial settings request fails; an error notice is shown instead.
- The "Show in search results" toggle (Categories & Tags) now actually affects the
-
Sitemap & Meta Data:
- Fixed inconsistent escaping of
og:url,og:image, andtwitter:image(now useesc_url()instead ofesc_attr()). - Priorities dropdown (Sitemap) now correctly reflects saved whole-number values (
1.0,0.0). - Excluded Items category checklist no longer silently caps at the first 100 categories.
- Fixed inconsistent escaping of
Changed
- Sitemap Cache Efficiency: Sitemap cache no longer invalidates on post revisions/autosaves, reducing unnecessary cache regeneration.
- Admin Menu Optimization: Sitemap's admin submenu now references General's menu slug constant directly instead of a duplicated string.
- Code Refactoring: Extracted a shared
useRestSettingshook, removing duplicated fetch/save logic between the General and Sitemap Settings apps.
Removed
- Removed
readme.txt(duplicated byREADME.md). - Removed unused code:
Bootstrap::get_option_manager()/get_site_identity(),TitleResolver::get_site_name(), and the orphanedtemplate-field.jscomponent.
Installation & Upgrade
Download the lunar-seo.zip file below and upload it via Plugins → Add New → Upload Plugin in your WordPress dashboard, or overwrite the existing plugin folder under /wp-content/plugins/lunar-seo/.