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
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
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
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
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
Crawl Budget refers to the time and resource limits a search engine places on crawling a site. It consists of two parts:
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
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
Crawled page content goes through a series of processing steps:
Content extraction: strip templated content such as ads, sidebars and footers, and focus on the core body text
Tokenization: split the article content into individual tokens token. For example, the Chinese query 小米路由器刷 openwrt would be split into 小米, 路由器, 刷入, openwrt
Normalization: includes lowercasing, lemmatization (e.g. “running” to “run”), and removal of stop words (such as “的”, “了”)
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 Token
List 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
- [1, 2] AND [1, 2, 3] => [1, 2]
2
3
*then use the result of the previous step to continue the intersection*
4
5
- [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
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
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
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:
Recall Recall: through the inverted index and vector index, find several thousand of the most relevant candidate documents out of billions
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
Fine-grained ranking Fine-grained Ranking: use complex machine learning models that combine hundreds of signals to rank candidates more precisely
Re-ranking Re-ranking: on top of the fine ranking, make final adjustments based on the user’s personalization needs, recency and other factors
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:
Term frequency (TF): document A has a higher keyword frequency, so it scores higher.
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
Term frequency saturation: even if document A repeats “proxy service” 100 times, its score won’t grow without bound, which effectively prevents keyword stuffing
3.3 Link Authority Models: The Sudden Death of PageRank & Modern Authority Models#
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:
The topical relevance of the vote Topical RelevanceHow 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
The surrounding context of the link Surrounding ContextHow 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
User behavior around the link User BehaviorHow 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
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):
BM25 score: measures the literal match between page content and the query
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?
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)
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
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”
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
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
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" }] }
Technical SEO aims to optimize a site’s technical structure, ensuring search engines can smoothly crawl, render and index it, and improving user experience
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
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
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
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#
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
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)
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
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 weightPageRank
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
1
```html
2
<!-- 传统做法,现在已不推荐 -->
3
<a href="/login" rel="nofollow">登录</a>
4
```
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 combination
Use case
Core purpose
rel="sponsored"
Ads, sponsored articles, paid reviews — any link you place because of a financial transaction
Maintain business integrity.
rel="ugc"
Links in all user-generated content: blog comments, forum posts, user signatures
Prevent 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 resource
Pass weight, contribute value to the internet, build relationships
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
Write an article about Reviewing xi’s Glorious Crown in maimai DX. Instead of just describing it in words, why not:
Embed a link to a hand-cam video you recorded and uploaded to a video site
Post your own score screenshots
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”
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”
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
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
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#
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
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
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:
First wave: Googlebot crawls your raw HTML; if the content is all in the HTML, it’s sent straight to indexing
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
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
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
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
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
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
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
High reliability: avoids the various uncertainties of client-side environments
Better performance metrics: typically faster FCP and LCP, friendly to user experience and Core Web Vitals
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.
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
How do you determine what Google actually sees? Don’t guess; verify with tools
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
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
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 指南
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
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
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
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
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
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
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
1
<imgsrcset="openwrt-config-small.jpg 480w,
2
openwrt-config-large.jpg 1080w"
3
sizes="(max-width: 600px) 480px,
4
1080px"
5
src="openwto-config-large.jpg"
6
alt="OpenWrt防火墙配置的后台截图">
This ensures phone users aren’t forced to download large desktop images, greatly improving mobile loading speed
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
Lazy loading
For images below the fold, use the native loading="lazy" attribute.
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
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
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
bilibili and other video platforms
Better suited to the mainland China audience; no need to worry about bandwidth or playback experience
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
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
In the description area of your YouTube video, write down your video chapters in the format timestamp + chapter title
Must start from 00:00
At least 3 timestamps are required
PRTCL // PLAINTEXT
1
```
2
(0:00) intro
3
(0:52) 天苍苍野茫茫风吹草低见牛羊
4
(1:13) 我有玉米症
5
(2:12) 登神长阶
6
```
When users search for related content on Google, clickable chapter links such as 登神长阶 may appear directly below your video result
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
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
1
```json
2
{
3
"@context": "https://schema.org",
4
"@type": "Person",
5
"name": "Chongxi", // 你的名字或网名
6
"url": "/about", // 指向你"关于我"页面的URL
7
"sameAs": [ // 这是关键!用它来关联你在全网的其他身份
8
"https://github.com/ChongxiSama",
9
"https://twitter.com/@CEPATO",
10
"https://space.bilibili.com/500042199"
11
],
12
"description": "一位兴趣爱好十分广泛的个人开发者",
13
"knowsAbout": [ // 声明你的专业领域
14
"Linux",
15
"Web dev",
16
"Web3",
17
"Network Engineering"
18
]
19
}
20
```
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
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
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
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
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
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
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
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
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
Solves the duplicate content problem:
Prevents Google from treating the English and Japanese translations of your Arch Linux Installation Guide as plagiarism
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
Reciprocal:
If page A links to page B, then page B must link back to page A
Self-referential:
Every page must have an hreflang tag pointing to itself
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:
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
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
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
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
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
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
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
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
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
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
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
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#
Longer and more conversational: voice queries are longer on average and are usually complete questions
Clearer intent: usually seeking a direct, concise answer
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
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”
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
Use ordered/unordered lists: for step-by-step or list-type questions, use <ol> or <ul> tags to organize the content
Use FAQPage Schema: deploying FAQPage Schema for Q&A content on a page can increase your chances of being selected as a featured snippet
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
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
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
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
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
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%
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?
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)
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
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
In the “Performance” report, set the filter Position greater than 10.1 and Position smaller than 30.1
What’s listed here is every keyword ranking on pages two and three of Google. These are the potential winners
You find that for the query “OpenWrt DNS leak”, you rank 18th
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
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?
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
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
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
Review these URLs one by one. Are they auto-generated tag or archive pages with little substantive content? If so, make them noindex
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
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
Path: Reports > Engagement > Landing pages
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
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
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)
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)
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
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”
Path: Traffic acquisition > Traffic acquisition
Reading the data: look at the report, set the primary dimension to “Landing Page”, and check the “Conversions” each landing page generates
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
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
Around this successful pattern, create more similar content. For example The 5 Best Terminal Emulator Configurations on Arch Linux
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
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
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
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
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
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:
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”
Hacked sites: even worse, they exploit vulnerabilities to hack into normal sites, then secretly add links pointing to the client on those sites
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
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
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
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
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
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
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
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
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
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.