Web Page Tools: Link Extractor, HTML Analyzer & HTML to Image

List every link, image, script and stylesheet in a page, check its headings and meta tags, or turn a block of HTML into a PNG or JPG image. Paste source code or enter a public URL; no sign-up needed.

🔬 Paste HTML Source Code
💡 Paste the full HTML source of a page. The analysis runs entirely in your browser.
📸 HTML to Image
💡 Our server fetches the page's HTML; scripts are removed and the rest is rendered below. Pages built by JavaScript will look incomplete.

What these web page tools do

This page bundles three small utilities for looking inside a page's HTML. The Link Extractor lists every <a> link, image source, external script and <link> element (stylesheets, icons, canonical and preload hints) in the markup, with anchor text, rel values and a follow or nofollow flag. The HTML Analyzer gives a quick on-page review: heading outline, key meta and Open Graph tags, images without alt text and a short list of suggested fixes. HTML to Image renders markup and saves it as a PNG or JPG. It suits SEO spot checks, link audits before publishing, or saving a picture of an email template.

How to use it

  1. Pick a tab: Link Extractor, HTML Analyzer or HTML to Image.
  2. In Link Extractor, either paste source code (View Page Source in your browser, select all, copy) and press Extract Links, or switch to Enter URL, type an address and press Fetch & Extract. Load Sample fills in a demo page.
  3. Narrow the table with the search box or the filter menu (internal, external, nofollow, images, scripts, stylesheets), then use Export as CSV or Copy All URLs.
  4. In HTML Analyzer, paste source and press Analyze HTML, then read the Page Overview, Heading Structure, Meta Tags, Image Analysis, HTML Validity Checks and Recommendations cards.
  5. In HTML to Image, enter a URL or paste HTML, press Render Preview, check the preview, choose Capture as PNG or Capture as JPG, and download the file.

How it works

Pasted HTML is parsed with the browser's built-in DOMParser, which creates an inert document: nothing in it runs and its images are not downloaded. A link counts as internal when it is relative (starting with /, ./ or ../) or when its host exactly matches the fetched page's host, so www.example.com and example.com are treated as different sites; mailto: and tel: links count as external.

In the analyzer, page size is the byte length of the pasted text divided by 1,024 and the word count is a rough whitespace split, so treat both as estimates. The checks cover the doctype, lang, charset, viewport, title (warning above 60 characters), exactly one H1, meta description, skipped heading levels, missing alt text, og:title and canonical. It is not a full HTML validator.

HTML to Image is not a browser screenshot. The HTML is placed in a preview with every <script> element removed (URL mode), and the open-source html2canvas library (version 1.4.1) redraws that document onto a canvas from its DOM and CSS. Content that appears only after JavaScript runs, cross-origin images served without CORS headers, some web fonts and newer CSS features can be missing or look different from the live site. Pasted snippets are inserted into this page to be drawn, so only paste HTML you trust.

What is sent where

The paste modes stay in your browser. The URL modes send the address you type to /api/fetch-page, a Cloudflare Pages Function on this site. It accepts only http and https, refuses localhost, private-network and other internal addresses, re-checks every redirect (up to five), gives up after 10 seconds, accepts only HTML or plain-text responses up to 2 MB, and returns the HTML to your browser without saving it. Once a fetched page is shown in the image preview, though, its images, stylesheets, fonts and embedded frames load directly from their original servers in your browser. The html2canvas script is downloaded from cdnjs.cloudflare.com when this page opens. The page sets no cookies or local storage of its own.

Frequently asked questions

Why does URL mode find fewer links than I see on the live page?

The server fetch returns the HTML as first delivered and does not run JavaScript. Sites that build menus or content in the browser, such as many single-page apps, only expose the links present in that initial HTML. To include the rest, copy the rendered DOM from your browser's developer tools and paste it instead.

Why did a URL fail to load?

Usual causes are the 10-second timeout, a response larger than 2 MB, a non-HTML file such as a PDF, an HTTP error from the site, a redirect to a blocked address, or a site that refuses requests from cloud servers. Pasting the source always works.

Does it check whether links are broken?

No. It lists links but never requests them. Export the CSV and run the URLs through a dedicated link checker, or test a single address with the Website Status Checker.

Will the image match what my browser shows?

Often closely, but not exactly, because the page is redrawn rather than photographed. Simple, self-contained HTML such as a pasted card, table or email template gives the most faithful result.

Related tools