Problem
Places on the map are exactly what schema.org calls a Place: they have a name, an address and coordinates, all of which we already store. We emit none of it, so search engines see plain text where they could see structured data.
Where to start
What to build
A JSON-LD <script type="application/ld+json"> block per place, using Place or a more specific subtype where it genuinely fits (Library, GovernmentOffice).
Populate name, address, geo with latitude and longitude, and url pointing at the map deep link.
Only emit fields we actually hold. A field filled with a placeholder is worse than an absent field, and structured data that misrepresents the page can get a site penalised.
Acceptance criteria
Verifying
npm install
npm run build && npm run start
Paste a city page URL into the Rich Results Test and attach the result to your PR.
Scope: small to medium, roughly 90 minutes. Depends on #127.
New to the repo? Start with CONTRIBUTING.md.
Problem
Places on the map are exactly what schema.org calls a
Place: they have a name, an address and coordinates, all of which we already store. We emit none of it, so search engines see plain text where they could see structured data.Where to start
data/places.schema.json- what fields are actually availableWhat to build
A JSON-LD
<script type="application/ld+json">block per place, usingPlaceor a more specific subtype where it genuinely fits (Library,GovernmentOffice).Populate
name,address,geowithlatitudeandlongitude, andurlpointing at the map deep link.Only emit fields we actually hold. A field filled with a placeholder is worse than an absent field, and structured data that misrepresents the page can get a site penalised.
Acceptance criteria
georather than emitting nullsVerifying
npm install npm run build && npm run startPaste a city page URL into the Rich Results Test and attach the result to your PR.
Scope: small to medium, roughly 90 minutes. Depends on #127.
New to the repo? Start with CONTRIBUTING.md.