REPORT
CEPATO Technical Note2025.11.09

A Deep Dive into Modern SEO: Principles, Algorithms and Practice

A 2025 in-depth SEO guide covering crawling, indexing and ranking algorithms, with a systematic look at authority building and content optimization in practice

Chongxi
Author:Chongxi
steam: —·spotify: —
Tags:#SEO
ANALYSIS

0. Introduction#

SEO, that is, Search Engine Optimization, is a complete set of technical strategies whose goal is to make it easier for search engines to understand and index your site, and ultimately to provide users with better search results

SEO is a long-term process, and you need to keep adjusting and optimizing according to the rules and algorithms of search engines

This post is complementary to A Deep Dive into Modern Search Engines: From Principles and Algorithms to Efficient Retrieval Practice. I strongly recommend reading the earlier piece, > click to jump


1. Crawling#

Crawling is the first step in a search engine getting to know a website. Crawler programs visit web pages one by one through links and fetch their content.
Your site’s pages must be crawlable before they can be indexed by search engines and shown in search results

1.1 Crawl Frontier & URL Discovery#

Search engines rely on a system called Crawl Frontier (the crawl frontier).
The crawl frontier is a list that manages URLs; crawlers fetch pages according to the URLs in the queue.
URLs are discovered mainly in four ways:

  • Internal Links: the crawler discovers new pages through the <a> tags in pages it has already crawled. For example, if your Arch Linux Installation Guide contains a link to A Detailed Guide to GRUB Boot Configuration, the crawler will discover the latter page through this link
  • External links Backlinks: links from other sites to yours are also an important discovery path. For example, if a rhythm game community, in an article rounding up the works of the composer xi, links to your Which songs does xi have in maimai DX?, then that is an external link For the SEO of external links, see the PageRank explanation
  • Sitemap: the site owner provides a sitemap.xml that lists all the important pages of the site. Search engines can use this file to quickly learn what content exists under your site and index it
  • History & Prediction: based on previous crawl data, search engines predict new URLs. For example, suppose your URL structure is /chongxi/1/; the crawler may infer that /chongxi/2/ might exist, and keep crawling

1.2 Crawling Strategies: BFS & Priority & Adaptive Scheduling#

Faced with a huge number of URLs, crawlers need to manage crawl order efficiently The following may have already been covered in the previous search engine deep dive, so I’ll keep it brief here as a review

  • BFS: the most basic crawling strategy. Starting from a seed page, it prioritizes pages closer to the current one (fewer link levels)

  • Priority Scheduling: modern crawlers dynamically adjust priority based on various signals, for example:

    1.PageRank: if your maimai DX Beginner's Guide is linked by many high-quality sites, the crawler may consider this page more important and crawl and update it first, but PageRank has long been a thing of the past, replaced by more advanced authority evaluation; see 3.3 for details

    2.Update frequency: for example, a page like maimai DX attendance live feed may be crawled more frequently

    3.User demand: if compiling a new OpenWrt version becomes a hot search, related tutorial pages may be crawled first

1.3 Crawl Budget#

Crawl Budget refers to the time and resource limits a search engine places on crawling a site. It consists of two parts:

  1. Crawl Rate Limit: the limit on how frequently the search engine crawls your server. If your server responds quickly and doesn’t produce large numbers of 404 or 5xx errors, the crawler will crawl more frequently
  2. Crawl Demand: how much value the search engine believes a page has. For example, if your page is very valuable, or its content updates often such as a frequently updated maimai DX song list, the crawler will crawl it more frequently

1.4 Layers and Logic of Crawl Control Protocols#

Site owners can control crawlers in several ways

  • robots.txt file: located in the site’s root directory; tells crawlers which paths must not be accessed Configuration example:
PRTCL // PLAINTEXT
User-agent: *
Disallow: /tmp/
  • <meta name="robots">: page-level control, placed in the HTML <head> section Configuration example:
PRTCL // PLAINTEXT
<meta name="robots" content="noindex">

This means the page can be crawled, but must not be shown in search results

  • X-Robots-Tag: controls crawling and indexing through HTTP response headers; suitable for non-HTML files (such as PDFs and images)

2. Indexing#

Indexing is the process by which a search engine turns web page content into queryable, searchable structured data

2.1 Text Preprocessing Pipeline#

Crawled page content goes through a series of processing steps:

  1. Content extraction: strip templated content such as ads, sidebars and footers, and focus on the core body text
  2. Tokenization: split the article content into individual tokens token. For example, the Chinese query 小米路由器刷 openwrt would be split into 小米, 路由器, 刷入, openwrt
  3. Normalization: includes lowercasing, lemmatization (e.g. “running” to “run”), and removal of stop words (such as “的”, “了”)

2.2 Core Data Structure I: Inverted Index#

The inverted index is one of the core data structures of search engines. It maps tokens → the list of document IDs containing that token, allowing fast lookup

NOTE

EXAMPLE

Suppose your blog has the following three articles:

  • Article 1 ID: 1: title The Ultimate Guide to Optimizing Steam Proton Performance on Arch Linux
  • Article 2 ID: 2: title Installing and Configuring i3wm on Arch Linux
  • Article 3 ID: 3: title A Few Steam Indie Games That Run Smoothly on Linux

After text preprocessing (tokenization, normalization), the search engine builds the following inverted index table (Posting List) for some key tokens:

Token TokenList of document IDs containing the token Posting List
arch[1, 2]
linux[1, 2, 3]
steam[1, 3]
guide[1]
game[3]
install[2]

Now let’s see how the inverted index works when users perform different searches:

Scenario one: a simple query

When a user searches Arch, the search engine goes straight to the inverted list for arch and instantly returns [Document 1, Document 2]

Scenario two: a boolean query

When a user searches Arch Linux Steam, the search engine performs the following efficient intersection operation: 1. Take the list for arch: [1, 2] 2. Take the list for linux: [1, 2, 3] 3. Take the list for steam: [1, 3]

Next, merge these sorted lists to compute the intersection:

PRTCL // PLAINTEXT
- [1, 2] AND [1, 2, 3] => [1, 2]
*then use the result of the previous step to continue the intersection*
- [1, 2] AND [1, 3] => [1]

At this point, the search engine has within milliseconds precisely pinpointed the only relevant Article 1, without any need to scan the hundreds of millions of documents irrelevant to the query

2.3 Core Data Structure II: Vector Index & Semantic Space#

Modern search engines have introduced vector indexes to understand the semantics of a query. Through deep learning techniques, each word or document is converted into a high-dimensional vector

NOTE

EXAMPLE

Your two articles How to Set Up Home Cloud Storage with OpenWrt and How to Set Up a VPN Server with OpenWrt don’t share exactly the same keywords, but their topics are related.
Through vector indexing, the search engine can turn their semantic relationship into distance in vector space and know that they both belong to the topic OpenWrt advanced configuration. So when a user searches OpenWrt VPN, the search engine may also recommend the OpenWrt home cloud storage article

2.4 Content Deduplication and Normalization#

The internet is full of duplicate content. Search engines use deduplication algorithms such as SimHash to identify similar content and index only one authoritative version

NOTE

EXAMPLE

  • Article A: How to install the OpenClash service on OpenWRT
  • Article B: OpenWrt OpenClash installation and configuration guide

If the content is highly similar, the search engine will consider them duplicates. At this point the rel="canonical" tag comes into play: it can explicitly tell the search engine which one is the primary version, and the weight of the other duplicates is consolidated into the primary version


3. Ranking Algorithms & Signals#

Ranking is the process by which a search engine takes the thousands of relevant documents recalled from its index and presents them to the user in order of priority. This process involves multiple stages of filtering and scoring

3.1 The Multi-stage Funnel Model of Ranking#

The following was covered earlier, so here is a brief summary

The ranking process can be seen as a funnel model, progressively filtering and refining results:

  1. Recall Recall: through the inverted index and vector index, find several thousand of the most relevant candidate documents out of billions
  2. Coarse ranking Coarse Ranking: use a computationally cheap algorithm (such as BM25) to give candidates an initial score, filtering down to a few hundred most promising results
  3. Fine-grained ranking Fine-grained Ranking: use complex machine learning models that combine hundreds of signals to rank candidates more precisely
  4. Re-ranking Re-ranking: on top of the fine ranking, make final adjustments based on the user’s personalization needs, recency and other factors

3.2 Core Coarse Ranking Algorithm: BM25#

BM25 is a coarse ranking algorithm commonly used by search engines. It estimates the relevance between a document and a query based on a probabilistic model, and it is an improved version of TF-IDF

NOTE

EXAMPLE

Query: OpenWrt proxy service configuration

  • Document A: How to configure a proxy service on OpenWrt, 1500 words, the keywords “OpenWrt” and “proxy service” appear 10 times

  • Document B: OpenWrt Basic Setup Guide, 8000 words, also mentions “proxy service” a few times, but spends more of its length on DHCP, DNS and so on

