urltoolskit.org
URL utilities, in the browser
Say hi →

URL → breadcrumbs

readable trail · semantic HTML · BreadcrumbList JSON-LD

Breadcrumb markup is what turns the ugly URL under your search result into a readable path — and Google needs a BreadcrumbList to show it. Paste a page URL and get all three pieces at once: the visible trail, accessible HTML, and the JSON-LD, with slugs turned into readable labels.

Trail

Ready.

How to use

  1. Paste the URL of the page you are adding breadcrumbs to.
  2. Set a Home label — "Home" or your brand name reads better than the bare hostname in a search result.
  3. Leave Turn slugs into readable labels on: getting-started becomes Getting Started, while all-caps acronyms like API are left alone.
  4. Tick Drop the last segment if you want the trail to stop at the parent section, which is the convention when the page title already appears as the heading.
  5. Copy the JSON-LD into a <script type="application/ld+json"> tag in the page head, and the HTML wherever the visible trail goes.

Getting it accepted as a rich result

Google's requirements are narrower than the schema allows. Every item must be an absolute URL on the same site, positions must start at 1 and increase by 1 with no gaps, and the trail must reflect a real hierarchy the user could navigate — inventing intermediate levels that return 404 gets the markup ignored, and inventing keyword-stuffed labels can be treated as spam.

Two details this tool handles that hand-written markup usually gets wrong. First, the last item: the current page is included as a ListItem with its own URL, and it is not a link in the visible HTML — it carries aria-current="page" instead, which is what screen readers need. Second, the visible trail and the JSON-LD must agree; if the markup says Docs › API and the page shows Documentation › Reference, the mismatch is a structured-data violation. Generating both from the same source is the point of doing it here.

Check the intermediate URLs before shipping. A URL like /blog/2026/07/post produces a trail through /blog/2026 and /blog/2026/07, and on many sites those archive pages do not exist. Either create them or use a hierarchy that matches reality.

FAQ

Should the current page be in the breadcrumb?

Google accepts it either way. Including it is more common and gives search engines the full path; the visible last item should not be a link. Tick Drop the last segment to leave it out.

Do I need both the HTML and the JSON-LD?

The JSON-LD is what search engines read; the HTML is what users see. You can also express breadcrumbs with microdata directly in the HTML instead, but JSON-LD is what Google recommends and it keeps the markup out of your templates.

My URLs use IDs, not slugs — /product/48213.

Then the generated label is the ID, which is not useful to anyone. Take the JSON-LD as a skeleton and replace the name values with real titles from your database; the positions and URLs are already correct.

How do query parameters affect the trail?

They are ignored — breadcrumbs describe hierarchy, and a filter or tracking parameter is not a level. If a parameter genuinely selects a category on your site, that is worth fixing in the URL structure rather than in the markup.