SEO-first, GEO-optimised community Q&A. Every question gets its own URL, full QAPage JSON-LD schema, Open Graph tags, BreadcrumbList, and Speakable markup - out of the box, zero configuration required.
🔗 Live demo: wbuild.dev/questions/
📦 Repository: github.com/wbuilddev/wanswers
wAnswers turns any WordPress site into a structured community Q&A platform. Think self-hosted Stack Overflow or Quora - but built for SEO and AI search from the ground up, not bolted on afterward.
Every question is a WordPress post with its own canonical URL. Every page ships with the structured data Google and AI engines need to surface your content in rich results, People Also Ask boxes, and AI Overviews.
Most Q&A plugins render everything via shortcode on a single page - one URL, no per-question structured data, invisible to crawlers. wAnswers works the opposite way.
| Traditional Q&A Plugins | wAnswers | |
|---|---|---|
| URLs | One page for all questions | Every question gets /questions/my-question/ |
| Schema | None or basic | Full QAPage JSON-LD per question |
| Crawlability | JS-dependent feeds | Server-rendered HTML |
| AI citation signals | None | Speakable, Person, Organization, dateModified |
| Duplicate content | Unmanaged | Canonical tags + noindex controls |
AI search engines like Perplexity, ChatGPT Browse, and Google AI Overviews favour:
- Clear Q&A structure (
Question/Answerschema) - Explicit authorship (
Personentities) - Date signals (
dateCreated,dateModified) - Topic tagging (
about→Thingentities) - Speakable content markers
wAnswers implements all of these out of the box.
- Ask questions with title + optional body text
- Categorise by topic (custom taxonomy with AJAX filter)
- Answer questions inline - no page reload
- Accept an answer (question author or admin)
- Threaded replies on answers - one level deep
- Sort by: Newest, Top Voted, Most Answered, Unanswered
- Live search within the feed
- Load-more pagination
- Upvote / downvote questions and answers
- Lifetime vote tracking - persists across leaderboard resets
- Historical vote backfill for pre-existing users
- 4 tabs: Top Score, Most Questions, Most Answers, Most Accepted
- 5 position options: none, above, below, sidebar left, sidebar right
- Optional sticky sidebar, configurable max users (3–50)
- Transient-cached, busted on every interaction
- Unique URLs:
/questions/author/username/ - Gravatar with letter-initial fallback
- Lifetime score, coloured up/downvote counts
- 10 badges across 4 tiers (Bronze → Silver → Gold → Diamond)
- SVG 12-month activity chart
- Recent questions and answers list
- Topic badge links navigate to filtered archive
- Notifications on new answer and new reply
- Weekly digest via WP-Cron (configurable day)
- Token-based one-click unsubscribe
- Admin "Send Digest Now" for testing
- Homepage Mode - serve Q&A at
/with automatic 301 from/questions/ - Custom heading, subtitle, SEO title, and meta description
- Rate limiting per user (questions, answers, votes)
- Custom CSS field - override styles without editing files
- Question moderation mode
- Noindex shortcode pages to prevent duplicate content
- Footer credit toggle (on by default, freely removable)
| Schema Signal | Applied On |
|---|---|
QAPage JSON-LD |
Every single question page |
Question + Answer + acceptedAnswer |
Per-question with author, dates, vote count |
BreadcrumbList |
Single, archive, and taxonomy pages |
CollectionPage |
Archive and topic taxonomy pages |
Organization |
Sitewide - brand entity for AI citation |
WebSite + SearchAction |
Sitewide - Sitelinks Searchbox eligibility |
Speakable |
Single question pages - AI/voice signal |
| Open Graph + Twitter Card | Every single question page |
Canonical <link> |
Every page type - no ambiguity |
dateModified |
Updated on every edit, answer, and reply |
Microdata (itemscope/itemprop) |
Question cards in the feed |
From WordPress Admin:
- Download
wanswers.zip - Plugins → Add New → Upload Plugin
- Activate, then visit Questions → Settings
- Go to Settings → Permalinks and click Save Changes (once, to flush rewrite rules)
Manual:
- Unzip into
/wp-content/plugins/wanswers/ - Activate from Plugins screen
[cc_qa] Embed the Q&A feed on any page
[cc_qa_leaderboard] Embed a standalone leaderboard
[cc_qa_leaderboard limit="5"] Show top 5 per tab (default 10)
wanswers/
├── wanswers.php Plugin entry, constants, hooks
├── README.md GitHub readme
├── readme.txt WordPress.org readme
├── assets/
│ ├── css/wanswers.css All styles - no external dependencies
│ └── js/wanswers.js Vanilla JS - no jQuery
├── includes/
│ ├── class-admin.php Settings page, sanitizers, custom CSS
│ ├── class-ajax.php AJAX handlers, rate limiting
│ ├── class-badges.php Badge system, activity chart
│ ├── class-database.php Custom DB tables, vote recording, backfill
│ ├── class-digest.php Weekly digest, WP-Cron
│ ├── class-email.php Notifications, token unsubscribe
│ ├── class-leaderboard.php Leaderboard stats, caching
│ ├── class-post-types.php CPT, taxonomy, rewrite rules, routing
│ ├── class-schema.php All JSON-LD, OG, Twitter Card, Speakable
│ └── class-shortcode.php [cc_qa] shortcode, card rendering
└── templates/
├── archive-cc_question.php /questions/
├── author-cc_question.php /questions/author/{username}/
└── single-cc_question.php /questions/{slug}/
- Added "Disable built-in schema" toggle in SEO settings for compatibility with RankMath, Yoast, and other SEO plugins.
- Added Settings link on the Plugins page.
- Plugin name updated for WordPress.org compliance (removed restricted terms).
- Replaced
date()withgmdate()for timezone-safe date handling. - Replaced
wp_redirectwithwp_safe_redirect. - Removed unused Domain Path header.
- Demo links updated to wbuild.dev/questions/.
- GitHub links updated to new wbuilddev organization.
- Author updated to wBuild.dev.
- Fixed theme compatibility: all CSS colour and typography variables are now self-contained - no longer inherited from an external stylesheet. Plugin now renders correctly on Divi, Extra, Disputo and other themes.
- Added defensive CSS resets on buttons and inputs to prevent Divi/Extra global styles bleeding into plugin elements (text colour, background, font, text-transform, letter-spacing).
- Plugin rebranded to wAnswers - SEO-First Q&A
- All public-facing references updated to wAnswers branding
- Plugin homepage and author URL updated to wbuild.dev
- Bugfix: Topic badges in user profiles now link to the filtered tag archive page instead of navigating to the question. Fixed anchor-in-anchor HTML invalidity using CSS overlay + JS delegation pattern.
- Settings page visual refresh - branded section headings, orange save button, styled footer
- Removed search box icon from main Q&A feed
- Official plugin name: wAnswers
- Code audit: fixed undefined
$is_tax/$is_homepagein schema class - Replaced hardcoded
/register/links withwp_registration_url() - Generic default title and subtitle
- Settings page footer with live demo and GitHub links
- Footer credit toggle (on by default, freely removable)
- Mobile padding fix on profile pages
- Lifetime vote counts backfill from votes table for pre-2.5 installs
- Leaderboard position now respected on profile pages
- Homepage Mode: serve Q&A at
/with 301 redirect from/questions/ - Explicit canonical tag on archive template
- Rewrite rules auto-flushed on homepage mode toggle
- Leaderboard max users, sticky sidebar toggle, custom CSS field
- Leaderboard on profile pages with full position support
- Expanded profile stats with coloured vote counts
- Topic filter fix on question cards
- Load-more answer pagination
- Profile title wrapping on mobile
- Hero unanswered stat and feed anchor links
- User profiles at
/questions/author/{username}/ - 10 badges, 4 tiers, SVG activity chart, Gravatar
- Weekly digest, threaded replies, leaderboard, rate limiting, moderation
- Initial release
Issues and pull requests welcome at github.com/wbuilddev/wanswers.
Built by wBuild.dev · Live demo
Licensed under GPL v2 or later
wBuild is independently developed with no VC funding, no ads, and no data collection. If this plugin saves you time or helps you earn, consider supporting future development:
PayPal · Cash App · BTC: 16cj4pbkWrTmoaUUkM1XWkxGTsvnywwS8C
Every contribution helps keep wBuild tools updated and independent.