
SOHO SEO is a WordPress SEO plugin for the technical and structural parts of search visibility: XML sitemap and Google News sitemap, schema markup (Article, WebSite, Organization and BreadcrumbList structured data in JSON-LD), 301/302/410 redirects with a 404 log, noindex control for archive pages, SEO title and meta description templates, Open Graph and Twitter cards, image alt text, robots.txt and llms.txt editing, IndexNow, and a Google Discover checklist for every post. It does not use keyword-density scoring.
Why people use it
- Sitemaps: a standard XML sitemap with image tags, plus a Google News sitemap that lists each post in its own language.
- Structured data (schema markup): Article, WebSite, Organization and BreadcrumbList in JSON-LD, with real publish and modified times and copyright information for photos.
- Breadcrumbs: BreadcrumbList data and an optional visible trail (shortcode
[sohose_breadcrumbs]). - Redirects and 404 log: 301, 302 and 410 redirects, wildcard patterns, hit counts and CSV export.
- Google Discover checklist: a 100-point checklist in the post editor (featured image size, title quality, author, page experience) and a list that scores every published post.
- Noindex management: hide date, author, tag, search and chosen category archives without touching posts or pages.
- SEO titles and descriptions: templates with variables, per-post social title, description and image.
- Switching from another SEO plugin: import titles, descriptions and settings from Rank Math, Yoast SEO, All in One SEO, SEOPress or The SEO Framework. The other plugin’s data stays untouched.
- Multilingual sites: works with a multilingual plugin (Polylang or Translation Digest): language-aware home page, breadcrumbs, Open Graph locale and news sitemap language.
The admin screens are written in English and ship with Korean and Japanese translations. Features that need the optional SOHO Cloud service are marked as such below, and everything else works without any account or external server.
The details below are grouped by feature.
-
Applied automatically (active as soon as you install)
- Forces max-image-preview:large in the robots meta tag (a requirement for large-image cards in Google Discover)
- Automatically outputs Article structured data (JSON-LD) on every post (title/image/author/publish date/modified date/publisher)
-
Real-time checklist (post editor sidebar, refreshes automatically on save)
- Featured image: at least 1200px wide, at least 300,000 total pixels, close to a 16:9 ratio (Google’s official image requirements)
- Whether Article structured data outputs correctly (recommended, not required by Google for Discover)
- Clickbait/exaggeration detection in the title
- Author display name (an E-E-A-T signal)
- Mobile viewport meta tag (checked by loading the actual page when you click the button)
- Whether a site icon (favicon) is set
- Page experience: HTTPS (checked instantly) + PageSpeed Insights mobile performance score (checked automatically once an API key is registered).
Since Google’s February 2026 core update promoted page experience to an explicit Discover ranking factor, it carries the highest weight here. - A score out of 100 with per-item improvement advice (weighting: featured image 20 – page experience 30 – title quality 15 –
structured data 10 – author display 10 – robots 5 – viewport 5 – favicon 5)
-
Bulk post-checklist dashboard (admin menu “SOHO SEO” > “Post SEO Checklist”)
- See scores for every published post at a glance
- Re-check any single post with a “Re-check” button
-
Sitemaps (admin menu “SOHO SEO” > “Sitemap” — the on/off switch also lives on this screen)
- Standard XML sitemap: /sitemap_index.xml (sub-sitemaps: /sitemap-posts.xml, /sitemap-pages.xml),
including the featured image via tags to help with image crawling. - Google News sitemap: /news-sitemap.xml (enabled on the same screen, includes only posts published in the last 48 hours).
- WordPress core’s default sitemap (wp-sitemap.xml) is disabled automatically to avoid duplication.
- If you prefer another SEO plugin’s sitemap, or don’t need sitemaps at all, you can turn off just this
plugin’s sitemap generation from the “Sitemap” screen (the same on/off pattern used by Rank Math, Yoast, etc.).
- Standard XML sitemap: /sitemap_index.xml (sub-sitemaps: /sitemap-posts.xml, /sitemap-pages.xml),
-
Automatic internal/external link insertion — “Built-in” option (free, no external server involved;
available from the post editor sidebar and the “Internal/External Links” menu)- Clicking the button extracts candidate keywords/phrases from the whole post using a local, rule-based
method (filtering particles, endings and stop words). Internal and external link candidates are chosen
with different criteria:- Internal link candidates: broad, generally-recognized terms such as place names, event names,
countries/cities, or restaurant/lodging names (e.g. “a trip to Osaka, Japan” -> “Osaka”). - External link candidates: specific, technical compound terms such as jargon, weapon-system or
institution names (e.g. “hypersonic weapon system”, “missile defense system”).
If you need more context-aware candidate suggestions, see the paid “Network extraction” option in item 8 below.
- Internal link candidates: broad, generally-recognized terms such as place names, event names,
- Internal links: for every checked word (not just one), it automatically finds and links to the most
relevant other post on the site (based on title match and frequency of appearance in the body). - External links: for every checked word, it automatically finds the most relevant Korean Wikipedia
(ko.wikipedia.org) article and links to it in a new tab (see “External services” below). - In both cases, only the first occurrence of the word in the post is linked, and the post is published
immediately afterward.
- Clicking the button extracts candidate keywords/phrases from the whole post using a local, rule-based
-
Noindex management (admin menu “SOHO SEO” > “Noindex Management”, free)
- Automatically adds only to archive-type pages that don’t need
search visibility (date/monthly archives, author archives, tag archives, on-site search results, and
category archives you select yourself). - Uses meta noindex rather than blocking crawling via robots.txt — blocking crawling would prevent Google
from re-crawling and could leave already-indexed pages stuck in the index. - Individual posts and pages are never affected by any combination of this feature’s settings (there is an
unconditional safeguard at the top of the code for this). - Every option defaults to off; nothing is applied unless an administrator explicitly checks it.
- Automatically adds only to archive-type pages that don’t need
-
Redirects (admin menu “SOHO SEO” > “Redirects”)
- Integrates the 301/302/410 redirect management and 404 logging that used to be a separate plugin
(“LUX Redirect Manager”) into this plugin. - Supports exact-match and wildcard (*) patterns, hit counts, automatic 404 log collection, CSV export,
and a “Create redirect” button that goes straight from a 404 log entry to the redirect form. - If you were previously using “LUX Redirect Manager” separately, the database table names are kept
identical so your data carries over as-is. Since the functionality is now duplicated, we recommend
deactivating the separate plugin.
- Integrates the 301/302/410 redirect management and 404 logging that used to be a separate plugin
-
SOHO Cloud — a set of features that communicate with the soho-api.luxdigest.com server. Features 1-7 above
keep working for free regardless of whether this integration is used. This server address is fixed to
this plugin, shown read-only on the settings screen for transparency, and cannot be changed by the user.- Tag cleanup (admin menu “SOHO SEO” > “Tag Cleanup”): automatically classifies every tag into orphaned
(0 posts), thin (1 post), normal, or protected, shown as a sortable/filterable/searchable table, with
single or bulk deletion. Tags you mark “protected” are always excluded from statistics and deletion.
Viewing, protecting/unprotecting and deleting are all free with no limit, and processed entirely on
this site (no external server is contacted for this feature). - Credits & plans (admin menu “SOHO SEO” > “Credits & Plans”): shows your current credit balance,
first-signup trial credits, the monthly subscription plan, and top-up pricing, and lets you subscribe
or top up credits via the active payment processor (see “External services” below). - Human-likeness post check (admin menu “SOHO SEO” > “Human-likeness Post Check”, and the post editor
sidebar): from a paginated, category-filterable list of published posts, clicking “Check” expands an
accordion under that post showing a score out of 100, a detailed and humble overall review, and the
reasoning behind each sub-score. It never rewrites sentences or publishes anything on your behalf — it
is a pure diagnostic showing “how human this post reads.” This is a paid, credit-based feature processed
by the SOHO Intelligence process on the SOHO Cloud server (see “External services” below; no API key of
this site or any user is ever used). - Internal/external link management (admin menu “SOHO SEO” > “Internal/External Links”, and the post
editor sidebar): from the same paginated, category-filterable post list, choose one of three ways to
add links:- Built-in (free): extracts candidates locally on this site using word-based rules, without
contacting any server. The candidate list may be somewhat less refined than the network-based option. - Network extraction – manual (paid): the SOHO Cloud server analyzes the actual post’s context to
recommend candidates (processed on the SOHO Cloud server as above). Not perfect, but
more thorough than the built-in option. You review and check internal/external candidates in a
popup before they’re applied; publish status is left unchanged. - Network extraction – automatic (paid): the same server analysis is applied straight to the post
and published with one click, with no manual review step.
Both the manual and automatic modes let you restrict the scope to “internal only / external only / both”.
- Built-in (free): extracts candidates locally on this site using word-based rules, without
- Tag cleanup (in full) and the built-in link option work immediately with no account required; only the
credit-based features (human-likeness check, network-extraction link management) talk to the SOHO Cloud
server. - If you try to run a check/suggestion without enough credit, the screen immediately offers an “Apply for
trial credit” button so you can request credit and retry right there. - Site error check (admin menu “SOHO SEO” > “Site Error Check (Key Search Engine Items)”, paid, credit-based): once enabled with an
alert email address, the SOHO Cloud server itself checks this site’s robots.txt and every sitemap this
plugin provides (sitemap index, posts, pages, news – whichever are actually turned on) once a day at
03:17 Korea time, independent of this site’s own traffic or WP-Cron, so it still runs reliably on
low-traffic sites. It sends an email only when something looks wrong (robots.txt blocking all search
engines, a sitemap disappearing or its item count dropping sharply, its structure changing, etc.). The
same screen also shows, for free with no credit cost, a live preview of the current robots.txt content
and the status of every sitemap in use, a “Check now” button that runs the identical paid check on
demand, and a “Send test email” button to confirm the alert address works. Each check (scheduled or
manual) consumes a fixed number of credits; nothing is checked and no credit is charged unless this is
explicitly turned on.
- Tag cleanup (admin menu “SOHO SEO” > “Tag Cleanup”): automatically classifies every tag into orphaned
External services
This plugin’s free features (robots meta tag, structured data, real-time checklist, sitemaps, the built-in
internal-link option, noindex management, redirects) work entirely on this site with no external service
involved. Only the features below communicate with the external services listed.
-
SOHO SEO Cloud server (soho-api.luxdigest.com, operated by LUX Digest, the developer of this plugin)
- Used by the human-likeness post check, network-extraction internal/external link management, credit/plan
lookups, and payment (Paddle or Lemon Squeezy integration). Tag cleanup is handled entirely locally on this site and never
contacts this server. - This site’s domain and the title/body of the post being analyzed are sent. For link recommendations, the
server itself reads the titles and URLs of this site’s published posts from this site’s public REST API
(/wp-json/wp/v2/posts) to build the internal-link candidate list, instead of this site sending that list.
Long-running work is accepted as a job and processed on the server; the administrator’s browser then asks
the server for the result directly, so this site does not wait for server-side processing. If site health monitoring is
enabled, this site’s domain and the alert email address you enter are also sent, so the server can run the
daily robots.txt/sitemap check and email that address when it finds a problem. - Site authentication: the first time this site talks to the server, the plugin creates a random token and asks
the server to register this domain. The server then requests https://this-site/?sohose_verify=
once, and the plugin answers with an HMAC of that value (the token itself is never sent back), which proves the
request really came from this site. The server then issues a site-specific secret key, stored in this site’s
database, and every later request is signed with it so no one else can use this site’s credits or settings. - This server address is fixed and cannot be changed by the user.
- Terms of Service / Privacy Policy: https://sohoseo.luxdigest.com
- Used by the human-likeness post check, network-extraction internal/external link management, credit/plan
-
Anthropic Claude API (anthropic.com) / OpenAI API (openai.com)
- Called by the SOHO SEO Cloud server above, using the server’s own account, to process the
human-likeness post check and network-extraction link recommendations. The Claude API is used first,
automatically falling back to the OpenAI API only if the request fails or is unavailable. Neither this
site nor the user registers a separate API key; in both cases the request content (the title/body of the
post being analyzed) passes through the SOHO SEO Cloud server. - Terms of use: https://www.anthropic.com/legal/consumer-terms /
https://openai.com/policies/row-terms-of-use/
- Called by the SOHO SEO Cloud server above, using the server’s own account, to process the
-
Korean Wikipedia (ko.wikipedia.org, operated by the Wikimedia Foundation)
- Used by the external-link recommendation feature to check whether a matching article exists for a
candidate word and to retrieve that article’s URL. - Terms of use: https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use
- Used by the external-link recommendation feature to check whether a matching article exists for a
-
Google PageSpeed Insights API (used only if the user registers their own API key on the Settings screen;
optional)- Used in the post editor to check page loading speed. The request is sent directly from the administrator’s
browser to Google (this site’s server does not call it), together with the post’s public URL and your key. - Terms of use: https://developers.google.com/speed/docs/insights/v5/get-started
- Used in the post editor to check page loading speed. The request is sent directly from the administrator’s
-
Paddle (paddle.com) or Lemon Squeezy (lemonsqueezy.com) — payment processor. The SOHO SEO Cloud server is
configured to use exactly one of the two at a time; whichever is active is what a given installation uses.- Clicking the subscribe/top-up payment button on the “Credits & Plans” screen opens the active processor’s
own checkout (either Paddle.js, loaded from cdn.paddle.com, or a Lemon Squeezy-hosted checkout page opened
in a new tab). Card and other payment details are never sent to or stored by this plugin, this site, or
the SOHO SEO Cloud server — the payment processor handles them directly. Only the payment result is sent
by the processor to the SOHO SEO Cloud server so credits/plans can be updated. - Terms of use: https://www.paddle.com/legal/terms and https://www.lemonsqueezy.com/terms
- Clicking the subscribe/top-up payment button on the “Credits & Plans” screen opens the active processor’s