Does structured data directly cause citations?
Not by itself. A model cites the page whose content best answers the prompt; schema doesn't override weak content. What it does is reduce ambiguity — it states plainly what a page is, who published it, when it was updated, and how things relate — which helps a system understand and trust the page. Think of it as removing reasons to skip you, not as a magic ranking lever.
Which types actually matter?
Use the type that matches the page: Article (or TechArticle) for guides and posts, FAQPage for genuine Q&A, Organization for your brand identity, WebSite for the site itself, and BreadcrumbList for navigation context. Tie them together with stable @id references so the entities link up. That handful covers the vast majority of content sites.
If you add only one schema type, make it Article or FAQPage. They signal to crawlers exactly what your content is and make the page far easier to surface for structured answers.
JSON-LD or microdata?
Use JSON-LD. It lives in a single <script type="application/ld+json"> block in the head, separate from your markup, so it's easy to generate, validate, and keep consistent. Microdata interleaved with HTML is harder to maintain and easier to break.
What's the line between helpful and spammy?
Every claim in your structured data must be true to what a visitor sees on the page. Marking up FAQs that aren't on the page, fake ratings, or types that don't match the content is the fast path to being distrusted or penalized. Describe reality precisely; don't invent it.
How do I keep it correct as the site grows?
Generate it, don't hand-write it. Deriving JSON-LD from the page's real title, description, dates, and path at build time means it can't drift out of sync as you add pages — which is exactly how we do it here.
The short version
Add JSON-LD with the right schema.org type per page, link entities by @id, keep every value honest, and generate it so it stays correct. It earns trust at the margin, and margins decide citations.