How BM25 scores:

  1. Term frequency (TF): document A has a higher keyword frequency, so it scores higher.
  2. Document length: BM25 penalizes overly long documents. Document B also contains the keywords, but because it’s so long and its topic isn’t focused enough, its score is dragged down, which prevents long documents from gaining an unfair advantage by containing more scattered keywords
  3. Term frequency saturation: even if document A repeats “proxy service” 100 times, its score won’t grow without bound, which effectively prevents keyword stuffing

PageRank is Google’s early, revolutionary algorithm. It was the first to turn the chaotic links of the internet into a huge, computable network of trust votes

A page’s authority is partly inherited from the authority of the other pages that link to it. A link is a recommendation ballot

NOTE

EXAMPLE

Suppose you wrote an article on A Study of Composer xi’s Famous BMS-era Tracks

  • Case one: the article is published only on your personal blog
  • Case two: the article is cited by BEMANI WIKI and the blogs of some veteran music critics

From the perspective of traditional PageRank: in case two, every link pointing to your article is a trust vote. The weight from an expert like BEMANI WIKI is far higher than that of 100 ordinary forum signature links. So the article in case two is assigned a much higher PageRank value and is considered a more authoritative, more trustworthy resource

CAUTION

You’re right, but

That public PageRank score from 0 to 10 stopped being updated as early as late 2013, and was formally sentenced to death by Google in 2016!

Why did it die?

Its publicness and simplicity spawned a huge, distorted link trading market. Black-hat SEOs stopped focusing on creating high-quality content and obsessed over buying and exchanging high-PR links, trying to manipulate this voting system

It was like an election with large-scale bribery and fake ballots, leaving the result untrustworthy. Public PageRank was alienated from a measure of authority into a vulnerability that could be directly attacked and exploited, polluting the entire search ecosystem

To preserve the fairness of search results, Google had to personally execute the public form of this once-flagship algorithm (good riddance, meow)

The modern authority model, PageRank reborn

PR is dead, but the core idea of calculating authority through link analysis didn’t disappear. Instead, in a more complex, smarter and harder-to-manipulate form, it merged into the ocean of hundreds of ranking signals used by modern search engines

We can think of the modern authority model as PageRank-ADVANCED. It no longer cares only about who voted, but more about:

  1. The topical relevance of the vote Topical Relevance How the modern model thinks: the value of a link depends largely on the topic of the page it sits on
NOTE

EXAMPLE

A link from an Arch Linux Chinese Wiki page to your Arch Linux Installation Guide is far more valuable than a link from a food blog directory, even if the latter might have a higher traditional PR value

Because the former tells Google: an authority in the Linux field recommended another Linux resource
That is a highly relevant, professional endorsement

  1. The surrounding context of the link Surrounding Context How the modern model thinks: the text around the link — was it carefully placed in the body by an editor, or is it buried in a pile of links in the site footer?
NOTE

EXAMPLE

High value: In the body of an article reviewing an OpenWrt router, the author writes: for detailed configuration of a bypass router, I strongly recommend this Ultra-detailed OpenWrt Bypass Router Configuration Guide on Bulianglin; he explains every pitfall clearly this is not a sponsored post

Low value: In the blogroll area of your friend’s blog footer, there’s a simple anchor text link Chongxi’s blog

The former’s context clearly explains why it’s recommending you; that’s a strong editorial endorsement signal

  1. User behavior around the link User Behavior How the modern model thinks: does anyone actually look at this link? After clicking, do users stay a long time or bounce straight back
NOTE

EXAMPLE

Google can obtain anonymized user behavior data through Chrome, Android and various other channels. If a link pointing to your maimai DX Chart Constants Table is clicked by large numbers of users, and they stay on your page for an average of 5 minutes, that effectively verifies the link’s real value

Today’s link authority is a complex score combining relevance, context, editorial value and real user feedback. It is far harder to manipulate than PageRank, and therefore fairer to creators who genuinely produce high-quality, professional content. I hope that after reading this, you’ll stop trying to outsmart SEO through every possible channel; good wine needs no bush, and writing quality content comes first


3.4 The Core of Modern Ranking: Learning to Rank#

LTR is the key technology in the fine-ranking stage of modern search engines. It turns the ranking problem into a machine learning problem, relying on a large number of features and a trained model to decide page rankings.
Common LTR models include tree-based models (such as Gradient Boosting Decision Trees, GBDT) and neural network models

NOTE

EXAMPLE

Query: What to do after installing Arch Linux

What features an LTR model considers (a simple example):

  1. BM25 score: measures the literal match between page content and the query
  2. Backlink features: does the page have external links from the official Arch Linux forum or well-known tech blogs? What is the anchor text of those links?
  3. User behavior signals: when this article appears in search results, what is its historical click-through rate? After users click in, how long do they stay on average? Do they bounce right back (Pogo-sticking), or read to the end before leaving (Long Click)
  4. Content quality features: is the article detailed and in-depth? Does it provide clear code examples? Does it combine text and images? Does it reflect the author’s real experience E-E-A-T?

How it works: By learning from massive amounts of query-document-user feedback data, the LTR model automatically assigns weights to these hundreds of features and finally outputs a composite relevance score
It can understand that for this query, users may care more about the feature providing a concrete solution than about number of backlinks

3.5 Neural Re-ranking#

This is one of the most advanced techniques, using deep learning models (such as Transformer, BERT) to perform finer semantic matching that goes beyond simple keyword matching

NOTE

EXAMPLE

Query: How do I quickly raise my Rating in maimai DX

How neural re-ranking understands it: Traditional methods: might look for articles containing the words “maimai DX”, “quickly”, “raise” and “Rating”

Neural models: they can understand that the deep intent of this query is “finding efficient score-farming tricks”
So it will not only return articles whose titles match, but will also rate highly an article titled Recommended Easy Songs for Farming Score, even if the words “quickly raise” never appear in it. Because at the semantic level it understands that “farming easy songs” is an excellent answer to the question of “quickly raising Rating”

4. Ranking Algorithms#

Besides the models above, there are several classic algorithm families worth knowing; together they form the search engine’s arsenal of algorithms

4.1 Classic Algorithms: BM25 & TF-IDF#

Covered in detail in section 3.2; TF-IDF is the foundation of BM25, and its core idea is to evaluate word importance through term frequency and inverse document frequency

4.2 HITS#

Hyperlink-Induced Topic Search, unlike PageRank, is query-dependent. It divides pages into two types:

  • Hub Hub: a high-quality hub page is a resource list page that links to multiple related authority pages
  • Authority Authority: a high-quality authority page is an official or definitive content page that is linked to by multiple related hub pages
NOTE

EXAMPLE

Query: OpenWrt firmware download
Authority page: the OpenWrt official firmware download page
Hub page (Hub): a blog post titled OpenWrt from Beginner to Expert that lists and links the official firmware download page, the LEDE firmware download page, and the GitHub pages of several well-known third-party firmware builds; that article is a high-quality hub page

4.3 LTR#

Covered in detail in section 3.4 as the core of modern ranking

4.4 Deep Learning#

Covered in detail in section 3.5 as a frontier semantic matching technique; its core is using models such as BERT for deep semantic understanding

5. Result Presentation#

A good search result presentation can greatly boost click-through rate

5.1 Title#

NOTE

EXAMPLE

Bad: OpenWrt

Awesome: [2025] The Ultra-Detailed Guide to Configuring an OpenWrt Router

5.2 Snippet#

The snippet is the short description shown below the title. Search engines automatically extract the part they consider most relevant.

5.3 URL and Breadcrumb Navigation Breadcrumb Navigation#

A clear URL structure and breadcrumb navigation help users and search engines understand a page’s position within the site

NOTE

EXAMPLE

  • URL: .../guides/openwrt/openclash/
  • Breadcrumb: Home > Guides > OpenWrt > OpenClash Configuration Tutorial

I suggest using BreadcrumbList Schema.org structured data to mark up your breadcrumb navigation, which gives it a chance to appear directly in search results. json { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "指南", "item": "/guides" },{ "@type": "ListItem", "position": 2, "name": "OpenWrt", "item": "/guides/openwrt" }] }


6. Technical SEO#

Technical SEO aims to optimize a site’s technical structure, ensuring search engines can smoothly crawl, render and index it, and improving user experience

6.1 Crawling and Indexing Optimization Guide#

6.1.1 robots.txt audit#

Regularly audit your robots.txt file to make sure you haven’t mistakenly blocked crawling of important content.

NOTE

EXAMPLE

Suppose your site is a SPA built with React or Vue, and the JS files are essential. If you mistakenly add Disallow: /assets/js/ to robots.txt, crawlers won’t be able to load and render your pages, and all they’ll see is a blank page

6.1.2 Precise use of the noindex tag#

Use noindex on low-quality pages (search result pages, duplicate content pages, tag aggregation pages and so on) to concentrate crawl budget and page weight

