Slik bygger du én JSON-LD-graf for hele nettstedet
Gi hver entitet én @id og referer til den overalt ellers, i stedet for å kopiere. Slik merker musklr.com opp 23 sider som én JSON-LD-graf: 135 entiteter knyttet sammen av 229 kanter, med Person-noden på jan.sviland.org. En validator med 26 regler sjekker hver deploy, fordi håndskrevet markup glir ubemerket ut av synk. Grafen er tegnet nedenfor.
Et innlegg om strukturerte data kan virke som et sidespor for en treningsapp. Det er det ikke: bloggen er en del av hvordan folk finner Musklr, og mye av det som leser den nå er ikke en person som blar i søkeresultater, men en maskin som avgjør hva den skal sitere. Dette innlegget er historien om å gjøre musklr.com lesbar for de maskinene, og det demonstrerer seg selv: alt det beskriver, kjører på siden du ser på.
Hva er strukturerte data og JSON-LD?
JSON-LD er en blokk med JSON i en script-tag som beskriver hva en side handler om, i et vokabular maskiner deler: schema.org. Søkemotorer og assistenter leser den for å vite, uten å gjette ut fra prosaen, hva en side er, hvem som skrev den og når. Her er den første noden hver side på musklr.com bærer:
{
"@type": "Organization",
"@id": "https://musklr.com/#org",
"name": "Musklr",
"url": "https://musklr.com/",
"logo": "https://musklr.com/icons/icon-512.png",
"email": "support@musklr.com",
"founder": { "@id": "https://jan.sviland.org/#person" }
}
Den sier: det finnes en organisasjon som heter Musklr, med et nettsted, en logo og en støtteadresse. Hver egenskap sier noe en besøkende kan sjekke.
To eldre formater, microdata og RDFa, fletter den samme informasjonen inn i den synlige HTML-en. Jeg valgte JSON-LD fordi det holder hele påstanden i én blokk: markering som bor inne i layouten blir endret av hver redesign, mens én blokk kan leses av én test.
Hva gjør @graph og @id i JSON-LD?
En side beskriver sjelden bare én ting. Siden du leser beskriver
en artikkel, forfatteren, hovedbildet, brødsmulestien, en FAQ og
nettstedet alt hører til. @graph er rett og slett
listen som holder alle disse nodene i én script-blokk, og
@id gir hver node et navn: en URL som identifiserer
entiteten, unik på hele nettet. Her er forfatternoden nøyaktig
slik hver side på musklr.com bærer den:
{
"@type": "Person",
"@id": "https://jan.sviland.org/#person",
"name": "Jan Sviland",
"url": "https://jan.sviland.org/"
}
Det interessante er adressen. @id-en bor ikke på
musklr.com i det hele tatt. Det er lov, og det er hele trikset bak
de neste to delene.
Hvorfor bruke @id-referanser i stedet for å kopiere JSON-LD-noder?
Når en node har en @id, kan alle andre noder peke på
den i stedet for å gjenta den. En publisher-egenskap med
{"@id": "https://musklr.com/#org"} betyr
"organisasjonen som er definert der borte", ikke noe mer. På tvers
av de 23 sidene på musklr.com refereres entiteter 344 ganger på
denne måten. Fjerner du duplikatene, står du igjen med 229
distinkte kanter mellom 135 entiteter.
En kopi ser like bra ut som en referanse den første dagen. Forskjellen viser seg første gang et faktum endrer seg. Tjuetre kopier av en støtteadresse er tjuetre sjanser til å oppdatere tjueto av dem. En referanse kan ikke bli utdatert, for det eneste den lagrer er navnet.
Hvordan kan én JSON-LD-graf spenne over to ulike domener?
Forfatteren av alt på musklr.com er meg, og den kanoniske
Person-noden min bor på mitt eget nettsted:
jan.sviland.org/#person. Sidene på musklr.com
definerer meg ikke på nytt. De bærer en stubb, noden på fire
linjer ovenfor, og den fulle definisjonen bor på siden
@id-en peker til.
Jeg kaller det stubbregelen, og den finnes fordi feilen uten den
er stille: definer samme person fullt ut på begge nettsteder, la
de to definisjonene gli fra hverandre, og en maskin ser til slutt
to personer som bare deler navn. Den virker begge veier:
SoftwareApplication-noden for Musklr eies av
musklr.com, og porteføljen min refererer til den med
@id i stedet for å beskrive sin egen versjon.
Målt på de publiserte sidene: Personen er stubbdefinert 23 ganger,
én gang per side, og referert 49 ganger, noe som gjør den og
Organisasjonen til navene i hele grafen. Fjern den ene
@id-en på tvers av domener, og grafen faller fra
hverandre i 23 øyer.
Hvorfor trenger håndskrevet JSON-LD en validator?
musklr.com er ren HTML, uten byggesteg og uten CMS. Hver
JSON-LD-blokk er skrevet for hånd, og det betyr at hvert faktum
som står to ganger, én gang for folk og én gang for maskiner, er
to strenger som kan bli uenige. Derfor nekter deploy-skriptet å
publisere nettstedet før en validator har kjørt 26 regler over
hver side: JSON-en parser, hver @id peker på noe som
finnes, overskriften matcher h1-en, FAQ-teksten finnes tegn for
tegn på den synlige siden, og så videre. Selv
wordCount og timeRequired måles av
validatorens egen uttrekker, fordi et anslått tall overlever tre
omskrivinger. To av de 26, regel 25 og 26, ble bygget sammen med
denne artikkelen og sjekker diagrammet nedenfor mot sin egen
tabell.
Tjueseks er ikke ambisjon. De fleste av reglene er arrvev.
Hvordan glir strukturerte data ut av synk med en side?
I stillhet. Det er funnet dette prosjektet stadig gjentar: på et nettsted uten byggesteg glir alt som står skrevet to ganger fra hverandre, og ingenting sier fra. Flere av de nyeste valideringsreglene finnes fordi en konkret, stille feil allerede hadde blitt publisert:
-
Seksten videofigurer lå ute uten markering i det hele tatt.
Ingen feil noe sted; uttrekkere visste rett og slett ikke at
videoene fantes. Nå feiler byggingen hvis en videofigur på et
innlegg mangler sin
VideoObject-node. -
Grafen siterte anmeldelsesavsnitt som ikke lenger sto på siden.
Prosaen var redigert; kopiene i markeringen var det ikke. Nå må
hver
reviewBodyfinnes ordrett på den synlige siden. -
Sitemappen hevdet at ingenting var endret på seks uker, mens
sidene ble redigert daglig. Nå må
lastmodi sitemappen matche hver sidesdateModified. - Alle tolv synlige bylines var seks uker bak datoene i markeringen, og fire innlegg viste ingen oppdateringsdato. Nå må bylinen og grafen være enige.
Ingen av disse var et krasj. Hver av dem var nettstedet som stille fortalte maskiner noe usant, mens alt så fint ut for hver menneskelige besøkende. Derfor behandler jeg håndvedlikeholdte strukturerte data som et testproblem, ikke et dokumentasjonsproblem.
Hvordan merker du opp én video som vises på flere sider?
Som én entitet. Klippet der hviletimeren i Musklr krymper ned i
statuslinjen vises på fire sider på to språk, men det finnes bare
én video, så @id-en dens er videofilens egen URL:
rest-timer-morph-minimize.mp4 med
#video lagt til. Hver av de fire sidene beskriver
samme entitet fra sin egen vinkel, og en maskin som slår sammen de
fire beskrivelsene lærer mer om én video i stedet for å tro på
fire. På hele nettstedet er VideoObject definert
seksten ganger; fjerner du duplikatene etter @id,
står du igjen med seks ulike videoer på tvers av blogginnleggene.
Hvordan ser JSON-LD-grafen for et helt nettsted ut?
Målt på den publiserte HTML-en 14. august 2026: 23 sider, 135
identifiserte entiteter av 15 typer, 229 distinkte kanter, og 304
noder som med vilje ikke har noen @id: 86 spørsmål,
86 svar, 66 listepunkter, 40 pristilbud, 12 how-to-steg og 14
speakable-blokker. Et spørsmål hører til sin FAQ og et steg til
sin oppskrift; ingenting trenger å peke på dem, og å identifisere
hver enkelt ville vært 304 flere navn å holde unike uten gevinst.
Tre av tallene er beslutninger, ikke fakta om schema.org:
- Grafen har nøyaktig to Person-entiteter. Den ene er meg, definert på jan.sviland.org og stubbet alle andre steder. Den andre er en ekte App Store-anmelder, registrert som sin egen entitet slik at ordene hans aldri blandes med mine.
-
Alle de 40 Offer-nodene er anonyme. De er fem appers pristrinn
på to språk, og ingenting trenger å peke på en enkeltpris, så
ingen av dem får en
@id. -
Det finnes 9 Review-entiteter, ikke 8. Fire
konkurrentanmeldelser per språk gir åtte, og den niende er en
ekte kundeomtale som står på begge forsidene under én og samme
@id: én omtale, beskrevet to ganger. Noen tiende finnes ikke. Valideringsregel 18 blokkerer enhver anmeldelse av Musklr som jeg selv skriver, fordi en bedrift som anmelder seg selv ikke er en anmeldelse.
Diagrammet nedenfor er ikke en illustrasjon. Det tegner selve
grafen: hver identifiserte entitet som en navngitt node, hver
referanse som en kant. Klikk på en node, eller fokuser den med
tastaturet, og den ekte JSON-LD-koden dens åpnes i et felt som
fester seg nederst på skjermen. Sjekk det: vis kildekoden på siden, søk etter
application/ld+json, og du finner den samme
markeringen som denne delen lister opp. Tabellen nedenfor har hver
node og kant i ren HTML, lukket til du åpner den, så skjermlesere og uttrekkere får de samme dataene. Anonyme
noder telles i teksten ovenfor, men er ikke listet opp: uten en
@id finnes det ingenting en kant kan peke på.
Velg en node for å se JSON-LD-koden dens. Bruk piltastene for å flytte deg mellom nodene.
Fylte noder er entiteter definert på dette nettstedet. Noder med omriss er stubber: korte henvisninger til entiteter som er fullt definert på en annen side eller et annet domene.
Alle noder og kanter i grafen
| Entitet | Type | @id |
|---|---|---|
| Jan Sviland | Person | https://jan.sviland.org/#person |
| Musklr (#app) | SoftwareApplication | https://musklr.com/#app |
| Fitbod | SoftwareApplication | https://musklr.com/#app-fitbod |
| Hevy | SoftwareApplication | https://musklr.com/#app-hevy |
| Jefit | SoftwareApplication | https://musklr.com/#app-jefit |
| Strong | SoftwareApplication | https://musklr.com/#app-strong |
| Musklr (#org) | Organization | https://musklr.com/#org |
| review-raffi-o | Review | https://musklr.com/#review-raffi-o |
| Raffi O | Person | https://musklr.com/#reviewer-raffi-o |
| Musklr: Lift Heavy. Log Fast. | WebPage | https://musklr.com/#webpage |
| Musklr (#website) | WebSite | https://musklr.com/#website |
| breadcrumb | BreadcrumbList |
https://musklr.com/apple-watch/#breadcrumb
|
| Musklr for Apple Watch: Lift Heavy. Glanc… | WebPage |
https://musklr.com/apple-watch/#webpage
|
| Musklr Blog | Blog | https://musklr.com/blog/#blog |
| breadcrumb 2 | BreadcrumbList | https://musklr.com/blog/#breadcrumb |
| Musklr Blog: Lifting, Apple Watch & Train… | WebPage | https://musklr.com/blog/#webpage |
| breadcrumb 3 | BreadcrumbList |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#breadcrumb
|
| faq | FAQPage |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#faq
|
| How does Musklr compare with Strong, Hevy… | ItemList |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#itemlist
|
| leadimage | ImageObject |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#leadimage
|
| Best iOS Weight Lifting App for iPhone & … | BlogPosting |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#post
|
| Fitbod: automated programming, no permane… | Review |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#review-fitbod
|
| Hevy: a 14M+ athlete community and a rout… | Review |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#review-hevy
|
| Jefit: 1,400+ exercises and expert-built … | Review |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#review-jefit
|
| Strong: a minimal logger, three routines … | Review |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#review-strong
|
| Best iOS Weight Lifting App for iPhone & … 2 | WebPage |
https://musklr.com/blog/2026/compare/best-ios-weight-lifting-app-apple-watch/#webpage
|
| breadcrumb 4 | BreadcrumbList |
https://musklr.com/blog/2026/devlog/apple-watch-iphone-workout-sync/#breadcrumb
|
| faq 2 | FAQPage |
https://musklr.com/blog/2026/devlog/apple-watch-iphone-workout-sync/#faq
|
| leadimage 2 | ImageObject |
https://musklr.com/blog/2026/devlog/apple-watch-iphone-workout-sync/#leadimage
|
| How Musklr Keeps Your Apple Watch and iPh… | BlogPosting |
https://musklr.com/blog/2026/devlog/apple-watch-iphone-workout-sync/#post
|
| How Musklr Keeps Your Apple Watch and iPh… 2 | WebPage |
https://musklr.com/blog/2026/devlog/apple-watch-iphone-workout-sync/#webpage
|
| breadcrumb 5 | BreadcrumbList |
https://musklr.com/blog/2026/devlog/dogfooding-how-great-apps-are-made/#breadcrumb
|
| faq 3 | FAQPage |
https://musklr.com/blog/2026/devlog/dogfooding-how-great-apps-are-made/#faq
|
| leadimage 3 | ImageObject |
https://musklr.com/blog/2026/devlog/dogfooding-how-great-apps-are-made/#leadimage
|
| Dogfooding: How Great Apps Are Made | BlogPosting |
https://musklr.com/blog/2026/devlog/dogfooding-how-great-apps-are-made/#post
|
| Dogfooding: How Great Apps Are Made | Mus… | WebPage |
https://musklr.com/blog/2026/devlog/dogfooding-how-great-apps-are-made/#webpage
|
| breadcrumb 6 | BreadcrumbList |
https://musklr.com/blog/2026/devlog/structured-data-json-ld-schema-graph/#breadcrumb
|
| The Organization node every musklr.com pa… | SoftwareSourceCode |
https://musklr.com/blog/2026/devlog/structured-data-json-ld-schema-graph/#code-org
|
| The author node every musklr.com page car… | SoftwareSourceCode |
https://musklr.com/blog/2026/devlog/structured-data-json-ld-schema-graph/#code-person
|
| faq 4 | FAQPage |
https://musklr.com/blog/2026/devlog/structured-data-json-ld-schema-graph/#faq
|
| leadimage 4 | ImageObject |
https://musklr.com/blog/2026/devlog/structured-data-json-ld-schema-graph/#leadimage
|
| How to Mark Up a Whole Website as One JSO… | BlogPosting |
https://musklr.com/blog/2026/devlog/structured-data-json-ld-schema-graph/#post
|
| How to Mark Up a Whole Website as One JSO… 2 | WebPage |
https://musklr.com/blog/2026/devlog/structured-data-json-ld-schema-graph/#webpage
|
| breadcrumb 7 | BreadcrumbList |
https://musklr.com/blog/2026/feature/iphone-lock-screen-workout-tracking-live-activity/#breadcrumb
|
| faq 5 | FAQPage |
https://musklr.com/blog/2026/feature/iphone-lock-screen-workout-tracking-live-activity/#faq
|
| leadimage 5 | ImageObject |
https://musklr.com/blog/2026/feature/iphone-lock-screen-workout-tracking-live-activity/#leadimage
|
| Track your workout from the iPhone Lock S… | BlogPosting |
https://musklr.com/blog/2026/feature/iphone-lock-screen-workout-tracking-live-activity/#post
|
| Workout Live Activity on iPhone: Lock Scr… | WebPage |
https://musklr.com/blog/2026/feature/iphone-lock-screen-workout-tracking-live-activity/#webpage
|
| breadcrumb 8 | BreadcrumbList |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#breadcrumb
|
| code-bar-trend | SoftwareSourceCode |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#code-bar-trend
|
| code-radar | SoftwareSourceCode |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#code-radar
|
| code-sparkline | SoftwareSourceCode |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#code-sparkline
|
| faq 6 | FAQPage |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#faq
|
| How do you set up an Xcode playground for… | HowTo |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#howto
|
| leadimage 6 | ImageObject |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#leadimage
|
| How to Build Bar, Line, Sparkline and Rad… | BlogPosting |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#post
|
| How to Build Bar, Line, Sparkline and Rad… 2 | WebPage |
https://musklr.com/blog/2026/tutorial/how-to-build-bar-line-sparkline-radar-charts-with-swift-charts/#webpage
|
| breadcrumb 9 | BreadcrumbList |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#breadcrumb
|
| code-both-endpoints | SoftwareSourceCode |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#code-both-endpoints
|
| code-naive | SoftwareSourceCode |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#code-naive
|
| code-wrapper | SoftwareSourceCode |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#code-wrapper
|
| faq 7 | FAQPage |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#faq
|
| How do you try a SwiftUI hero animation i… | HowTo |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#howto
|
| leadimage 7 | ImageObject |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#leadimage
|
| The Ring That Wouldn't Shrink: Building M… | BlogPosting |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#post
|
| The Ring That Wouldn't Shrink: SwiftUI ma… | WebPage |
https://musklr.com/blog/2026/tutorial/swiftui-matchedgeometryeffect-hero-animation/#webpage
|
| Musklr: Løft tungt. Logg raskt. | WebPage | https://musklr.com/no/#webpage |
| Musklr (#website) 2 | WebSite | https://musklr.com/no/#website |
| breadcrumb 10 | BreadcrumbList |
https://musklr.com/no/apple-watch/#breadcrumb
|
| Musklr for Apple Watch: Løft tungt. Kikk.… | WebPage |
https://musklr.com/no/apple-watch/#webpage
|
| Musklr-bloggen | Blog | https://musklr.com/no/blog/#blog |
| breadcrumb 11 | BreadcrumbList |
https://musklr.com/no/blog/#breadcrumb
|
| Musklr-bloggen: styrketrening, Apple Watc… | WebPage | https://musklr.com/no/blog/#webpage |
| breadcrumb 12 | BreadcrumbList |
https://musklr.com/no/blog/2026/funksjon/trening-pa-last-skjerm-iphone-live-activity/#breadcrumb
|
| faq 8 | FAQPage |
https://musklr.com/no/blog/2026/funksjon/trening-pa-last-skjerm-iphone-live-activity/#faq
|
| leadimage 8 | ImageObject |
https://musklr.com/no/blog/2026/funksjon/trening-pa-last-skjerm-iphone-live-activity/#leadimage
|
| Følg treningen fra låseskjermen på iPhone | BlogPosting |
https://musklr.com/no/blog/2026/funksjon/trening-pa-last-skjerm-iphone-live-activity/#post
|
| Live Activity for trening på iPhone: låse… | WebPage |
https://musklr.com/no/blog/2026/funksjon/trening-pa-last-skjerm-iphone-live-activity/#webpage
|
| breadcrumb 13 | BreadcrumbList |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#breadcrumb
|
| code-bar-trend 2 | SoftwareSourceCode |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#code-bar-trend
|
| code-radar 2 | SoftwareSourceCode |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#code-radar
|
| code-sparkline 2 | SoftwareSourceCode |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#code-sparkline
|
| faq 9 | FAQPage |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#faq
|
| Hvordan setter du opp en playground i Xco… | HowTo |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#howto
|
| leadimage 9 | ImageObject |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#leadimage
|
| Slik bygger du søyle-, linje-, sparkline-… | BlogPosting |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#post
|
| Slik bygger du søyle-, linje-, sparkline-… 2 | WebPage |
https://musklr.com/no/blog/2026/guide/slik-bygger-du-soyle-linje-sparkline-og-radargrafer-med-swift-charts/#webpage
|
| breadcrumb 14 | BreadcrumbList |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#breadcrumb
|
| code-both-endpoints 2 | SoftwareSourceCode |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#code-both-endpoints
|
| code-naive 2 | SoftwareSourceCode |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#code-naive
|
| code-wrapper 2 | SoftwareSourceCode |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#code-wrapper
|
| faq 10 | FAQPage |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#faq
|
| Hvordan prøver du en hero-animasjon i Swi… | HowTo |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#howto
|
| leadimage 10 | ImageObject |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#leadimage
|
| Ringen som ikke ville krympe: slik bygde … | BlogPosting |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#post
|
| Ringen som ikke ville krympe: SwiftUI mat… | WebPage |
https://musklr.com/no/blog/2026/guide/swiftui-matchedgeometryeffect-hero-animasjon/#webpage
|
| breadcrumb 15 | BreadcrumbList |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#breadcrumb
|
| faq 11 | FAQPage |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#faq
|
| Hvordan står Musklr seg mot Strong, Hevy,… | ItemList |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#itemlist
|
| leadimage 11 | ImageObject |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#leadimage
|
| Beste iOS-app for styrketrening på iPhone… | BlogPosting |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#post
|
| Fitbod: automatisk programmering, uten pe… | Review |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#review-fitbod
|
| Hevy: et fellesskap på 14 mill.+ utøvere … | Review |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#review-hevy
|
| Jefit: 1 400+ øvelser og ekspertbygde pla… | Review |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#review-jefit
|
| Strong: en minimalistisk logg, tre rutine… | Review |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#review-strong
|
| Beste iOS-app for styrketrening på iPhone… 2 | WebPage |
https://musklr.com/no/blog/2026/sammenlign/beste-ios-app-for-styrketrening-iphone-apple-watch/#webpage
|
| breadcrumb 16 | BreadcrumbList |
https://musklr.com/no/blog/2026/utviklingslogg/apple-watch-iphone-treningssynkronisering/#breadcrumb
|
| faq 12 | FAQPage |
https://musklr.com/no/blog/2026/utviklingslogg/apple-watch-iphone-treningssynkronisering/#faq
|
| leadimage 12 | ImageObject |
https://musklr.com/no/blog/2026/utviklingslogg/apple-watch-iphone-treningssynkronisering/#leadimage
|
| Slik holder Musklr Apple Watch og iPhone … | BlogPosting |
https://musklr.com/no/blog/2026/utviklingslogg/apple-watch-iphone-treningssynkronisering/#post
|
| Slik holder Musklr Apple Watch og iPhone … 2 | WebPage |
https://musklr.com/no/blog/2026/utviklingslogg/apple-watch-iphone-treningssynkronisering/#webpage
|
| breadcrumb 17 | BreadcrumbList |
https://musklr.com/no/blog/2026/utviklingslogg/dogfooding-slik-blir-gode-apper-til/#breadcrumb
|
| faq 13 | FAQPage |
https://musklr.com/no/blog/2026/utviklingslogg/dogfooding-slik-blir-gode-apper-til/#faq
|
| leadimage 13 | ImageObject |
https://musklr.com/no/blog/2026/utviklingslogg/dogfooding-slik-blir-gode-apper-til/#leadimage
|
| Dogfooding: slik blir gode apper til | BlogPosting |
https://musklr.com/no/blog/2026/utviklingslogg/dogfooding-slik-blir-gode-apper-til/#post
|
| Dogfooding: slik blir gode apper til | Mu… | WebPage |
https://musklr.com/no/blog/2026/utviklingslogg/dogfooding-slik-blir-gode-apper-til/#webpage
|
| breadcrumb 18 | BreadcrumbList |
https://musklr.com/no/blog/2026/utviklingslogg/strukturerte-data-json-ld-og-schema-grafen/#breadcrumb
|
| Organization-noden hver side på musklr.co… | SoftwareSourceCode |
https://musklr.com/no/blog/2026/utviklingslogg/strukturerte-data-json-ld-og-schema-grafen/#code-org
|
| Forfatternoden hver side på musklr.com bæ… | SoftwareSourceCode |
https://musklr.com/no/blog/2026/utviklingslogg/strukturerte-data-json-ld-og-schema-grafen/#code-person
|
| faq 14 | FAQPage |
https://musklr.com/no/blog/2026/utviklingslogg/strukturerte-data-json-ld-og-schema-grafen/#faq
|
| leadimage 14 | ImageObject |
https://musklr.com/no/blog/2026/utviklingslogg/strukturerte-data-json-ld-og-schema-grafen/#leadimage
|
| Slik bygger du én JSON-LD-graf for hele n… | BlogPosting |
https://musklr.com/no/blog/2026/utviklingslogg/strukturerte-data-json-ld-og-schema-grafen/#post
|
| Slik bygger du én JSON-LD-graf for hele n… 2 | WebPage |
https://musklr.com/no/blog/2026/utviklingslogg/strukturerte-data-json-ld-og-schema-grafen/#webpage
|
| breadcrumb 19 | BreadcrumbList |
https://musklr.com/privacy.html#breadcrumb
|
| Musklr: App Privacy Policy | WebPage |
https://musklr.com/privacy.html#webpage
|
| breadcrumb 20 | BreadcrumbList |
https://musklr.com/support.html#breadcrumb
|
| Musklr: Support | WebPage |
https://musklr.com/support.html#webpage
|
| breadcrumb 21 | BreadcrumbList |
https://musklr.com/terms.html#breadcrumb
|
| Musklr: Terms of Use | WebPage |
https://musklr.com/terms.html#webpage
|
| Logging a leg press from the wrist in Mus… | VideoObject |
https://musklr.com/video/apple-watch-workout-sync.mp4#video
|
| Logging a set. This is the screen I look … | VideoObject |
https://musklr.com/video/log-set-demo.mp4#video
|
| A new record, the moment it lands. | VideoObject |
https://musklr.com/video/pr-demo.mp4#video
|
| The reverse direction: tap the mini timer… | VideoObject |
https://musklr.com/video/rest-timer-morph-expand.mp4#video
|
| How it works now. Tap away and the ring f… | VideoObject |
https://musklr.com/video/rest-timer-morph-minimize.mp4#video
|
| The naive version running. Watch the ring… | VideoObject |
https://musklr.com/video/rest-timer-playground-slide-bug.mp4#video
|
| Fra | Egenskap | Til |
|---|---|---|
| Musklr (#app) | author | Jan Sviland |
| Musklr (#app) | publisher | Musklr (#org) |
| Musklr (#org) | founder | Jan Sviland |
| review-raffi-o | author | Raffi O |
| review-raffi-o | itemReviewed | Musklr (#app) |
| Musklr: Lift Heavy. Log Fast. | isPartOf | Musklr (#website) |
| Musklr (#website) | publisher | Musklr (#org) |
| Musklr for Apple Watch: Lift Heavy. Glanc… | breadcrumb | breadcrumb |
| Musklr for Apple Watch: Lift Heavy. Glanc… | isPartOf | Musklr (#website) |
| Musklr Blog | isPartOf | Musklr (#website) |
| Musklr Blog | publisher | Musklr (#org) |
| Musklr Blog: Lifting, Apple Watch & Train… | breadcrumb | breadcrumb 2 |
| Musklr Blog: Lifting, Apple Watch & Train… | isPartOf | Musklr (#website) |
| Best iOS Weight Lifting App for iPhone & … | about | Musklr (#app) |
| Best iOS Weight Lifting App for iPhone & … | author | Jan Sviland |
| Best iOS Weight Lifting App for iPhone & … | image | leadimage |
| Best iOS Weight Lifting App for iPhone & … | isPartOf | Musklr Blog |
| Best iOS Weight Lifting App for iPhone & … | mainEntityOfPage | Best iOS Weight Lifting App for iPhone & … 2 |
| Best iOS Weight Lifting App for iPhone & … | mentions | Fitbod |
| Best iOS Weight Lifting App for iPhone & … | mentions | Hevy |
| Best iOS Weight Lifting App for iPhone & … | mentions | Jefit |
| Best iOS Weight Lifting App for iPhone & … | mentions | Strong |
| Best iOS Weight Lifting App for iPhone & … | publisher | Musklr (#org) |
| Fitbod: automated programming, no permane… | author | Jan Sviland |
| Fitbod: automated programming, no permane… | isPartOf | Best iOS Weight Lifting App for iPhone & … 2 |
| Fitbod: automated programming, no permane… | itemReviewed | Fitbod |
| Hevy: a 14M+ athlete community and a rout… | author | Jan Sviland |
| Hevy: a 14M+ athlete community and a rout… | isPartOf | Best iOS Weight Lifting App for iPhone & … 2 |
| Hevy: a 14M+ athlete community and a rout… | itemReviewed | Hevy |
| Jefit: 1,400+ exercises and expert-built … | author | Jan Sviland |
| Jefit: 1,400+ exercises and expert-built … | isPartOf | Best iOS Weight Lifting App for iPhone & … 2 |
| Jefit: 1,400+ exercises and expert-built … | itemReviewed | Jefit |
| Strong: a minimal logger, three routines … | author | Jan Sviland |
| Strong: a minimal logger, three routines … | isPartOf | Best iOS Weight Lifting App for iPhone & … 2 |
| Strong: a minimal logger, three routines … | itemReviewed | Strong |
| Best iOS Weight Lifting App for iPhone & … 2 | breadcrumb | breadcrumb 3 |
| Best iOS Weight Lifting App for iPhone & … 2 | isPartOf | Musklr (#website) |
| Best iOS Weight Lifting App for iPhone & … 2 | primaryImageOfPage | leadimage |
| How Musklr Keeps Your Apple Watch and iPh… | about | Musklr (#app) |
| How Musklr Keeps Your Apple Watch and iPh… | author | Jan Sviland |
| How Musklr Keeps Your Apple Watch and iPh… | image | leadimage 2 |
| How Musklr Keeps Your Apple Watch and iPh… | isPartOf | Musklr Blog |
| How Musklr Keeps Your Apple Watch and iPh… | mainEntityOfPage | How Musklr Keeps Your Apple Watch and iPh… 2 |
| How Musklr Keeps Your Apple Watch and iPh… | publisher | Musklr (#org) |
| How Musklr Keeps Your Apple Watch and iPh… 2 | breadcrumb | breadcrumb 4 |
| How Musklr Keeps Your Apple Watch and iPh… 2 | isPartOf | Musklr (#website) |
| How Musklr Keeps Your Apple Watch and iPh… 2 | primaryImageOfPage | leadimage 2 |
| Dogfooding: How Great Apps Are Made | about | Musklr (#app) |
| Dogfooding: How Great Apps Are Made | author | Jan Sviland |
| Dogfooding: How Great Apps Are Made | image | leadimage 3 |
| Dogfooding: How Great Apps Are Made | isPartOf | Musklr Blog |
| Dogfooding: How Great Apps Are Made | mainEntityOfPage | Dogfooding: How Great Apps Are Made | Mus… |
| Dogfooding: How Great Apps Are Made | publisher | Musklr (#org) |
| Dogfooding: How Great Apps Are Made | Mus… | breadcrumb | breadcrumb 5 |
| Dogfooding: How Great Apps Are Made | Mus… | isPartOf | Musklr (#website) |
| Dogfooding: How Great Apps Are Made | Mus… | primaryImageOfPage | leadimage 3 |
| The Organization node every musklr.com pa… | isPartOf | How to Mark Up a Whole Website as One JSO… 2 |
| The author node every musklr.com page car… | isPartOf | How to Mark Up a Whole Website as One JSO… 2 |
| How to Mark Up a Whole Website as One JSO… | about | Musklr (#website) |
| How to Mark Up a Whole Website as One JSO… | author | Jan Sviland |
| How to Mark Up a Whole Website as One JSO… | hasPart | The Organization node every musklr.com pa… |
| How to Mark Up a Whole Website as One JSO… | hasPart | The author node every musklr.com page car… |
| How to Mark Up a Whole Website as One JSO… | image | leadimage 4 |
| How to Mark Up a Whole Website as One JSO… | isPartOf | Musklr Blog |
| How to Mark Up a Whole Website as One JSO… | mainEntityOfPage | How to Mark Up a Whole Website as One JSO… 2 |
| How to Mark Up a Whole Website as One JSO… | mentions | Musklr (#app) |
| How to Mark Up a Whole Website as One JSO… | mentions | Musklr (#org) |
| How to Mark Up a Whole Website as One JSO… | publisher | Musklr (#org) |
| How to Mark Up a Whole Website as One JSO… 2 | breadcrumb | breadcrumb 6 |
| How to Mark Up a Whole Website as One JSO… 2 | isPartOf | Musklr (#website) |
| How to Mark Up a Whole Website as One JSO… 2 | primaryImageOfPage | leadimage 4 |
| Track your workout from the iPhone Lock S… | about | Musklr (#app) |
| Track your workout from the iPhone Lock S… | author | Jan Sviland |
| Track your workout from the iPhone Lock S… | image | leadimage 5 |
| Track your workout from the iPhone Lock S… | isPartOf | Musklr Blog |
| Track your workout from the iPhone Lock S… | mainEntityOfPage | Workout Live Activity on iPhone: Lock Scr… |
| Track your workout from the iPhone Lock S… | publisher | Musklr (#org) |
| Workout Live Activity on iPhone: Lock Scr… | breadcrumb | breadcrumb 7 |
| Workout Live Activity on iPhone: Lock Scr… | isPartOf | Musklr (#website) |
| Workout Live Activity on iPhone: Lock Scr… | primaryImageOfPage | leadimage 5 |
| code-bar-trend | isPartOf | How to Build Bar, Line, Sparkline and Rad… 2 |
| code-radar | isPartOf | How to Build Bar, Line, Sparkline and Rad… 2 |
| code-sparkline | isPartOf | How to Build Bar, Line, Sparkline and Rad… 2 |
| How do you set up an Xcode playground for… | isPartOf | How to Build Bar, Line, Sparkline and Rad… 2 |
| How to Build Bar, Line, Sparkline and Rad… | author | Jan Sviland |
| How to Build Bar, Line, Sparkline and Rad… | image | leadimage 6 |
| How to Build Bar, Line, Sparkline and Rad… | isPartOf | Musklr Blog |
| How to Build Bar, Line, Sparkline and Rad… | mainEntityOfPage | How to Build Bar, Line, Sparkline and Rad… 2 |
| How to Build Bar, Line, Sparkline and Rad… | mentions | Musklr (#app) |
| How to Build Bar, Line, Sparkline and Rad… | publisher | Musklr (#org) |
| How to Build Bar, Line, Sparkline and Rad… 2 | breadcrumb | breadcrumb 8 |
| How to Build Bar, Line, Sparkline and Rad… 2 | isPartOf | Musklr (#website) |
| How to Build Bar, Line, Sparkline and Rad… 2 | primaryImageOfPage | leadimage 6 |
| code-both-endpoints | isPartOf | The Ring That Wouldn't Shrink: SwiftUI ma… |
| code-naive | isPartOf | The Ring That Wouldn't Shrink: SwiftUI ma… |
| code-wrapper | isPartOf | The Ring That Wouldn't Shrink: SwiftUI ma… |
| How do you try a SwiftUI hero animation i… | isPartOf | The Ring That Wouldn't Shrink: SwiftUI ma… |
| The Ring That Wouldn't Shrink: Building M… | author | Jan Sviland |
| The Ring That Wouldn't Shrink: Building M… | image | leadimage 7 |
| The Ring That Wouldn't Shrink: Building M… | isPartOf | Musklr Blog |
| The Ring That Wouldn't Shrink: Building M… | mainEntityOfPage | The Ring That Wouldn't Shrink: SwiftUI ma… |
| The Ring That Wouldn't Shrink: Building M… | mentions | Musklr (#app) |
| The Ring That Wouldn't Shrink: Building M… | publisher | Musklr (#org) |
| The Ring That Wouldn't Shrink: SwiftUI ma… | breadcrumb | breadcrumb 9 |
| The Ring That Wouldn't Shrink: SwiftUI ma… | isPartOf | Musklr (#website) |
| The Ring That Wouldn't Shrink: SwiftUI ma… | primaryImageOfPage | leadimage 7 |
| Musklr: Løft tungt. Logg raskt. | isPartOf | Musklr (#website) 2 |
| Musklr (#website) 2 | publisher | Musklr (#org) |
| Musklr for Apple Watch: Løft tungt. Kikk.… | breadcrumb | breadcrumb 10 |
| Musklr for Apple Watch: Løft tungt. Kikk.… | isPartOf | Musklr (#website) 2 |
| Musklr-bloggen | isPartOf | Musklr (#website) 2 |
| Musklr-bloggen | publisher | Musklr (#org) |
| Musklr-bloggen: styrketrening, Apple Watc… | breadcrumb | breadcrumb 11 |
| Musklr-bloggen: styrketrening, Apple Watc… | isPartOf | Musklr (#website) 2 |
| Følg treningen fra låseskjermen på iPhone | about | Musklr (#app) |
| Følg treningen fra låseskjermen på iPhone | author | Jan Sviland |
| Følg treningen fra låseskjermen på iPhone | image | leadimage 8 |
| Følg treningen fra låseskjermen på iPhone | isPartOf | Musklr-bloggen |
| Følg treningen fra låseskjermen på iPhone | mainEntityOfPage | Live Activity for trening på iPhone: låse… |
| Følg treningen fra låseskjermen på iPhone | publisher | Musklr (#org) |
| Live Activity for trening på iPhone: låse… | breadcrumb | breadcrumb 12 |
| Live Activity for trening på iPhone: låse… | isPartOf | Musklr (#website) 2 |
| Live Activity for trening på iPhone: låse… | primaryImageOfPage | leadimage 8 |
| code-bar-trend 2 | isPartOf | Slik bygger du søyle-, linje-, sparkline-… 2 |
| code-radar 2 | isPartOf | Slik bygger du søyle-, linje-, sparkline-… 2 |
| code-sparkline 2 | isPartOf | Slik bygger du søyle-, linje-, sparkline-… 2 |
| Hvordan setter du opp en playground i Xco… | isPartOf | Slik bygger du søyle-, linje-, sparkline-… 2 |
| Slik bygger du søyle-, linje-, sparkline-… | author | Jan Sviland |
| Slik bygger du søyle-, linje-, sparkline-… | image | leadimage 9 |
| Slik bygger du søyle-, linje-, sparkline-… | isPartOf | Musklr-bloggen |
| Slik bygger du søyle-, linje-, sparkline-… | mainEntityOfPage | Slik bygger du søyle-, linje-, sparkline-… 2 |
| Slik bygger du søyle-, linje-, sparkline-… | mentions | Musklr (#app) |
| Slik bygger du søyle-, linje-, sparkline-… | publisher | Musklr (#org) |
| Slik bygger du søyle-, linje-, sparkline-… 2 | breadcrumb | breadcrumb 13 |
| Slik bygger du søyle-, linje-, sparkline-… 2 | isPartOf | Musklr (#website) 2 |
| Slik bygger du søyle-, linje-, sparkline-… 2 | primaryImageOfPage | leadimage 9 |
| code-both-endpoints 2 | isPartOf | Ringen som ikke ville krympe: SwiftUI mat… |
| code-naive 2 | isPartOf | Ringen som ikke ville krympe: SwiftUI mat… |
| code-wrapper 2 | isPartOf | Ringen som ikke ville krympe: SwiftUI mat… |
| Hvordan prøver du en hero-animasjon i Swi… | isPartOf | Ringen som ikke ville krympe: SwiftUI mat… |
| Ringen som ikke ville krympe: slik bygde … | author | Jan Sviland |
| Ringen som ikke ville krympe: slik bygde … | image | leadimage 10 |
| Ringen som ikke ville krympe: slik bygde … | isPartOf | Musklr-bloggen |
| Ringen som ikke ville krympe: slik bygde … | mainEntityOfPage | Ringen som ikke ville krympe: SwiftUI mat… |
| Ringen som ikke ville krympe: slik bygde … | mentions | Musklr (#app) |
| Ringen som ikke ville krympe: slik bygde … | publisher | Musklr (#org) |
| Ringen som ikke ville krympe: SwiftUI mat… | breadcrumb | breadcrumb 14 |
| Ringen som ikke ville krympe: SwiftUI mat… | isPartOf | Musklr (#website) 2 |
| Ringen som ikke ville krympe: SwiftUI mat… | primaryImageOfPage | leadimage 10 |
| Beste iOS-app for styrketrening på iPhone… | about | Musklr (#app) |
| Beste iOS-app for styrketrening på iPhone… | author | Jan Sviland |
| Beste iOS-app for styrketrening på iPhone… | image | leadimage 11 |
| Beste iOS-app for styrketrening på iPhone… | isPartOf | Musklr-bloggen |
| Beste iOS-app for styrketrening på iPhone… | mainEntityOfPage | Beste iOS-app for styrketrening på iPhone… 2 |
| Beste iOS-app for styrketrening på iPhone… | mentions | Fitbod |
| Beste iOS-app for styrketrening på iPhone… | mentions | Hevy |
| Beste iOS-app for styrketrening på iPhone… | mentions | Jefit |
| Beste iOS-app for styrketrening på iPhone… | mentions | Strong |
| Beste iOS-app for styrketrening på iPhone… | publisher | Musklr (#org) |
| Fitbod: automatisk programmering, uten pe… | author | Jan Sviland |
| Fitbod: automatisk programmering, uten pe… | isPartOf | Beste iOS-app for styrketrening på iPhone… 2 |
| Fitbod: automatisk programmering, uten pe… | itemReviewed | Fitbod |
| Hevy: et fellesskap på 14 mill.+ utøvere … | author | Jan Sviland |
| Hevy: et fellesskap på 14 mill.+ utøvere … | isPartOf | Beste iOS-app for styrketrening på iPhone… 2 |
| Hevy: et fellesskap på 14 mill.+ utøvere … | itemReviewed | Hevy |
| Jefit: 1 400+ øvelser og ekspertbygde pla… | author | Jan Sviland |
| Jefit: 1 400+ øvelser og ekspertbygde pla… | isPartOf | Beste iOS-app for styrketrening på iPhone… 2 |
| Jefit: 1 400+ øvelser og ekspertbygde pla… | itemReviewed | Jefit |
| Strong: en minimalistisk logg, tre rutine… | author | Jan Sviland |
| Strong: en minimalistisk logg, tre rutine… | isPartOf | Beste iOS-app for styrketrening på iPhone… 2 |
| Strong: en minimalistisk logg, tre rutine… | itemReviewed | Strong |
| Beste iOS-app for styrketrening på iPhone… 2 | breadcrumb | breadcrumb 15 |
| Beste iOS-app for styrketrening på iPhone… 2 | isPartOf | Musklr (#website) 2 |
| Beste iOS-app for styrketrening på iPhone… 2 | primaryImageOfPage | leadimage 11 |
| Slik holder Musklr Apple Watch og iPhone … | about | Musklr (#app) |
| Slik holder Musklr Apple Watch og iPhone … | author | Jan Sviland |
| Slik holder Musklr Apple Watch og iPhone … | image | leadimage 12 |
| Slik holder Musklr Apple Watch og iPhone … | isPartOf | Musklr-bloggen |
| Slik holder Musklr Apple Watch og iPhone … | mainEntityOfPage | Slik holder Musklr Apple Watch og iPhone … 2 |
| Slik holder Musklr Apple Watch og iPhone … | publisher | Musklr (#org) |
| Slik holder Musklr Apple Watch og iPhone … 2 | breadcrumb | breadcrumb 16 |
| Slik holder Musklr Apple Watch og iPhone … 2 | isPartOf | Musklr (#website) 2 |
| Slik holder Musklr Apple Watch og iPhone … 2 | primaryImageOfPage | leadimage 12 |
| Dogfooding: slik blir gode apper til | about | Musklr (#app) |
| Dogfooding: slik blir gode apper til | author | Jan Sviland |
| Dogfooding: slik blir gode apper til | image | leadimage 13 |
| Dogfooding: slik blir gode apper til | isPartOf | Musklr-bloggen |
| Dogfooding: slik blir gode apper til | mainEntityOfPage | Dogfooding: slik blir gode apper til | Mu… |
| Dogfooding: slik blir gode apper til | publisher | Musklr (#org) |
| Dogfooding: slik blir gode apper til | Mu… | breadcrumb | breadcrumb 17 |
| Dogfooding: slik blir gode apper til | Mu… | isPartOf | Musklr (#website) 2 |
| Dogfooding: slik blir gode apper til | Mu… | primaryImageOfPage | leadimage 13 |
| Organization-noden hver side på musklr.co… | isPartOf | Slik bygger du én JSON-LD-graf for hele n… 2 |
| Forfatternoden hver side på musklr.com bæ… | isPartOf | Slik bygger du én JSON-LD-graf for hele n… 2 |
| Slik bygger du én JSON-LD-graf for hele n… | about | Musklr (#website) 2 |
| Slik bygger du én JSON-LD-graf for hele n… | author | Jan Sviland |
| Slik bygger du én JSON-LD-graf for hele n… | hasPart | Organization-noden hver side på musklr.co… |
| Slik bygger du én JSON-LD-graf for hele n… | hasPart | Forfatternoden hver side på musklr.com bæ… |
| Slik bygger du én JSON-LD-graf for hele n… | image | leadimage 14 |
| Slik bygger du én JSON-LD-graf for hele n… | isPartOf | Musklr-bloggen |
| Slik bygger du én JSON-LD-graf for hele n… | mainEntityOfPage | Slik bygger du én JSON-LD-graf for hele n… 2 |
| Slik bygger du én JSON-LD-graf for hele n… | mentions | Musklr (#app) |
| Slik bygger du én JSON-LD-graf for hele n… | mentions | Musklr (#org) |
| Slik bygger du én JSON-LD-graf for hele n… | publisher | Musklr (#org) |
| Slik bygger du én JSON-LD-graf for hele n… 2 | breadcrumb | breadcrumb 18 |
| Slik bygger du én JSON-LD-graf for hele n… 2 | isPartOf | Musklr (#website) 2 |
| Slik bygger du én JSON-LD-graf for hele n… 2 | primaryImageOfPage | leadimage 14 |
| Musklr: App Privacy Policy | breadcrumb | breadcrumb 19 |
| Musklr: App Privacy Policy | isPartOf | Musklr (#website) |
| Musklr: Support | breadcrumb | breadcrumb 20 |
| Musklr: Support | isPartOf | Musklr (#website) |
| Musklr: Terms of Use | breadcrumb | breadcrumb 21 |
| Musklr: Terms of Use | isPartOf | Musklr (#website) |
| Logging a leg press from the wrist in Mus… | isPartOf | How Musklr Keeps Your Apple Watch and iPh… 2 |
| Logging a leg press from the wrist in Mus… | isPartOf | Dogfooding: How Great Apps Are Made | Mus… |
| Logging a leg press from the wrist in Mus… | isPartOf | Slik holder Musklr Apple Watch og iPhone … 2 |
| Logging a leg press from the wrist in Mus… | isPartOf | Dogfooding: slik blir gode apper til | Mu… |
| Logging a set. This is the screen I look … | isPartOf | Dogfooding: How Great Apps Are Made | Mus… |
| Logging a set. This is the screen I look … | isPartOf | Dogfooding: slik blir gode apper til | Mu… |
| A new record, the moment it lands. | isPartOf | Dogfooding: How Great Apps Are Made | Mus… |
| A new record, the moment it lands. | isPartOf | Dogfooding: slik blir gode apper til | Mu… |
| The reverse direction: tap the mini timer… | isPartOf | The Ring That Wouldn't Shrink: SwiftUI ma… |
| The reverse direction: tap the mini timer… | isPartOf | Ringen som ikke ville krympe: SwiftUI mat… |
| How it works now. Tap away and the ring f… | isPartOf | Dogfooding: How Great Apps Are Made | Mus… |
| How it works now. Tap away and the ring f… | isPartOf | The Ring That Wouldn't Shrink: SwiftUI ma… |
| How it works now. Tap away and the ring f… | isPartOf | Ringen som ikke ville krympe: SwiftUI mat… |
| How it works now. Tap away and the ring f… | isPartOf | Dogfooding: slik blir gode apper til | Mu… |
| The naive version running. Watch the ring… | isPartOf | The Ring That Wouldn't Shrink: SwiftUI ma… |
| The naive version running. Watch the ring… | isPartOf | Ringen som ikke ville krympe: SwiftUI mat… |
Gir strukturerte data bedre synlighet i Google og AI-søk?
Jeg vet ikke, og dette innlegget ville vært uærlig om det antydet noe annet. Ingenting her er målt. Musklr spør ikke nye brukere hvordan de fant appen, så ikke noe tall knytter dette arbeidet til en eneste nedlasting. Team som spør brukerne sine, kan gjøre den koblingen; Musklr har ingen slik undersøkelse.
Det jeg kan si, er smalere. Påstandene i markeringen er sanne, de sjekkes ved hver deploy, og de er billige å holde sanne nå som reglene finnes. Hvis en maskin svarer på et spørsmål om treningsapper neste år, er musklr.com i det minste lesbar for den. Om det blir nedlastinger av det, kan nettstedet ikke si i dag, og å si det rett ut er bedre enn å late som noe annet.
Ofte stilte spørsmål
Gir FAQ-schema fortsatt rich results i Google?
For de fleste nettsteder, nei. Google begrenset FAQ rich results
til kjente offentlige nettsteder og helsenettsteder i 2023, så en
treningsblogg får ingen utvidbare spørsmål i søkeresultatene.
Markeringen er nyttig likevel: assistenter og andre uttrekkere
leser FAQPage-noder, og de synlige svarene fungerer
for leserne uansett.
Kan en @id i JSON-LD peke på et annet domene?
Ja. En @id er en identifikator formet som en URL, og
ingenting krever at den ligger på sidens eget domene. Hver side på
musklr.com oppgir forfatteren som
jan.sviland.org/#person, en adresse på et annet
nettsted, og den ene referansen på tvers av domener er det som
knytter de to nettstedene sammen til én graf.
Leser Google llms.txt?
Nei. Google har sagt at søkerobotene deres ikke bruker
llms.txt, og ingen av de store AI-leverandørene har
bekreftet at de leser den heller. musklr.com har en likevel: den
koster nesten ingenting å vedlikeholde og beskriver nettstedet i
ren tekst for den roboten som måtte velge å se.
Er JSON-LD bedre enn microdata for strukturerte data?
For vedlikehold, ja. Microdata fletter markeringen gjennom den synlige HTML-en, så en omstrukturering av siden kan endre hva en maskin leser uten at noen merker det. JSON-LD ligger i én script-blokk, adskilt fra layouten, og Google anbefaler det som foretrukket format. Én blokk er også mye lettere å teste.
Hvordan validerer man strukturerte data i JSON-LD?
Googles Rich Results Test og Schema.org sin validator sjekker
syntaks og om markeringen kvalifiserer til rich results. Ingen av
dem kan vite hva som er sant om nettstedet ditt, så musklr.com
kjører i tillegg sin egen validator med 26 regler ved hver deploy.
Den sjekker blant annet at FAQ-teksten finnes på siden, at hver
@id peker på noe som finnes, og at ordtellinger er
målt i stedet for anslått.
Prøv appen bak grafen
Musklr er grunnen til at nettstedet finnes: en gratis treningslogg for iPhone og Apple Watch, med logging på to trykk, et levende muskelkart og ingen reklame på noe nivå. Hvis grafen er det som førte deg hit, er appen det den peker på.