maximus Posted May 16 Posted May 16 Hi everyone, I've been timing my bigger releases with the lunar cycle — new moon for launches, full moon for milestones. Collections shipped on the full moon two weeks ago. Tonight the moon is invisible. The module isn't. 🌑 GitHub: https://github.com/mxmsmnv/Ichiban Quote Status: 0.1.0-alpha. The module is usable on real sites. Start on staging with a database backup. Why Ichiban? Ichiban (一番) is Japanese for "number one" — fitting for an SEO module whose entire purpose is to help your pages rank first. Why another SEO module? There hasn't been a comprehensive SEO module for ProcessWire for a while. Yoast and RankMath solve this for WordPress — both charge $59–$99/year for the full feature set. Ichiban is MIT, free, and built specifically for ProcessWire. What it does Page field — five-tab editor per page: Meta (Google-style SERP preview), Social (OG + Twitter/X cards), Schema, Sitemap, Advanced. Render with echo $page->seo; or enable auto-injection. Source expressions — resolve field values dynamically: title|truncate:70 field:summary|truncate:160 {splash} Admin sections: Dashboard — battery-style site score, health stats, GSC highlights, indexing issues Bulk Editor — edit all meta titles/descriptions in one table, grouped by Critical/Warnings/Healthy Audit — site-wide SEO rule checks, priority cards, CSV export, hookable rule system Redirects — 301/302/307/410/451, regex rules, hit counts, CSV import/export, auto-redirects on slug change Insights — Google Search Console OAuth, metrics, top pages/queries, countries, devices, URL Inspection scan Backlinks — Moz API snapshots, cached history, links/domains/anchors views Schemas — database-backed Schema.org builder, map properties to PW fields Revisions — tracked SEO field changes with restore Cleanup — remove low-value head tags, block spam crawl queries Migration — SeoMaestro → Ichiban converter (15 fields mapped) Reports — scheduled SEO email reports, DOCX export AI — OpenRouter-backed SEO prompt workspace with Context module integration XML Sitemap — built-in generator with hreflang, image sitemap, LazyCron auto-regeneration IndexNow — one-click key generation and verification robots.txt / llms.txt — dynamic serving (companion to RobotsTxt module) Known alpha limits GSC requires a Google OAuth client setup — not plug-and-play Moz free API quota is very small — refresh intentionally Schema Builder is alpha — test before production Auto head injection can conflict with existing theme SEO tags — use manual echo $page->seo; first SeoMaestro migration is experimental — always backup before running Disable debug mode before production Requirements: ProcessWire 3.0.200+, PHP 8.1+ MIT License — free, no Pro tier, no upsell. 16
Peter Knight Posted Sunday at 06:11 AM Posted Sunday at 06:11 AM Congrats Maximus. Looks like a really impressive set of SEO tools. 😀
maximus Posted Monday at 08:44 PM Author Posted Monday at 08:44 PM Thanks for the kind words, Peter! This actually gave me the push to keep going - after several iterations I had almost given up on building something substantial, because every popular CMS already has mature SEO tooling. I went through Yoast, RankMath, SEOmatic, and a bunch of others, took notes on what worked and what didn't, and tried to bring the best of it to ProcessWire. Still a long way to go, but the foundation is there. Looking forward to seeing SEO NEO when it's ready too - good SEO tooling for ProcessWire benefits everyone! 3 1
maximus Posted Monday at 08:49 PM Author Posted Monday at 08:49 PM Also checked BuiltWith — there are 22,000+ live ProcessWire sites out there. Would love to see Ichiban running on as many of them as possible someday. 🙂 4
Peter Knight Posted Monday at 09:44 PM Posted Monday at 09:44 PM 54 minutes ago, maximus said: Also checked BuiltWith — there are 22,000+ live ProcessWire sites out there. Would love to see Ichiban running on as many of them as possible someday. 🙂 True - that would be amazing. But also, think about 22,000 support tickets? 🫣
maximus Posted Monday at 09:52 PM Author Posted Monday at 09:52 PM That's why GitHub Issues exist. 😄 1
Krlos Posted yesterday at 03:32 PM Posted yesterday at 03:32 PM Hi @maximus, I have been testing your module, and so far it’s really impressive! The only problem I’ve found is how to map an image field that lives inside a combo field to an og:image. I’ve tried combo:image, combo.image, and {combo.image}, but none of those have worked. I also want to take the chance to thank you for your recent modules, you’ve been on an impressive productivity streak and personally I’m using several of your modules in production 2
maximus Posted 10 hours ago Author Posted 10 hours ago Hi @Krlos, Thank you so much for testing Ichiban and for the kind words. I really appreciate it. You found a real gap there. Ichiban was resolving top-level image fields, but it was not yet following ProFields-style dot notation for nested fields inside Combo/Table/Repeater Matrix fields. I’ve fixed this in v0.1.1-alpha. For a Combo image field, you should now be able to use: field:combo.image or: {combo.image} I also aligned it with the same dot-notation style used in Collections, so nested ProFields paths are supported too, for example: field:blocks.hero.image field:media.property_photos.photos field:prices.*.image For Open Graph images, the resolved image will still go through Ichiban’s normal OG image handling and create the 1200x630 variation when possible. Thanks again for catching this, and also for the very kind note about the recent modules. It means a lot, especially knowing you’re using some of them in production. 1
Krlos Posted 6 hours ago Posted 6 hours ago Hi @maximus, Thank you for taking my request into consideration, I have updated Ichiban and I can confirm that in my case {combo.field} and combo.field is working as expected and og:image is showing as intended, the only detail is when I’m using combo fields as source for OG image URL, Ichiban doesn’t show the resolved path and social preview doesn’t show up, but it’s still rendering the correct URL in the source code. In pages that have a unique image field {image} shows the correct resolved path and the social preview image
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now