How to Export Zotero Highlights to Obsidian (Without Losing Backlinks)
If you've tried to move Zotero highlights into Obsidian, you've probably hit the same wall: annotations that looked clean in Zotero arrive as broken fragments, orphaned quotes with no page reference, or — if you used a sync plugin — a destructive import that overwrote notes you'd already built. This guide covers the real options, their tradeoffs, and when a completely different tool might serve you better.
Why the Zotero→Obsidian Pipeline Breaks
Zotero stores annotations inside its own SQLite database. Obsidian stores everything as flat Markdown files. These two models are fundamentally different, and any bridge between them has to make choices about how to represent things that don't map cleanly — like color-coded highlight layers, page coordinates for PDF annotations, and the difference between a Zotero "note" and a Zotero "annotation."
The friction shows up in a few specific places:
Backlinks don't survive round-trips. If you've already written an Obsidian note that links to a paper's concept, a fresh import from Zotero won't know about those links. You get a new file for the item, but your existing [[backlink]] references now point to a different note — or break entirely if the plugin names the file differently from what you expected.
Destructive re-imports. Some bridge plugins overwrite the Obsidian note for an item every time they sync. If you've added your own commentary to the bottom of a generated note, that commentary disappears on the next pull.
The annotation format is fragile. Zotero exports highlights with positional metadata (page number, bounding box). Not every plugin faithfully preserves this. Readwise, for instance, strips coordinates entirely.
The Current Options (Honest Assessment)
Option 1: Better BibTeX + Zotero Integration Plugin
This is the most popular approach. Better BibTeX (a Zotero plugin) auto-exports a .bib file. The Zotero Integration Obsidian plugin reads that .bib and your Zotero annotations to generate notes from a Nunjucks template.
What works well: You control the Markdown template completely. Backlinks can be baked into the template using Zotero's citekey. The citekey is stable, so a note titled [[Smith2023]] will always refer to the same item.
What breaks: You need Zotero's desktop app running. The Zotero Integration plugin communicates with Zotero via a local API, so if Zotero is closed, nothing syncs. Re-importing an item with new annotations requires manual merging if you've edited the generated note. The setup is non-trivial — most tutorials take 30 minutes to follow and assume familiarity with Nunjucks syntax.
Option 2: ZotLit
ZotLit is a newer alternative that aims to be faster and handle the "merge" problem more gracefully. It writes annotations into a separate annotations note and keeps your main literature note intact. The citekey-based linking is cleaner than in earlier plugins.
What works well: Genuinely better at not destroying your edits. The Obsidian integration feels tighter.
What breaks: Still requires Zotero desktop. Documentation is thinner than Zotero Integration. Some users report sync issues when Zotero's database is open in two apps simultaneously.
Option 3: Notero
Notero syncs Zotero items to Notion rather than Obsidian. Worth mentioning because some researchers use Notion as an intermediate and then link from Obsidian. This adds yet another layer of friction.
Option 4: Readwise → Obsidian
Readwise can ingest Zotero highlights (via its Zotero integration) and then push them to Obsidian via the Readwise Official plugin. The formatting is opinionated but consistent.
What works well: Handles the "I just want my highlights somewhere" use case reliably. The Obsidian notes include author, title, and a link back to the source.
What breaks: $7.99/month ($96/year) for Readwise. PDF annotations lose page coordinates. You're dependent on Readwise's cloud, which means your highlights do leave your machine. The notes are Readwise-formatted — you don't control the template.
Option 5: Manual copy-paste
Not a joke. For researchers who only need to move a handful of key papers into Obsidian, manually copying highlighted text and using Zotero's "Create Bibliography" to get a citation is sometimes the most reliable method. Tedious at scale, but zero dependencies.
Keeping Backlinks Intact: The Core Technique
Whichever tool you use, the key to preserving backlinks is agreeing on a stable note identifier before you start importing.
With Zotero Integration or ZotLit, the citekey (e.g., smith2023cognitive) becomes the note title. Write your Obsidian links as [[smith2023cognitive]] from the start, and they'll survive re-imports. Don't use the full title as the link target — those titles often include colons and special characters that plugins escape differently on different runs.
If you're using Readwise, its note titles follow a fixed pattern ([Author] - [Title]). The problem is that Readwise truncates long titles unpredictably. Check the generated title once, then use that exact string in your backlinks.
A Different Use Case: Capturing Web Sources Into Obsidian
Everything above assumes your sources are PDFs already living in Zotero. But a significant portion of research — especially for students and journalists — starts with web articles, preprints on arXiv, or documentation pages. For those sources, the Zotero+bridge-plugin chain is overkill.
For web-page capture specifically, ClipCite (our tool — this is its blog) is the option we'd start with. It's a browser extension (Chrome/Edge) that does three things in one click: converts the current page to clean Markdown, generates a citation (BibTeX on the free tier; APA and other styles on Pro), and sends both to your clipboard or — on Pro — directly to an Obsidian vault. No desktop app required, no plugin chain, no sync service.
ClipCite is honest about what it doesn't do: it clips web pages and online articles, not PDFs already in your Zotero library. If your workflow is "open paper → read in browser → capture key points with citation → paste into Obsidian note," it fits well. If your workflow is "annotate PDFs in Zotero → sync those annotations," you need one of the bridge plugins above.
Choosing the Right Tool
| Goal | Best Option |
|---|---|
| Sync all Zotero PDF annotations to Obsidian | Zotero Integration (free) or ZotLit |
| Highlights in Obsidian without setup friction | Readwise (paid) |
| Capture web articles + citations into Obsidian | ClipCite or Obsidian Web Clipper |
| Fully offline, no third-party services | Zotero Integration + Better BibTeX |
FAQ
Q: Does Zotero Integration destroy my notes when I re-import? By default, yes — it regenerates the note file. The workaround is to write your personal commentary in a separate note that links to the generated note, not inside it. That way re-imports only affect the generated file.
Q: Can I use Better BibTeX without the Obsidian bridge plugin?
Yes. Better BibTeX auto-exports a .bib file you can reference directly in Pandoc for citation rendering. Some researchers skip the Obsidian integration entirely and just use the .bib for their writing workflow.
Q: Is there an option that works without Zotero being open? ZotLit has an experimental mode that reads directly from the Zotero SQLite database without the app running — check their docs for the current status of that feature, as it was in beta at time of writing.
Q: ClipCite sounds useful, but I also need to manage PDFs. Can I use both? Yes, and this is probably the most practical setup for many researchers: use Zotero for PDF management and annotation, and use ClipCite for web-source capture. They cover different parts of the research workflow without overlapping.