NOTE

EXAMPLE

Your blog may have many tag pages, such as /tags/openwrt. If such a page simply lists related article titles without unique original content, it is a low-quality page.
Adding <meta name="robots" content="noindex, follow"> to these pages tells Google: don’t index this list page, but you can follow the links on it to crawl those valuable articles

6.1.3 Sitemap maintenance#

Make sure the sitemap is generated dynamically and contains only the canonical URLs you want crawled

NOTE

EXAMPLE

When you publish A Brief Look at xi’s World Fragment Album, your sitemap generation script should automatically add this new URL to sitemap.xml and update the <lastmod> time.
Then you can use the sitemap feature in Google Search Console to actively notify Google that there is new content to crawl

6.1.4 Monitor the crawl stats report#

In Google Search Console, check the Settings > Crawl stats report regularly, watching for 404 errors and 5xx server errors

NOTE

EXAMPLE

If you see a Server connectivity warning in the report, it means your server may have performance problems or has blown up. You should investigate the server immediately, because persistent errors will cause Google to lower your site’s crawl frequency

6.2 Website Performance Optimization Core Web Vitals#

Largest Contentful Paint / LCP#

Measures the time it takes for the main visible content of a page to load.

NOTE

EXAMPLE

In your Arch Linux tutorial article, the largest element is usually the header image or the screenshot at the top. You need to make sure this image is compressed and isn’t blocked from loading by other CSS or JS files. Consider using <link rel="preload"> for this key image to raise its loading priority
Consider compressing the image to WebP/AVIF to significantly reduce its size and optimize loading speed

INP / Interaction to Next Paint#

Measures the response time to user interactions with the page.

INP formally replaced FID in March 2024

NOTE

EXAMPLE

Your site has a complex song search filter implemented in JavaScript. When a user clicks a filter button, if the JS needs to do heavy computation and the page freezes for more than 200 milliseconds, the INP metric will get worse
Optimization methods include splitting long tasks into smaller chunks and optimizing the filtering logic algorithmically (depending on your actual situation)

CLS / Cumulative Layout Shift#

Measures the visual stability of page content

NOTE

EXAMPLE

While your article page is loading, an ad banner loads at the top, but it loads more slowly than the body text. When the ad appears, it pushes the body content below down, causing the text the user is reading to jump.
This is a typical CLS problem. The solution is to set explicit width and height attributes on the ad container in advance, reserving the space even before the ad loads

6.3 Structured Data Schema Markup#

Using the Schema.org standard can help search engines better understand your page content

  • Basic deployment: add markup for articles, blogs, organization info and so on
  • Aim for rich results
NOTE

EXAMPLE

At the end of the OpenWrt Configuration Guide, there’s an FAQ section json { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "旁路由模式下如何避免DHCP冲突?", "acceptedAnswer": { "@type": "Answer", "text": "核心是关闭旁路由的DHCP功能,并将其网关指向主路由..." } }] }

After deployment, this Q&A may appear directly below your search result, drawing users’ clicks


6.4 Mastering nofollow, sponsored, ugc#

Driving traffic is of course important, but equally important is having a valve to precisely control how your site’s weight flows out, and to show search engines the nature of your links to other sites
That’s what the three values nofollow, sponsored and ugc in the rel attribute are for

Originally there was only rel="nofollow", mainly to solve the flood of spam links in blog comment sections. Site owners used it to tell search engines: “Don’t follow this link, don’t pass my page weight to it, I don’t endorse the content of this link”

However, a simple nofollow can’t distinguish the motivation behind a link. So in 2019, Google introduced two more specific attributes, splitting up nofollow’s responsibilities:

  • rel="sponsored": explicitly for marking paid links, such as ads and sponsored content
  • rel="ugc": explicitly for marking user-generated content User Generated Content, such as blog comments and forum posts
  • rel="nofollow": now a general fallback for when you don’t want to endorse a link but it doesn’t fall into the sponsored or ugc categories

Google now treats these three attributes as hints rather than directives
This means that in some cases (for example, to better discover content), Google may choose to follow a nofollow link, but it still won’t pass ranking weight PageRank

NOTE

Preventing comment section abuse, preventing backlink pollution

You’ve opened a comment section below your Arch Linux Installation Guide. Soon some spam accounts start posting comments saying “Great article! Check out mine” with links to low-quality or even gambling sites

If you do nothing, your high-quality page is effectively voting for these spam sites. This not only dilutes your own page weight, but you may also be penalized by search engines for linking to bad neighbors — this is backlink pollution

Some careless readers might ask here: hey Chongxi, didn’t you say PageRank was abandoned? Yes, traditional PageRank is indeed abandoned, but its ideas were passed down; this voting mechanism still exists, only the algorithm is stricter

Solution
Automatically add rel="ugc" to every link submitted by users in comments html <!-- 用户在评论中留下的链接 --> <a href="http://spam-site.xice.cx" rel="ugc">非常好文章!看看我的</a> This is usually done automatically by your backend or CMS (such as WordPress) when rendering user comments. You need to make sure your system has this capability. If you build your blog yourself, then when you process user-submitted Markdown or HTML and render it on the frontend, use a filter to add rel="ugc" to all <a> tags

ugc and nofollow can be combined: To stay compatible with other search engines that may not fully understand ugc, best practice is to use both: html <a href="http://spam-site.xice.cx" rel="ugc nofollow">非常好文章,即使是我也感到心潮澎湃</a>

NOTE

Building business integrity, marking paid links

A well-known router hardware vendor contacts you, hoping to pay for a link to their latest router in your Factory OpenWrt Hardware Recommendations article

According to Google’s webmaster guidelines, any paid link placed for the purpose of influencing search rankings must be clearly disclosed. If you take the money but make the link look like a natural editorial recommendation (i.e., a “dofollow” link with no rel attribute), once Google finds out, your site may receive a severe manual action penalty, causing rankings to plummet or even disappear from search results

Solution: add rel="sponsored" to this paid link html <a href="http://yoanshen.com/ganshenme" rel="sponsored">点击购买最新最热路由器</a> This isn’t just an SEO technical issue; it’s a matter of business integrity. Clearly marking paid collaborations both follows search engine rules and maintains the trust between you and your readers

NOTE

Refining your internal linking strategy

Fair warning: this one is fairly controversial

Your blog’s sidebar has a link to the login/registration page. This link appears on every single page of your site

Some SEO experts used to believe that pages like “Login”, “About Us” and “Privacy Policy” that don’t help rankings shouldn’t receive weight from your high-quality articles. So they would add rel="nofollow" to these internal links, trying to sculpt or funnel weight to more important product or article pages

PRTCL // PLAINTEXT
```html
<!-- 传统做法,现在已不推荐 -->
<a href="/login" rel="nofollow">登录</a>
```

This practice is now outdated and ineffective. Google has made it clear that when a link on a page is marked nofollow, its corresponding PageRank simply evaporates and is not redistributed to other “dofollow” links on that page

The right approach:

  • Don’t use nofollow on internal links to try to control weight flow. It only wastes weight that should be circulating within your site
  • For internal pages you consider unimportant and don’t want indexed (such as login pages or complex filter result pages), the right approach is to block crawling with robots.txt, or prevent indexing with <meta name="robots" content="noindex">

When to use, how to choose

Attribute combinationUse caseCore purpose
rel="sponsored"Ads, sponsored articles, paid reviews — any link you place because of a financial transactionMaintain business integrity.
rel="ugc"Links in all user-generated content: blog comments, forum posts, user signaturesPrevent link pollution, protect site reputation
rel="nofollow"When you link to a site but don’t want to endorse it at all, and it doesn’t fall under sponsored or ugc. A general fallback.Declare neutrality, don’t pass PageRank
No attribute at all(the default “dofollow” link) When you genuinely recommend a high-quality, relevant external resourcePass weight, contribute value to the internet, build relationships

7. Content Optimization Content Optimization#

7.1 Keyword Research and Topic Modeling#

7.1.1 Moving from keywords to topics#

Build a network of pillar pages + cluster content around a core topic

7.1.2 Analyze search intent#

By looking at the SERP, work out whether a user searching a term wants a tutorial (informational) or the official website (navigational)

7.2 E-E-A-T#

E-E-A-T stands for

Experience
Expertise
Authoritativeness
Trustworthiness

7.2.1 Author identity presentation E-T#

Provide an author bio next to or at the end of the article, linking to the author’s GitHub, tech blog or social media, and showing their experience in the relevant field

7.2.2 Making experience concrete E#

NOTE

EXAMPLE

Write an article about Reviewing xi’s Glorious Crown in maimai DX. Instead of just describing it in words, why not:

  1. Embed a link to a hand-cam video you recorded and uploaded to a video site
  2. Post your own score screenshots
  3. Share a piece of trivia nobody else has mentioned: “actually, the BPM listed for this song in maimai is wrong; the accurate value should be 225.555555555, which also explains why the DX score for this song is relatively hard to hit — the inaccurate BPM causes drift. My personal guess is that xi’s sequencer had a BPM error when composing”

