YouTube's search is horrible

3 min read

Hit enter on YouTube’s search bar, and good luck finding what you typed.
Google doesn’t care about the result of your search. It’s all about keeping you glued to videos and ads. Search for a creator’s name? Their channel might not even show up, buried under random “related” crap or popular vids that have nothing to do with your search. It’s like the algorithm has ADHD, spitting out five relevant results before diving into chaos. Don’t even get me started on shorts.

I’m old enough to remember when Google was king because its search worked. Now? Ads. Everywhere, especially e-commerce crap. It is kind of the same thing that happened to YouTube. It got so bad that I’m currently using DuckDuckGo instead of Google and, of course, because of AI chatbots, I have reduced searches by a lot.

So what can be done to solve this problem? First thing, install Firefox. If you like Chrome so much, at least try Brave or OperaGX, but I recommend Firefox. Then, change the search engine from Google to DuckDuckGo. If you are willing to pay for even better results, try Kagi, but for me, the little duck fella is enough.

And the most important, install uBlock. You need it, not only for YouTube but for a better web experience overall. Google knows that uBlock hurts their ad business, so they are trying to get rid of it using the manifest V3

After making the right choice and having installed uBlock, include the filter below.
! Remove empty spaces in grid
www.youtube.com##ytd-rich-grid-row,#contents.ytd-rich-grid-row:style(display: contents !important)

! Hide all videos containing the phrase "#shorts"
www.youtube.com##ytd-grid-video-renderer:has(#video-title:has-text(/(^| )#Shorts?( |$)/i))
www.youtube.com##ytd-rich-item-renderer:has(#video-title:has-text(/(^| )#Shorts?( |$)/i))

! Hide all videos with the shorts indicator on the thumbnail
www.youtube.com##ytd-grid-video-renderer:has([overlay-style="SHORTS"])
www.youtube.com##ytd-rich-item-renderer:has([overlay-style="SHORTS"])
www.youtube.com##ytd-video-renderer:has([overlay-style="SHORTS"])
www.youtube.com##ytd-item-section-renderer.ytd-section-list-renderer[page-subtype="subscriptions"]:has(ytd-video-renderer:has([overlay-style="SHORTS"]))

! Hide shorts button in sidebar
www.youtube.com##ytd-guide-entry-renderer:has(yt-formatted-string:has-text(/^Shorts$/i))
! Tablet resolution
www.youtube.com##ytd-mini-guide-entry-renderer:has(.title:has-text(/^Shorts$/i))

! Hide shorts sections except on history page
www.youtube.com##:matches-path(/^(?!\/feed\/history).*$/)ytd-rich-section-renderer:has(#title:has-text(/(^| )Shorts( |$)/i))
www.youtube.com##:matches-path(/^(?!\/feed\/history).*$/)ytd-reel-shelf-renderer:has(.ytd-reel-shelf-renderer:has-text(/(^| )Shorts( |$)/i))

! Hide shorts tab on channel pages`
! Old style
www.youtube.com##tp-yt-paper-tab:has(.tp-yt-paper-tab:has-text(Shorts))
! New style (2023-10)
www.youtube.com##yt-tab-shape:has-text(/^Shorts$/)

! Hide short remixes in video descriptions and in suggestions beside the comments
www.youtube.com##ytd-reel-shelf-renderer:has(#title:has-text(/(^| )Shorts.?Remix.*$/i))

! Hide shorts category on homepage and search pages
www.youtube.com##yt-chip-cloud-chip-renderer:has(yt-formatted-string:has-text(/^Shorts$/i))

!!! MOBILE !!!

! Hide all videos in home feed containing the phrase "#shorts"
www.youtube.com##ytm-rich-item-renderer:has(#video-title:has-text(/(^| )#Shorts?( |$)/i))

! Hide all videos in subscription feed containing the phrase "#shorts"
m.youtube.com##ytm-item-section-renderer:has(#video-title:has-text(/(^| )#Shorts?( |$)/i))

! Hide shorts button in the bottom navigation bar
m.youtube.com##ytm-pivot-bar-item-renderer:has(.pivot-shorts)

! Hide all videos with the shorts indicator on the thumbnail
m.youtube.com##ytm-video-with-context-renderer:has([data-style="SHORTS"])

! Hide shorts sections except on history page
m.youtube.com##:matches-path(/^(?!\/feed\/history).*$/)ytm-rich-section-renderer:has(.reel-shelf-title-wrapper .yt-core-attributed-string:has-text(/(^| )Shorts( |$)/i))
m.youtube.com##:matches-path(/^(?!\/feed\/history).*$/)ytm-reel-shelf-renderer.item:has(.reel-shelf-title-wrapper .yt-core-attributed-string:has-text(/(^| )Shorts( |$)/i))

! Hide shorts tab on channel pages
! Old style
m.youtube.com##.single-column-browse-results-tabs>a:has-text(Shorts)
! New style (2023-10)
m.youtube.com##yt-tab-shape:has-text(/^Shorts$/)

! Hide short remixes in video descriptions and in suggestions below the player
m.youtube.com##ytm-reel-shelf-renderer:has(.reel-shelf-title-wrapper .yt-core-attributed-string:has-text(/(^| )Shorts.?Remix.*$/i))

! Hide shorts category on homepage
m.youtube.com##ytm-chip-cloud-chip-renderer:has(.yt-core-attributed-string:has-text(/^Shorts$/i))

! Apr 15, 2025 https://www.youtube.com
www.youtube.com##ytd-reel-shelf-renderer.ytd-item-section-renderer.style-scope:nth-of-type(1)
www.youtube.com##ytd-reel-shelf-renderer.ytd-item-section-renderer.style-scope:nth-of-type(2)

! Apr 15, 2025 https://www.chess.com
www.chess.com##.tv-player-component > iframe
www.chess.com##.tv-player-component
www.chess.com##.cc-header-action

! Apr 17, 2025 https://www.youtube.com
www.youtube.com##.ytd-rich-section-renderer.style-scope > .ytd-rich-shelf-renderer.style-scope
It doesn’t solve the YouTube crap search results, but at least you have a more clean interface. Another extension I recommend is Return Youtube Dislike Button because we know YouTube ditched dislikes because corpos got butt hurt over their ad campaigns getting downvoted hard.

You might also like

Made with by David Martins