There is no problem not worth solving, and no technology not worth learning!

How I Used Global Yoast SEO Settings to Improve WordPress Blog SEO with Low Maintenance

[图2:文章类型中元描述设置为“摘录”]

作者:

,

Blog SEO Log

收到 Google Search Console 的邮件:新原因导致网站 http://www.shuijingwanwq.com/ 上的网页无法被编入索引。如图1

(1) Google webpage cannot be indexed? I solved it like this

验证通过后,在左侧菜单找到「站点地图」,输入 `/wp-sitemap.xml`,点击提交即可(如图1)

(2) Five search engine site map submissions full record: from Google to Sogou, my practical experience to share

sitemap采用邀请制,当您的网站存在原创或不可替代内容或不能被搜狗spider正确抓取时,才会开通sitemap权限。

(3) Sogou sitemap permission application record: the whole process from review to submission

所有主体、验证、备案配置全部完成后,进入核心的收录配置环节:【资源提交 - 普通收录 - 资源提交 - sitemap】,发现页面额度显示异常(如图3)

(4) Baidu search resource platform new station completes the complete collection of practical records

美国流量占 20%,日本 10%,香港 16%,台湾 9%

(5) Technical Blog English Station Index and Low Value Label Processing

中文站点地图:`https://www.你的域名.com/wp-sitemap-posts-post-1.xml` → 显示“致命错误”如图2

(6) Fixed WordPress fatal error: from sitemap error to return to normal

Bing 明确指出了 4.2K 个页面存在“内容质量”问题

(7) Blog SEO Diagnostic Records: Causes and Optimization List of Nearly 15000 Pages Not Indexed

点击表头的“总数”进行排序,数量为 0 的标签会集中在前几页。

(8) Thoroughly clear WordPress empty tags: Eliminate soft 404, save grabbing budget

/tag/bsc/ 网页源代码中成功出现 noindex 标签

(9) Blog SEO Diagnostic Records: Thin Content Tabs NoIndex Scheme Practical and Multilingual Test Validation

“0秒访问”主要来自标签页

(10) WordPress Tag SEO Optimization Practice: Use WPCode to Realize “Low Content Tab Page NoIndex” Complete Detach and Repair Records

图1:Bing整体流量趋势(下降起点)

(11) Bing Traffic Drop After Switching WordPress Themes: An Ongoing SEO Postmortem of a Site Structure Change

【图5:旧文章打开时出现 WordPress 致命错误】

(12) Reinstalling Yoast SEO Broke an Old Post: Debugging a WordPress Fatal Error Caused by a Duplicate WPCode Snippet Function

[图2:文章类型中元描述设置为“摘录”]

(13) How I Used Global Yoast SEO Settings to Improve WordPress Blog SEO with Low Maintenance

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]
[Figure 1: Yoast SEO settings homepage]

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”]
[Figure 2: Setting the post meta description to “Excerpt”]

Before changing the setting, I tested a newly published post with curl:

Bash
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:

HTML
<meta name="description">

After setting %%excerpt%% and saving the change, I tested again, and the page was already outputting the expected tag:

HTML
<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:

HTML
<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:

HTML
<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:

Plaintext
永夜是一个记录 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]
[Figure 3: Blog tag cloud]

After the setting was saved, the Chinese homepage output the description correctly:

HTML
<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:

Plaintext
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:

Plaintext
%%term_title%% 分类归档 %%page%% %%sep%% %%sitename%%

The meta description template for categories was set to:

Plaintext
%%term_title%% 分类归档。这里整理永夜博客中与 %%term_title%% 相关的技术实践、问题排查、配置记录与经验总结。

Test category page:

https://www.shuijingwanwq.com/category/web

The output was:

HTML
<title>Web前端 分类归档 - 永夜</title>
<meta name="description" content="Web前端 分类归档。这里整理永夜博客中与 Web前端 相关的技术实践、问题排查、配置记录与经验总结。" />

The SEO title template for tags was set to:

Plaintext
%%term_title%% 标签归档 %%page%% %%sep%% %%sitename%%

The meta description template for tags was set to:

Plaintext
%%term_title%% 标签归档。这里整理永夜博客中与 %%term_title%% 相关的技术实践、问题排查、配置记录与经验总结。

Test tag page:

https://www.shuijingwanwq.com/tag/__invoke

The output was:

HTML
<title>__invoke 标签归档 - 永夜</title>
<meta name="description" content="__invoke 标签归档。这里整理永夜博客中与 __invoke 相关的技术实践、问题排查、配置记录与经验总结。" />

The SEO title template for series was set to:

Plaintext
%%term_title%% 系列归档 %%page%% %%sep%% %%sitename%%

The meta description template for series was set to:

Plaintext
%%term_title%% 系列归档。这里整理永夜博客中与 %%term_title%% 相关的系列文章、技术实践、问题排查与经验总结。

Test series page:

https://www.shuijingwanwq.com/series/self-hosted-vpn

The output was:

HTML
<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:

HTML
<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:

Plaintext
%%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]
[Figure 4: Translating Yoast SEO strings in string translations]

After that, the English category page output became:

HTML
<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:

HTML
<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:

HTML
<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]
[Figure 5: Date archive pages with impressions and clicks in Google Search Console]

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:

HTML
<meta name='robots' content='noindex, follow' />

The English date archive page also output noindex:

HTML
<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:

Plaintext
%%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]
[Figure 6: Crawl optimization page left disabled]

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:

Plaintext
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:

Plaintext
https://www.shuijingwanwq.com/wp-sitemap.xml

It automatically redirected to:

Plaintext
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:

Plaintext
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:

HTML
<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:

HTML
<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:

HTML
<meta name="description" content="永夜是一个记录 Web 开发、WordPress、PHP、Yii、Laravel、Go、Gin、MySQL、Nginx、Docker、Redis、Cloudflare、服务器运维与技术排查实践的个人博客。" />

English homepage output:

HTML
<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.

Reinstalling Yoast SEO Broke an Old Post: Debugging a WordPress Fatal Error Caused by a Duplicate WPCode Snippet Function

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

评论

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.