A few days ago, I reinstalled and re-enabled the free version of Yoast SEO, a plugin I had previously removed.
Looking back, I probably uninstalled it not because the plugin itself was bad, but because it adds a lot of SEO fields, analysis results, and optimization suggestions while writing. For someone like me, who mainly writes long-term technical practice notes, filling in an SEO title, Meta Description, focus keyword, and then trying to chase a green light for every article would noticeably increase the writing burden.
My blog has a relatively large number of posts. Most older posts only have a title, category, and tags. For newer posts, I usually also fill in an excerpt. Based on that reality, when I re-enabled Yoast SEO this time, I did not want to use it as a tool that requires manual optimization for every post. Instead, I wanted to use global settings to let it automatically generate the basic SEO information.
This article documents how I reorganized the global Yoast SEO settings this time.
![[Figure 1: Yoast SEO settings homepage]](https://media.shuijingwanwq.com/2026/07/1-27-1024x609.png)
1. My goal: low maintenance, not fine-grained SEO
When configuring Yoast SEO this time, I set a very clear principle for myself:
Do not add extra friction to my daily writing process.
In other words, I do not plan to manually fill in Yoast’s SEO title, Meta Description, and focus keyword for every article. For my blog, a more realistic approach is:
Continue writing posts normally, with titles, excerpts, categories, and tags;
Let Yoast automatically generate titles, descriptions, canonical URLs, Open Graph data, Schema, and sitemaps based on global templates;
Only manually optimize a small number of important pages.
The benefit of this approach is clear: the site gets a basic SEO structure, while blogging does not become a tiring extra task.
2. Posts: use the post excerpt as the Meta Description
The first thing I handled was the post content type.
The path is:
Yoast SEO → Settings → Content types → Posts
I set the “Meta description” for posts to:
%%excerpt%%
In the Yoast interface, this variable is displayed in Chinese as “摘录”.
![[Figure 2: Setting the post meta description to “Excerpt”]](https://media.shuijingwanwq.com/2026/07/2-26-1024x668.png)
Before changing the setting, I tested a newly published post with curl:
curl -sL "https://www.shuijingwanwq.com/2026/07/08/19108/?_nocache=$(date +%s)" | tr '<' '\n' | grep -Ei '^(title>|meta name="description"|meta property="og:description"|meta name="twitter:description")'
At that point, I could only see og:description and title, but not the standard:
<meta name="description">
After setting %%excerpt%% and saving the change, I tested again, and the page was already outputting the expected tag:
<meta name="description" content="这篇文章记录了我在 WordPress 中重新安装并启用 Yoast SEO 免费版时遇到的一次旧文章打不开问题……" />
This means that from now on, as long as I fill in the WordPress post “Excerpt”, Yoast can automatically output that excerpt as the Meta Description. I no longer need to fill in Yoast’s separate meta description field.
For older posts without an excerpt, Yoast can still automatically take a section from the beginning of the content as the description. This avoids the workload of backfilling excerpts for historical posts in bulk.
3. Pages: also use the excerpt as the Meta Description
Next, I tested an important page:
During testing, I found that this page had og:description, but did not have the standard meta name="description".
So under:
Yoast SEO → Settings → Content types → Pages
I also set the “Meta description” to:
%%excerpt%%
After saving and testing again, the page output the tag correctly:
<meta name="description" content="我目前可以提供 WordPress 性能优化、CDN 缓存排障、PHP/Laravel/Yii 老项目维护、MySQL/Redis/Nginx 问题分析,以及远程技术支持服务……" />
I also tested the corresponding English page:
The English page output the English excerpt:
<meta name="description" content="I help WordPress site owners, SaaS founders, affiliate site operators, and small technical teams fix slow websites, broken caching, CDN configuration..." />
This shows that using %%excerpt%% for pages is also suitable. It does not cause the Chinese excerpt to leak into the English page.
4. Homepage: set a separate global description
The homepage is different from posts and pages. It works more like the entry point for the entire blog, so I wrote a separate homepage meta description.
The path is:
Yoast SEO → Settings → Content types → Homepage
The final description I entered was:
永夜是一个记录 Web 开发、WordPress、PHP、Yii、Laravel、Go、Gin、MySQL、Nginx、Docker、Redis、Cloudflare、服务器运维与技术排查实践的个人博客。
This description was not written out of nowhere. I based it on my blog’s tag cloud. The higher-frequency topics in my tag cloud include:
WordPress, PHP, Yii, Yii 2, Laravel, MySQL, Nginx, Docker, Redis, Go, Cloudflare, Polylang, VPN, WireGuard, Linux, Ubuntu, Windows 10, and so on.
![[Figure 3: Blog tag cloud]](https://media.shuijingwanwq.com/2026/07/3-25-508x1024.png)
After the setting was saved, the Chinese homepage output the description correctly:
<meta name="description" content="永夜是一个记录 Web 开发、WordPress、PHP、Yii、Laravel、Go、Gin、MySQL、Nginx、Docker、Redis、Cloudflare、服务器运维与技术排查实践的个人博客。" />
At first, the English homepage also output the Chinese description. Later, through string translation, I translated the English homepage description as:
Yongye is a personal blog documenting Web development, WordPress, PHP, Yii, Laravel, Go, Gin, MySQL, Nginx, Docker, Redis, Cloudflare, server operations, and practical troubleshooting.
After testing the English homepage again, both meta description and og:description had changed to English.
5. Categories, tags, and series: unified title and description templates
The next step was to handle category, tag, and series archive pages.
On my blog, categories are more stable than tags, and series pages also have value as topic-based collections. So it would not be appropriate to simply noindex all of these pages.
The SEO title template for categories was set to:
%%term_title%% 分类归档 %%page%% %%sep%% %%sitename%%
The meta description template for categories was set to:
%%term_title%% 分类归档。这里整理永夜博客中与 %%term_title%% 相关的技术实践、问题排查、配置记录与经验总结。
Test category page:
https://www.shuijingwanwq.com/category/web
The output was:
<title>Web前端 分类归档 - 永夜</title>
<meta name="description" content="Web前端 分类归档。这里整理永夜博客中与 Web前端 相关的技术实践、问题排查、配置记录与经验总结。" />
The SEO title template for tags was set to:
%%term_title%% 标签归档 %%page%% %%sep%% %%sitename%%
The meta description template for tags was set to:
%%term_title%% 标签归档。这里整理永夜博客中与 %%term_title%% 相关的技术实践、问题排查、配置记录与经验总结。
Test tag page:
https://www.shuijingwanwq.com/tag/__invoke
The output was:
<title>__invoke 标签归档 - 永夜</title>
<meta name="description" content="__invoke 标签归档。这里整理永夜博客中与 __invoke 相关的技术实践、问题排查、配置记录与经验总结。" />
The SEO title template for series was set to:
%%term_title%% 系列归档 %%page%% %%sep%% %%sitename%%
The meta description template for series was set to:
%%term_title%% 系列归档。这里整理永夜博客中与 %%term_title%% 相关的系列文章、技术实践、问题排查与经验总结。
Test series page:
https://www.shuijingwanwq.com/series/self-hosted-vpn
The output was:
<title>自建 VPN 系列归档 - 永夜</title>
<meta name="description" content="自建 VPN 系列归档。这里整理永夜博客中与 自建 VPN 相关的系列文章、技术实践、问题排查与经验总结。" />
There is one small detail here: Yoast sometimes inserts a space between a variable block and Chinese text, for example “Web前端 分类归档”. This is not ideal, but the overall readability is still acceptable. It is not worth repeatedly tweaking the setup just for this.
6. Tag noindex: continue using the existing WPCode rule
I had previously created a rule with WPCode:
Tag archive pages with fewer than 3 posts automatically get a noindex tag.
So this time, I did not globally disable tag indexing in Yoast. Instead, I kept tag archives enabled in Yoast and continued letting WPCode decide which low-volume tags should be noindexed.
Test tag page with fewer than 3 posts:
https://www.shuijingwanwq.com/tag/__construct
The output included:
<meta name="robots" content="noindex, follow">
Test tag page with exactly 3 posts:
https://www.shuijingwanwq.com/tag/__invoke
No noindex tag was output.
This means the current rule works as expected:
Tag pages with fewer than 3 posts: noindex;
Tag pages with 3 or more posts: allow indexing.
Later, I found another issue: although low-volume tag pages are already noindexed, they still appear in Yoast’s tag sitemap. This is not the focus today. When I have time later, I may consider excluding these noindexed tags from the sitemap with code.
7. Chinese and English sites: translate Yoast templates through string translation
My site uses the English path /en/, so there is one important issue when configuring Yoast templates:
Will the Chinese templates affect English pages?
For example, after setting a Chinese description template for category pages, I tested a real English category page:
https://www.shuijingwanwq.com/en/category/web-en
I found that the English category page also needed to output the correct English title and English description.
So under “Languages → String translations”, I translated the Yoast-related Chinese strings into English in one place.
Some translation examples are shown below:
%%term_title%% 标签归档 %%page%% %%sep%% %%sitename%%
%%term_title%% Tag Archives %%page%% %%sep%% %%sitename%%
%%term_title%% 分类归档 %%page%% %%sep%% %%sitename%%
%%term_title%% Category Archives %%page%% %%sep%% %%sitename%%
%%term_title%% 系列归档 %%page%% %%sep%% %%sitename%%
%%term_title%% Series Archives %%page%% %%sep%% %%sitename%%
没有不值得去解决的问题,也没有不值得去学习的技术!
There is no problem not worth solving, and no technology not worth learning!
永夜
Yongye
![[Figure 4: Translating Yoast SEO strings in string translations]](https://media.shuijingwanwq.com/2026/07/4-25-1024x494.png)
After that, the English category page output became:
<title>Web Front End Category Archives - Yongye</title>
<meta name="description" content="Web Front End category archive. This page collects technical practices, troubleshooting notes, configuration records, and experience summaries related to Web Front End on the Yongye blog." />
The English tag page output became:
<title>__construct Tag Archives - Yongye</title>
<meta name="description" content="__construct tag archive. This page collects technical practices, troubleshooting notes, configuration records, and experience summaries related to __construct on the Yongye blog." />
The English series page also output correctly:
<title>Yii2 Advanced in Action Series: RESTful API + RPC Services + Internationalization + Logging & Testing Series Archives - Yongye</title>
The title here contains a repeated “Series … Series Archives”. The root cause is that the series name itself already includes “Series”. Most series names do not have this issue, so I did not change the global template for this individual case.
8. Author archives, date archives, and format archives
I kept author archives disabled.
Because this is a personal blog, author archive pages can easily duplicate the homepage or the main post list. Disabling author archives in Yoast is suitable here.
Date archives are a bit more special.
Yoast recommends disabling date archives, but in Google Search Console, I noticed that many date archive pages already had impressions and a small number of clicks.
![[Figure 5: Date archive pages with impressions and clicks in Google Search Console]](https://media.shuijingwanwq.com/2026/07/5-20-1024x502.png)
For example, over the past three months, some date archive pages had 1–2 clicks and dozens of impressions. The traffic is small, but disabling them directly would redirect these URLs, which may not be stable in the short term.
So I did not disable date archives. Instead, I kept the following setup:
Date archives enabled;
Date archives hidden from search results, which means noindex.
Test date archive page:
https://www.shuijingwanwq.com/2026/06/14
The output included:
<meta name='robots' content='noindex, follow' />
The English date archive page also output noindex:
<meta name='robots' content='noindex, follow' />
So date archives will remain in their current state for now.
Format archives, however, were disabled directly.
The path is:
Yoast SEO → Settings → Advanced → Format archives
I turned off format-based archives. Post format archives have almost no value for my technical blog, so disabling them makes the site cleaner.
9. Media pages, Schema, RSS, breadcrumbs, and Crawl optimization
Media pages remain disabled.
In Yoast, the media page setting was already disabled, which means attachment pages redirect to the media file itself. This matters a lot for a technical blog like mine with many screenshots. Otherwise, a large number of image attachment pages could become low-value pages.
Schema Framework remains enabled.
Yoast automatically outputs structured data such as WebSite, CollectionPage, BreadcrumbList, Person / Organization, and so on. For an ordinary technical blog, there is no need to overwork Schema settings. Keeping the default enabled state is enough.
RSS remains at the default setting.
Yoast appends content like the following to the end of RSS posts:
%%POSTLINK%%最先出现在%%BLOGLINK%%。
This type of content is mainly used to identify the original source. I have already handled the English version through string translation, so I did not continue changing it here.
Breadcrumbs remain as currently configured.
Although the frontend theme may not directly display Yoast breadcrumbs, Yoast already outputs BreadcrumbList in its Schema, so I am not going to spend extra time on it for now.
Crawl optimization remains entirely disabled.
This page can clean up REST API links, shortlinks, oEmbed, feeds, HTTP headers, and other output, but these settings affect lower-level site behavior. My site is already running relatively stably, so there is no need to change these outputs just to make the source look cleaner.
![[Figure 6: Crawl optimization page left disabled]](https://media.shuijingwanwq.com/2026/07/6-17-1024x699.png)
10. Disable two backend distractions in Site features
On the Site features page, I kept the core features enabled:
XML sitemaps;
Schema Framework;
Open Graph;
X Card data;
SEO analysis;
Readability analysis;
Text link counter.
But I disabled two features that do not affect frontend SEO and mainly affect the backend writing experience:
Task list;
Admin bar menu.
The Task list is mainly Yoast’s SEO to-do reminder. I do not want it to interfere with my normal writing rhythm.
The admin bar menu is the Yoast shortcut entry and notification area in the top admin bar. After disabling it, the backend feels cleaner, and frontend SEO output is not affected.
11. Site basics
Under Site basics, I kept:
Site name: 永夜;
Tagline: 没有不值得去解决的问题,也没有不值得去学习的技术!;
Title separator: -.
At the same time, under “Alternate website name”, I filled in:
Yongye
This allows Yoast to use Yongye as the alternate English / pinyin name for “永夜”, which is more stable for both the Chinese and English versions of the site.
12. XML sitemaps
Yoast SEO has taken over the default WordPress sitemap.
I visited:
https://www.shuijingwanwq.com/wp-sitemap.xml
It automatically redirected to:
https://www.shuijingwanwq.com/sitemap_index.xml
This means Yoast’s sitemap is already working correctly.
Later, I can resubmit the following URL in Google Search Console:
sitemap_index.xml
But that is an off-site follow-up task, not the focus of today’s Yoast configuration, so I did not continue with it for now.
13. Final test results
After completing these settings, I tested a Chinese post, an English post, a Chinese page, an English page, the homepage, the English homepage, a category page, an English category page, a tag page, an English tag page, a series page, an English series page, the search page, the 404 page, and a date archive page.
Overall, the results matched my expectations.
Chinese post output:
<meta name="description" content="这篇文章记录了我在 WordPress 中重新安装并启用 Yoast SEO 免费版时遇到的一次旧文章打不开问题……" />
<link rel="canonical" href="https://www.shuijingwanwq.com/2026/07/08/19108/" />
<title>重新安装 Yoast SEO 后旧文章打不开:一次 WPCode Snippet 重复声明函数导致的 WordPress 致命错误排查记录 - 永夜</title>
English post output:
<meta name="description" content="This article documents a WordPress troubleshooting case that happened after reinstalling and enabling Yoast SEO Free..." />
<link rel="canonical" href="https://www.shuijingwanwq.com/en/2026/07/08/19127/" />
<title>Reinstalling Yoast SEO Broke an Old Post: Debugging a WordPress Fatal Error Caused by a Duplicate WPCode Snippet Function - Yongye</title>
Chinese homepage output:
<meta name="description" content="永夜是一个记录 Web 开发、WordPress、PHP、Yii、Laravel、Go、Gin、MySQL、Nginx、Docker、Redis、Cloudflare、服务器运维与技术排查实践的个人博客。" />
English homepage output:
<meta name="description" content="Yongye is a personal blog documenting Web development, WordPress, PHP, Yii, Laravel, Go, Gin, MySQL, Nginx, Docker, Redis, Cloudflare, server operations, and practical troubleshooting." />
This shows that the global settings have achieved the intended result.
14. Summary
After re-enabling Yoast SEO this time, I did not focus on chasing a green SEO light for every post. Instead, I treated it as the basic SEO output layer for my WordPress blog.
The main work completed was:
Posts and pages use excerpts to automatically generate Meta Descriptions;
The homepage has a separate site-level description;
Categories, tags, and series use unified SEO title and meta description templates;
The English site handles Yoast templates through string translation;
Low-volume tag pages continue to use WPCode for automatic noindex;
Author archives are disabled;
Date archives are kept but noindexed;
Format archives are disabled;
Media pages remain disabled;
Schema, Open Graph, X Card, and XML Sitemap remain enabled;
Crawl optimization is left unchanged for now;
Task list and admin bar menu are disabled to reduce backend distractions.
For me, this is probably the most suitable way to use Yoast SEO at the moment:
It does not add extra workload to daily writing, but it makes the site’s basic SEO output more complete and more stable.
WordPress Maintenance, Performance Optimization & Blog Growth Consulting
I have been running my personal technology blog for more than 10 years and have published over 1,000 original articles. My long-term practice covers WordPress website maintenance, CDN / Cloudflare configuration, caching optimization, Google SEO, ad monetization, and multilingual website operations.
If your WordPress website is slow, unstable, affected by plugin conflicts, showing caching issues, having AdSense display problems, or facing CDN / Cloudflare / DNS configuration uncertainty, feel free to contact me for remote troubleshooting.
Ideal For:
✅ Personal blog owners
✅ WordPress website operators
✅ Independent developers and content creators
✅ SaaS website owners
✅ Website owners who want better speed and stability
What I Offer:
✅ WordPress performance optimization
✅ Cloudflare / CDN / caching configuration checks
✅ Plugin conflict and layout issue troubleshooting
✅ AdSense display issue troubleshooting
✅ Basic SEO structure review
✅ Blog growth and monetization consulting
If you would like to discuss your website, please contact me and mention: WordPress Maintenance Consultation.
Contact Me:
Telegram: @shuijingwan
WeChat: 13980074657
Email: shuijingwanwq@gmail.com

![[图2:文章类型中元描述设置为“摘录”]](https://media.shuijingwanwq.com/2026/07/2-26.png)
Leave a Reply