The naming rule only covered catch-all subcategories, but CLI Development > CLI Development and HTTP Clients > Clients were main use cases that repeated their section's name and were renamed General too, so the rule did not describe the practice.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory nearly repeated its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory shared its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
Subcategory titles such as "JWT for Authentication" lacked searchable words, and their boilerplate descriptions never named the listed projects and said "1 projects".
Co-Authored-By: Claude <noreply@anthropic.com>
Every sitemap URL got the build date as lastmod, so all pages claimed a change on each daily deploy, and the sponsorship page used file mtime, which on CI's fresh checkout is also build time.
Co-Authored-By: Claude <noreply@anthropic.com>
The catch-all subcategory shared its section's name, so its page ("Code Analysis for Code Analysis") split the "python code analysis" query with the section page in Search Console.
Co-Authored-By: Claude <noreply@anthropic.com>
Group pages showed only tables, so visitors arriving from broad searches like "python ml library" got none of the which-one-to-pick guidance that each section's intro already gives.
Co-Authored-By: Claude <noreply@anthropic.com>
The NLP intro left gensim out entirely, so readers wanting topic models or word embeddings got no pick even though the README lists it.
Co-Authored-By: Claude <noreply@anthropic.com>
The description said "Used for forms in many cases", which fits none of its four projects (pydantic, jsonschema, great-expectations, pandera).
Co-Authored-By: Claude <noreply@anthropic.com>
Its second sentence paired aiosmtplib and yagmail with their jobs in the same compressed two-pick frame the Admin Panels lead uses.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the audit and never mentioned django-mongodb-backend, which moved into ORM from Database Drivers.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added aiosmtplib and django-anymail.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added flask-restx and flask-smorest.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added prophet, statsforecast, and sktime.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and still recommended Keras as a main pick after its demotion to Second Tier.
Co-Authored-By: Claude <noreply@anthropic.com>
thealgorithms isn't on PyPI and doesn't use its GitHub repo name, `Python`, as the naming rule requires, so it read as an unrecorded naming violation.
Co-Authored-By: Claude <noreply@anthropic.com>
scrapy was described as "screen scraping", python-patterns dropped "idioms", marimo's line was a run-on that skipped "reactive", and llama-index's predated its docs' "toolkit for RAG and agents". hermes-agent linked a lowercase owner that only resolved by redirect.
Co-Authored-By: Claude <noreply@anthropic.com>
actions/cache@v4, deploy-pages@v4, and upload-pages-artifact@v4 (which pins a Node 20 upload-artifact SHA) target the deprecated Node.js 20 runtime, so GitHub forced them onto Node 24 with a warning on every deploy run.
Co-Authored-By: Claude <noreply@anthropic.com>