fix(website): critical SEO fixes - schema version, FAQ & HowTo structured data (#142)
* fix(website): update schema version and add structured data for SEO - Fix softwareVersion from "0.0.0" to "0.4.1-alpha" in SoftwareApplication schema - Add FAQPage schema for rich results in search engines - Add HowTo schema for installation guide steps - Update sitemap.xml lastmod date to 2026-02-05 Fixes #138 * ci: skip Python builds when only web/ folder changes - Add path filters to detect changes in web/ vs Python files - Make python-lint and python-test jobs depend on changes job - Skip Python CI when only web files are modified - Expand Python path filters to include common config files Closes #138
This commit is contained in:
@@ -32,11 +32,17 @@ jobs:
|
||||
filters: |
|
||||
web:
|
||||
- 'web/**'
|
||||
- '.github/workflows/**'
|
||||
python:
|
||||
- 'src/**'
|
||||
- 'tests/**'
|
||||
- 'pyproject.toml'
|
||||
- 'setup.py'
|
||||
- 'setup.cfg'
|
||||
- 'requirements*.txt'
|
||||
- 'Makefile'
|
||||
- '.pre-commit-config.yaml'
|
||||
- '.github/workflows/**'
|
||||
- name: Check if website should deploy
|
||||
id: deploy_check
|
||||
run: |
|
||||
@@ -54,6 +60,8 @@ jobs:
|
||||
python-lint:
|
||||
name: 🔍 Lint Python
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: needs.changes.outputs.python == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -83,7 +91,8 @@ jobs:
|
||||
python-test:
|
||||
name: 🧪 Test Python ${{ matrix.python-version }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: python-lint
|
||||
needs: [changes, python-lint]
|
||||
if: needs.changes.outputs.python == 'true'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://vocalinux.com/</loc>
|
||||
<lastmod>2026-01-29</lastmod>
|
||||
<lastmod>2026-02-05</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
|
||||
+106
-2
@@ -120,7 +120,7 @@ export default function RootLayout({
|
||||
"priceCurrency": "USD"
|
||||
},
|
||||
"description": "Free, open-source voice dictation for Linux. 100% offline with Whisper AI and VOSK. Works with X11 and Wayland.",
|
||||
"softwareVersion": "0.0.0",
|
||||
"softwareVersion": "0.4.1-alpha",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "Jatin K Malik",
|
||||
@@ -180,7 +180,111 @@ export default function RootLayout({
|
||||
}
|
||||
};
|
||||
|
||||
const jsonLd = [softwareAppJsonLd, organizationJsonLd, webSiteJsonLd];
|
||||
// FAQPage schema for rich results
|
||||
const faqJsonLd = {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Is Vocalinux really 100% offline?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Yes! All speech recognition processing happens locally on your machine. Your voice data never leaves your computer. No internet connection is required after installation."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Which Linux distributions are supported?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Vocalinux works on most modern Linux distributions including Ubuntu 22.04+, Fedora, Debian, Arch Linux, Linux Mint, Pop!_OS, and more. It supports both X11 and Wayland display servers."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "How do I switch between Whisper and VOSK?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "You can switch engines via the settings GUI or command line. Use 'vocalinux --engine whisper' or 'vocalinux --engine vosk'. Whisper is recommended for accuracy, VOSK for speed."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "What are the system requirements?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Minimum: 4GB RAM, dual-core CPU, Python 3.8+. For Whisper large models: 8GB+ RAM recommended. The tiny/base Whisper models and VOSK work great on modest hardware."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Can I use it in languages other than English?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Yes! Whisper supports 99+ languages with varying accuracy levels. VOSK has models for 20+ languages. Download additional language models as needed."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "How do I customize the activation shortcut?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "The default is double-tap Ctrl. You can customize this via the GUI settings dialog or by editing ~/.config/vocalinux/config.yaml. Any key combination is supported."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Is Vocalinux free?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Yes, Vocalinux is completely free and open-source, licensed under GPL-3.0. No premium tiers, no subscriptions, no tracking — just free software."
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// HowTo schema for installation guide
|
||||
const howToJsonLd = {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "HowTo",
|
||||
"name": "How to Install Vocalinux on Linux",
|
||||
"description": "Step-by-step guide to install Vocalinux voice dictation software on Linux",
|
||||
"totalTime": "PT10M",
|
||||
"estimatedCost": {
|
||||
"@type": "MonetaryAmount",
|
||||
"currency": "USD",
|
||||
"value": "0"
|
||||
},
|
||||
"step": [
|
||||
{
|
||||
"@type": "HowToStep",
|
||||
"name": "Run the installation command",
|
||||
"text": "Open your terminal and run the one-liner installation command to download and install Vocalinux.",
|
||||
"url": "https://vocalinux.com/#install"
|
||||
},
|
||||
{
|
||||
"@type": "HowToStep",
|
||||
"name": "Wait for installation to complete",
|
||||
"text": "The installer will download dependencies, set up the environment, and download speech recognition models. This takes approximately 5-10 minutes.",
|
||||
"url": "https://vocalinux.com/#install"
|
||||
},
|
||||
{
|
||||
"@type": "HowToStep",
|
||||
"name": "Launch Vocalinux",
|
||||
"text": "After installation, launch Vocalinux from your terminal by typing 'vocalinux' or find it in your application menu.",
|
||||
"url": "https://vocalinux.com/#install"
|
||||
},
|
||||
{
|
||||
"@type": "HowToStep",
|
||||
"name": "Start dictating",
|
||||
"text": "Double-tap Ctrl to start voice dictation. Speak clearly into your microphone. Double-tap Ctrl again to stop.",
|
||||
"url": "https://vocalinux.com/#install"
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
const jsonLd = [softwareAppJsonLd, organizationJsonLd, webSiteJsonLd, faqJsonLd, howToJsonLd];
|
||||
|
||||
return (
|
||||
<html lang="en" className={`${GeistSans.variable} scroll-smooth`} suppressHydrationWarning>
|
||||
|
||||
Reference in New Issue
Block a user