/ ← All tools / Markdown Generator
Enter a URL to convert …p
Mode:
Full mode keeps the complete page including navigation, footer and structured data summary.

Tick the sections you want in the output. Everything unticked is removed.

Markdown output
Three modes and where the line is
Full mode (any public URL): fetches the page and converts everything to Markdown, including navigation, footer, sidebar, article content and a clean summary of any structured data found in JSON-LD. No element is removed except scripts, styles, tracking frames and noscript blocks, which are never content in any definition. Use Full mode when you want a complete archive, a documentation snapshot, or an input to a system that will filter the content itself.

Stripped mode (any public URL): removes all chrome and keeps only the page's real content. Navigation menus, site headers, footers, pop-up modals, cart drawers, cookie banners, scrolling banners, skip-links and tracking frames are all removed. What remains is the article, the headings, the lists, the images, the tables and the code blocks. This is the mode for AI ingestion, llms.txt and llms-full.txt preparation, because AI models benefit from content without surrounding noise, and adding navigation only increases token consumption without improving comprehension.

Custom mode (signed-in users): presents 16 tick-box groups covering every major category of page element. Tick what you want in the output; untick what you do not. Custom mode is for cases where neither Full nor Stripped fits exactly, for example keeping structured data and images but dropping navigation and the footer, or including code blocks but not embeds. The same base cleanup runs in Custom mode as in every other mode: tracking frames, noscript blocks, scripts and styles are always removed.
Why Markdown and why it matters for AI
AI models parse Markdown far more reliably than raw HTML. When you feed a page in its raw HTML form, the model processes hundreds of lines of CSS classes, JavaScript fragments, navigation menus and tracking code before reaching the content. That noise degrades comprehension, inflates token consumption and makes the model less likely to cite your content accurately.

A clean Markdown version removes that overhead entirely. The content structure is preserved through heading hierarchy, paragraph flow, lists and tables, but the surrounding machinery is gone. The result is a format that AI models read at their most accurate and that costs far fewer tokens to process.

For llms.txt and llms-full.txt workflows: the llms.txt standard points AI agents at a site's most useful content, while llms-full.txt contains the actual text of those pages in Markdown. The Stripped mode output of this generator is a direct input to that workflow: run each important page through Stripped, review the output, and those files become your llms-full.txt entries.

For RAG pipelines and AI search: Retrieval-Augmented Generation systems chunk content and embed it for vector search. Clean Markdown chunks more predictably and embeds more semantically than raw HTML. And pages with clearly structured content are more extractable by AI search engines, which means more citations. This tool is designed to work alongside the AEO Checker, which tests how extractable your content already is, and the AI Schema Generator, which improves how AI engines identify your entities.
How the conversion handles images, tables, code and video
Each element type has a defined conversion behaviour so the output is predictable across any site.

Images are converted to standard Markdown image syntax with the alt text preserved. If the image carries a descriptive alt attribute, that becomes the Markdown alt text; if the alt attribute is absent or empty, the image link is still included so no reference is silently dropped. Decorative images with empty alts are included as empty-alt links, which RAG systems and documentation tools handle correctly.

Tables are converted to Markdown table format with pipe-separated columns and a header separator row. The semantic structure of the table is preserved so downstream tools can parse columns and rows correctly.

Code blocks are preserved in fenced Markdown syntax. Language hints from CSS class attributes on code elements (class="language-python", class="language-javascript" and similar) are carried into the fenced block opener, so syntax highlighting in documentation tools still works from the converted output.

Video embeds present a specific challenge: the raw iframe that embeds a YouTube or Vimeo player is infrastructure rather than content, but the video may be the point of the section. The generator extracts the poster image where present and the source URL, and renders both as a Markdown link, so the output acknowledges the video and links to it rather than dropping it or including a raw embed block.

Structured data in JSON-LD script blocks is summarised into a readable block at the top of the Full-mode output. If the JSON-LD is malformed or cannot be parsed (a situation found on a real BigCommerce product page during testing), the summary is quietly skipped and the rest of the conversion completes normally. The error is logged server-side only; it never appears in the user's output.
Ask an AI about this tool
Open this page in your preferred AI and ask it directly about the Markdown Generator: how to use Stripped mode for llms.txt preparation, how to set up a Custom conversion for a documentation pipeline, or how to interpret the output for a specific site type.

