[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fDqb7DK72G2lN8nhEph5PqThDyxjmlu8Rx7Ya22iUqag":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"akumarjain","Azey","https:\u002F\u002Fprofiles.wordpress.org\u002Fakumarjain\u002F",1,0,100,30,94,"2026-04-04T06:45:38.635Z",[14],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":8,"downloaded":20,"rating":8,"num_ratings":8,"last_updated":21,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":25,"homepage":31,"download_link":32,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":33,"fetched_at":34},"serve-md","Serve Markdown","1.0","\u003Cp>AI agents from ChatGPT, Claude, Perplexity, and others read your content to generate answers — but they parse through HTML, JavaScript, and navigation just to reach it. Serve Markdown gives them a direct path: clean Markdown with structured metadata. When a crawler requests it — via an \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> header or a \u003Ccode>.md\u003C\u002Fcode> URL — your site responds instantly. No noise, no guesswork.\u003C\u002Fp>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Cp>Serve Markdown adds three capabilities to your WordPress site:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. Content Negotiation\u003C\u002Fstrong>\u003Cbr \u002F>\nWhen an AI crawler sends \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode>, your site returns Markdown instead of HTML — no URL changes needed.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. .md URL Suffix\u003C\u002Fstrong>\u003Cbr \u002F>\nAppend \u003Ccode>.md\u003C\u002Fcode> to any post or page URL (e.g. \u003Ccode>example.com\u002Fmy-article.md\u003C\u002Fcode>) to get the Markdown version directly.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. Markdown Auto-Discovery\u003C\u002Fstrong>\u003Cbr \u002F>\nEvery page includes a \u003Ccode>\u003Clink rel=\"alternate\" type=\"text\u002Fmarkdown\">\u003C\u002Fcode> tag in the HTML head so crawlers can find your Markdown automatically.\u003C\u002Fp>\n\u003Ch4>What the Markdown Output Looks Like\u003C\u002Fh4>\n\u003Cp>Every Markdown response includes YAML frontmatter with structured metadata followed by your post content. Here is a real example:\u003C\u002Fp>\n\u003Cpre>\n---\nurl: 'https:\u002F\u002Fakumarjain.com\u002Ftextexpander-year-in-review-2025\u002F'\ntitle: TextExpander Year in Review 2025\nauthor:\n  name: Ajay\n  url: 'https:\u002F\u002Fakumarjain.com\u002Fauthor\u002Fakumarjain\u002F'\ndate: '2026-01-05T09:05:00+05:30'\nmodified: '2026-01-10T14:30:06+05:30'\ntype: post\ncategories:\n  - 2025\n  - Year in Review\ntags:\n  - '#ToolsIUse'\n  - Productivity\n  - Remote Work\nimage: 'https:\u002F\u002Fakumarjain.com\u002Fwp-content\u002Fuploads\u002Ftext-expander-year-in-review-2025.webp'\npublished: true\n---\n\n# TextExpander Year in Review 2025\n\nIn my daily work, I need to type the same words and phrases repeatedly...\n\u003C\u002Fpre>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Content Serving\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Content negotiation via \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> header\u003C\u002Fli>\n\u003Cli>\u003Ccode>.md\u003C\u002Fcode> URL suffix on any post or page\u003C\u002Fli>\n\u003Cli>Auto-discovery \u003Ccode>\u003Clink rel=\"alternate\">\u003C\u002Fcode> tag in page head\u003C\u002Fli>\n\u003Cli>Each feature can be toggled independently\u003C\u002Fli>\n\u003Cli>Choose which post types are exposed (posts, pages, custom post types)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Frontmatter and Metadata\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>YAML frontmatter with title, author, date, categories, tags, featured image, and more\u003C\u002Fli>\n\u003Cli>Toggle individual metadata fields on or off\u003C\u002Fli>\n\u003Cli>Add custom static key-value pairs (e.g., \u003Ccode>license\u003C\u002Fcode>, \u003Ccode>language\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Map WordPress custom fields (post meta) into the frontmatter\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Access Control\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Per-post opt-out via a sidebar checkbox in the editor\u003C\u002Fli>\n\u003Cli>Exclude entire categories from Markdown serving\u003C\u002Fli>\n\u003Cli>Exclude entire tags from Markdown serving\u003C\u002Fli>\n\u003Cli>Only published posts are served — drafts and private posts are never exposed\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Crawler Insights\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Request log showing every Markdown request with timestamp, URL, bot name, and method\u003C\u002Fli>\n\u003Cli>Automatic bot detection: ClaudeBot, GPTBot, ChatGPT, OAI-SearchBot, PerplexityBot, Googlebot, Bingbot, Cohere, Meta AI, Bytespider, Applebot, and more\u003C\u002Fli>\n\u003Cli>Stats dashboard: total requests, requests today, unique bots\u003C\u002Fli>\n\u003Cli>Filter log by individual bot\u003C\u002Fli>\n\u003Cli>Configurable retention period with automatic pruning\u003C\u002Fli>\n\u003Cli>One-click log clearing\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Editor Integration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>“Preview Markdown” button in the post editor sidebar\u003C\u002Fli>\n\u003Cli>“View Markdown” link in the Posts and Pages list table\u003C\u002Fli>\n\u003Cli>Meta box shows on all enabled post types\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Performance\u003C\u002Fh4>\n\u003Cp>Markdown conversion only runs when specifically requested — regular visitors see the same HTML pages they always have. The crawler log uses a lightweight custom table with three safeguards against unbounded growth: time-based retention, a row count cap, and a table size cap.\u003C\u002Fp>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>The crawler log stores IP addresses and user-agent strings from Markdown requests. This data stays in your WordPress database and is never sent to external services. You can disable logging entirely, configure a retention period, or clear the log at any time from the settings page.\u003C\u002Fp>\n","Serve Markdown versions of your posts and pages to AI agents and crawlers. Content negotiation, .md URLs, auto-discovery, and crawler logging.",56,"2026-03-15T12:22:00.000Z","6.9.4","6.5","8.1",[26,27,28,29,30],"ai","content-negotiation","crawlers","markdown","seo","https:\u002F\u002Fgithub.com\u002Fajaykj\u002Fserve-markdown","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fserve-md.1.0.zip",null,"2026-03-15T15:16:48.613Z"]