How to save rendered HTML from multiple URLs in Chrome

Collect the HTML that JavaScript builds across a list of pages, then download the files for inspection without saving each page by hand.

To save rendered HTML from multiple URLs in Chrome, use For Each Link → Paste list → Save Page → Rendered HTML in Tab Automation. Run the list once, then download the retained HTML files individually or as a ZIP. Each URL opens in the same assigned tab before its HTML is saved.

This is useful when you need to inspect content added by JavaScript across several pages: product details, article text, headings, or other changes to the document. The output contains the main document’s HTML at capture time. Linked images, stylesheets, scripts, and fonts remain external, so these files are not complete offline copies.

Rendered HTML versus source HTML

The HTML a server sends can differ from the document you inspect after JavaScript runs. Google explains this distinction in its guide to viewing rendered source: Chrome’s Inspect view lets you examine the rendered document, while viewing page source typically shows the original response.

In Tab Automation, choose the mode that matches your inspection task:

Save Page mode What it saves When to use it
Rendered HTML The current main document after page load and any earlier automation steps. You need text or markup added or changed by JavaScript.
Source HTML HTML from a fresh request to the current page URL. You need the server response without subsequent page-script changes.

Source HTML does not retrieve the original navigation response. Its new request may return different content. Rendered HTML captures your browser’s current document; it does not establish what a search engine saw or indexed.

Add the URLs you want to save

Install Tab Automation and open a regular web page in Chrome. Custom automations are free. The full Dashboard used below requires Explorer access; without it, the basic saved-results list still lets you download and export your data.

  1. Open the side panel and choose New Automation.
  2. Under Select a Tab, turn off Always start this automation in a new tab and select the open page.
  3. Choose Add Step → For Each Link.
  4. Choose Paste list and enter two or three page URLs, one per line. Each URL must begin with https:// or http://.
  5. Review the collected list before continuing.

Start with pages that share a layout so one readiness check can work across the sample. Use a fresh automation for this recipe: a previously picked link selector can collect links from the starting page instead of using your pasted URLs.

The For Each Link reference explains the collection controls. If your page list comes from a public XML sitemap, its Sitemap source can supply the URLs instead.

Wait for the content, then save the HTML

Add Save Page inside Each Link, and keep HTML format → Rendered HTML selected. Each Link starts empty, so placing Save Page elsewhere in the sequence will not capture every destination.

Save Page waits for page load. For content that arrives later, expand Advanced:

  • Wait for CSS selector (optional): enter a selector for an element that appears when the content you need is present. A CSS selector is a way to identify an element; #product-details, for example, matches an element whose ID is product-details.
  • Extra delay (seconds): add time after that element appears if the page still needs to populate it. The default is zero.
  • Readiness timeout (seconds): allow enough time for page load, the selector, and the extra delay. The default is 30 seconds; the supported range is 1–300 seconds.

The selector above is illustrative; use one that exists on your pages. An empty container can appear before its contents, so finding the element does not prove that all JavaScript work has finished. Choose a more specific element or increase the extra delay, then inspect a saved sample. If readiness times out, the step fails instead of saving an early snapshot.

If content needs a click or scroll before it appears, put the corresponding step before Save Page inside Each Link. Test Save Page tests only the capture step; it does not perform those preceding interactions for you.

Rendered captures are limited to 16 MiB per page. They do not reconstruct iframe documents, shadow DOM, canvas pixels, or live form properties. For example, a value typed into a form field is not guaranteed to appear in the serialized HTML.

Test a sample, then run one pass

  1. Inside Each Link, open Go To This Link and use Open beside a collected URL to visit that page in the assigned tab.
  2. Perform any interactions needed to reveal the sample content, then choose Test Save Page.
  3. Open Dashboard → Files, find the Test output, and download it. Open the file in a text editor and search for a specific piece of content that appeared after JavaScript ran.
  4. Return to the automation. Keep Repeat off in the End block, then choose Save & Run.

Chrome must remain open during the run. Each URL is visited sequentially, and the next begins after the inner steps finish. If you need a pause between captures, add Wait / Delay inside Each Link.

Watch Activity for page or step failures. Use the automation’s pause control if you need to inspect the output before it finishes. Testing creates its own retained result; keep that Test output separate when checking how many pages the batch saved.

Download the HTML files and check the batch

When the run finishes, open Dashboard → Files. Use the source and run information to identify this batch’s files. Choose Download for one HTML file, or select several and choose Download ZIP. The Dashboard guide explains file selection and exports.

Saving a page does not automatically download it. Save Page first retains the file locally in the extension. The download or ZIP action creates the copy you can keep outside Chrome.

Finish or pause a running run before exporting. An export taken while paused contains the output saved so far and is labeled partial; resuming the automation does not update that downloaded copy.

Before using the batch, check:

  • The run retained a separate HTML result for each page you expected it to visit.
  • The source URLs match your list, with no Test output counted as another batch page.
  • A sample file contains the JavaScript-added text or markup you wanted.

Use a text editor for that last check. Opening the HTML as a web page can load its external resources and run scripts again, which can change what you see. Generated filenames include the host, last path segment, timestamp, and capture mode; use the retained source URL to distinguish pages whose URLs differ only by query string.

Save Page also collects page metadata. If your intended deliverable is a spreadsheet of titles and descriptions, follow the separate sitemap-to-metadata CSV tutorial.

Troubleshoot missing or incomplete captures

A readiness check times out. Open the affected URL and confirm the selector exists there. Correct an invalid selector, choose one shared by the pages, or allow more time within the readiness limit. A login page or error page may never contain the expected element.

The HTML lacks content visible later. An element may exist before its text arrives. Adjust the selector or delay and test again. Content inside an iframe, shadow DOM, or canvas needs a different capture approach; waiting longer does not bring it into this HTML snapshot.

A second run skips pages. Check Skip visited in For Each Link. The default is Timed, with a 24-hour window, and starting another run preserves visit history. Choose Always to revisit remembered URLs; Never keeps skipping them. Also check ignored URLs and any link limit.

The document changes during capture. Navigation or a redirect can replace the page while Save Page is waiting or reading it. Let the intended destination settle, then retry. Avoid manually navigating the assigned tab during the batch.

A save pauses with a storage error. Read the reported cause. Free storage if the error identifies a quota problem, then retry the paused save. Earlier successful steps are not replayed by that retry.

Retained results stay local until deleted. Download the files you need before uninstalling the extension or clearing its storage.

Editorial note: Written with AI assistance and checked against the extension source, its automated contracts, and the primary documentation linked above.

Claim a free 6-month Explorer License for the full Dashboard and pre-built workflows. The Explorer License is available for a limited time.

Learn about the Explorer License