Frequently asked questions

A website to Markdown generator fetches a public web page and converts its HTML into clean, well-structured Markdown: a plain text format that preserves headings, paragraphs, lists, links, images and tables without any of the visual styling, scripts or navigation menus that web browsers render but that add noise when content is read programmatically. Markdown matters for AI because large language models parse it far more reliably than raw HTML. When you feed a page in raw HTML, the model processes hundreds of lines of CSS classes, JavaScript fragments, navigation menus and tracking code before reaching the content. That noise degrades comprehension, increases token consumption and makes the model less likely to cite your content accurately. A clean Markdown version removes all of that overhead. This is also why Markdown is the format of choice for llms.txt and llms-full.txt files, the emerging standard for helping AI agents understand what a site contains and how to read it.

Full mode keeps everything on the page: navigation, footer, sidebar, article content and a structured data summary. It is a complete record, useful for archiving or studying the whole page. Stripped mode keeps only the page's real content: article body, headings, lists, images and tables, with navigation menus, footers, cookie banners, cart drawers, tracking frames, skip-links and other furniture removed. It is the mode for AI ingestion and llms.txt preparation. Custom mode gives you 16 tick-box groups covering every major category of page element, so you can include exactly what you need and exclude exactly what you do not. All three modes share the same base cleanup: tracking frames, noscript blocks, scripts and styles are removed in every mode before conversion begins.

Clean Markdown is the foundation of content that search engines can read and rank correctly. When a page's content is entangled with scripts, navigation and tracking code, search engine crawlers have to work harder to extract the meaningful text, and the signal quality of your content drops. Stripped mode produces a version of your page that contains only the headings, paragraphs, lists, images and links that carry your SEO value — no noise, no chrome, no plumbing. You can use that output to audit whether your content structure is sound: are headings in the right order, is the primary keyword appearing in the right density, is content that matters appearing early. A Markdown export also makes it easier to move content between platforms without losing structure, since Markdown renders correctly in any CMS that supports it, and you can see immediately whether a page's SEO substance would survive a migration.

Answer Engine Optimisation is about making your content the source an AI picks when it answers a question. AI answer engines — including Perplexity, ChatGPT's browse mode, Google AI Overviews and others — fetch and read your pages in real time. They extract answers from the content they find. A page whose content is cleanly structured in a logical heading hierarchy, with short direct paragraphs that answer specific questions, is far more extractable than one where the same content is buried in layers of navigation, scripts and tracking code. Stripped mode gives you the clean version of your page that an AI answer engine is effectively seeing, so you can judge how extractable your answers are. If the Stripped output is hard to read, the AI engine is having the same difficulty. If the structure is clear and the answers are obvious in the plain text, you are well positioned for AEO.

Generative Engine Optimisation is about making your content citable by large language models and generative AI systems. Models that generate answers with citations draw on content they can parse clearly and attribute accurately. The two things that most help GEO are clean content structure and proper entity marking. Stripped mode provides the clean structure: a model reading your Stripped output can identify your entities, your claims and your evidence without wading through navigation and scripts. For entity marking, the Markdown Generator pairs naturally with the Schema Generator on this platform: the schema identifies your entities to AI engines, while the clean Markdown makes your content legible to them. Together they give generative engines both the signal (who you are, what you cover) and the substance (what you actually say about it). The Markdown Generator also underpins llms.txt and llms-full.txt preparation, which are the direct mechanism for making your content available to AI agents in the format they are designed to read.

The llms.txt standard gives AI agents a structured index of a site and points them to the files most worth reading. The llms-full.txt file contains the actual content of those pages, and Markdown is the expected format. A Markdown generator that produces clean output is the direct input to an llms-full.txt workflow: run each important page through Stripped mode, review the output, and those files become the content entries in your llms-full.txt. Beyond llms.txt, clean Markdown improves AI citation because models quote more accurately from clean Markdown than from raw HTML, and pages with clearly structured content are more extractable by AI search engines.

