SEO Plugin Integration and Structured Data
Passing meta information to your SEO plugin, internal links, JSON-LD, and the llms.txt setting
Passing meta information to your SEO plugin
Under "Settings > Generation Defaults > SEO Plugin Integration" (seo_plugin), choose the SEO plugin you use. The generated meta description and title are automatically filled into that plugin's input fields.
Set it to Auto-detect and Sorabun will look at whichever SEO plugin is active and route the information appropriately.
Internal links and related articles
| Item | Setting key | Description |
|---|---|---|
| Add related articles | add_related | Add links to related articles at the end of the article |
| Number of related articles | related_count | How many to show |
| In-body cards | inline_cards | Also place a "Read next" box at section breaks (up to 2, on by default) |
| Auto-create categories | auto_create_category | Create a category if no suitable one exists |
| Maximum number of categories | category_max | Default 10, 0 for unlimited. Once the limit is reached, Sorabun picks from existing categories |
| Source note | add_source_note | List the information sources referenced, as "References," at the end of the article (on by default; an article with no visible sources looks unsupported to readers and to AI) |
Internal links are automatically inserted at appropriate points in the body text, pointing to existing articles. To avoid piling up loosely related links, Sorabun only picks articles that are genuinely close in content.
In-body links are embedded inside the sentence that explains them (never as a standalone "click here" line). A word inside a sentence sits in the middle of the reader's flow, though, so few people leave for another article there. Turning on inline_cards also places a "Read next" box at section breaks, which is a natural place to move on because the reader has just finished a section.
Articles already linked in the body, and those listed at the end, are never repeated in these cards. Being pushed the same article several times in one piece reads as a hard sell.
Restricting outbound links
A generated article can sometimes end up recommending an unrelated third-party service, because research results mix in promotional articles from various companies alongside official information.
Under "Settings > Generation Defaults > Outbound Links" (outbound_links), you can restrict which links are allowed.
| Option | Description |
|---|---|
| Only sources cited as evidence | Default. Only pages actually used for fact-checking |
| Government sites only | Limited to domains like go.jp, lg.jp, gov, etc. |
| No outbound links | Removes all of them |
| No restriction | Behaves as before |
For a link that doesn't meet the condition, only the link is removed. The surrounding text stays.
Gemini's search feature returns intermediary URLs in the form vertexaisearch.cloud.google.com/..., which expire after a while and give the reader no idea where they actually lead. Sorabun never shows these URLs in an article (if one ends up in the body text, only the link is removed). Only sources with an actual resolvable URL are listed under "References"; if none qualify, the whole section is omitted.
To increase the number of sources with real URLs, configure a SERP API such as Serper.dev under "Settings > Search Data Source."
Article finishing
Under "Settings > Generation Defaults > Article finishing" you can choose the parts that surround the body text. All are on by default.
| Item | Setting key | Description |
|---|---|---|
| Table of contents | add_toc | Auto (default) inserts one unless the theme or a TOC plugin already shows one. Always insert and Do not insert are also available. Only for articles with three or more H2 headings. Headings get IDs (#sec-1 and so on) either way, so AI search engines that cite a single section can link straight to it |
| Key takeaways | add_keypoints | Shows one key takeaways box at the top. A summary on top (80 to 120 characters, for the AIO/LLMO/GEO/Hybrid types) and three bullet points below with specifics from the body. Bullets that overlap with the summary (character overlap over half) are dropped mechanically, and if fewer than two remain, the box becomes summary only. For the type with no summary (SEO), it's just a "What you will learn" bullet list |
| Definition | add_definition | A standalone "X is ..." sentence after the introduction. The form generative AI is most likely to quote as the answer to "what is X" |
| Comparison table | comparison_table | Output the "comparison" diagram as an HTML table instead of an image. It can be copied, read by AI, and costs no image generation |
| As-of date and reading time | add_asof | Show "About N min read / This article reflects information as of Month Year" at the top. The date is the modified date and matches dateModified in the structured data |
| OGP | add_ogp | The card shown when shared on social media (title, description, featured image). Stays quiet if an SEO plugin or a supported theme (SWELL, Cocoon, etc.) already outputs it |
| CTA line | cta_ai | Let AI write the one line next to the CTA for each article (Pro). The button and its link stay shared. Articles with a manually set CTA are left alone |
Regardless of these settings:
- The last section is always a "Summary." If the outline lacks one, it is added (a short section restating the conclusion in 3 to 5 points and giving one next step)
- The FAQ uses the theme's own Q&A block on SWELL, and a question/answer list (
dl) elsewhere
Structured data (JSON-LD)
Enabling add_jsonld outputs structured data with the article. This helps with rich results in search and helps AI understand the content.
What is output:
| Type | Content |
|---|---|
| Article | Headline, description, published and modified dates, author and publisher, plus the featured image (image), article URL (mainEntityOfPage), language, word count, category, tags, summary (abstract), and the parts safe to read aloud (speakable) |
| BreadcrumbList | Home > Category > Article |
| FAQPage | Frequently asked questions |
| HowTo | When there is a step diagram |
| VideoObject | Articles made from YouTube. Video thumbnail and embed URL |
| ItemList | Listicles ("top N," "ranking," "comparison"). Each item links to a heading in the body |
| DefinedTerm | The definition sentence (about) |
URL, dates, and featured image are filled in with current values every time the page is output, not frozen at save time. A draft URL (?p=123) never lingers after publishing, and older articles benefit too.
llms.txt
Enabling llms_txt outputs an llms.txt file at the root of your site. This file tells AI crawlers "what's on this site," with the aim of making it easier for tools like ChatGPT to cite you.
Notify search engines and feed readers on publish (IndexNow, WebSub)
Under "Settings > Generation Defaults > Notify on publish or update," Sorabun can tell outside services when you publish, update, or unpublish an article. Both are off by default (they send URLs to outside services, so you choose whether to use them). No AI is used, so there's no cost.
| Setting | Who is notified | Effect |
|---|---|---|
Notify search engines (ping_indexnow) | Search engines that take part in IndexNow (Bing, Yandex, Naver, Seznam, and others) | New and updated articles are picked up without waiting for a crawl. Bing's results are also used by ChatGPT search and Copilot |
Notify feed readers (ping_websub) | WebSub hubs (the hub run by Google, and Superfeedr) | Feed readers such as Feedly, and podcast apps, get new articles and episodes sooner |
- Sending on every save would send repeatedly while you keep editing, so URLs are collected for a minute and sent together. The same URL isn't sent again within 10 minutes
- When you move an article back to draft or to the trash, its URL is sent too (so it drops out of results sooner)
- Articles set not to appear in search (LP noindex, Yoast or Rank Math noindex) aren't sent
- Nothing is sent when "Discourage search engines from indexing this site" is on under "Settings > Reading," or when the site runs on a development address (localhost, an internal address, .test, and so on)
Google doesn't use IndexNow. Google still finds your articles through the sitemap, as before (to have a new article looked at sooner, request indexing from "URL Inspection" in Search Console).
The IndexNow key
IndexNow confirms that the site owner sent the notice using a key file on your site. Sorabun creates the key automatically, and WordPress answers https://your-site/key.txt with just the key. You don't need to upload a file. The key's location is shown on the settings screen.
The first time, press "Send all published articles" once to send your existing articles in one go (up to 10,000 at a time). To send one article again, use "Notify search engines" in the posts list.
"Recent notices" on the settings screen shows when and how many URLs were sent, and whether they were accepted. If you see "The key couldn't be read (403)," open the key URL in a browser and check that only letters and numbers are shown.
Ask AI button
Enabling askai_enabled automatically adds an "Ask AI" block at the end of the article. When a reader clicks the button, a prompt containing the article's title and URL is passed directly to whichever AI the reader normally uses (ChatGPT / Gemini / Claude / Perplexity). Because the reader can "ask how the article's content applies to their own situation," their question gets resolved right there on the article.
- Which AIs are shown can be toggled individually with
askai_chatgpt,askai_google,askai_claude, andaskai_perplexity - ChatGPT and Claude open with the prompt already in the input field, and don't start until the reader submits it. Gemini and Perplexity start answering as soon as they open (Gemini opens in Google Search's AI mode, because Gemini itself can't accept a query passed via URL)
- The exchange happens on each AI's own service; nothing the reader types there is sent back to your site
- The prompt includes only the title and URL, not the article body. Every major AI today can search and browse, so if it has the URL, it will read the body itself
- To hide this on specific articles only, use the
sorabun_askai_showfilter to control it per article
It only appears when a reader has a single article or page open. It never appears on the top page.
If you've assigned a page as your top page, WordPress's own check for "a single page is open" still counts that page. Left uncorrected, this would make "Ask the AI about anything from the article that catches your interest" show up even at the bottom of your About Us page or landing page (before v2.63.0, it actually did).
For the same reason, the CTA, podcast player, Author and reviewer box, and read-rate markers don't appear on the top page either.
Tone
Under "Settings > Generation Defaults > Tone" (default_tone), choose the tone used across the article.
- です・ます調 (desu/masu form): for general blogs and media outlets
- だ・である調 (da/de aru form): for essays and reports
- Casual: for personal blogs, when you want a friendly feel
The writer, and the reviewer
Under Settings > Writer / reviewer you can register a name, job title, organization and credentials. In fields such as medicine, law and tax, where a qualification or position carries weight, the same content is treated differently when readers cannot tell who wrote it.
When the person who writes and the person who signs off are different, register the second one under "Add a separate reviewer." Both appear at the end of the article, and they go into the structured data separately, as author and reviewedBy.
Sorabun cannot verify credentials. Only enter qualifications and positions that are real.
First-party data (what only you can write)
Anything you can write by reading a vendor's site or a government document has already been written by someone else. What separates a top article is the numbers only that company holds. That is usually the part other articles cite and AI assistants pick up.
An AI cannot produce numbers it does not have. To keep it from inventing them, Sorabun firmly forbids writing cases or results it was not given. So this is the place to give them.
Enter one per line under Settings > First-party data (evidence_items):
`` Frequency survey | 62.3% said once a week is right; 15.8% said daily is fine | Own survey, March 2026, n=1,000 Close rate after rollout | Across 38 companies, inquiry-to-close rose 1.7x | Own data, Jan-Jun 2026 ``
The format is "heading | content | source", separated by vertical bars. Once registered:
- The outline stage builds a section around the number
- The body treats it with the same weight as facts verified by search
- The source you entered is cited in the body (entries with no source are treated as "own data")
Items already used in an earlier section are not offered again, so the same number does not keep reappearing.
Do not round or inflate them. Numbers and results you do not enter here still never appear in articles.
Author profile image (no Gravatar required)
By default, WordPress author icons depend on Gravatar (an external service); if an author hasn't registered there, they're left with the gray silhouette. Without a visible face for the author, both the credibility of the author info (E-E-A-T) and the theme's author box feel unfinished.
Once you activate Sorabun, a "Profile Image (Sorabun)" field appears under Users > Profile. Just choose an image from the media library, and it appears everywhere Gravatar would normally show, including the author box, the comments section, and so on.
- Square images display best
- Removing the image reverts to Gravatar as before
- If you're also using another avatar plugin, whichever loads later takes priority. You don't need to configure both