MkDocs Advanced SEO Plugin
A comprehensive, deep, and powerful SEO plugin for MkDocs. This plugin is designed to squeeze every bit of SEO performance out of your MkDocs site by automatically generating advanced meta tags, Open Graph tags, Twitter Cards, and structured data (JSON-LD), while handling edge cases and missing data gracefully.
Features
- Deep SEO Optimization: Automatically inserts a full suite of meta tags (
description,keywords,author,robots, etc.). - Open Graph Support: Fully treats your pages as rich objects for social networks (Facebook, LinkedIn, etc.) with
og:title,og:description,og:image,og:url,og:site_name, andog:locale. - Twitter Cards Integration: Optimizes tweets with summary cards, images, and creator/site attributions.
- JSON-LD Structured Data: Automatically generates Google-compliant
WebPageandBreadcrumbListschema.org Data. - Smart Date Handling: Seamlessly integrates with
mkdocs-document-dates(and similar plugins) to correctly utilize creation and update timestamps (supports complex ISO formats like2025-07-23T07:55:08.813591+08:00). - Canonical URLs: Prevents duplicate content penalties by automatically generating correct canonical links.
- Robust Fallbacks: Designed to work even when metadata is missing, ensuring your site always builds without errors.
Installation
pip install mkdocs-advanced-seo
Usage
Add advanced-seo to your mkdocs.yml plugins list:
plugins:
- advanced-seo
Configuration
The plugin is "batteries included" and works out of the box, but you can deeply customize it:
plugins:
- advanced-seo:
url_base: "https://yourwebsite.com" # Highly Recommended for canonical/OG links
# Feature Toggles
use_canonical_url: true
use_open_graph: true
use_twitter_cards: true
add_schema_org_json_ld: true
# Default Values (Fallbacks)
og_type: "website"
og_image: "assets/default-share-image.jpg"
og_locale: "en_US"
# Twitter Defaults
twitter_card_type: "summary_large_image"
twitter_site: "@yourproject"
twitter_creator: "@yourhandle"
# Advanced Integration
support_document_dates: true # Auto-detect dates from other plugins
Frontmatter Overrides
You can control SEO parameters on a per-page basis using standard YAML frontmatter:
---
title: My Awesome Page
description: A custom description for search engines.
image: assets/page-specific-image.jpg
date: 2023-05-20
---
Development and Testing
This project includes a test suite to verify SEO tag generation.
-
Clone the repository.
-
Install dependencies:
pip install -e . -
Run verification:
python verify.py
Support & Contributing
This project is personally maintained by the author.
- Bug Reports: Welcome! Please open an issue if you find a bug or incorrect SEO tag generation.
- Contributions: Pull requests for bug fixes and corrections are appreciated. Major feature requests may not be prioritized due to time constraints.
[!NOTE] This project structure and code were generated by Antigravity (Google DeepMind) under human supervision. Verification and acceptance were performed by the user.
Metadata
Release files for mkdocs-advanced-seo 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mkdocs_advanced_seo-1.0.3.tar.gz | 12.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mkdocs_advanced_seo-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.4 kB
Release files / mkdocs_advanced_seo-1.0.3.tar.gz
| Download URL | mkdocs_advanced_seo-1.0.3.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f079064bf6c4b29f7b3e4f63e83c39b51328b7106786db2e289026f948855cc
|
|
BLAKE2b-256 checksum How to use checksums |
cdd1f0e4ce5d7ea5cd6a74127674fba687cd9c6771ddaf857ab0d6ffecc24bf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 1, 2026.
Transparency logRelease files / mkdocs_advanced_seo-1.0.3-py3-none-any.whl
| Download URL | mkdocs_advanced_seo-1.0.3-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1bc2296a1f74612ebad12a0c131ebe8ae0edf54b98a22e1d60af4a69b00f101d
|
|
BLAKE2b-256 checksum How to use checksums |
1b84c4383c37f7e9121428c8468085c8173ba3e0f8fbd5977d9fc73b6bd61fa5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 1, 2026.
Transparency log