Future PageMotor plugins preserved for later architecture, specification, implementation, and production testing.
Candidate 001 — Content Visibility Manager
Status: Future production candidate.
Capability Statement
Allow a site owner or authorized AI agent to control whether content is publicly discoverable, directly accessible, or authentication-protected without confusing visibility with publication status.
Problem
AI collaboration creates a useful middle state between public and private content. Some pages should remain available at a stable URL so Hermes, GPT, Claude, and authorized collaborators can read them, while search engines and ordinary site navigation should not surface them.
Proposed Visibility Modes
- Public: available by URL, eligible for search indexing, and eligible for site navigation and sitemap inclusion.
- Unlisted: available by URL, readable by AI collaborators, marked
noindex, optionally omitted from navigation, and excluded from XML sitemaps. - Private: authentication or explicit authorization required.
Proposed Capabilities
- Per-content visibility setting.
- Bulk path rules such as
/project/*. - Automatic
<meta name="robots" content="noindex,nofollow">output. - Optional
X-Robots-TagHTTP response header. - XML sitemap exclusion.
- Navigation suppression.
- AI-oriented presets for canonical collaboration pages.
- Clear distinction between publication status and discoverability.
Current Prototype
The active experimental plugin LPM_Project_Noindex applies noindex,nofollow automatically to the /project path and all future descendants. It is a narrow proof of concept, not yet the general production plugin described here.
Open Design Questions
- Should path rules override per-content settings, or should the most restrictive rule win?
- Should
nofollowbe optional for unlisted pages? - How should visibility interact with PageMotor’s XML Sitemap plugin?
- Should private content use PageMotor user permissions, signed links, or both?
- Should AI clients receive a machine-readable visibility signal through the API?