Ask HN: Why does Google rank the real Python documentation below content farms?
Do a Google search for "python endswith". Obviously, https://docs.python.org/3/library/stdtypes.html#str.endswith is the correct best hit for that term. Why does Google rank that page below all of the well-known low-quality content farms like GeeksforGeeks, W3Schools, and Tutorialspoint?
150 comments
[ 1.6 ms ] story [ 248 ms ] threadThe bottom line being that there is nothing you can do about it unless Python themselves fundamentally change how the documentation is structured, which I doubt they have plans to do.
I think that could mostly be done in an automated fashion to start. Then into the master doc you can start adding hinting and extra material that gets rendered into the sub-pages. So it could be approached gradually.
I'm honestly surprised Google employees haven't fixed this somehow, surely they have thousands of people running into this problem daily.
Why?
Google is an ad company, that has integrated search.
Why would they cut their own bottom line in order to make data happy?
You aren’t their customer. You are Google’s data. Google’s customers buy your data.
Why would they change anything about their business model, which works amazingly well?
AFAIK, Google doesn’t sell user data.
They can coast for an indeterminate amount of time, but with the risk that eventually the consumer will be fed up and stop using them, especially if a decent alternative pops up.
Google’s business model is selling user data to the highest bidder. Google’s other business model is selling opportunity to collect data on people.
You as a search user are not a customer, but a data point.
There is literally no incentive for this to change.
Desiring an ad company to not show ads is a ridiculous desire.
At the same time google coordinates with their other customer and swaps the time and eyeballs for money.
But users are definitely a customer paying with time in return for search results.
If the product becomes too obnoxious, people don’t even need an alternative to quit. It’s happened with other products. Not everyone will quit, but the customer base will shrink.
Google’s data gathering isn’t just search.
Anyone not using Firefox, and even those who are using Firefox, is gifting Google data.
That data is worth more than search results or search data.
Google knows where you browse. Google knows how many clicks, scrolls, and keys pressed. Google knows what your email contents and preferences.
Search is a tiny portion of Google’s data collection behemoth and whether users quit Google search for bingo search doesn’t matter much to them.
Like I said, Python or any other language can fix this issue by changing the entire mindset of how documentation is built. You can then get the OSS community involved on GitHub to slam dunk on all the SEO spammers.
Just look at MDN or Web.dev, both have their content repos up on GitHub and people contribute metric tons of useful info. And both of these sites have healthy standings in the context of SEO.
Can’t remember the last time I visited W3S/GFG to be honest.
It’s about to get worse though as it appears that DigitalOcean is putting a nail in the coffin for CSS-Tricks and Google will absolutely demote it because of inactivity, only the most linked-to pages will survive until DO decides to shit the bed and try and move the entire site to their Tutorials platform.
Please, please, I beg of you, in the name of all that is holy, do not push for SEO bloat in documentation!
Certainly some of the Python queries could return a card promoting a result from python.org just like other queries return a card promoting wikipedia.org
Google search rank has been an ML driven algorithm for ages now and take into account dozens of signals. User rejection (how fast people come back to the search from a result click) and obviously which results get clicked more often are examples of that.
Based on other comments saying they like the sites I consider spammy, maybe the weights aren't even wrong, they're just not optimized for me!
Who, exactly? A professional Python programmer probably has their IDE/editor set up so it can shows a brief document for `str.endswith` already. Someone who is new to Python (probably not even a programmer yet) might actually prefer the hand-holding from those content farm pages.
[1]: https://news.ycombinator.com/item?id=37483100
Someone who has been exposed to the most basic Python features and knows they want info on str.endswith can just type help(str.endswith) in the Python interactive environment.
None of that is going to be given either in an IDE or from help().
Also, who'd actually want hand-holding from low quality content?
That is what Google is doing! But remember, the advertiser is the user, not the person running the search.
If you want to be the user, and get good search, pay for kagi.
- a stackoverflow answer that has a useful example: https://stackoverflow.com/a/18351977/
- the Python documentation: https://docs.python.org/3/library/stdtypes.html
- Pandas documentation (they also have an endswith): https://pandas.pydata.org/docs/reference/api/pandas.Series.s...
- a blog post on Python regular expressions (this looks useful but is a wrong result for this query): https://www.johndcook.com/blog/python_regex/
- something that could be a content farm with rephrased Python documentation: https://pythontic.com/concepts/string/introduction
The top three results are good, and I guess it's a matter of taste whether the succinct Stackoverflow answer is better than the verbose official documentation.
We've come full circle.
Nor should they, in my opinion. Quality of documentation is more important than that.
Google's ENTIRE JOB is to surface the CORRECT content for a query. If they are objectively not doing that, then they are in the wrong. Imagine credit card fraud just kept increasing, and instead of adapting and improving their systems, companies just threw up their hands and said "deal with it, not our problem, nothing we can do" as you had to generate a new credit card number every other day because even the most trivial card number enumeration attacks were not stopped.
The fact that google is completely unwilling to change how they operate to prevent even the simplest, intern driven SEO trash from overtaking literally authoritative sources should be exhibit A in a trial to break up Google, as evidence of how negative value they are to the consumer.
It's the rough equivalent of Fedex just throwing away a third of the packages they are supposed to deliver at random, and people seemingly just saying "eh, nothing can be done"
Google's job is to serve ads profitably. It's something like 90% of their profit (80% of revenue). To some extent they even have an incentive to show poorer results first because it makes you stay on the page longer and look at more sites (more ad impressions).
Obviously I'm not saying they're singling out python or documentation in general as some kind of cash cow. More realistically the story is that, sites that serve ads make money, and can spend money on cat-and-mousing SEO to keep making more money. Technical docs aren't going to do that. Google could whitelist them but it seems they turn a blind eye for the aforementioned reason.
https://kagi.com
DuckDuckGo is a bit better than Google at avoiding content farms and semantic web spam, but I think it's mostly for the same reason Linux and MacOS used to have zero malware.
It retains that early-2000s Google vibe, where there were still quirky independent sites to discover. Using it also surfaces just how much Google is censoring its own results on controversial topics.
1: docs.python.org › 3 › library › stdtypes.html
2: pandas.pydata.org › pandas-docs › stable › reference › api
3: This discussion!
I've tried DDG and Brave for a few weeks each, and gone back to them once in a while when Google search has completely failed for things I know exist. They mostly have worse results than Google (purely in terms of relevance of the first page), and Google is trash now. I'll give Kagi a try for a few more days and see, but maybe the web has finally got to the point where paying for search is a useful strategy.
It's extremely bad.
You can see for yourself.
As I mentioned in another comment, Phind and You Code have been quite good as well.
I get why at least with the python docs, they're a little dense. some of those others have example uses which I could imagine people find useful.
geeksforgeeks with the login nag page is pretty bad.
And then it hits me: the proper documentation for things are on pages without ads! Perhaps that’s the signal google needs to start weighing heaviest…? ;)
Its entire purpose is to inject itself as a search middleman. Even worse, I find myself landing there from google results to a question they had closed as not worthy of the site, but worthy enough still to keep up for the search juice.
Well, you did google for the question and not for the answer. ;)
This is an irrelevant distraction, because Google's literal army of nearly 200,000 full time employees, a large number of whom are Python developers, do know. Geeksforgeeks, w3schools, programiz, tutorialspoint, and python-reference.readthedocs, which all rank higher than the official documentation, are not flash-in-the-pan sites. They've been polluting the search results for literally years. Trivial manual processes at Google scale would be 1000% fine and effective.
Google could, if it gave half a shit, give every employee a Chrome browser extension that lets them manually vote on the reasonability of site rankings within known problem genres for their own searches.
Like I never ever ever click on a web ad, and can't even remember the brand it was about 3 seconds after leaving the page, whenever I see G4G, TP, etc., I never ever ever click them. At this point, I think this doesn't even reach my brain, but is handled by my spinal chord.
For what it's worth, the ads aren't for you. They're for anybody or anything that might click them, knowingly or not, and that's not you.
Is monetising the web through advertising the reason these scraper sites exist? And removing that would make scraping sites an expense with costs rather than profits?
Perhaps google could do this. Ads on third party sites are probably a small part of their income compared to sponsored ads in search results, so they could be sacrificed and they’d take down their competitors who rely more on the website ads because they don’t have the search?
However, they have no need to compete on search quality at this time. If another player in the search and browser wars started downweighimg ad heavy sites then this might make google have to reluctantly follow suit. But you can imagine the FUD campaigns to paint such an actor as killing the internet and being the bad guy etc…
Then I realised StackOverflow has ads nowadays and my search offering would be useless for like 98% of devs.
https://docs.python.org/3/search.html?q=endswith
Otherwise I really like ChatGPT like this: you put in minimal work into the query and it usually fills in useful info. If you use "Advanced Data Analysis" mode it will run those examples in the browser.
Invest in good code editor with linting. No more googling for such trivial things
I suspect that someone who needs to know that their developer experience is broken probably doesn't know what "DX" means.
[1]: https://duckduckgo.com/?q=python+endswith
[2]: https://duckduckgo.com/?q=!python+endswith
Long answer: Balancing the many interests of search result parties, the decrease of consumer satisfaction is by Googles benchmarks outweigh by money received from their paying customers.
Use Bing, results are relevant and they do not yet rank paying farms as number one.
I know this doesn't answer your question, but I hope this helps you in the interim.
My guess would be that engineers first go to documentation, don't understand it, go to low-quality-content-farms which answer their questions in natural language. It's low quality but it's enough for novice use cases such as python endsWith.
And this leads to a big reduction in Google's ranking of python docs.
TLDR : most novice programmers don't/can't read docs.
The docs are written by and for experienced programmers. They're very dense with information but light on examples and comments that explain things for dummies.
Its popularity means the vast majority of Python users are novices who would find the docs hard to read. Geeksforgeeks et al are providing content for them and so is actually a better resource to show the majority of searchers (especially given that it's a basic string formatting question, something very likely to be searched by for novices).
But more seriously... I think it's because the language and framing of the python documentation is difficult for a new user to understand.
Yes, Python is miles better than some other languages at documentation, but it's still more of a reference than a tutorial. I remember when I first started learning Python, I read blog entries (e.g. blogspam) more than I did the official docs.
In my intermediate phase, I searched Python docs but I didn't need Google's help for that.