Navigation removal in Stripped mode works by pattern across the way real sites build their menus, rather than by targeting one specific site's markup. The standard HTML navigation element is removed, but many sites build menus without it. The generator targets the page-level header element scoped to a direct child of the body (so in-article headers survive), containers whose names contain site-header, mega-menu or header-nav, and elements marked with the navigation accessibility role or with names like menu-drawer, mobile-menu or dropdown-menu. One deliberate constraint: the word menu alone is never matched, because a restaurant menu or services list is genuine content. This is why the generator works across WordPress, Shopify, Squarespace, Webflow and the other platforms in the test suite without per-site configuration.

The generator works on any publicly reachable web page. It does not require a particular CMS or template. Sites that require a login are not supported in URL mode; for those, paste mode lets you copy the page's HTML directly. Private or internal IP addresses are rejected. A small number of sites block server-side fetching through aggressive bot-detection; in those cases the tool reports that the page could not be fetched and suggests paste mode. It was tested on 219 pages across 11 CMS platforms including Shopify stores, Magento sites, Joomla installations, BigCommerce product listings and sites built on Webflow, Squarespace, WordPress, Wix, Drupal, Ghost and HubSpot.

No. Removals target navigation-specific patterns and accessibility markers, never broad words. The word menu alone is deliberately never matched, so a restaurant menu or a services list survives. Pop-ups and overlays are removed by their accessibility role or is-modal attribute, which are never applied to page content. Scrolling banners are removed by names like marquee, ticker or scrolling-text, which are always decorative. Skip-links are removed by class, link text beginning with Skip to, or exact phrase match on bare elements. Every removal targets infrastructure and furniture that a human never reads as content.

The generator catches the parse failure, logs it server-side, skips only that page's structured data summary, and produces all the content correctly. On a real BigCommerce product page with invalid JSON-LD encountered during testing, the tool still returned the complete page content with no error message in the user's output. Broken structured data on one site never affects conversions of other pages. The correct behaviour when encountering malformed markup is to tolerate it, take what can be taken, and never let one site's error spoil the conversion.

Yes. Since Markdown cannot play video, the generator captures the video's poster image and a link to its source URL, so the video is represented in the output rather than silently dropped. An AI model reading the Markdown output can see that a video was present at that point in the page and follow the link to it. This applies to YouTube and Vimeo embeds and to other iframe-based video players. The raw embed iframe itself is removed in the base cleanup as iframes are always infrastructure, but the video's content reference is preserved through the poster and source link.

The free tier allows a set number of conversions and is available without a sign-in. Signed-in users receive a higher allowance. Paid tiers from Bronze upwards offer progressively larger allowances and additional features including saved history and PDF export. The tool runs pay as you go with no subscription required: top up credit and use what you need. If you are converting a large number of pages for an llms-full.txt file or a documentation project, the higher tiers are designed for that use case.

Transparency report: 11 CMS platforms, 219 pages, 12 issues found and fixed

The Markdown Generator was tested systematically across 11 CMS platforms and 219 real pages. Every issue found during testing is documented here in plain English: what appeared to be wrong, what was actually happening, what the fix was, and why the fix targets the pattern rather than the individual site. Nothing is glossed over, including two cases where the first guesses were wrong.

The 11 platforms tested: WordPress, Shopify, Squarespace, BigCommerce, Wix, Webflow, Joomla, Drupal, Magento, Ghost, HubSpot. 219 pages total. Zero chrome leaks in the final release.

01

Custom mode was accidentally locked to administrators

Fixed

Custom mode, which gives users 16 tick-box groups to select exactly what sections to include, was locked behind an administrator check that was never actually requested. The lock existed in three separate layers: a disabled, greyed-out button on the page; an email check in the page logic that only unlocked it for one specific administrator address; and a server-side route guard that refused non-administrators. Any one of the three layers would have been enough to block a normal user. The fix rewired the button to the same shared free-tool opener that every other tool on the page uses, removed the email check from the page logic, and dropped the administrator guard from the server endpoint. The end state is that any user can open Custom mode with all 16 tick-box groups, charged exactly once on Generate, through the same mechanism every other free tool already uses. No new routes were added or removed; the only change was the removal of the administrator restriction.

02

The 404 page that looked like a bug

False alarm, resolved

