### Install Gemini SEO Skill using Gemini CLI
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/INSTALLATION.md
Use this command to install the Gemini SEO skill from a downloaded `.skill` file. The `--scope user` flag installs it for the current user.
```bash
gemini skills install path/to/gemini-seo.skill --scope user
```
--------------------------------
### Install Gemini SEO Skill (Release)
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Install the Gemini SEO skill from a release file using the Gemini CLI. Ensure Python dependencies and Playwright browsers are installed separately if web fetching or screenshots are needed.
```bash
gemini skills install path/to/gemini-seo.skill --scope user
/skills reload
/skills list
pip install playwright beautifulsoup4 requests lxml Pillow
python -m playwright install chromium
```
--------------------------------
### Install Gemini SEO Skill
Source: https://github.com/avalonreset/gemini-seo/blob/main/README.md
Install the Gemini SEO skill using the Gemini CLI. Ensure you have downloaded the latest .skill file from the releases page. Reload the CLI session after installation.
```bash
gemini skills install path/to/gemini-seo.skill --scope user
```
```bash
/skills reload
```
```bash
/skills list
```
--------------------------------
### Clone Repository and Install Dependencies
Source: https://github.com/avalonreset/gemini-seo/blob/main/CONTRIBUTING.md
Clone the Gemini SEO repository and install the required Python packages using pip.
```bash
git clone https://github.com/avalonreset/gemini-seo.git
cd gemini-seo
pip install -r requirements.txt
```
--------------------------------
### Re-run Gemini SEO Installer
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Re-run the installation script to ensure all components are correctly installed.
```bash
curl -fsSL https://raw.githubusercontent.com/avalonreset/gemini-seo/main/install.sh | bash
```
--------------------------------
### Install Playwright Browsers
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Install the necessary browser binaries for Playwright to function.
```bash
playwright install chromium
```
--------------------------------
### Install Playwright and Browsers via Python
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
If direct Playwright installation fails, try installing it via pip and then installing the browsers.
```bash
pip install playwright
```
```bash
python -m playwright install chromium
```
--------------------------------
### Install Individual Python Packages
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Install specific Python packages individually if needed.
```bash
pip install --user beautifulsoup4 requests lxml playwright Pillow urllib3 validators
```
--------------------------------
### Verify SEO Skill Installation
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Check if the SKILL.md file exists in the expected directory to verify installation.
```bash
ls ~/.Gemini/skills/seo/SKILL.md
```
--------------------------------
### List Installed Gemini Skills
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/INSTALLATION.md
Verify that the `gemini-seo` skill has been successfully installed by listing all available skills.
```bash
/skills list
```
--------------------------------
### Example Hook Configuration in settings.json
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Illustrates the expected JSON structure for configuring a PostToolUse hook in Gemini settings.
```json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "python3 ~/.Gemini/skills/seo/hooks/validate-schema.py \"$FILE_PATH\"",
"exitCodes": { "2": "block" }
}
]
}
]
}
}
```
--------------------------------
### Build and Install Gemini SEO from Source
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Clone the Gemini SEO repository and build the skill from source using Node.js scripts. This method is suitable for development or modification purposes.
```bash
git clone https://github.com/avalonreset/gemini-seo.git
cd gemini-seo
node path/to/skill-creator/scripts/package_skill.cjs .
gemini skills install gemini-seo.skill --scope user
```
--------------------------------
### Install Python Dependencies with --user
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
If the venv is not available, install dependencies using pip with the --user flag.
```bash
pip install --user -r ~/.Gemini/skills/seo/requirements.txt
```
--------------------------------
### Product Schema Example
Source: https://github.com/avalonreset/gemini-seo/blob/main/assets/plan-templates/ecommerce.md
Example of Product schema markup for an e-commerce product page. Ensure this is in server-rendered HTML for Google Merchant Center.
```json
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Product Name",
"image": ["https://example.com/product.jpg"],
"description": "Product description",
"sku": "SKU123",
"brand": {
"@type": "Brand",
"name": "Brand Name"
},
"offers": {
"@type": "Offer",
"price": "99.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://example.com/product"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "42"
}
}
```
--------------------------------
### Check SKILL.md Frontmatter
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Inspect the first few lines of SKILL.md to ensure it starts with YAML frontmatter.
```bash
head -5 ~/.Gemini/skills/seo/SKILL.md
```
--------------------------------
### ProfessionalService Schema Example
Source: https://github.com/avalonreset/gemini-seo/blob/main/assets/plan-templates/agency.md
An example of Schema.org's ProfessionalService markup to define an agency's core business information for search engines.
```json
{
"@context": "https://schema.org",
"@type": "ProfessionalService",
"name": "Agency Name",
"description": "What the agency does",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Agency St",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "12345"
},
"telephone": "+1-555-555-5555",
"areaServed": "National",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Service 1"
}
}
]
}
}
```
--------------------------------
### Install Python Dependencies for Gemini SEO
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/INSTALLATION.md
Install the necessary Python packages, including Playwright and BeautifulSoup, for Gemini SEO's web interaction scripts.
```bash
pip install playwright beautifulsoup4
python -m playwright install chromium
```
--------------------------------
### Pre-Commit SEO Hook Script Example
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Example output from the pre-commit SEO check script. It indicates critical errors (blocking commits) and warnings (allowing commits with notifications).
```bash
# What the hook checks on staged .html/.jsx/.tsx/.vue/.php files:
# EXIT 2 (blocks commit):
# - Placeholder text in schema: [Business Name], [City], [INSERT], etc.
# - Deprecated schema types: HowTo, SpecialAnnouncement
#
# EXIT 0 with warnings (allows commit):
# - Title tag length outside 30-60 chars
# - Images without alt text
# - References to FID instead of INP
# - Meta description outside 120-160 chars
# Example output:
# π Running pre-commit SEO checks...
# π index.html: Contains deprecated schema type
# β οΈ about.html: Title tag length 22 chars (recommend 30-60)
# π 2 critical error(s) found β commit blocked
```
--------------------------------
### Install Python Dependencies in venv
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Use the virtual environment's pip to install project dependencies from requirements.txt.
```bash
~/.Gemini/skills/seo/.venv/bin/pip install -r ~/.Gemini/skills/seo/requirements.txt
```
--------------------------------
### Other Gemini SEO Workflow Examples
Source: https://github.com/avalonreset/gemini-seo/blob/main/README.md
Examples of other SEO workflows available in Gemini SEO, including deep page analysis, hreflang validation, and sitemap generation from a list of URLs.
```bash
Analyze this page deeply: https://example.com/about
```
```bash
Validate hreflang for https://example.com
```
```bash
Generate a sitemap from this URL list
```
--------------------------------
### Programmatic SEO Analysis and Planning
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/COMMANDS.md
Initiates programmatic SEO analysis for a given URL or starts a planning process. Useful for generating content at scale.
```bash
/seo programmatic https://example.com/tools/
```
```bash
/seo programmatic plan
```
--------------------------------
### Markdown Comparison Table
Source: https://github.com/avalonreset/gemini-seo/blob/main/references/seo-competitor-pages.md
Example of a feature matrix layout using Markdown for comparing products.
```markdown
| Feature | Your Product | Competitor A | Competitor B |
|------------------|:------------:|:------------:|:------------:|
| Feature 1 | β
| β
| β |
| Feature 2 | β
| β οΈ Partial | β
|
| Feature 3 | β
| β | β |
| Pricing (from) | $X/mo | $Y/mo | $Z/mo |
| Free Tier | β
| β | β
|
```
--------------------------------
### Sitemap with Hreflang Tags
Source: https://github.com/avalonreset/gemini-seo/blob/main/references/seo-hreflang.md
Example of an XML sitemap including hreflang alternate links for different languages and regions. Ensure the xhtml namespace is declared and all language alternates are present for each URL.
```xml
https://example.com/page
https://example.com/fr/page
```
--------------------------------
### Audit Image Optimization
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
This command initiates an audit of all images on a given URL, checking for optimization issues such as alt text quality, file size, format, responsive attributes, and lazy loading. The example markup shows correct implementation.
```html
```
--------------------------------
### Package Gemini SEO Skill from Source
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/INSTALLATION.md
Use the `skill-creator` tool to package the Gemini SEO project into a `.skill` file when building from source.
```bash
node path/to/skill-creator/scripts/package_skill.cjs .
```
--------------------------------
### Download requirements.txt
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Download the requirements.txt file directly if it's missing.
```bash
curl -fsSL https://raw.githubusercontent.com/avalonreset/gemini-seo/main/requirements.txt \
-o ~/.Gemini/skills/seo/requirements.txt
```
--------------------------------
### Run Lighthouse CLI
Source: https://github.com/avalonreset/gemini-seo/blob/main/references/cwv-thresholds.md
Execute Lighthouse from the command line to analyze a URL and generate a report. The output can be saved in JSON format for further processing.
```bash
# Lighthouse CLI
npx lighthouse URL --output json --output-path report.json
```
--------------------------------
### Load and Use Schema Templates (Python)
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Loads JSON-LD schema templates from a file and demonstrates how to use the 'ProfilePage' template to create E-E-A-T author markup. Ensure 'assets/templates.json' exists and contains the 'templates' key with 'type' and 'template' fields.
```python
import json
with open("assets/templates.json") as f:
templates = json.load(f)["templates"]
# Available template types:
# VideoObject, BroadcastEvent, Clip, SeekToAction,
# SoftwareSourceCode, ProductGroup, ProfilePage,
# Certification, OfferShippingDetails
# Example: ProfilePage for E-E-A-T author markup
profile_template = next(t for t in templates if t["type"] == "ProfilePage")
schema = profile_template["template"]
schema["mainEntity"]["name"] = "Jane Smith"
schema["mainEntity"]["url"] = "https://acme.com/author/jane"
schema["mainEntity"]["description"] = "Jane is a certified SEO specialist with 10 years of experience."
schema["mainEntity"]["sameAs"] = [
"https://twitter.com/janesmith",
"https://linkedin.com/in/janesmith"
]
print(json.dumps(schema, indent=2))
```
--------------------------------
### Image Optimization Command
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/COMMANDS.md
Analyzes and provides recommendations for image optimization. Requires a URL.
```bash
/seo images
```
--------------------------------
### Reload Gemini Skills in CLI
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/INSTALLATION.md
After installing or updating a skill, run this command in the Gemini CLI to reload the skills context.
```bash
/skills reload
```
--------------------------------
### Recommended SaaS Site Architecture
Source: https://github.com/avalonreset/gemini-seo/blob/main/assets/plan-templates/saas.md
A hierarchical site structure for SaaS products, organizing content by product features, solutions, pricing, customer stories, resources, documentation, company information, and comparisons.
```tree
/
βββ Home
βββ /product (or /platform)
β βββ /features
β β βββ /feature-1
β β βββ /feature-2
β β βββ ...
β βββ /integrations
β β βββ /integration-1
β β βββ ...
β βββ /security
βββ /solutions
β βββ /by-industry
β β βββ /industry-1
β β βββ ...
β βββ /by-use-case
β βββ /use-case-1
β βββ ...
βββ /pricing
βββ /customers
β βββ /case-studies
β β βββ /case-study-1
β β βββ ...
β βββ /testimonials
βββ /resources
β βββ /blog
β βββ /guides
β βββ /webinars
β βββ /templates
β βββ /glossary
βββ /docs (or /help)
β βββ /api
βββ /company
β βββ /about
β βββ /careers
β βββ /press
β βββ /contact
βββ /compare
βββ /vs-competitor-1
βββ /vs-competitor-2
```
--------------------------------
### NewsArticle Schema Example
Source: https://github.com/avalonreset/gemini-seo/blob/main/assets/plan-templates/publisher.md
Use this JSON-LD schema to mark up news articles. Ensure all fields, especially author and publisher details, are accurate and complete.
```json
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Article Headline",
"datePublished": "2026-02-07T10:00:00Z",
"dateModified": "2026-02-07T14:30:00Z",
"author": {
"@type": "Person",
"name": "Author Name",
"url": "https://example.com/authors/author-name"
},
"publisher": {
"@type": "Organization",
"name": "Publication Name",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"image": ["https://example.com/article-image.jpg"],
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/article-url"
}
}
```
--------------------------------
### Generative Engine Optimization (GEO) Checklist for SaaS
Source: https://github.com/avalonreset/gemini-seo/blob/main/assets/plan-templates/saas.md
A checklist of actions to optimize SaaS content for Generative AI, focusing on structured data, original metrics, and clear descriptions that AI systems can parse and cite.
```markdown
- [ ] Include clear, structured feature comparisons that AI systems can parse and cite
- [ ] Use SoftwareApplication schema with complete feature lists and pricing
- [ ] Publish original benchmark data, case studies, and ROI metrics
- [ ] Build content clusters around key product categories and use cases
- [ ] Ensure integration pages have clear, quotable descriptions
- [ ] Structure pricing information in tables AI can extract
- [ ] Monitor AI citation across Google AI Overviews, ChatGPT, and Perplexity
```
--------------------------------
### Full Audit Orchestration Flow
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/ARCHITECTURE.md
Illustrates the parallel processing and aggregation of results during a full SEO audit, starting from the main orchestrator skill and spawning multiple specialized agents.
```text
User Request
β
βΌ
βββββββββββββββββββ
β seo β β Main orchestrator
β (SKILL.md) β
ββββββββββ¬βββββββββ
β
β Detects business type
β Spawns multi-agents in parallel
β
ββββββ΄βββββ¬βββββββββ¬βββββββββ¬βββββββββ¬βββββββββ
βΌ βΌ βΌ βΌ βΌ βΌ
βββββββββ βββββββββ βββββββββ βββββββββ βββββββββ βββββββββ
βtech β βcontentβ βschema β βsitemapβ βperf β βvisual β
βagent β βagent β βagent β βagent β βagent β βagent β
βββββ¬ββββ βββββ¬ββββ βββββ¬ββββ βββββ¬ββββ βββββ¬ββββ βββββ¬ββββ
β β β β β β
βββββββββββ΄βββββββββ΄βββββ¬ββββ΄βββββββββ΄βββββββββ
β
βΌ
βββββββββββββββββ
β Aggregate β
β Results β
βββββββββ¬ββββββββ
β
βΌ
βββββββββββββββββ
β Generate β
β Report β
βββββββββββββββββ
```
--------------------------------
### Optimize for AI Overviews
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/COMMANDS.md
Analyzes content for optimization with AI Overviews and generative search engines, focusing on citability, readability, and entity clarity.
```bash
/seo geo https://example.com/blog/guide
```
--------------------------------
### Configure Google Search Console MCP Server
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/MCP-INTEGRATION.md
Set up the `mcp-server-gsc` for organic search data. Ensure the `GOOGLE_CREDENTIALS_PATH` environment variable points to your service account key.
```json
{
"mcpServers": {
"google-search-console": {
"command": "npx",
"args": ["-y", "mcp-server-gsc"],
"env": {
"GOOGLE_CREDENTIALS_PATH": "/path/to/credentials.json"
}
}
}
}
```
--------------------------------
### llms.txt Content Structure
Source: https://github.com/avalonreset/gemini-seo/blob/main/references/seo-geo.md
This is an example of the llms.txt file format, used to provide AI crawlers with structured content guidance. It includes a site title, description, main sections with page links, and optional key facts.
```text
# Title of site
> Brief description
## Main sections
- [Page title](url): Description
- [Another page](url): Description
## Optional: Key facts
- Fact 1
- Fact 2
```
--------------------------------
### LocalBusiness Schema Example for Local Services
Source: https://github.com/avalonreset/gemini-seo/blob/main/assets/plan-templates/local-service.md
This JSON-LD schema markup provides essential information for local businesses, including name, address, contact details, operating hours, geographic coordinates, service area, and price range. It is crucial for search engines to understand and display local business information accurately.
```json
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "12345"
},
"telephone": "+1-555-555-5555",
"openingHours": "Mo-Fr 08:00-18:00",
"geo": {
"@type": "GeoCoordinates",
"latitude": "40.7128",
"longitude": "-74.0060"
},
"areaServed": ["City 1", "City 2"],
"priceRange": "$$"
}
```
--------------------------------
### Schema Recommendations for SaaS Pages
Source: https://github.com/avalonreset/gemini-seo/blob/main/assets/plan-templates/saas.md
Mapping of common SaaS page types to appropriate Schema.org types for improved search engine understanding and rich result potential.
```markdown
| Page Type | Schema Types |
|-----------|-------------|
| Homepage | Organization, WebSite, SoftwareApplication |
| Product/Features | SoftwareApplication, Offer |
| Pricing | SoftwareApplication, Offer (with pricing) |
| Blog | Article, BlogPosting |
| Case Studies | Article, Organization (customer) |
| Documentation | TechArticle |
```
--------------------------------
### Test Fetch Script
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Run the fetch_page.py script directly to test fetching a URL.
```python
python3 ~/.Gemini/skills/seo/scripts/fetch_page.py https://example.com
```
--------------------------------
### Analyze AI Search Readiness (GEO)
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Run this command to assess a page's optimization for AI-driven search results like Google AI Overviews and ChatGPT. It checks for citability, readability, entity clarity, and AI crawler access.
```bash
/seo geo https://acme.com/blog/best-practices-guide
```
--------------------------------
### Verify requirements.txt Exists
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Check if the requirements.txt file is present in the skill directory.
```bash
ls ~/.Gemini/skills/seo/requirements.txt
```
--------------------------------
### Generate Competitor Comparison Pages
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/COMMANDS.md
Generates comparison page layouts, 'Alternatives to X' structures, and feature comparison matrices, with options to specify a URL or generate new content.
```bash
/seo competitor-pages https://example.com/vs/competitor
```
```bash
/seo competitor-pages generate
```
--------------------------------
### Re-install Gemini SEO Agents
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
Copy agent files from the skill's source directory to the Gemini agents directory.
```bash
cp /path/to/Gemini-seo/agents/*.md ~/.Gemini/agents/
```
--------------------------------
### Analyze E-E-A-T and Content Quality
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Use this command to evaluate a URL against Google's E-E-A-T framework. It provides a breakdown of scoring weights for Experience, Expertise, Authoritativeness, and Trustworthiness.
```bash
/seo content https://acme.com/blog/how-to-fix-leaky-faucet
```
--------------------------------
### Check Gemini Settings for Hooks
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/TROUBLESHOOTING.md
View the Gemini settings file to verify hook configurations.
```bash
cat ~/.Gemini/settings.json
```
--------------------------------
### Run Full-Site SEO Audit
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Initiate a comprehensive SEO audit for a given URL. Append 'premium report' to generate HTML and PDF deliverables. The audit covers up to 500 pages and aggregates results into a prioritized action plan.
```bash
# Inside Gemini CLI β natural language or slash command
Run a full SEO audit for https://acme.com
# Equivalent slash command
/seo audit https://acme.com
# Append "premium report" to force HTML/PDF client deliverable
Run a full SEO audit for https://acme.com premium report
```
--------------------------------
### Clone Gemini SEO Repository
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/INSTALLATION.md
Clone the Gemini SEO repository from GitHub to build the skill from source code.
```bash
git clone https://github.com/avalonreset/gemini-seo.git
cd gemini-seo
```
--------------------------------
### Generate Strategic SEO Plan
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/COMMANDS.md
Creates a complete SEO strategy for a specified business type, including competitive analysis, content calendar, and implementation roadmap.
```bash
/seo plan saas
```
--------------------------------
### Analyze or Generate Competitor Comparison Pages
Source: https://context7.com/avalonreset/gemini-seo/llms.txt
Analyzes existing 'vs' or 'alternatives' pages, or generates new comparison pages with feature matrices and schema markup. Enforces fairness guidelines.
```bash
# Audit an existing comparison page
/seo competitor-pages https://acme.com/vs/competitor-x
```
```bash
# Generate a new comparison page
/seo competitor-pages generate
```
```json
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Acme SEO Tool",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "312"
}
}
```
--------------------------------
### Strategic Planning Command
Source: https://github.com/avalonreset/gemini-seo/blob/main/docs/COMMANDS.md
Initiates strategic SEO planning. Specify the type of plan to generate.
```bash
/seo plan
```