Discussing Unpopular Blog Technical Features
From pop-up interference to service abuse, this article analyzes the negative technical features of blog websites that "think they are optimizing but are actually hindering."
User Experience
Changing the Title When Switching Tabs
Some blog websites change the page title to a retention text when the user leaves, which is certainly interesting. But when a group of tabs is opened, the consequences become disastrous, and users cannot identify the content of each tab.
| 🍊 ♪(^∇^*) Welcome back! | ❄ (。•́︿•̀。) | ⭐ (๑•́ω•̀๑) Wait! Don't switch away~ |
|---|---|---|
| 📌 (≧∇≦)ノ Don't leave! Look around some more~ | 🎨 (´・ω・`) Don't go! Stay a while longer~ | 📖 (。・ω・。)ノ Wait! Don't switch~ |
| 🍃 (๑˃̵ᴗ˂̵)و Don't go! Stay a little longer~ | 💫 (´• ω •`)ノ Don't go! Look around some more~ | 📝 (≧∇≦)ノ Wait! Don't leave~ |
| 🎈 (。・ω・。)ノ Don't switch away! Stay a little longer~ | 🍀 (っ´ω`c) Don't go! Look around some more~ | ✨ (。•́︿•̀。) Wait! Don't leave~ |
| 📮 (≧∇≦)ノ Don't go! Stay a little longer~ | 🌸 (´・ω・`) Don't go! Look around some more~ | 📌 (๑˃̵ᴗ˂̵)و Wait! Don't switch away~ |
This is less like surfing the internet and more like walking through a field of squeaky toys.
🐔
If your blog is not for your own amusement but aims to genuinely convey valuable information to readers, then overly flashy tab title tricks are likely to cause trouble when users are researching.
The title must have a title in it ✍️✍️️✍️
\0/\0/\0/
Auto-playing Sound When Opening a Web Page
Browsers restrict autoplay for peace and quiet, but some developers are using the rule of "play after first interaction" to achieve automatic playback of background music or voice announcements.
Such unannounced intrusion will only put users in an awkward situation in an office or public place. When the user's first reaction is to "close the page" rather than "read the content," this feature has completely failed. Truly advanced design never relies on depriving users of their "sense of control" to make its presence known. If sound is valuable, please leave the switch to the user, rather than imposing it.
Using Difficult-to-Read Artistic Fonts and Low-Contrast Color Schemes in the Main Text
Can't even see the words, not reading!
Changing the Mouse Pointer to a Difficult-to-Recognize Cursor Style
It reminds me of the awkward experience of not being able to find the mouse pointer when using someone else's computer (don't laugh, you wouldn't find it either if you tried). If you believe your website's cursor style is better than the user's settings, then it should at least be easy to recognize.
The mouse pointer must be clearly visible ✍️✍️️✍️
\0/\0/\0/
Modifying the Right-Click Menu
The right-click menu is not very useful, but developers think it's not useful, so they add a right-click menu to their blogs. It can—prevent the real right-click menu from appearing.
Users right-click to use features, not just for fun. Good design should enhance the experience, which means letting users know what they can do with a right-click, rather than forcing their presence by stripping native functionality.
Right-clicks must be able to summon the menu the user wants✍️✍️️✍️
\0/\0/\0/
Pop-ups and Loading Animations that Block Interaction
First, your path is blocked by an "Update Log" that forces you to click "I Know." After closing it, you're hit with a full-screen Google Ad. Don't laugh, you wouldn't pass the loading animation either: a circular avatar rhythmically flashes in the center of a white screen. One second, two seconds... it flashes so elegantly, yet the page remains stuck in the "last mile."
If your loading animation must wait for all resources, please give users an option to close it when the network is poor.
Loading animations must finish loading✍️✍️️✍️
\0/\0/\0/
Misuse of Technology
Poor Quality JS CDNs
Many bloggers are obsessed with jsDelivr, UNPKG, or related public/self-hosted mirrors, but this isn't always the best solution.
Commonly used public JS libraries can be provided through faster domestic JS CDNs with more options. Most of these are mirrors of cdnjs, so as long as you can find the library on cdnjs, you can use it by replacing the domain name.
Private GitHub repositories and npm packages are not recommended for public acceleration services. Public CDNs should provide content that benefits the public, and ensuring stability, loading speed, and security are what public CDNs should do.
Pjax + PACE
Open a blog and only see the background, no text? The progress bar stuck at 99%?
This is usually caused by Pjax combined with the PACE loading animation. Pjax handles page transitions without a full refresh, while the PACE animation monitors all background requests.
The logical flaw is: as long as one resource fails to load (e.g., an icon, avatar, or a CDN glitch), PACE will consider the loading incomplete, causing the progress bar to never reach completion.
The most awkward part is that the article text has actually loaded onto the page, but because PACE hasn't issued the "complete" command, the text on the page remains in a transparent loading state. For the sake of a so-called visual effect, users are forced to wait in front of a blank screen.
Disabling Text Selection and Copying
I doubt there are any tech blogs that prevent users from selecting text... CSDN is an exception.
Disabling Developer Tools
There is no method that can truly disable developer tools; instead, it only annoys users and developers.
Related Link: Your Level of Devtools is Not Authorized to Hack Me - Micro-light Archive
And there are cute developers who successfully trick users with messages printed in the console.
[32;7m NCC2-036 [0m Front camera photo taken successfully, identified as [Little Fool].
[34;7m WELCOME [0m Hello, Little Fool.
[34;7m W23-12 [0m You have opened the console.
[33;7m S013-782 [0m You are now under surveillance.Some popular libraries for detecting developer tools are prone to false positives. When users open vertical tabs, or when the download list or history appears in the sidebar, these libraries may misjudge.
Some pages detect developer tools and use various sound and light warnings to alert users and prevent them from browsing the web, treating users as hackers stealing page code, yet failing to prevent real DevTools remote debugging.
When I open DevTools, I'm most likely trying to see how absurd the bug is.
Service Abuse
PWA
Progressive Web Apps (PWAs) are a good feature in principle, allowing web pages to run like native applications. However, in early browsers, a pop-up asking "Install App?" would appear as soon as the page opened, which was extremely disruptive. Fortunately, current browsers have become much more restrained and no longer pop up automatically.
Abuse of Service Worker + CacheStorage
Some bloggers have a superficial understanding of front-end caching mechanisms. Instead of using mature and user-friendly HTTP strong caching/conditional caching, they insist on showing off by implementing "full-site offline," forcibly stuffing all images and scripts into the user's CacheStorage.
Bro, I just want to read an article, who's going to compensate me for the hard drive space that can't be cleared!
😭
This kind of "showing off" behavior is completely counterproductive:
- Difficult to clear: CacheStorage is independent of HTTP cache. Ordinary users cannot delete it by clicking "Clear Browser Cache." It sticks to the hard drive like a stubborn stain, and can even cause page updates to fail.
- Occupies space: Some sites leave hundreds of MB of "solid cache" on the first visit. Native browser HTTP cache has an automatic clearing mechanism, but if the blogger doesn't write clearing logic for CacheStorage, it will continue to expand.
JS, CSS, and images should be handled by the Cache-Control in the HTTP response header, rather than painstakingly introducing Service Worker without any benefit.
Windows users can press Win+R to see how many surprises are hidden in your hard drive:
Edge: %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Service Worker
Chrome: %LOCALAPPDATA%\Google\Chrome\User Data\Default\Service Worker
Abusing Public Services as Image Hosting
Many tutorials teach beginners how to turn GitHub or npm into image hosting services, which is a typical abuse of public services.
The original intention of open-source infrastructure is to support code hosting and distribution, not as a free binary storage repository. Especially some people who use npm to host resources and then distribute them through public CDNs. This "chain reaction" not only increases the uncertainty of the link but also depletes the trust bottom line of the entire community.
npm Race
Even worse, some people use Service Worker + npm + public CDN to create a "race solution": hosting all static resources of the entire site on npm, and then initiating concurrent requests to multiple CDN nodes on the user's end, using whichever is faster, and finally forcibly stuffing them into the user's disk cache.
This solution seems to solve the access speed problem, but in reality, it's an ugly practice—making redundant requests to multiple public CDNs to load a few dozen KB of scripts, combined with CacheStorage abuse—turning the browser into a black hand that amplifies public service traffic, and stuffing the device with "cache tombstones" that are difficult to remove.
Achieving a state where hosting platforms, CDNs, and users all receive no benefit.
Affecting Oneself
Frequent Domain Name Changes
I don't know how to comment, because it's no longer accessible.
No Subscription Feed
I've always believed that modern blogs are a continuation of the early internet spirit, and RSS/Atom feeds are a unique technological romance for independent blogs. If a blog can only gain traffic by the blogger "promoting" it on Moments or social platforms, it's more like an isolated island.
CSR Sites
You often see videos like "I built a blog with Vue/React," but these pure CSR (Client-Side Rendering) projects are difficult to survive in a production environment for a simple reason:
- The HTML is just an empty shell for mounting, and the content is entirely generated after the browser runs the JS. For many search engine crawlers, your blog is blank.
- If a Single Page Application (SPA) uses the default hash mode (#/path), in the eyes of search engines, your entire site with a few or hundreds of articles is squeezed into the same path.
JS framework blogs without SSR (Server-Side Rendering) or SSG (Static Site Generation) support are refusing to be discovered.
Ignoring SEO
Meta metadata names, Open Graph, Twitter Card, JSON-LD, search indexing, website statistics... Don't rush to configure these yet.
If your webpage has a <link rel="canonical">{lang="html"} tag, first check if it's written correctly.
This tag tells search engines the "authoritative address." If you have multiple domains or paths pointing to the same article, it can prevent weight dispersion. Some themes mistakenly point the Canonical tag of an article page to the homepage, an inconsistent domain, or protocol. This is tantamount to declaring to search engines, "I am not the genuine article, no need to index."
Technology is just the coefficient, the article is the base. After all this talk, where are the blog posts?
🤔🤔🤔