A test result appeared to show that Stripped mode was catastrophically broken: a WordPress page of 118 kilobytes came out as just a few hundred bytes of Markdown. A result like that demands to be taken seriously. Looking at what had actually happened revealed that the web address being tested was dead. It no longer pointed at a real article; it returned WordPress's standard page-not-found error, which has almost nothing on it. The 118 kilobytes were almost entirely the site's framework: its scripts, styles, navigation and footer. The actual readable content on that error page amounted to a couple of sentences. Stripped had done precisely the right thing. It stripped the framework and converted the tiny amount of real content that remained. The tool was never at fault; the test input was. The same broken test did incidentally reveal one genuine issue: a Google Tag Manager tracking frame leaking into the output, which is addressed in the next section.

03

Tracking frames leaking into the output

Fixed

A Google Tag Manager tracking frame was appearing right at the top of the Markdown output in all three modes. It is plumbing: a hidden frame whose only job is to let a tag manager run when JavaScript is switched off. The converters already removed scripts and styles but not iframes or noscript blocks. The tag manager hides its frame inside a noscript block, so both element types needed adding to the removal step. The fix adds noscript and iframe to the cleanup call in all three modes, before any conversion runs. Removing these is completely safe, because a tracking frame and a noscript fallback are never the page's real content. The removal runs before the three modes diverge, so all three produce output that starts with the first real content element.

04

Site menus and headers leaking in

Fixed

On a number of sites, the header and navigation menus appeared in the Stripped output. The converters already removed the standard HTML navigation element, but many sites build their headers and menus from ordinary containers with names like mega-menu, site-header or header-nav, or mark them only with an accessibility role. Those do not announce themselves as navigation in the way the converter was looking for. The fix targets reliable patterns that identify navigation regardless of the specific site: the page-level header element (scoped to a direct child of body so in-article headers survive), containers whose names contain site-header, mega-menu or header-nav, and elements marked with the navigation accessibility role or with names like menu-drawer, mobile-menu or dropdown-menu. The word menu alone is deliberately not matched, because a restaurant's menu is genuine content. This applies to Stripped mode only; Full keeps all furniture, Custom makes it a tick group.

05

The scrolling banner that printed itself twice

Fixed

On one site, a phrase appeared doubled in the Markdown output. Duplicated text makes the output look careless and, if fed to an AI, distorts what the page actually says. The cause was a decorative scrolling banner: the kind of ticker that slides text across the screen in a continuous loop. To make the loop seamless, sites duplicate the text in the underlying markup. The converter, reading the markup rather than watching the animation, printed both copies. The first two attempts at a fix guessed the cause was a drop-down menu and removed that instead. Both failed. The real culprit was found only by inspecting the live page: the text sat inside an element explicitly marked as scrolling-text. The fix removes decorative scrolling banners by pattern: names containing scrolling-text, marquee, ticker or scrolling-banner. These elements are always decorative and always duplicate their text as part of how the scroll works. Two wrong guesses cost two deploys; a single inspection found the correct class immediately.

06

Pop-ups, cart drawers and cookie modals

Fixed

Some sites, shops in particular, leaked pop-up dialogs into the Stripped output: slide-out shopping carts, cookie or location-consent boxes. Many of these overlays are built with utility-style CSS that carries no obvious pop-up class name. The reliable signal is the accessibility marking: even when a pop-up has no useful class name, it must declare itself as a dialog for screen-readers to handle it correctly. So these overlays carry a dialog role or an is-modal attribute even when their class names are meaningless. The fix targets those accessibility markers plus the structural names that shops use for cart and consent drawers. The combination catches the overlays whether or not they were given a helpful class name: the accessibility markers catch the generically-styled ones, and the structural names catch the shop-specific drawers. A dialog role marks an overlay by definition and is never used for page content, so removing it is safe.

07

Skip-links, including the invisible ones

Fixed

Skip to content links leaked into the output. These are keyboard-navigation shortcuts that are useful on a live page but are not content, so in a clean conversion they do not belong. Catching all of them took three layers, each added because the previous ones missed a real case. Some skip-links carry a helpful name like skip-link or skip-to-content and a rule keyed on that name catches them. Many have no useful name and can only be recognised by their text: any link whose words begin Skip to. The hardest case, found on Magento, wraps the skip text in a bare nameless element that is not even a link. It has no skip-link class, no link address, nothing the first two layers look for, just the words sitting in a plain span. The three layers together catch every variant found across all platforms: by name, by link text starting with Skip to, and by exact phrase match on a bare element anchored start to end so only the standard accessibility phrases match and real content is safe.