7.2.3 Building authority and trustworthiness A-T#

Cite authoritative sources: when your Arch Linux tutorial mentions a certain configuration, link to the corresponding page on the Arch Wiki
Expert review: if your OpenWrt tutorial was reviewed and corrected by another big shot in the networking field, you can note at the start of the article: “This article was guided by xx to ensure technical accuracy”

8. Authority Building#

The core of authority is improving a site’s credibility through external links Backlinks

8.1.1 Create Linkable Assets:#

NOTE

EXAMPLE

You could build an online tool: a “maimai DX Rating Calculator” where users enter relevant information to calculate a single song’s Rating. Practical tools like this are natural link magnets

8.1.2 Digital PR#

NOTE

EXAMPLE

You wrote a piece on Using Samsung One UI 8, with detailed test data. You can proactively send this report to well-known tech media or geeks, and they’ll likely cite your data and article

NOTE

EXAMPLE

You’re migrating your blog from Astro to Hexo, but after the migration you find the root directory is wrong and search engines still reference the old links, so users arriving from search results get a 404. You need to set up 301 redirects from the old links to the new ones; otherwise a large-scale 404 breakdown may lower your SEO score

8.2 Off-site Reputation and Brand Signal Building#

8.2.1 Establish a brand entity#

Make sure your brand (your blog name or your name) has clear, consistent entries on major knowledge platforms and industry directories

8.2.2 Manage third-party reviews#

If your content involves tools or services, encourage users to leave positive reviews on the relevant platforms

8.2.3 Participate in industry communities#

In subreddits like r/openwrt or r/archlinux on Reddit, or in tech communities like V2EX, actively answer other people’s questions and, when appropriate, include a link to your article as a reference Remember: contribute value first, promote content second

9. JavaScript SEO#

For anyone studying modern frontend frameworks, JS SEO is a required course. A SPA that looks gorgeous in the user’s browser may be nothing but a blank <div> in the eyes of a search engine crawler; we need to learn to ensure our gorgeousness can be correctly understood by machines

9.1 CSR & SSR & SSG#

First, we need to understand how Google’s crawler Googlebot handles JavaScript. It has a component called the Web Rendering Service, essentially a headless browser. The crawling process has two waves:

  1. First wave: Googlebot crawls your raw HTML; if the content is all in the HTML, it’s sent straight to indexing
  2. Second wave: if the page needs JS to generate content, the page is placed in a rendering queue. Days or even weeks later, the WRS executes the JS, renders the final DOM, and sends the rendered HTML to indexing

9.1.1 Client-Side Rendering#

The server returns only an almost blank HTML shell and a huge JS bundle. The browser (or WRS) downloads and executes the JS, then requests data through APIs, and finally renders the content onto the page. This is the default mode of create-react-app or vue-cli

WARNING

Characteristics

  1. Indexing delay: your content has to queue for the second rendering wave, so indexing can be extremely slow. For news or other time-sensitive content, this is fatal
  2. Risk of rendering failure: if your JS code has bugs, network requests time out, or the code is so complex that WRS execution times out, rendering fails. The result: Google indexes a blank or incomplete page
  3. Crawl budget consumption: rendering requires enormous compute resources, which consumes your crawl budget. Google may be unwilling to invest much in a small site that requires complex rendering

9.1.2 Server-Side Rendering#

When a user’s request reaches the server, the server executes React/Vue code in the backend, fetches data, generates the complete HTML, and returns that HTML to the browser. The browser receives a page that already contains all the content. The core feature of frameworks like Next.js and Nuxt.js is SSR

WARNING

Characteristics

  1. Instant indexing: Googlebot gets the complete HTML with all content during the first crawl wave, with no need to wait for rendering, so indexing is very fast
  2. High reliability: avoids the various uncertainties of client-side environments
  3. Better performance metrics: typically faster FCP and LCP, friendly to user experience and Core Web Vitals

9.1.3 Static Site Generation#

At build time, a pure HTML file is generated in advance for each page. All the server has to do is simple file serving. Gatsby, Astro, and the static export modes of Next.js/Nuxt.js are all SSG

WARNING

Characteristics

Has all the advantages of SSR, and the best performance of the three, with extremely fast server response

Suitable for: blogs, documentation, portfolios, marketing sites and other sites whose content doesn’t change often. For your blog, SSG is the optimal choice both technically and for SEO.

9.2 Dynamic Rendering#

At the server level, decide what content to return by identifying the request’s User-Agent

  • If the User-Agent is an ordinary user’s browser, return the regular CSR application
  • If the User-Agent is Googlebot or another crawler, the server uses middleware (such as Rendertron) to render your JS app into static HTML, then returns that HTML to the crawler
WARNING

Why it was abandoned

This was once Google’s recommended approach, but it is now considered a stopgap. It increases system complexity and maintenance cost, and risks being misjudged as cloaking (i.e. showing crawlers and users different content)

Unless you have a massive legacy CSR project you can’t refactor, you should prefer SSR or SSG

9.3 JS SEO debugging tools#

How do you determine what Google actually sees? Don’t guess; verify with tools

  1. Google Search Console - URL Inspection Tool
NOTE

Procedure

Enter the URL you want to check at the top of GSC, then click “Test Live URL”

After the test completes, click “View Tested Page”. You’ll see three tabs:

  • HTML: this is the raw HTML crawled by Googlebot
  • Screenshot: this is a screenshot of the page after WRS rendering, the true face of your site. If it’s blank or incomplete here, your JS rendering has a serious problem
  • More Info: shows whether page resources (JS/CSS) failed to load, whether there are errors in the JS console, and other information — a direct clue for troubleshooting rendering failures
  1. Chrome browser - Mobile-Friendly Test This is a public tool that even non-site-owners can use. Its underlying rendering engine is the same as Googlebot’s. You can quickly preview here what the page looks like in Google’s eyes

9.4 Writing crawler-friendly JS code#

Even if you choose CSR, you can reduce the risk of rendering failure through some best practices

9.4.1 Avoid hash routing#

