mage2kishan / module-blog
Panth_Blog — SEO-grade blog module for Magento 2 with first-class AEO/AIO support: JSON-LD, llms.txt, IndexNow, hreflang, markdown export, RSS/Atom feeds, and Hyva-first templates. Built to plug into the Panth_* ecosystem.
Package info
github.com/mage2sk/module-blog
Type:magento2-module
pkg:composer/mage2kishan/module-blog
Requires
- php: ~8.1.0||~8.2.0||~8.3.0||~8.4.0
- mage2kishan/module-core: ^1.0
- magento/framework: ^103.0
- magento/module-backend: ^102.0
- magento/module-cms: ^104.0
- magento/module-store: ^101.0
- magento/module-ui: ^101.0
- magento/module-url-rewrite: ^102.0
README
Blog Module for Magento 2 — SEO-Grade Blog with JSON-LD, llms.txt, IndexNow, RSS & Hyva/Luma Templates | Panth Infotech
SEO-grade blog extension for Magento 2 with full JSON-LD schema (BlogPosting, Person, BreadcrumbList, FAQPage, HowTo, CollectionPage, ProfilePage), llms.txt + llms.json integration for AI search, IndexNow auto-pinging, RSS 2.0 + Atom 1.0 feeds, Markdown export endpoint, automatic TL;DR extraction, table of contents, hreflang hooks, and beautifully responsive Hyva (Alpine.js) + Luma (vanilla CSS) storefront templates. Magento 2.4.4 — 2.4.8.
Panth Blog is not a port of a WordPress-style blog into Magento — it is a content engine designed from the ground up for SEO, AEO (Answer Engine Optimization), and GEO (Generative Engine Optimization). Every post emits valid BlogPosting JSON-LD with author Person, breadcrumbs, FAQs, and HowTo schema where applicable. The blog content is exposed to AI crawlers via the Panth_LlmsTxt integration so ChatGPT, Claude, and Perplexity can index your posts; IndexNow notifies Bing and Yandex within minutes of publish; and the storefront ships in Hyva first (Tailwind + Alpine.js) with full Luma fallback styling that does not depend on Tailwind. Built on Panth Core, with native REST + GraphQL APIs and a CLI for import/export.
🚀 Need Custom Magento 2 Development?
Get a free quote for your project in 24 hours — custom modules, Hyva themes, performance optimization, M1→M2 migrations, and Adobe Commerce Cloud.
Visit our website: kishansavaliya.com | Get a quote: kishansavaliya.com/get-quote
Table of Contents
- Why Panth Blog
- Key Features
- Compatibility
- Installation
- Configuration
- URL Structure
- Admin Management
- Screenshots
- JSON-LD Schema (SEO)
- AI Integration (llms.txt + IndexNow)
- RSS / Atom Feeds
- Markdown Export
- CLI Commands
- Cron Jobs
- REST & GraphQL APIs
- FAQ
- Support
- About Panth Infotech
Why Panth Blog
Most Magento blog extensions are a checkbox feature — a CMS-page wrapper with a WYSIWYG editor and a category filter. Panth Blog is built for stores that take content seriously as a growth channel:
- SEO out of the box — every post emits valid
BlogPostingJSON-LD with author, breadcrumbs, FAQs, and HowTo schema. No Yoast / Rank Math plugin needed. - AI-search ready — first-class integration with
Panth_LlmsTxtexposes blog posts to ChatGPT, Claude, and Perplexity via/llms.txt,/llms-full.txt, and/llms.json. - IndexNow auto-ping — published posts notify Bing and Yandex within 5 minutes; manual ping CLI command included.
- Hyva + Luma — the storefront is Hyva first (Tailwind + Alpine.js, no jQuery on Hyva), with a complete Luma stylesheet (no Tailwind dependency) so the design renders identically on both.
- Strict DI, additive schema, idempotent installs — production-grade engineering: no
ObjectManagercalls anywhere, schema changes are backward-compatible,setup:upgradeis safe to re-run. - Markdown import/export — write posts in your editor of choice; YAML frontmatter is supported by the CLI importer and the public
/blog/<slug>.mdendpoint. - Native REST + GraphQL — full CRUD via REST, read-only GraphQL for headless storefronts.
Key Features
Content Management
- Posts — title, URL key, short description, full HTML / WYSIWYG content, featured image, OG image, meta SEO fields, layout template variant, per-store overrides
- Categories — hierarchical (up to 3 levels), banner image, sort order, per-category posts-per-page and template (grid / list / magazine) override, denormalised post-count cache
- Tags — flat, lightweight, auto-created from post-edit form; thin-content guard auto-flips tags with
< Nposts tonoindex,follow - Authors — display name, role, short + long bio, avatar, email, social links JSON,
Person.knowsAbout,Person.alumniOf,Person.sameAsarrays for schema - Comments — threaded (1 level), pending/approved/spam/trash workflow, IP rate limit hooks, captcha hooks (math / Turnstile / hCaptcha / reCAPTCHA), nofollow injection on external links — disabled by default in v1
- Related posts — manual override + auto-suggest based on category overlap + recency
- Multi-store — per-store post visibility, per-store title/description/content overrides
- URL history — slug changes are tracked; 404 hits auto-redirect 301 to the new URL
SEO & Structured Data
- JSON-LD per page type:
/blog→Blog+BreadcrumbList/blog/<slug>→BlogPosting+Person(author) +BreadcrumbList+ optionalFAQPage+ optionalHowTo/blog/category/<slug>→CollectionPage+BreadcrumbList/blog/tag/<slug>→CollectionPage+BreadcrumbList/blog/author/<slug>→ProfilePage+Person+BreadcrumbList
- OG + Twitter meta —
og:type=article,og:title,og:description,og:image(1200×630),og:url,article:published_time,article:modified_time,article:author,article:section,article:tag, full Twitter Card markup - Meta tags — per-post
meta_title,meta_description,meta_keywords,meta_robots,canonical_urloverrides - Title template — admin-configurable with tokens
{{post.title}},{{post.meta_title}},{{post.category}},{{post.author}} - Hreflang group — auto-seeded
blog-postsgroup forPanth_Hreflangintegration - Sitemap integration — contributor class for
Panth_XmlSitemapemits posts, categories, active tags, and authors intositemap-blog-1.xmlwith properlastmodandpriority - HTML sitemap — contributor for
Panth_HtmlSitemapadds a Blog section to the human-readable sitemap - rel=prev/next + canonical URLs on paginated archives
AEO (Answer Engine Optimization)
- TL;DR auto-extraction — first 80–120 words of post body auto-populated to
tldr_summaryon save when admin field is empty; rendered as an<aside data-aeo="tldr">callout above the article - Table of contents — auto-built from
<h2>and<h3>headings with anchor IDs; sticky on desktop, drawer on mobile - HowTo schema — auto-detected from numbered
<h2>steps (e.g.<h2>1. First step</h2>); admin toggle - FAQPage schema — inline FAQ widget integration via
Panth_FaqaddsFAQPageJSON-LD to the post graph - Citation footnotes —
citation_listJSON column rendered as numbered references at post foot; emitted asWebPage.citationschema - Reading time — auto-computed from word count + admin
reading_speed_wpmsetting
AIO (AI Indexing)
- llms.txt integration — when
Panth_LlmsTxtis installed, blog posts are injected into/llms.txtand/llms-full.txtvia the bundledBuilderPlugin; admin toggle +max_postssetting - llms.json integration — structured blog section added to
/llms.jsonfor AI agent indexers - Markdown export endpoint —
/blog/<slug>.mdreturns the post as plain markdown with YAML frontmatter,Content-Type: text/markdown; charset=utf-8 - AI bot allow-list — configurable list of bot user-agents (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, ChatGPT-User) surfaced via
Helper\Config::getAiBotsAllowed()forPanth_RobotsSeointegration
GEO (Generative Engine Optimization)
- IndexNow auto-ping — observer queues post URL on transition to
published; cron drains the queue every 5 minutes; configurable batch size; falls back to direct API POST ifPanth_IndexNowis absent - Per-event flags —
notify_on_publish,notify_on_update,notify_on_deleteadmin toggles - Manual ping CLI —
panth:blog:indexnow:ping --post-id=N
Feeds & Discovery
- RSS 2.0 —
/blog/feed.xmlsite-wide;/blog/feed/category/<slug>.xml,/blog/feed/tag/<slug>.xml,/blog/feed/author/<slug>.xml(per-type toggles) - Atom 1.0 —
/blog/feed/atom.xml - Full or partial content — toggle
<content:encoded>per feed - RFC 822 timestamps,
<dc:creator>,<media:content>,<atom:link rel="self"> - Cached —
panth_blog_feedcache type with configurable TTL; warmed by cron - Feed discovery —
<link rel="alternate" type="application/rss+xml">in every blog page<head>
Storefront UX
- Responsive grid — 1 column under 768px, 2 columns 768–1023px, 3 columns ≥1024px
- Featured post block — first post on page 1 rendered in a 2-column horizontal hero card
- Hyva theme — Tailwind utilities + Alpine.js for TOC, search, subscribe
- Luma theme — comprehensive
pb-*BEM stylesheet (no Tailwind dependency); same visual design as Hyva - Sticky TOC on desktop, drawer on mobile
- Pagination — pill buttons with active state, ellipsis for large page counts, prev/next +
rel="prev/next"head links - Breadcrumbs — Home > Blog > Category > Post, with
BreadcrumbListJSON-LD - Share buttons — Twitter, LinkedIn, Copy URL pill buttons
- Sidebar widgets — Search, Recent posts, Categories, Tag cloud (size-scaled by post_count), Subscribe, RSS link
Developer Experience
- Strict DI — zero
ObjectManagercalls, constructor property promotion throughout - PHP 8.1+ — readonly properties, named arguments, match expressions
- Type-safe contracts —
declare(strict_types=1)on every file; full type hints - REST API —
/V1/panth-blog/posts,/V1/panth-blog/categories,/V1/panth-blog/tags,/V1/panth-blog/authors(CRUD) - GraphQL —
panthBlogPosts,panthBlogPost(id|urlKey),panthBlogCategories,panthBlogTags,panthBlogAuthors(read-only) - CLI commands — 8 commands for URL rewrite rebuild, count refresh, OG image generation, post import/export, IndexNow ping, tag auto-robots, demo seeder
- Cron jobs — 6 jobs: publish-scheduled, refresh-counts, warm-feed-cache, drain-indexnow-queue, archive-stale-drafts, daily heartbeat
- Optional integrations — every cross-module hook is
class_exists-guarded so the module runs cleanly whether or not the sibling Panth_* module is installed
Compatibility
| Requirement | Versions Supported |
|---|---|
| Magento Open Source | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce Cloud | 2.4.4 — 2.4.8 |
| PHP | 8.1.x, 8.2.x, 8.3.x, 8.4.x |
| Hyva Theme | 1.3+ (Tailwind + Alpine.js) |
| Luma Theme | Native support (BEM stylesheet, no Tailwind dependency) |
| Panth_Core | ^1.0 (installed automatically) |
Tested on:
- Magento 2.4.8-p2 with PHP 8.2 + Hyva 1.4.5
- Magento 2.4.8-p2 with PHP 8.2 + Luma
Installation
Composer Installation (Recommended)
composer require mage2kishan/module-blog bin/magento module:enable Panth_Blog bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy -f bin/magento cache:flush
Manual Installation via ZIP
- Download the latest release ZIP from Packagist or the Adobe Commerce Marketplace
- Extract to
app/code/Panth/Blog/in your Magento installation - Run the same commands as above starting from
bin/magento module:enable Panth_Blog
Verify Installation
bin/magento module:status Panth_Blog
# Expected output: Module is enabled
After installation, navigate to:
Admin → Stores → Configuration → Panth → Blog
Admin → Panth Infotech → Blog → Manage Posts
Admin → Panth Infotech → Blog → Manage Categories
Admin → Panth Infotech → Blog → Manage Tags
Admin → Panth Infotech → Blog → Manage Authors
Admin → Panth Infotech → Blog → Manage Comments
Optional: Seed Demo Data
bin/magento panth:blog:seed:demo
This creates 5 sample posts, 5 categories, 5 tags, and 5 authors — useful for trying the module before adding real content. Idempotent: re-running prints "already exists" instead of duplicating.
Configuration
Navigate to Stores → Configuration → Panth → Blog.
| Group | Key Settings |
|---|---|
| General | Enable/disable module, route front name, blog index title + meta description, hero text, posts per page, reading speed (wpm), show reading time, show author bio, show share buttons |
| Display | Show TOC, related posts count, default category template (grid/list/magazine), sidebar widget toggles (categories, tag cloud, search) |
| RSS / Atom Feeds | Enable feeds, posts per feed, include full content in feed, per-category/tag/author feed toggles, cache TTL |
| SEO | Title template with tokens, fallback meta description, tag thin-content threshold |
| AEO | TL;DR auto-extract, HowTo auto-detect |
| AIO | Include in llms.txt, max posts in llms.txt blog section, include in llms-full.txt, Markdown export endpoint, AI bots allow-list |
| IndexNow | Enable IndexNow notifications, notify on publish/update/delete, batch size |
| Comments | Enable comments (default: disabled), auto-approve registered customers, threading, captcha provider, nofollow on external links |
All settings are store-view scoped where applicable; comma-separated lists like the AI bot allow-list are parsed into arrays by Helper\Config.
URL Structure
Clean URLs throughout — no query strings on canonical paths. The custom router resolves all of these:
| Path | Page |
|---|---|
/blog |
Index — featured post + grid |
/blog/page/2 |
Paginated index |
/blog/<slug> |
Single post |
/blog/<slug>.md |
Markdown export of single post |
/blog/category/<slug> |
Category landing |
/blog/category/<slug>/page/2 |
Paginated category |
/blog/tag/<slug> |
Tag landing |
/blog/author/<slug> |
Author profile + their posts |
/blog/search?q=keyword |
Search results |
/blog/feed.xml |
RSS 2.0 site-wide feed |
/blog/feed/atom.xml |
Atom 1.0 site-wide feed |
/blog/feed/category/<slug>.xml |
Per-category RSS |
/blog/feed/tag/<slug>.xml |
Per-tag RSS |
/blog/feed/author/<slug>.xml |
Per-author RSS |
The route front name (blog by default) is configurable in admin. Changing it cleanly switches the entire URL hierarchy — pagination, canonical URLs, feed discovery, and inner-page links all follow.
Admin Management
- Manage Posts —
Panth Infotech → Blog → Manage Posts— full CRUD with featured-image upload, WYSIWYG content, multi-tab form (Content / Categorisation / Publishing / SEO / AEO), mass-delete, status toggle, duplicate-post action - Manage Categories —
Panth Infotech → Blog → Manage Categories— hierarchical tree, banner image, per-category template + posts-per-page overrides - Manage Tags —
Panth Infotech → Blog → Manage Tags— flat list with post-count and robots column - Manage Authors —
Panth Infotech → Blog → Manage Authors— display name, role, avatar, bio, social links JSON,knowsAbout/alumniOf/sameAsschema fields - Manage Comments —
Panth Infotech → Blog → Manage Comments— moderation grid with bulk approve/spam, IP and user-agent visible, status workflow
All admin grids use Magento UI components with sticky header, inline filters, mass actions, per-column sort, bookmark profiles, and configurable column visibility, in the canonical full-width 1-column admin layout.
📸 Screenshots
Admin
Storefront
JSON-LD Schema (SEO)
Every blog page emits Google-valid structured data as JSON-LD. Example for a single post:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BlogPosting",
"@id": "https://example.com/blog/getting-started-with-hyva#article",
"headline": "Getting started with Hyva",
"description": "A practical walkthrough of installing Hyva and shipping your first storefront tweak.",
"image": ["https://example.com/media/blog/featured/hyva.jpg"],
"datePublished": "2026-05-18T12:00:00+00:00",
"dateModified": "2026-05-18T12:00:00+00:00",
"wordCount": 850,
"timeRequired": "PT4M",
"articleSection": "Hyva",
"keywords": "tailwind, magento-2.4.8",
"author": {"@id": "https://example.com/blog/author/jane-doe#person"},
"mainEntityOfPage": {"@type": "WebPage", "@id": "https://example.com/blog/getting-started-with-hyva"}
},
{
"@type": "Person",
"@id": "https://example.com/blog/author/jane-doe#person",
"name": "Jane Doe",
"jobTitle": "Senior Editor",
"knowsAbout": ["Magento", "Hyva", "Performance"]
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/"},
{"@type": "ListItem", "position": 2, "name": "Blog", "item": "https://example.com/blog"},
{"@type": "ListItem", "position": 3, "name": "Hyva", "item": "https://example.com/blog/category/hyva"},
{"@type": "ListItem", "position": 4, "name": "Getting started with Hyva", "item": "https://example.com/blog/getting-started-with-hyva"}
]
}
]
}
FAQPage is added when the inline FAQ widget (Panth_Faq) is present on the page; HowTo is added when numbered H2 steps are detected. All schema emission is gated by admin toggles and validates against Google's Rich Results Test.
AI Integration (llms.txt + IndexNow)
llms.txt
When Panth_LlmsTxt is installed, Panth Blog injects a ## Blog Posts section into /llms.txt and /llms-full.txt via the bundled plugin:
## Blog Posts
Latest articles from this site.
- [Getting started with Hyva](/blog/getting-started-with-hyva) — A practical walkthrough of installing Hyva and shipping your first storefront tweak.
- [Core Web Vitals for Magento in 2026](/blog/core-web-vitals-2026) — INP replaced FID. Here is what to measure and how to fix the common Magento regressions.
...
The number of posts surfaced is configurable via panth_blog/aio/llms_txt_max_posts (default 50). When disabled per store via panth_blog/aio/llms_txt_include=0, the section is silently omitted.
A structured blog section is also added to /llms.json for AI agent indexers — each entry includes url, label, summary, and published_at metadata.
IndexNow
The Observer/PostSaveAfter.php observer queues post URLs into the panth_blog_indexnow_queue table when a post transitions to published. The Cron/NotifyIndexNow.php job drains the queue every 5 minutes, in configurable batches, with Panth_IndexNow integration or direct API POST fallback.
Manual ping:
bin/magento panth:blog:indexnow:ping --post-id=2
RSS / Atom Feeds
Panth Blog ships six feed endpoints, all RFC-compliant and cached via the panth_blog_feed cache type:
| Endpoint | Format | Scope |
|---|---|---|
/blog/feed.xml |
RSS 2.0 | Site-wide latest N posts |
/blog/feed/atom.xml |
Atom 1.0 | Site-wide latest N posts |
/blog/feed/category/<slug>.xml |
RSS 2.0 | Per category |
/blog/feed/tag/<slug>.xml |
RSS 2.0 | Per tag |
/blog/feed/author/<slug>.xml |
RSS 2.0 | Per author |
/blog/feed/comments.xml |
RSS 2.0 | Latest 25 approved comments (when comments enabled) |
Each <item> includes <title>, <link>, <guid isPermaLink="true">, <description> (CDATA), optional <content:encoded>, <pubDate> (RFC 822), <dc:creator>, <category>, optional <media:content>. Standard namespaces: xmlns:content, xmlns:dc, xmlns:media, xmlns:atom.
Cache TTL, posts-per-feed, full vs partial content, and per-type feed toggles are all admin-configurable.
Markdown Export
Every published post is reachable as plain markdown at /blog/<slug>.md with Content-Type: text/markdown; charset=utf-8. The output includes YAML frontmatter:
--- title: "Getting started with Hyva" url_key: getting-started-with-hyva published_at: 2026-05-18 12:00:00 --- > A practical walkthrough of installing Hyva and shipping your first storefront tweak. ## Why Hyva Hyva is a Tailwind-based front-end for Magento that replaces the Luma + RequireJS stack with a leaner runtime. ...
Disable per store via panth_blog/aio/markdown_export_enabled=0.
CLI Commands
# Rebuild URL rewrites for all blog entities bin/magento panth:blog:url-rewrite:rebuild # Recompute denormalised post counts (categories + tags) bin/magento panth:blog:counts:refresh # Export a post as markdown to stdout bin/magento panth:blog:post:export --post-id=2 --format=markdown > post.md # Import a markdown file with YAML frontmatter as a new post bin/magento panth:blog:post:import path/to/post.md # Queue an IndexNow ping for a single post bin/magento panth:blog:indexnow:ping --post-id=2 # Apply tag thin-content robots flip globally bin/magento panth:blog:tags:auto-robots # Generate OG images (stub in v1 — wired for future Python integration) bin/magento panth:blog:og-images:generate [--post-id=N] # Seed 5 demo authors / categories / tags / posts (idempotent) bin/magento panth:blog:seed:demo
Cron Jobs
| Job | Schedule | Purpose |
|---|---|---|
panth_blog_publish_scheduled |
every 5 min | Flip scheduled posts to published when published_at <= NOW() |
panth_blog_refresh_post_counts |
nightly 03:30 | Recompute denormalised post counts on categories + tags; apply tag thin-content robots |
panth_blog_warm_feed_cache |
hourly :15 | Regenerate RSS / Atom feeds and store in panth_blog_feed cache |
panth_blog_notify_indexnow |
every 5 min | Drain IndexNow queue (publishes accumulated since last run) |
panth_blog_archive_stale_drafts |
weekly Sun 05:00 | Move drafts older than 180 days to archived |
panth_blog_heartbeat |
daily 08:00 | Install reporter heartbeat (suppressed when Panth_Core consolidates pings) |
REST & GraphQL APIs
REST endpoints
GET /V1/panth-blog/posts — list (anonymous)
GET /V1/panth-blog/posts/:id — single by ID (anonymous)
POST /V1/panth-blog/posts — create (admin token)
PUT /V1/panth-blog/posts/:id — update (admin token)
DELETE /V1/panth-blog/posts/:id — delete (admin token)
# Same shape for /V1/panth-blog/categories, /V1/panth-blog/tags, /V1/panth-blog/authors
GraphQL queries (read-only)
{
panthBlogPosts(filter: {category_url_key: "hyva"}, pageSize: 10, currentPage: 1) {
items {
post_id
url_key
title
short_description
featured_image
published_at
reading_time_min
author_id
}
total_count
page_info { current_page page_size total_pages }
}
panthBlogPost(urlKey: "getting-started-with-hyva") {
post_id title content tldr_summary word_count
}
panthBlogCategories { category_id url_key name post_count }
panthBlogTags { tag_id url_key name post_count }
panthBlogAuthors { author_id url_key display_name role short_bio }
}
FAQ
Q: Does Panth Blog work without Hyva?
A: Yes. Luma is fully supported — the storefront ships a complete pb-* BEM stylesheet that does not depend on Tailwind. Visual design is identical on both themes.
Q: How does Panth Blog compare to Mirasvit / Magefan Blog? A: Panth Blog is built SEO-first with native JSON-LD (BlogPosting + Person + Breadcrumb + FAQPage + HowTo), llms.txt + IndexNow integration, and strict DI engineering. It does not bundle WordPress-import or comment-spam-protection scaffolding that most stores never use.
Q: Can I disable the AI features?
A: Yes — every AIO/AEO feature has an admin toggle. Set panth_blog/aio/llms_txt_include=0 to remove the blog section from /llms.txt; disable markdown export at panth_blog/aio/markdown_export_enabled=0; toggle HowTo schema at panth_blog/aeo/howto_auto_detect=0.
Q: What happens if I change the route front name from blog to articles?
A: All URLs (/articles, /articles/page/2, /articles/category/..., /articles/feed.xml, etc.) work immediately after a cache flush. Pagination, canonical URLs, feed discovery, JSON-LD @id fields, and breadcrumbs all follow the new front name dynamically.
Q: Are comments production-ready?
A: The database schema, repository, observer, and admin moderation grid are production-ready. The frontend submission form ships disabled by default. Rate-limiting and captcha provider hooks are scaffolded — see Controller/Comment/Submit.php for the integration points.
Q: Does Panth Blog work with Adobe Commerce Cloud? A: Yes. The module is composer-installable, uses declarative schema, has no environment-specific file writes, and respects all Magento Cloud read-only filesystem constraints.
Q: Can I migrate existing blog content into Panth Blog?
A: Yes via the CLI: bin/magento panth:blog:post:import path/to/post.md accepts YAML frontmatter for title, url_key, author, status, published_at, short_description, tags, and categories. Run it in a loop from your existing platform's export.
Support
- GitHub Issues — github.com/mage2sk/module-blog/issues
- Email — kishansavaliyakb@gmail.com
- Custom development quote — kishansavaliya.com/get-quote (24-hour response)
- Upwork — Hire Kishan Savaliya — Top Rated Plus, 100% Job Success
About Panth Infotech
Panth Infotech is a Magento-focused development agency led by Kishan Savaliya — Adobe-Certified Magento Developer with 10+ years of experience and Top Rated Plus status on Upwork. We build custom modules, Hyva themes, performance optimizations, and Adobe Commerce Cloud deployments for stores around the world.
Other Panth modules: Panth_Core, Panth_Faq, Panth_XmlSitemap, Panth_HtmlSitemap, Panth_LlmsTxt, Panth_IndexNow, Panth_Hreflang, Panth_Crosslinks, and more.
Visit our website: kishansavaliya.com | Get a free quote: kishansavaliya.com/get-quote
License
Proprietary © Panth Infotech. All rights reserved. See LICENSE.txt for details.