08

Ordered lists: a false alarm and one real edge

Confirmed safe

A test suggested numbered lists were being mishandled. The mismatch was mostly a false alarm. Several site builders, Squarespace prominent among them, use numbered-list markup to build things that are not visible numbered lists: post carousels, sliders, category blocks. These frequently duplicate their slide text for the carousel to loop. When the converter reported more numbered-list items than the eye expected, it was accurately counting real numbered-list markup that the site used to build a slider. The count was faithful to the markup. There is one genuine edge worth documenting: when a numbered list is nested inside a bullet point inside another list, the inner numbering can be absorbed into the parent bullet in Stripped mode. The content is all preserved; only the inner numbering formatting is affected in this uncommon nesting pattern. The change needed to fix it sits in the shared list-rendering logic that every conversion depends on, so it was documented honestly as a known edge rather than shipped as a regression risk for a narrow cosmetic gain.

09

Broken structured data, handled gracefully

Confirmed safe

Many real sites ship structured data in JSON-LD that is invalid: malformed, with a syntax error that makes it unreadable. The test used a genuinely broken BigCommerce product page whose JSON-LD contained a value that was not properly formatted. The generator did exactly the right thing. It attempted to read the structured data, recognised it could not be parsed, quietly skipped the summary for that one page, and produced all the rest of the Markdown correctly. The parse error is written to the server log only. It never appears in the user's output. The correct behaviour when meeting broken structured data is to tolerate it, take what can be taken, and never let one site's malformed markup spoil the conversion of its content.

10

Video embeds: poster and source link preserved

Fixed

Video embeds present a specific challenge. The raw iframe that embeds a YouTube or Vimeo player is infrastructure: it is removed in the base cleanup because iframes are removed from all modes. But the video itself may be the content of the section. Silently dropping a video embed leaves a gap in the converted output that would be confusing for anyone reading or processing it. The generator handles video embeds by extracting the poster image where present and the source URL, and rendering both as a Markdown link so the output acknowledges the video and links to it. This means video content is represented in the Markdown output without requiring an embed iframe that an AI model could not display anyway.

11

Table conversion across varied markup patterns

Fixed

HTML tables appear in a wide variety of markup patterns across real sites: some use standard thead and tbody, some place header cells in the first row of tbody without a thead, some use colspan and rowspan. The converter handles the common cases, extracting column headers from the first row and converting subsequent rows to pipe-separated Markdown table rows. Tables using colspan or rowspan are flattened to their text content with a note indicating that the table structure could not be preserved, which is preferable to silently producing a malformed Markdown table. The conversion is correct for the standard two-dimensional table structures that appear most frequently in real site content.

12

Passive testing: 219 pages across all 11 platforms

Confirmed safe

The 12 categories above were found and fixed during systematic testing across 219 pages on 11 CMS platforms. After all fixes were in place, the full test suite was run again across all 11 platforms. Zero chrome leaks were found in the final release. All three modes produce output containing only what they are defined to contain. The Stripped mode output on every platform tested starts with the first real content element of the page, contains no navigation, no tracking frames, no pop-up modals, no skip-links and no scrolling banner duplicates. Full mode output on every platform contains the complete page with tracking plumbing removed. Custom mode operates correctly with all 16 tick groups available to all users. The transparency report is published here in full so that anyone using the tool can read exactly what was found, what was done, and why.

Your conversion history

Your past Markdown conversions, saved to your account so you can retrieve and compare them over time.

Loading…

📄

Sign in

Create a free account to use this tool.

Sign in Create account
💬 Got a problem?

AI & LLM files

llms.txt llms-full.txt llms.md llms-ctx.txt llms-ctx-full.txt ai.txt identity.json ai-permissions.json

Related Guides: Markdown Generator Guide  ·  llms.txt Guide  ·  AEO Guide  ·  AEO Checker  ·  AI Schema Generator

About AI Web Page SEO

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.