lwplugins / lw-seo
Lightweight SEO plugin for WordPress
Fund package maintenance!
v1.6.0
2026-09-21 19:50 UTC
Requires
- php: >=8.2
- composer/installers: ^2.0
Requires (Dev)
- brain/monkey: ^2.6
- php-stubs/woocommerce-stubs: ^10.9
- php-stubs/wp-cli-stubs: ^2.12
- phpcompatibility/phpcompatibility-wp: ^2.1
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.0
- szepeviktor/phpstan-wordpress: ^2.0
- wp-coding-standards/wpcs: ^3.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v1.6.0
- v1.5.1
- v1.5.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.14
- v1.3.13
- v1.3.12
- v1.3.11
- v1.3.10
- v1.3.9
- v1.3.8
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.0
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
This package is auto-updated.
Last update: 2026-09-21 20:32:04 UTC
README
Lightweight SEO plugin for WordPress - minimal footprint, maximum impact.
Website: lwplugins.com GitHub: github.com/lwplugins/lw-seo
Features
Meta Tags & Titles
- Custom Titles - Per-post/page title override with template variables
- Meta Descriptions - Auto-generated from excerpt or content
- Title Separator - Customizable separator character
- Canonical URLs - Prevent duplicate content issues
- Robots Control - noindex/nofollow per post
Social Media
- Open Graph - Facebook, LinkedIn sharing optimization
- Twitter Cards - Summary and large image cards
- Default Social Image - Fallback when post has no featured image
- Custom OG Images - Per-post social images
XML Sitemap
- Auto-generated - Posts, pages, categories, tags and WooCommerce products
- Custom Post Types - Every public CPT (ACF, CPT UI, …) is included automatically, with a per-type toggle
- Custom Taxonomies - Opt-in, per taxonomy
- Clean - noindex types/taxonomies, noindex and password-protected posts are left out
- Developer filters -
lw_seo_sitemap_post_types,lw_seo_sitemap_exclude_post,lw_seo_sitemap_urls - Available at
yoursite.com/sitemap.xml(per-type files:sitemap-{type}.xml)
Schema.org / JSON-LD
- WebSite Schema - Site-wide structured data
- Article Schema - Blog posts with author info
- Organization/Person - Knowledge graph support
- Breadcrumb Schema - Navigation markup
Breadcrumbs
- Shortcode -
[lw_breadcrumbs] - PHP Function -
\LightweightPlugins\SEO\lw_seo_breadcrumbs() - Microdata - Built-in structured data
FAQ Block
- Gutenberg block -
lw-seo/faqwith FAQPage schema
AI & LLM
- llms.txt - Spec-compliant (llmstxt.org) file listing every page and custom post type in its own section, with SEO descriptions, custom summary/intro, an Optional links section and a per-section limit; cached and built as an anonymous visitor
- llms-full.txt - Optional full-content Markdown dump (1 MiB cap)
- Markdown endpoint - Every post, page, product and term as Markdown at
/mdor/markdown(or?format=md, orAccept: text/markdown), with YAML frontmatter,Vary: Accepton negotiated responses and discovery links (rel="alternate"/rel="describedby") - Content Signals - Three-state
search/ai-input/ai-trainsignals (Cloudflare Content Signals Policy) sent as aContent-Signalheader, meta tag and robots.txt line; per-post and per-term overrides - AI Crawler Control - 22 verified crawlers grouped by purpose, blockable one by one or per purpose (training / AI search / user-triggered): OpenAI (GPTBot, OAI-SearchBot, ChatGPT-User), Anthropic (ClaudeBot, Claude-SearchBot, Claude-User), Google-Extended, Applebot-Extended, Perplexity, Meta, Amazon, Mistral AI, Common Crawl, AI2, ByteDance
- robots.txt - Adds the sitemap, AI crawler rules and Content-Signal line through WordPress's
robots_txtfilter (compatible with other plugins); preview and physical-file warning in the admin
WooCommerce Integration
- Auto-Detection - Automatically enables when WooCommerce is active
- Product OpenGraph - Price, currency, availability, brand, condition
- Product Schema - Full Schema.org Product markup with offers
- Reviews Schema - Product reviews and aggregate ratings
- Product Sitemap - Include products and product categories
- Custom Settings - Dedicated WooCommerce SEO settings tab
Local SEO
- LocalBusiness Schema - 100+ business types supported
- Business Address - Street, city, state, zip, country
- Contact Info - Phone, email with schema markup
- Opening Hours - Per-day hours with OpeningHoursSpecification
- Geo Coordinates - Latitude/longitude for location
- Shortcodes -
[lw_address],[lw_phone],[lw_email],[lw_hours],[lw_map]
Redirects & 404
- Redirect Manager - 301, 302, 307, 410 and 451 redirects, with CSV import/export
- 404 to homepage - Optional redirect of 404s to the homepage
Migration
- Import from Rank Math and Yoast SEO - Options, post and term meta, primary categories and redirects (admin Import tab or
wp lw-seo migrate)
Cleanup
- Remove shortlinks
- Remove RSD links
- Remove WLW manifest
Admin Interface
- Unified LW Plugins menu
- Modern tabbed settings interface
- WordPress media library integration
- Translations: Hungarian (hu_HU) included
Developer & Automation
- WP-CLI -
wp lw-seo option|sitemap|llms|robots|crawlers|redirect|migrate …— every setting can be read and set (validated) from the command line, see docs/cli.md - REST API - Read-only
lw-seo/v1endpoints for headless setups, see docs/rest-api.md - LW Site Manager abilities -
lw-seo/get-meta,set-meta,get-content-signals,get-markdown,get-options(per-object permission checks), see docs/site-manager-abilities.md - Hooks - see docs/developers.md
Installation
Via Composer (recommended)
composer require lwplugins/lw-seo
Manual Installation
- Download the latest release
- Upload to
/wp-content/plugins/lw-seo/ - Activate in WordPress admin
- Go to LW Plugins → SEO
Template Variables
Use these in title templates:
| Variable | Description |
|---|---|
%%sitename%% |
Site name |
%%sitedesc%% |
Site tagline |
%%title%% |
Post/page title |
%%sep%% |
Separator character |
%%excerpt%% |
Post excerpt |
%%author%% |
Author name |
%%date%% |
Publish date |
%%modified%% |
Last modified date |
%%category%% |
Primary category |
%%tag%% |
Tags |
%%term_title%% |
Taxonomy term name |
%%term_description%% |
Taxonomy term description |
%%currentdate%% |
Current date |
%%currentmonth%% |
Current month |
%%currentyear%% |
Current year |
%%page%% / %%pagenumber%% |
Page number |
%%searchphrase%% |
Search query |
Full reference: docs/template-variables.md
Requirements
- PHP 8.2+
- WordPress 6.0+
Conflict Detection
LW SEO skips its head meta output (and shows a notice on its settings page) when detecting:
- Yoast SEO
- Rank Math
- All in One SEO
Development
# Install dependencies composer install # Run code sniffer composer phpcs # Fix coding standards composer phpcbf # Static analysis (PHPStan level 5) composer analyse # Run tests composer test
Full documentation: docs/ · Changelog: CHANGELOG.md
License
GPL-2.0-or-later
Sponsor
Supported by Sinann
