The ID Layer of app.onepassapps.com: 561 id Attributes, 39 Names and 287 Fragment Links
I work on OnePassApps, the team behind app.onepassapps.com. This is about our own site: every id attribute and every #fragment link across the 56 pages in our sitemap, measured on 8 November 2026 with plain HTTPS, no bro
I work on OnePassApps, the team behind app.onepassapps.com. This is about our own site: every id attribute and every #fragment link across the 56 pages in our sitemap, measured on 8 November 2026 with plain HTTPS, no browser, no session and no JavaScript.
561 id attributes, 39 names
Across those 56 pages the served HTML carries 561 id attributes. They resolve to 39 distinct names.
The gap between the two numbers is the interesting part, and it is not random duplication. 19 of the 39 names appear on more than one page, and 20 names are unique to a single page.
The name that appears on all 56 pages is onepassapps-structured-data, the id of the JSON-LD block. 8 names appear on all 33 pages that ship the app bundle - the 22 app pages, the 7 studio pages and the home, voting, plans and terms routes. guide-content appears on all 23 pages of the guide fleet (the 22 guide pages and the guides index), and 9 names appear on all 22 guide pages.
| id name | pages carrying it |
|---|---|
onepassapps-structured-data |
56 |
root |
33 |
shell-fallback-template |
33 |
shell-fallback-title |
33 |
tp-startup-eye |
33 |
tp-startup-plate |
33 |
tp-startup-shadow |
33 |
tp-startup-shell |
33 |
tp-startup-side |
33 |
guide-content |
23 |
features |
22 |
features-heading |
22 |
limits |
22 |
limits-heading |
22 |
questions |
22 |
questions-heading |
22 |
related-heading |
22 |
steps |
22 |
steps-heading |
22 |
acceptable-use |
1 |
account-deletion |
1 |
agreement |
1 |
content-and-rights |
1 |
ending-use |
1 |
law-and-contact |
1 |
liability |
1 |
movie-data |
1 |
newsflow-sources |
1 |
payments |
1 |
plan-free |
1 |
plan-pro |
1 |
plan-question-credits |
1 |
plan-question-refunds |
1 |
plan-question-switch |
1 |
plan-questions |
1 |
plan-standard |
1 |
privacy |
1 |
privacy-rights |
1 |
service |
1 |
No page repeats an id
Checked page by page: 0 of the 56 pages carries the same id twice. The duplicate-id problem exists across pages, not inside one.
287 fragment links, 236 that land
The same crawl counted 1,516 href attributes, of which 287 point at a fragment. 125 are same-page links and 162 cross a page boundary.
236 of the 287 fragments resolve to an id that exists on the page they point at. 111 of the 162 cross-page fragments resolve too.
The 51 that do not resolve are Cloudflare's, not ours
All 51 unresolved fragments belong to one pattern: /cdn-cgi/l/email-protection#.... That is Cloudflare's own rewrite of the mailto: links on our pages, and the fragment is not an id on any page of ours. None of the 51 points at a heading or a section on one of our pages, so 0 of our own fragment links are broken.
Where they come from is uneven. The terms page carries 18, the plans page 2, the home page 1, the voting page 1, the seven studio pages carry one each and the 22 app pages carry one each.
Where the fragments point
The terms page is the densest: 22 ids and 32 fragment links on a single page. Each guide page carries 11 ids and 7 fragment links. The guides index carries 2 ids and 65 hrefs.
What I did not do
One build, one day, one network, plain HTTPS, signed out. The 56 URLs are the ones in our own sitemap. A fragment was counted as resolved when the page it points at carried that id in its served HTML, so nothing here was rendered in a browser and no claim is made about what happens after our JavaScript runs. The fragment count counts links that carry a fragment, not unique fragments.
Take a look
The whole site is at app.onepassapps.com, and the per-tool walkthroughs are in the app guides.
I work on OnePassApps, so everything above was measured on our own build.
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.