In traditional hash routing (such as xice.cx/#/page), the # and everything after it are not sent to the server, and Googlebot may not handle it well. Always use History API URLs (such as xice.cx/page), which is also the default in all modern frontend frameworks

Don’t simulate page navigation with a <div> or <span> plus an onClick event. Crawlers can only discover new links through standard <a> tags and the href attribute ```jsx // ×××××错误××××× <span onClick={() => navigate(‘/openwrt-guide’)}>OpenWrt 指南

PRTCL // PLAINTEXT
// ×××××爆赞×××××
<a href="/openwrt-guide" onClick={handleNavigate}>OpenWrt 指南</a>
```

9.4.3 Handle content injection carefully#

Don’t load core content only after the user scrolls or clicks. Make sure the page’s main content is available after the onLoad event

9.4.4 Handle API errors well#

If your page content depends on API calls, make sure your code handles API request failures gracefully instead of crashing and causing the entire page to fail rendering. Consider fetching key data on the server side or at build time to reduce client-side API dependencies


10. Image and Video SEO#

In the text-centric SEO world of blogs, images and videos are often overlooked. However, for visual content such as maimai DX hand-cams, or landscape galleries that need lots of screenshots, rich media is the core of the content itself, and the gateway to two enormous traffic pools: Google image search and video search

10.1. Image SEO#

Search engines aren’t human; they can’t truly see what’s in an image (AI image recognition is improving, but it’s nowhere near something you can fully rely on). They depend on the metadata you provide to understand images

10.1.1. File Name#

  • Bad examples: IMG_8888.jpg, screenshot-1.png
  • Awesome: maimai-dx-Xaleid_ScopiX-sssp-rank.webp

The file name is the first and most direct clue a search engine has about an image’s content. Use short, descriptive English words separated by hyphens -. It should clearly state what the image is

10.1.2 Alt text#

The alt attribute is the most important SEO element in the <img> tag. Its primary purpose is accessibility
When an image fails to load or a user uses a screen reader, the alt text is displayed or read aloud. Search engines use it as the core basis for understanding image content

  • Bad examples:
  • Omitting the alt attribute.
  • <img src="..." alt="图片">
  • Keyword stuffing: <img src="..." alt="舞萌DX maimai DX 谱面 XaleidscopiX xi">
  • Awesome:
  • <img src="..." alt="一名玩家正在游玩舞萌DX的谱面《Xaleid_ScopiX》并达成SSS+评价的结算画面">

In one sentence, clearly describe the content and context of the image to someone who can’t see it. It should naturally include keywords, but absolutely not stuff them

10.1.3. Image dimensions and performance#

Huge images are the main culprit for slow LCP

NOTE

EXAMPLE

  1. Responsive Images
    Use the <picture> tag or the srcset and sizes attributes of <img> to serve differently sized images for devices with different screen sizes and resolutions
    PRTCL // HTML
    <img srcset="openwrt-config-small.jpg 480w,
    openwrt-config-large.jpg 1080w"
    sizes="(max-width: 600px) 480px,
    1080px"
    src="openwto-config-large.jpg"
    alt="OpenWrt防火墙配置的后台截图">

This ensures phone users aren’t forced to download large desktop images, greatly improving mobile loading speed

  1. Next-generation image formats
    Use WebP or AVIF whenever possible. At equal visual quality, their file size is typically 30% or more smaller than JPEG or PNG

  2. Lazy loading
    For images below the fold, use the native loading="lazy" attribute.

    PRTCL // HTML
    <img src="arch-linux-step-10.jpg" loading="lazy" alt="...">

This lets the browser start loading an image only when it’s about to enter the viewport, greatly improving initial page load speed

10.1.4. Image Sitemaps#

If images are the core content of your site (say, a photography portfolio), or your images are loaded via JavaScript, creating a separate image sitemap helps Google discover and index them better

In sitemap.xml, add an <image:image> tag to each URL entry, providing the image’s URL, title, caption and other information

10.2 Video SEO#

Video results usually take up huge space on the search page and are very eye-catching. A well-optimized video is a powerful tool for earning a high click-through rate

10.2.1 Video hosting#

  1. YouTube
    YouTube itself is a huge traffic source; videos uploaded to YouTube naturally have higher display weight in Google search, and you don’t have to worry about bandwidth or playback experience
  2. bilibili and other video platforms
    Better suited to the mainland China audience; no need to worry about bandwidth or playback experience
  3. Self-hosting: Full control, no ads, a customizable player — but you have to handle video hosting, CDN distribution and player compatibility yourself, and you lose the huge traffic brought by YouTube/bilibili and the ranking advantage in Google

10.2.2. Video structured data#

This is the core of video SEO. By deploying VideoObject Schema on your page, you can explicitly tell Google everything about the embedded video

NOTE

EXAMPLE

  • name: the video title (should be descriptive and contain keywords)

  • description: the video description (a detailed introduction to the video content)

  • thumbnailUrl: URL of the video thumbnail (an attractive thumbnail is crucial)

  • uploadDate: the upload date.

    • duration: video duration (ISO 8601 format, e.g. PT1M30S means 1 minute 30 seconds)
  • contentUrl: URL of the video file itself (if self-hosted)

  • embedUrl: the video’s embed player URL (e.g. YouTube’s embed URL)

    PRTCL // JSON
    {
    "@context": "https://schema.org",
    "@type": "VideoObject",
    "name": "【maimai外部出力】PANDORA PARAODXXX 101%",
    "description": "这是一位玩家游玩maimai时录制的PANDORA PARADOXXX 101%理论值的手元视频,提供了手元参考",
    "thumbnailUrl": "https://cdn.chongxi.us/thumbnails/pandora101.jpg",
    "uploadDate": "1919-08-10T11:45:14+08:00",
    "duration": "PT2M28S",
    "embedUrl": "https://www.youtube.com/embed/qwq"
    }

10.2.3. Key Moments / Video Chapters#

Key Moments are timestamped chapter navigation that Google displays in video search results. They let users jump directly to the parts of a video they’re most interested in, greatly improving user experience and click-through rate

NOTE

EXAMPLE

  1. In the description area of your YouTube video, write down your video chapters in the format timestamp + chapter title

  2. Must start from 00:00

  3. At least 3 timestamps are required

    PRTCL // PLAINTEXT
    ```
    (0:00) intro
    (0:52) 天苍苍野茫茫风吹草低见牛羊
    (1:13) 我有玉米症
    (2:12) 登神长阶
    ```

When users search for related content on Google, clickable chapter links such as 登神长阶 may appear directly below your video result

10.2.4. Video Sitemaps#

Similar to image sitemaps, if your site has a lot of video content, creating a video sitemap helps Google discover it more comprehensively


11. Brand Signals and Entities#

So far, all of our optimization has stayed within the realm of string matching
But the ultimate goal of search engines is to understand Things, not Strings.
They strive to build a vast database about everything in the real world: the knowledge graph

11.1 What is an entity#

  • String: “composer xi”

  • Entity: an ID (such as /m/114_514), and this ID is associated with a set of attributes and relationships:

PRTCL // PLAINTEXT
- Name: xi
- Occupation: composer
- Nationality: Japan
- Affiliation: Diverse System
- Representative works: Freedom Dive, Ascention to Heaven
- Attended: BOF
- Works included in: iidx, sdvx, maimai...

When Google can understand xi like this, it can answer more complex user queries, such as “which xi songs are included in iidx?”.

Our goal is to help Google build such an entity profile for you or your internet assets as well

11.2 How to build your brand entity#

11.2.1 Define yourself with Schema.org#

This is the most direct, most controllable step. Through structured data, you are submitting an entity declaration about yourself to Google

NOTE

EXAMPLE

You should deploy this Schema on your core pages (such as the homepage and About Me page), not on every article

PRTCL // PLAINTEXT
```json
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Chongxi", // 你的名字或网名
"url": "/about", // 指向你"关于我"页面的URL
"sameAs": [ // 这是关键!用它来关联你在全网的其他身份
"https://github.com/ChongxiSama",
"https://twitter.com/@CEPATO",
"https://space.bilibili.com/500042199"
],
"description": "一位兴趣爱好十分广泛的个人开发者",
"knowsAbout": [ // 声明你的专业领域
"Linux",
"Web dev",
"Web3",
"Network Engineering"
]
}
```
  • The sameAs attribute is crucial. It acts like a foreign key relationship, helping Google consolidate the fragments of your identity across different platforms under a single entity
  • Make sure name stays highly consistent across all your online identities

11.2.2 External validation#

Google won’t just take your word for it. It needs to find information about you from neutral third-party data sources it already trusts, in order to cross-verify

  1. Find Seed Sites
    A large part of Google’s initial knowledge graph data comes from large, structured knowledge bases like Wikipedia, Wikidata and DBpedia
NOTE

EXAMPLE

Wikipedia
If your (or your project’s) achievements and notability already meet Wikipedia’s notability guidelines (for example, extensive coverage by multiple independent, reliable sources), then creating a Wikipedia entry is the strongest signal for building an entity. The bar is very high, but the power is enormous

Industry authority directories
Does a recognized authoritative database or community exist in your field?

For xi, his entries on various wikis are strong sources of entity verification For an open-source project, its repo on GitHub and its page on SourceForge are its proof For a tech blogger, your high-reputation profile on Stack Overflow and the projects you’ve contributed to on GitHub are all external validation signals What you should do: go to these authoritative third-party platforms in your field, create and complete your profile or project page, and make sure the information (especially your name/brand name) matches what your site declares

11.2.3 Site-wide reinforcement#

Once your entity is initially established, Google will start looking for conversations about you across the web

11.2.3.1 Linkless brand mentions#

When someone on a website or forum mentions your name or blog name (e.g. “I read Chongxi’s solution yesterday about not being able to make calls on a Samsung phone with Surfing — it was really helpful”), even without any link attached, Google’s natural language processing models can recognize that this is discussing your entity

NOTE

BLUE

Google analyzes the context and sentiment of mentions of your entity

  • Positive context: if your name often appears together with words like “recommend”, “thanks”, “solved my problem”, “great post”
  • Negative context: if it often appears with “outdated”, “wrong”, “not recommended”

These signals are aggregated as a basis for evaluating your entity’s reputation and influence

You can: Encourage discussion: at the end of your articles, don’t just say “comments welcome”; you can say “if you run into any problems with this configuration, feel free to ask in the comment section below or on V2EX/Reddit with the URL of my blog” Actively participate in communities: contribute valuable answers in relevant tech communities under your own name. Every high-quality post of yours reinforces your personal brand entity across the web Monitor your brand mentions: use Google Alerts or other brand monitoring tools to track where your name is mentioned across the web. This not only helps you understand what people think of you, but also uncovers potential link-building opportunities (for example, you can contact site owners who mentioned you without linking and politely ask them to add a link)

Traditional SEO has you think how do I rank my page higher?
Now it asks you to think about a bigger question: how do I make Google and the whole world recognize that I am a trusted, authoritative source of knowledge in the Arch Linux field?
Once you’ve successfully built yourself into an entity, you’ll find your rankings become extremely solid, and you’ll start ranking for related queries you haven’t even specifically optimized for. Because Google is no longer recommending one of your articles — it’s recommending you


12. International SEO#

International SEO is a set of technical specifications designed to clearly tell search engines: which countries and/or languages my site provides content for, and what the correspondence between these different versions is

Done right, this prevents content from being treated as duplicate because of language differences, and ensures the correct language version appears in the search results for the corresponding country/region. Done wrong, it can cause traffic chaos and even damage rankings

12.1 Choosing a URL structure#

Your first step toward going global, and the most important architectural decision. You have three main ways to organize multilingual content, each with clear technical pros and cons and signal strength

WARNING

ccTLDs

Structure: chongxi.jp (Japanese), chongxi.us (English)

Pros:

  • Strongest geolocation signal: the .jp domain itself strongly tells Google and users: “this site is specifically for the Japanese market.” This is a huge advantage for local rankings
  • Flexible server location: you can put the .jp server in Tokyo and the .de server in Frankfurt, giving local users the fastest access speed

Cons:

  • High cost: you need to register and manage multiple domains.
  • Diluted authority: each domain is an independent site; you need to build backlinks and authority separately for .jp and .de, and they do not automatically inherit from each other

Suitable for: large multinational brands with ample budget and local operations teams. For personal blogs, this is usually not the first choice

WARNING

Subdirectories/Subfolders

Structure: chongxi.us/ja/ (Japanese), chongxi.us/en/ (English)

Pros:

  • Concentrated authority: all language versions live under the same main domain; they share and jointly contribute to the overall authority of chongxi.us. Backlinks you earn for the English version also pass weight to the Japanese version, and vice versa. This is the biggest advantage.
  • Low maintenance cost: only one site, one hosting account and one SSL certificate to manage
  • Easy setup: the easiest to implement technically.

Cons:

  • Geolocation signals are relatively weak (but this can be compensated for with GSC settings)

Suitable for: for the vast majority of sites, this is the most recommended and most powerful option

WARNING

Subdomains

Structure: ja.chongxi.us, en.chongxi.us

Somewhere between the first two. Google officially says it now handles weight transfer between subdomains well, but the SEO industry generally believes its authority concentration is still slightly worse than subdirectories

Suitable for: when different language versions differ hugely in content, design or even functionality and need to be fully isolated technically. For example, a main site that’s an e-commerce store and a Japanese site that’s a pure content blog

12.2 Core technical implementation#

hreflang is an HTML <link> tag attribute whose job is to precisely declare to Google: the German version of this page is here, the Japanese version is there, and this version is the default English one

WARNING

Characteristics

  1. Solves the duplicate content problem:
    Prevents Google from treating the English and Japanese translations of your Arch Linux Installation Guide as plagiarism
  2. Provides the right search results:
    Ensures Japanese users searching on google.co.jp see your Japanese article rather than the English one
CAUTION

Implementation rules

The implementation is extremely strict; not one mistake is allowed

  1. Reciprocal:
    If page A links to page B, then page B must link back to page A
  2. Self-referential:
    Every page must have an hreflang tag pointing to itself
  3. Include x-default:
    You should designate a default or fallback version, to which users are directed when their language or region doesn’t match any version you provide
NOTE

EXAMPLE

Suppose an article has three versions:

  • English (default): /en/music/xi
  • Japanese: /ja/music/xi
  • Simplified Chinese: /zh-hans/music/xi

Then, in the <head> of all three pages, you must include the exactly identical block below:

PRTCL // PLAINTEXT
```html
<link rel="alternate" hreflang="en" href="/en/music/xi" />
<link rel="alternate" hreflang="ja" href="/ja/music/xi" />
<link rel="alternate" hreflang="zh-Hans" href="/zh-hans/music/xi" />
<link rel="alternate" hreflang="x-default" href="/en/music/xi" />
```

Language and region codes:

  • You must use ISO 639-1 format for languages (e.g. en, ja, zh)
  • You can append ISO 3166-1 Alpha 2 format for regions (e.g. en-GB for British English, en-US for American English)
  • Note: zh-Hans and zh-Hant are exceptions; they are script codes

Deployment methods:

  • HTML <head>: most common, as in the example above
  • HTTP response headers: suitable for non-HTML files (such as PDF)
  • XML sitemaps: when the number of pages is huge, this is the most efficient and most recommended management method

12.3 Content and servers#

Technical tags are only the foundation; content and experience are what decide success or failure

Localize content, don’t machine-translate it:

  • Don’t simply use Google Translate on your OpenWrt Bypass Router Tutorial. You need someone who truly understands both the technology and the target language to do the localization

Localization means:
Replacing the UI screenshots in the article with versions in the corresponding language, using the customary terminology of the local tech scene, and even offering specific advice based on local users’ network environment (such as ISP characteristics)

Server location:

  • Although CDNs have largely solved the problem of global access speed, hosting your server in the region where your main target users are is still a positive ranking signal

Google Search Console geolocation targeting:

  • For sites using a gTLD (such as .com, .net, .org) with a subdirectory or subdomain setup, you can find International Targeting in GSC’s legacy tools to report
  • You can explicitly tell Google: content under the /ja/ subdirectory is specifically aimed at Japanese users, which can compensate for the weakness of gTLD geolocation signals

International SEO is very precise: it requires you to make strategic decisions about URL architecture, strictly follow the hreflang specification in implementation, and genuinely consider local users at the content level. Done right, you can truly look global; done wrong, it can lead to a chaotic SEO disaster — for example, Google treating all your translated versions as plagiarized content and wiping them out


13. Local SEO#

Local SEO is a set of optimization strategies aimed at improving the visibility of your business or site in search results for a specific geographic area. For businesses with physical storefronts, businesses offering regional services, or local community blogs hoping to attract users in a particular city, local SEO is a matter of survival

Its core logic is: when a user’s search query carries explicit (e.g. Guangzhou maimai DX arcade) or implicit (e.g. opening a phone in Guangzhou and searching for a nearby maimai arcade) local intent, the search engine’s ranking algorithm introduces a whole set of new local ranking factors with very high weight

13.1 The three cores of local SEO#

13.1.1 Proximity#

This is the simplest, most brutal, and highest-weight factor
When users search, the closer a business is to their physical location, the better its ranking advantage. We can hardly optimize this; it’s a law in the physical sense

13.1.2 Relevance#

How well your business matches the user’s search query. This is similar to the traditional SEO principles we discussed earlier, but focuses more on localized content and services; searching for a restaurant will absolutely never surface a maimai arcade

13.1.2 Prominence#

How famous, well-reviewed and trusted your business is locally. This is where our optimization focus lies

13.2 In-depth optimization of Google Business Profile#

Google Business Profile (formerly Google My Business) is the absolute core of local SEO and your official business card in Google Maps and the local results pack. You must optimize it as carefully as you do your website

  1. Accuracy and consistency of information
  • NAP stands for Name, Address, Phone These three pieces of information must stay 100%, character-for-character identical across all of your business information online
NOTE

EXAMPLE

  • Is your company name exactly the same on your GBP name, your official site’s contact page and local industry sites?

    • XX Tech and XX Technology Co., Ltd. are two different entities in the eyes of the algorithm
  • Is the address format consistent?

    • 123 Renmin Road & 123 Renmin Road
  • Is the phone number format consistent?

Global NAP consistency is a core signal Google uses to verify your business’s authenticity. Any inconsistency makes it doubt your entity information

  1. GBP categories
  • You have one primary category and multiple secondary categories. The primary category should be the one that best represents your core business
NOTE

EXAMPLE

  • A company mainly selling OpenWrt router technical support services should have “IT consultant” or “Computer support and services” as its primary category
  • A maimai DX arcade’s primary category is “Amusement center” or “Video arcade”

Choose all secondary categories relevant to your business in as much detail as possible

  1. Reviews The number of reviews, the star rating, and the keywords that appear in review content are all strong ranking signals
NOTE

EXAMPLE

  • Ask for reviews proactively: after a service is completed, politely invite satisfied customers to leave a review by email or text, and you can provide your GBP review link directly
  • Reply to every review: whether positive or negative, reply professionally and promptly. This shows Google and users that you’re proactive and responsible. In your replies, you can naturally mention your service or product name again
  1. Google Posts Q&A
  • Google Posts: essentially a mini blog on your GBP. You can use it to announce the latest events, product introductions and promotions. Posts are time-sensitive and need to be updated continuously
  • Q&A: users can ask questions on your GBP. You should proactively post some frequently asked questions here and answer them yourself, preemptively resolving users’ concerns

13.3 On-site localization optimization#

You need to fill your site content with local signals too

Local landing pages

  • If you offer services in multiple cities, you should create an independent landing page with unique content for each city
NOTE

EXAMPLE

chongxi.us/openwrt-support/Tokyo This page should include:

  • The city name explicitly in the title and H1 (e.g. Tokyo OpenWrt on-site configuration service)
  • A detailed description of your service features in the Tokyo area in the page body
  • An embedded Google Map of the regional office
  • Testimonials from local Tokyo customers.
  • A local phone number

LocalBusiness Schema

  • On your site’s contact page or footer, deploy LocalBusiness Schema to tell search engines your NAP, business hours and other information in a structured way

13.4 Local citations#

This means your business’s NAP information being mentioned anywhere on the internet, even without linking to your site

Sources are usually: local chamber of commerce sites, industry association directories, online maps (such as Amap, Baidu Maps), Dianping and so on
As with GBP, keep NAP information 100% consistent across all citation sources

I recommend aggressively searching for your own brand to check and correct inconsistent citations


14. Conversational AI SEO#

Voice search represents an evolution in search behavior: from keywords to natural language questions. Users no longer type OpenWrt adguardhome dns; they ask a smart speaker directly: Hey Google, how do I set up AdGuard Home on OpenWrt to filter DNS?

Optimizing for voice search is essentially answering questions better

14.1 Understand the characteristics of voice search queries#

  1. Longer and more conversational: voice queries are longer on average and are usually complete questions
  2. Clearer intent: usually seeking a direct, concise answer
  3. Strongly local: many voice searches are about “nearby…”

A featured snippet is a special information box at the very top of Google search results that directly answers the user’s question. Voice assistants (such as Google Assistant) usually read out the featured snippet when answering questions. So winning the featured snippet is winning voice search

NOTE

EXAMPLE

  1. Identify question-type queries: use GSC or third-party tools to find queries that already rank on the first page of your site and start with “how”, “what” or “why”
  2. Provide concise, direct answers: in your article, right after the question heading (H2/H3), answer the question directly and clearly in one paragraph (usually between 40 and 60 words)

For example

H2: <h2>什么是OpenWrt的旁路由模式?</h2>
The paragraph right after it: <p>OpenWrt的旁路由模式,指的是在不改变现有主网络结构的前提下,将一台运行OpenWrt系统的设备作为旁路网关接入局域网。它不负责主要的路由和DHCP功能,而是专门处理特定任务,如广告过滤、科学上网或网络加速,实现对全屋设备的透明代理
This paragraph’s structure and length make it a perfect featured snippet candidate

  1. Use ordered/unordered lists: for step-by-step or list-type questions, use <ol> or <ul> tags to organize the content
  2. Use FAQPage Schema: deploying FAQPage Schema for Q&A content on a page can increase your chances of being selected as a featured snippet

14.3 Make content more conversational#

Writing style: when writing, imagine that you’re answering a friend’s question directly. Use more natural, colloquial language
Content structure: use Q&A structures more often to organize your articles

Of course, mind your audience: if your site doesn’t need conversational AI, there’s no need to do this part of the optimization


15. Monitoring and Optimization#

15.1 Google Search Console#

GSC is a free tool provided directly by Google, the starting point and endpoint of all SEO work. It tells you how Google views your site

15.1.1 Basic GSC setup#

NOTE

Basic setup

  1. Verify ownership of your site: Log in to GSC and add your site’s domain. Google offers several verification methods. For technical people, the recommended one is DNS record verification. You need to log in to your domain provider (such as Cloudflare) and add a TXT record provided by Google
    This way, once verified, all subdomains and protocols (http/https) under your domain are covered — one and done

  2. Submit your sitemap:

    • Left menu > Indexing > Sitemaps
    • In the “Add a new sitemap” input box, enter your sitemap URL (e.g. /sitemap.xml), then click submit
    • This is effectively handing Google a fresh list of your site’s content. After you publish new content, as long as your sitemap has been updated, you can come back and resubmit (or wait for Google to crawl it). This speeds up discovery of new content. After submitting, you can see whether Google processed your sitemap successfully and how many URLs it found. If the status shows “Has errors”, you must click in to view the details and fix them

15.1.2 Reading Performance#

This is the report you’ll visit most. It tells you what users searched for on Google, how many times they saw you, how many times they clicked you, and what position you rank

NOTE

EXAMPLE

  • Total clicks: the number of times users clicked into your site from Google search results
  • Total impressions: the number of times your page appeared on a user’s search results screen. It counts every appearance, whether or not the user saw or clicked it
  • Average CTR: clicks / impressions. This is the core metric for your search result’s attractiveness
  • Average position: the average position of your page in search results
WARNING

Practical analysis I

  1. Go to the “Performance” report. In the table below, click the “Queries” tab. Click the filter button (three horizontal lines), set Position smaller than 10.1 (to filter for results on the first page). Then click the “Impressions” header to sort descending

  2. Look for keywords with high impressions but CTR noticeably below the level their position should yield

The CTR for position 1 is about 25-30%, position 3 about 10-15%, position 5 about 5-8%, position 10 about 1-2%

  1. You find that your query “Arch Linux i3wm configuration” gets 20,000 impressions a month with an average position of 4.5, but a CTR of only 2%

This means your content quality is good enough that Google is willing to rank it high on the first page. But when users see your search result, they choose not to click it. The problem is 99% your storefront: your <title> tag and <meta name="description">

4.Go search this term on Google immediately and see how the competitors ranked above and below you write their titles. Do they use more compelling phrasing like [Ultimate Guide], [with complete config files], and so on?

  1. Rewrite your title and description. Don’t just use Arch Linux i3wm configuration. Try: An Arch Linux i3wm Rice Guide from Zero (with Complete Polybar/Rofi/Picom Config)

  2. Submit the URL for re-indexing: after modifying the code, copy this page’s URL, paste it into the “Inspect any URL” box at the top of GSC and press Enter. On the inspection results page, click “Request Indexing”. This tells Google you’ve updated the page and proactively requests indexing

  3. Keep tracking: over the next week or two, come back to this report every day, filter for this keyword, and watch whether its CTR improves significantly

WARNING

Practical analysis II

  1. In the “Performance” report, set the filter Position greater than 10.1 and Position smaller than 30.1

  2. What’s listed here is every keyword ranking on pages two and three of Google. These are the potential winners

  3. You find that for the query “OpenWrt DNS leak”, you rank 18th

  4. This shows Google already recognizes your page’s relevance, but not enough to get it onto the first page. You need to give it the final push to make it fly

  5. Open the corresponding article. Did you only cover the basic configuration? Can you add a section specifically about using iptables rules to forcibly take over the DNS requests of all devices to try to eliminate DNS leaks? Can you add a comparison of DoH/DoT and configuration methods?

  6. In other high-authority related articles on your site (such as your OpenWrt Bypass Router Configuration Guide), find suitable anchor text (e.g. “preventing DNS leaks”) and link to this 18th-ranked article. This is effectively casting a trust vote for this promising page from a star page on your site

  7. If possible, go to relevant tech forums (such as Enshan and V2EX) and see if anyone is discussing DNS leak issues; you can offer a professional answer and naturally include a link to your article in your signature or answer

15.1.3 Reading Indexing#

Path: left menu > Indexing > Pages

Key focus: The report is divided into “Indexed” and “Not indexed” sections. You need to focus on the reasons under “Not indexed”

NOTE

EXAMPLE

In the “Not indexed” reason list, you see “Discovered - currently not indexed” with 50 URLs under it

Diagnosis: this is bad news. It means Google’s crawler has discovered these URLs (via the sitemap or links), but considers these pages too low quality to even pass the initial screening into its index. This may be because the content is too thin, highly duplicated with other pages, or because the site is new and has too little authority, so Google isn’t willing to allocate index quota to you

You should

  1. Review these URLs one by one. Are they auto-generated tag or archive pages with little substantive content? If so, make them noindex
  2. If these are good articles you wrote with care, then the problem lies in content quality or site authority. You need to: write the articles more deeply and insightfully, and get more high-quality links pointing to these pages from both on-site and off-site

15.2 Google Analytics 4#

GA4 tells you what users do after they enter your site. It helps you judge whether your content truly meets user needs

WARNING

Practical analysis I

Identifying content that gets applause but no engagement

  1. Path: Reports > Engagement > Landing pages

  2. This report lists the first page users land on when entering your site. By default it’s sorted by “Users”. Now click the “Average engagement time” column header to sort ascending

  3. You find that your maimai DX Full Song List page brings in many users (near the top in user count), but its average engagement time is only 15 seconds

  4. Diagnosis: users arrive, then leave immediately

This usually means:

  • Your page loads too slowly
  • The page design is confusing and users can’t find the information they want
  • The content is comprehensive, but presented poorly (for example, it’s just a giant HTML table with no way to search or filter)
  1. Optimize the page experience: add client-side search, sorting and filtering to this song list. Let users quickly find the songs they want by difficulty, version and composer (such as xi)

  2. Improve loading speed: if the list contains lots of images (covers), make sure they’re all compressed and lazy-loaded

WARNING

Practical analysis II

Tracking conversions to find your cash cow

  1. You need to set up Conversions in GA4 first. A conversion doesn’t have to mean a monetary transaction. For a blog, a conversion can be defined as “a user successfully copies a code block”, “a user downloads your OpenWrt config file” or “a user stays on a tutorial page for more than 5 minutes”

  2. Path: Traffic acquisition > Traffic acquisition

  3. Reading the data: look at the report, set the primary dimension to “Landing Page”, and check the “Conversions” each landing page generates

  4. A case study: you find that your article The Top Ten Must-Have Apps After Installing Arch Linux leads by a wide margin on “code block copied” conversions, far ahead of other articles

  5. Diagnosis: this article precisely captures users’ action intent. After reading it, users immediately start doing things. It’s a highly valuable action-guide homework-copying type of content

  6. Around this successful pattern, create more similar content. For example The 5 Best Terminal Emulator Configurations on Arch Linux

  7. Push this high-converting article to a more prominent spot on your site (such as a homepage recommendation), and link to it from more articles


16. Legacy Issues Explained#

16.1 meta name="keywords"#

This is a meta tag that used to live in the HTML <head>, allowing site owners to proactively tell search engines which keywords a page is related to

PRTCL // HTML
<meta name="keywords" content="舞萌DX, maimai DX, 谱面, 攻略, xi, 白系">

In the wild early days of search engines, algorithms couldn’t accurately determine a page’s topic by analyzing its content. So they needed site owners to provide this kind of self-introduction

But this tag had a fatal design flaw: it relied entirely on the site owner’s integrity. Soon black-hat SEOs began abusing it wildly, stuffing it with large numbers of popular but irrelevant keywords to steal traffic (for example, adding free movie downloads to an Arch Linux tutorial page)

This behavior severely polluted search results, causing user experience to plummet. To save themselves, search engines were forced into an algorithmic revolution, learning to rely on their own ability to understand content instead of trusting the self-reports of sites

This is a classic case of a defense against the honest but not the dishonest

WARNING

Death sentence

Google publicly announced back in 2009 that it completely ignores the meta name="keywords" tag in its ranking algorithm

Bing and other mainstream search engines have also made clear that this tag has almost no value

  • For new site owners, there is absolutely no need to use this tag
  • For veteran site owners, if your site still has this tag, there’s no need to waste time deleting it. It’s harmless and basically useless. Just let it lie there quietly as a fossil of internet history

This is why I haven’t mentioned meta keywords at all throughout this article. If a 2025 SEO tutorial is still teaching you how to optimize meta keywords, you can laugh with relief; the author’s knowledge system is at least 15 years behind

16.2 Traditional PageRank scores#

This is an integer score from 0 to 10 that used to be displayed in the Google Toolbar, representing a page’s link authority

For more than a decade, the PR value was the most intuitive, most quantifiable authority metric in the entire SEO industry, directly spawning a huge link trading market

Why did it die? (We broke this down in detail in section 3.3.) Its publicness led to large-scale algorithmic manipulation, destroying the fairness of the search ecosystem

WARNING

Death sentence

In 2013, PageRank was hidden In 2016, it was completely removed by Google

Any third-party tool claiming to check your site’s “PR value” is displaying meaningless, outdated data, or a metric they invented themselves that has nothing to do with Google (such as Ahrefs’ DR or Moz’s DA)

Forget the concept of PR value. Stop asking me what my site’s PR value is
Put your energy into acquiring topically relevant, contextually appropriate, genuinely traffic-driving high-quality links, rather than chasing a phantom score that no longer exists. That is the modern Rank

16.3 Other outdated beliefs#

16.3.1 “Keyword density must reach X%”#

In the past, some believed that the proportion of a certain keyword on a page (e.g. 2-5%) was key to rankings

This is an extremely outdated idea. Modern search engines use BM25 and NLP models, focusing more on keyword position (title, H1), context, synonyms and semantic relevance. Just write naturally and let keywords and related topic terms appear reasonably where they should. Deliberately chasing a certain density only makes your writing clunky and is actively harmful

16.3.2 “The older the domain, the better”#

People used to widely believe that old domains have a ranking advantage.

Google’s John Mueller has clarified many times that domain age itself is not a ranking factor. Old domains appear to have an advantage because they’ve had more time to accumulate content and high-quality backlinks. A brand-new domain that can quickly build excellent content and authority is fully capable of surpassing an old domain whose content has stagnated for years. What matters is the domain’s history, not its age

17. SEO anti#

Scammer scripts usually go: “We have thousands of high-authority site resources and can publish articles with links for you” “For just XXX yuan, you get a dofollow backlink from a DA 50+ site (or another made-up metric)”

Deconstructed, this is:

  1. Private Blog Network: the most common kind. Scammers buy a bunch of expired domains that once had some authority, then use templated programs to quickly build lots of blogs that look “normal.” These blogs exist for one purpose only — selling links. Their content is low-quality, their topics are scrambled, and they link to each other, forming a fake “authority network”

  2. Hacked sites: even worse, they exploit vulnerabilities to hack into normal sites, then secretly add links pointing to the client on those sites

  3. Low-quality guest posts: they publish an AI-generated, badly written spam article on low-quality news sites or blogs that let anyone pay to post, and insert your link into it

NOTE

How Google sends them to the gallows

Google’s anti-spam team has extremely complex algorithms and manual review processes to identify these unnatural links

  1. Link Graph Analysis: Google can analyze the link topology of the entire internet. Sites in a PBN network usually have highly unnatural link patterns (e.g. only outgoing links and no incoming links, or linking only within a specific small circle), and are easily identified by algorithms as link farms

  2. Anchor text abuse detection: if a new site suddenly gains a large number of backlinks pointing to it with completely identical anchor text (e.g. all “OpenWrt router recommendation”) within a short period, that’s an extremely dangerous signal. Natural links should have diverse anchor text

  3. Site quality assessment: Google assesses the quality of the site publishing the link itself. A normal site should have topical content, regular updates and real user visits. PBN sites usually have jumbled content, stagnated updates and no organic traffic

  4. Manual reports and review: your competitors, or anyone who understands SEO, can report suspicious link trading to Google through its “Report paid links” tool

  • Once Google’s algorithm or a manual reviewer confirms that your site has participated in large-scale link manipulation, your Google Search Console will receive an “Unnatural outbound links” manual action notice
  • Your site’s rankings will fall off a cliff, and may even be completely removed from Google’s index
  • You’ll need to manually find all the spam links you bought, contact the site owners to request removal (which is usually ignored or met with blackmail), then use GSC’s “Disavow Tool” to submit to Google a list of spam links you disown, and write a Reconsideration Request begging for Google’s forgiveness. The whole process can take months, and success is not guaranteed

Site owners would do best to let go of speculative ideas too; good wine needs no bush. Looking back at this article, real authority comes from creating linkable assets worth linking to, and through digital PR and community contributions, letting high-quality links happen naturally. It’s hard and slow, but it’s the only correct, sustainable path

17.2 Keyword stuffing#

Scammer script: “Your page’s keyword density isn’t enough; we need to optimize it to 5% for you”

As we said in chapter 16, this is a Stone Age idea. Modern NLP algorithms will consider it as reducing content readability, and may even give negative evaluations

17.3 “Submit to XXX search engines” services#

Scammer script: “We can submit your site to 500 search engines worldwide in one go”

99.99% of search traffic comes from a few giants: Google, Bing, Baidu and so on. These giants don’t need you to submit manually; their crawlers discover your site automatically. What this service submits to is hundreds of garbage search engines you’ve never heard of with zero traffic: pure psychological comfort, completely worthless

17.4 Buying social media signals#

Scammer script: “Buying 10,000 Twitter retweets will boost your SEO rankings”

Google has made clear that the number of likes and shares on social media is not a direct ranking factor. Although widespread social sharing may bring indirect benefits (such as brand exposure and referral traffic, which may in turn bring organic backlinks), buying fake signals from bot accounts is completely ineffective and will be easily seen through by algorithms

18. Conclusion#

The purpose of this article is simple: to let every modern site owner understand search engines and SEO as they are today. I’ve emphasized modern throughout. Much of the SEO optimization advice I see on major forums is meaningless scraped rewrites. It’s 2025, and there are still self-proclaimed SEO experts teaching keyword stuffing and buying backlinks; this article exists to slap those so-called experts’ faces as sharply as possible

This post is complementary to A Deep Dive into Modern Search Engines: From Principles and Algorithms to Efficient Retrieval Practice. I strongly recommend reading the earlier piece, > click to jump

Since this was written by one person with limited energy, corrections are welcome. Please credit the source when reposting, much appreciated

Chongxi
CHONGXIAuthor
Steam—
Spotify—
Published at:2025.11.09
Classified
Distribution Notice

A Deep Dive into Modern SEO: Principles, Algorithms and Practice

Author CHONGXI/2025.11.09/CEPATO-2025-1109-MODERN

This work is licensed under CC BY-NC-SA 4.0. Redistribution, remixing and adaptation are allowed for non-commercial use, provided the same license is used and the original author is credited.

SubscribeDonate
Discussion
Archive_Ref
Copyright © 2011–2026 Chongxi & CEPATO
Powered by Astro & CEPATO-NEXT
StatusNon-Collaborative_Entity // CEPATO_NEXT_v27.0

Type a keyword to search