Home › Blog › LinkHarvest Guides › Copy Links as Markdown, HTML or JSON Lines
EN中文日本語DeutschESFR

Copy All Links From a Page as Markdown, HTML or JSON Lines (2026)

Selecting text on a page is easy; getting the links out of it in a usable shape is not. Drag a paragraph into a document and every anchor collapses into blue underlined words with the destination stripped away.

This guide is about the gap between the links are on the page and the links are in my clipboard, formatted the way the next tool expects. VKT LinkHarvest v1.3.1 scans every <a> on the page, keeps watching for new ones, lets you narrow the list, then copies the result as plain URLs, Markdown, HTML or JSON Lines. Below: what each format is for, and when a file beats the clipboard.

The real problem: the label matters as much as the URL

A bare list of https addresses is complete and almost useless. Nobody can tell which line is the pricing page, which the changelog, and which the same article linked twice.

By hand it is a four-field loop per link: right-click, copy link address, switch window, paste, go back for the title, type it. Forty links is a quarter of an hour with a predictable error rate.

Select-all into a text editor drags in navigation, cookie banners and footer boilerplate — or, on a JavaScript-rendered page, link text with no URLs.

Four copy formats, four different jobs

The dropdown has four entries. None is premium, and switching re-renders the scan you already have.

FormatWhat you getWhere it goes
URLOne bare link per lineScripts, crawlers, bulk paste into a link checker
MarkdownA link list using the anchor text as the labelNotes, README files, issues, wikis
HTML<a href="..."> elementsEmail, CMS rich-text fields, newsletters
JSON LinesOne JSON object per linePrograms, spreadsheet import, small internal tools

The destination picks the format: script → URL, human reader → Markdown, rich-text field → HTML, line-by-line parser → JSON Lines.

Markdown and HTML keep the anchor text as the label — the part a normal copy destroys, and the difference between a list someone reads and one they close.

The full workflow, six steps

  1. Open the page and click the toolbar icon — or right-click and choose Extract page links, which scans without opening the popup.
  2. Every <a> is collected. A MutationObserver keeps listening afterwards, so links added by an SPA route change, infinite scroll or a lazy-loading tab join the list as they appear.
  3. Filter by keyword include or exclude, internal versus external, real anchors versus javascript: pseudo-links. Each URL also shows its occurrence count, so a link repeated in nav and footer is one row.
  4. Save the combination as a named recipe if you will need it again.
  5. Choose the copy format.
  6. Copy the filtered result, or tick rows and open them in background tabs.

Scan results exist in memory only. Close the page and they are gone: no file is written, nothing is sent anywhere.

Saved filter recipes: configure once, reuse forever

Most filtering is repetition. For a documentation site the useful recipe is roughly: exclude /tag/ and /author/, internal links only, no anchors, no javascript: links. Four controls, reset on every page.

A recipe stores that combination under a name. Scan, pick the recipe, and the list is already narrowed. It holds filter state rather than results, so it works on a page you have never scanned.

Two honest limits. Recipes live in local storage on that machine, so they do not follow you to a second computer, and clearing site data removes them. A recipe also narrows the current list; it does not crawl for new URLs.

Batch opening: what the interval options mean

Tick a few rows, or use the current filter result, and LinkHarvest opens them in background tabs one after another. The interval dropdown offers 0, 300 (the default), 800 and 1500 milliseconds.

The spacing is not only about your browser. Twenty simultaneous requests to one host look like a scraper, and the failure mode is rarely an error — it is a blank tab or a login screen.

When a file beats the clipboard

The clipboard is for the next thirty seconds; a file is for next week.

What is paid and what is not. Scanning, filtering, search, copying in all four formats, TXT and JSON export, and batch opening are free with no account and no licence key. The paid tier is Link Audit — 100 links per run free, up to 2,000 with a licence: US$9.99 one-time, or US$2.99 per month on the subscription plan. Chrome Web Store · Edge Add-ons.

No link limit, no trial timer, no account wall: the free tier is the working tool, not a demo of it.

Why not just use an online link extractor?

Paste-a-URL services are convenient until the page is not public. Their server fetches the URL, which brings three limits at once:

The extension reads the DOM of the tab you are already on, with permissions limited to the active tab, scripting, storage and the context menu. Nothing is uploaded: results sit in memory and clear when the page closes, and only saved recipes and interface preferences persist, in local storage on your machine.

Frequently asked questions

Do I have to pay to copy links?

No. All four copy formats — URL, Markdown, HTML and JSON Lines — are free, with no account and no licence. CSV export is free too — the paid tier is Link Audit: 100 links per run free, up to 2,000 with a licence.

Can I copy links as Markdown with their titles?

Yes. The Markdown format outputs a link list that uses each anchor's visible text as the label, so you get readable entries instead of bare URLs.

Can it capture links that load after scrolling?

Yes. A MutationObserver watches the page after the initial scan, so links added by infinite scroll, a tab switch or an SPA route change are appended in real time.

Will batch opening dozens of tabs freeze the browser?

Tune the interval: 300 ms is the default, 800 ms suits heavy pages, 1500 ms is safest for sites that throttle parallel requests. 0 ms only makes sense for a few links.

What is paid in LinkHarvest?

The paid feature is Link Audit — checking the HTTP status of your links. You get 100 links per run free; a licence raises it to 2,000 per run and adds batch continuation plus a CSV audit report with status codes, redirect targets and response times. CSV export itself stays free: UTF-8 with a BOM, so Excel and WPS open non-Latin titles without mojibake.

Are my scan results uploaded anywhere?

No. The scan runs locally, results are held in memory only, and closing the page clears them. Only saved filter recipes and interface preferences persist, in local storage on your device.

Explore more tools in the VKT Extensions catalog, or reach us at [email protected].

Keep reading

How to Extract All Links From a Webpage — Chrome Extension Guide (2026)
Link Klipper vs LinkHarvest — Best Link Extractor for Chrome in 2026