React FAQ section components

Four FAQ layouts: two single-column accordions, a two-column split with the questions on the right, and a grid that shows every answer at once.

Trusted by Founders and Entrepreneurs from all over the world

John Shahawy
Henrik Söderlund
John Ferry
Meru Gokhale
Georg Weingartner
Jonathan Barshop
Ray Thai
Tony Pujals
Next.js
React
Tailwind CSS
Framer Motion

Every FAQ section in the library

Questions live in an array of objects, so you can generate them from a CMS or keep them inline. All four handle the expand and collapse animation for you.

See all 4 frequently asked questions

Getting FAQ sections right

Phrase questions the way people type them, not the way your team talks about the product. "Do you have a free plan?" beats "Plan availability", because it matches the query and it reads like a person asked it. Keep answers to two or three sentences and lead with the direct answer before any qualification. If an answer needs four paragraphs, it is documentation, and the FAQ entry should be a one-line answer plus a link.

Choose between the accordion and the grid based on how many questions you have. An accordion is right past six entries, where showing everything expanded would push the rest of the page far down the screen. The three-column grid is better for four or five short answers, because collapsed panels hide content behind an interaction that many visitors never perform. People scan; they do not click hoping something useful is inside.

Accordions have no crawling penalty as long as the answer text is in the DOM and hidden with CSS. Search engines render the page and index collapsed content, and that is how all four blocks here work. What does hurt is mounting the answer only after a click, which is easy to do accidentally with conditional rendering. If you also emit FAQPage structured data, note that Google now shows those rich results for a narrow set of sites only, so treat the markup as an aid to answer engines rather than a guaranteed listing.

Accessibility is where most hand-rolled accordions fail. The clickable heading should be a real button inside a heading element, carry aria-expanded reflecting its state, and point at the panel with aria-controls. Animate max-height or use a grid-template-rows transition rather than toggling display none, which kills the animation. And decide deliberately whether opening one item closes the others. Single-open keeps the section short, multi-open lets someone compare two answers side by side.

Frequently asked questions

Are collapsed FAQ answers bad for SEO?

No, provided the text is present in the HTML and hidden with CSS. Google renders the page and indexes hidden content. The real risk is rendering the answer only after a click, which leaves nothing in the DOM for a crawler to read.

How many questions should an FAQ section have?

Six to ten on a landing page. Enough to cover the objections that stop a purchase, few enough that the section does not turn into a support manual. Push everything else to a help centre and link to it from the last item.

How do I build an accessible accordion in React?

Wrap each trigger in a button inside a heading, set aria-expanded to the open state, and link it to the panel with aria-controls and a matching id. Toggle visibility with height or max-height so the transition still runs, and keep the trigger reachable by keyboard.

Should FAQ items open one at a time?

Single-open keeps the page compact and works well for long answers. Allow multiple when visitors are likely to compare two entries, such as questions about different plans. Both behaviours are a few lines of state in these components.

Keep exploring

Loved by thousands of developers, designers and entrepreneurs

Here's what some of our users have to say about Aceternity UI.

Featured by popular YouTubers

See what the best YouTubers are saying about Aceternity UI.

Video thumbnail
Jeff from
Fireship
talks about how Aceternity UI can help you build awesome landing pages with speed
Video thumbnail
Watch
Web Prodigies
build an entire SaaS application from scratch with Aceternity UI
Video thumbnail
Josh from
Josh Tried Coding
talks about how Aceternity UI components can help your website stand out.
Video thumbnail
Watch
Hitesh Choudhary
build an entire website from scratch with Aceternity UI
Video thumbnail
Adrian from
Adrian Twarog
talks about Aceternity UI and how to use the components efficiently
Video thumbnail
Adrian from
JavaScript Mastery
creates an entire portfolio website with amazing details and beautiful UI with Aceternity UI
Video thumbnail
Watch
Raj Talks Tech
walk through Aceternity UI components and teaches how to incorporate them into your website